[tint] Add runtime-sized array overload of subgroupMatrixLoad
The MSL and SPIR-V polyfills work without changes, as they take a
pointer to the first element of the array.
Bug: 348702031
Change-Id: I6d04a5a19bddd9d3bb45a7e6f5ef3187ae4ea056
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/225135
Reviewed-by: dan sinclair <dsinclair@chromium.org>
Commit-Queue: James Price <jrprice@google.com>
diff --git a/src/tint/lang/core/core.def b/src/tint/lang/core/core.def
index 128ba1e..90470d1 100644
--- a/src/tint/lang/core/core.def
+++ b/src/tint/lang/core/core.def
@@ -771,6 +771,7 @@
@must_use @stage("fragment", "compute") implicit(T: fiu32_f16) fn quadSwapDiagonal(e: T) -> T
@must_use @stage("fragment", "compute") implicit(N: num, T: fiu32_f16) fn quadSwapDiagonal(e: vec<N, T>) -> vec<N, T>
+@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: 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)
@must_use @stage("compute") implicit(S: subgroup_matrix_elements, C: num, R: num, K: num) fn subgroupMatrixMultiply(
diff --git a/src/tint/lang/core/intrinsic/data.cc b/src/tint/lang/core/intrinsic/data.cc
index c9f4251..45a1850 100644
--- a/src/tint/lang/core/intrinsic/data.cc
+++ b/src/tint/lang/core/intrinsic/data.cc
@@ -1717,302 +1717,307 @@
/* [27] */ MatcherIndex(2),
/* [28] */ MatcherIndex(3),
/* [29] */ MatcherIndex(4),
- /* [30] */ MatcherIndex(56),
- /* [31] */ MatcherIndex(0),
- /* [32] */ MatcherIndex(1),
+ /* [30] */ MatcherIndex(27),
+ /* [31] */ MatcherIndex(18),
+ /* [32] */ MatcherIndex(29),
/* [33] */ MatcherIndex(2),
- /* [34] */ MatcherIndex(3),
- /* [35] */ MatcherIndex(56),
- /* [36] */ MatcherIndex(8),
+ /* [34] */ MatcherIndex(14),
+ /* [35] */ MatcherIndex(10),
+ /* [36] */ MatcherIndex(56),
/* [37] */ MatcherIndex(0),
/* [38] */ MatcherIndex(1),
/* [39] */ MatcherIndex(2),
- /* [40] */ MatcherIndex(56),
- /* [41] */ MatcherIndex(6),
- /* [42] */ MatcherIndex(0),
- /* [43] */ MatcherIndex(3),
- /* [44] */ MatcherIndex(2),
- /* [45] */ MatcherIndex(56),
- /* [46] */ MatcherIndex(7),
- /* [47] */ MatcherIndex(0),
- /* [48] */ MatcherIndex(1),
+ /* [40] */ MatcherIndex(3),
+ /* [41] */ MatcherIndex(56),
+ /* [42] */ MatcherIndex(8),
+ /* [43] */ MatcherIndex(0),
+ /* [44] */ MatcherIndex(1),
+ /* [45] */ MatcherIndex(2),
+ /* [46] */ MatcherIndex(56),
+ /* [47] */ MatcherIndex(6),
+ /* [48] */ MatcherIndex(0),
/* [49] */ MatcherIndex(3),
- /* [50] */ MatcherIndex(56),
- /* [51] */ MatcherIndex(6),
- /* [52] */ MatcherIndex(0),
- /* [53] */ MatcherIndex(1),
- /* [54] */ MatcherIndex(2),
- /* [55] */ MatcherIndex(56),
- /* [56] */ MatcherIndex(7),
- /* [57] */ MatcherIndex(0),
- /* [58] */ MatcherIndex(1),
- /* [59] */ MatcherIndex(2),
- /* [60] */ MatcherIndex(26),
- /* [61] */ MatcherIndex(0),
- /* [62] */ MatcherIndex(0),
- /* [63] */ MatcherIndex(1),
- /* [64] */ MatcherIndex(26),
- /* [65] */ MatcherIndex(1),
- /* [66] */ MatcherIndex(0),
- /* [67] */ MatcherIndex(2),
- /* [68] */ MatcherIndex(26),
- /* [69] */ MatcherIndex(0),
- /* [70] */ MatcherIndex(1),
- /* [71] */ MatcherIndex(2),
- /* [72] */ MatcherIndex(26),
- /* [73] */ MatcherIndex(1),
- /* [74] */ MatcherIndex(2),
+ /* [50] */ MatcherIndex(2),
+ /* [51] */ MatcherIndex(56),
+ /* [52] */ MatcherIndex(7),
+ /* [53] */ MatcherIndex(0),
+ /* [54] */ MatcherIndex(1),
+ /* [55] */ MatcherIndex(3),
+ /* [56] */ MatcherIndex(56),
+ /* [57] */ MatcherIndex(6),
+ /* [58] */ MatcherIndex(0),
+ /* [59] */ MatcherIndex(1),
+ /* [60] */ MatcherIndex(2),
+ /* [61] */ MatcherIndex(56),
+ /* [62] */ MatcherIndex(7),
+ /* [63] */ MatcherIndex(0),
+ /* [64] */ MatcherIndex(1),
+ /* [65] */ MatcherIndex(2),
+ /* [66] */ MatcherIndex(26),
+ /* [67] */ MatcherIndex(0),
+ /* [68] */ MatcherIndex(0),
+ /* [69] */ MatcherIndex(1),
+ /* [70] */ MatcherIndex(26),
+ /* [71] */ MatcherIndex(1),
+ /* [72] */ MatcherIndex(0),
+ /* [73] */ MatcherIndex(2),
+ /* [74] */ MatcherIndex(26),
/* [75] */ MatcherIndex(0),
- /* [76] */ MatcherIndex(26),
+ /* [76] */ MatcherIndex(1),
/* [77] */ MatcherIndex(2),
- /* [78] */ MatcherIndex(3),
- /* [79] */ MatcherIndex(0),
- /* [80] */ MatcherIndex(26),
- /* [81] */ MatcherIndex(1),
- /* [82] */ MatcherIndex(3),
- /* [83] */ MatcherIndex(0),
- /* [84] */ MatcherIndex(26),
- /* [85] */ MatcherIndex(2),
- /* [86] */ MatcherIndex(1),
- /* [87] */ MatcherIndex(0),
- /* [88] */ MatcherIndex(25),
+ /* [78] */ MatcherIndex(26),
+ /* [79] */ MatcherIndex(1),
+ /* [80] */ MatcherIndex(2),
+ /* [81] */ MatcherIndex(0),
+ /* [82] */ MatcherIndex(26),
+ /* [83] */ MatcherIndex(2),
+ /* [84] */ MatcherIndex(3),
+ /* [85] */ MatcherIndex(0),
+ /* [86] */ MatcherIndex(26),
+ /* [87] */ MatcherIndex(1),
+ /* [88] */ MatcherIndex(3),
/* [89] */ MatcherIndex(0),
- /* [90] */ MatcherIndex(1),
- /* [91] */ MatcherIndex(25),
- /* [92] */ MatcherIndex(0),
- /* [93] */ MatcherIndex(6),
+ /* [90] */ MatcherIndex(26),
+ /* [91] */ MatcherIndex(2),
+ /* [92] */ MatcherIndex(1),
+ /* [93] */ MatcherIndex(0),
/* [94] */ MatcherIndex(25),
- /* [95] */ MatcherIndex(1),
- /* [96] */ MatcherIndex(0),
+ /* [95] */ MatcherIndex(0),
+ /* [96] */ MatcherIndex(1),
/* [97] */ MatcherIndex(25),
/* [98] */ MatcherIndex(0),
- /* [99] */ MatcherIndex(11),
- /* [100] */ MatcherIndex(54),
- /* [101] */ MatcherIndex(0),
- /* [102] */ MatcherIndex(1),
+ /* [99] */ MatcherIndex(6),
+ /* [100] */ MatcherIndex(25),
+ /* [101] */ MatcherIndex(1),
+ /* [102] */ MatcherIndex(0),
/* [103] */ MatcherIndex(25),
/* [104] */ MatcherIndex(0),
- /* [105] */ MatcherIndex(2),
- /* [106] */ MatcherIndex(52),
+ /* [105] */ MatcherIndex(11),
+ /* [106] */ MatcherIndex(54),
/* [107] */ MatcherIndex(0),
/* [108] */ MatcherIndex(1),
- /* [109] */ MatcherIndex(45),
+ /* [109] */ MatcherIndex(25),
/* [110] */ MatcherIndex(0),
- /* [111] */ MatcherIndex(1),
- /* [112] */ MatcherIndex(46),
+ /* [111] */ MatcherIndex(2),
+ /* [112] */ MatcherIndex(52),
/* [113] */ MatcherIndex(0),
/* [114] */ MatcherIndex(1),
- /* [115] */ MatcherIndex(47),
+ /* [115] */ MatcherIndex(45),
/* [116] */ MatcherIndex(0),
/* [117] */ MatcherIndex(1),
- /* [118] */ MatcherIndex(48),
+ /* [118] */ MatcherIndex(46),
/* [119] */ MatcherIndex(0),
/* [120] */ MatcherIndex(1),
- /* [121] */ MatcherIndex(45),
- /* [122] */ MatcherIndex(9),
- /* [123] */ MatcherIndex(15),
- /* [124] */ MatcherIndex(9),
- /* [125] */ MatcherIndex(46),
- /* [126] */ MatcherIndex(9),
- /* [127] */ MatcherIndex(15),
- /* [128] */ MatcherIndex(10),
- /* [129] */ MatcherIndex(47),
+ /* [121] */ MatcherIndex(47),
+ /* [122] */ MatcherIndex(0),
+ /* [123] */ MatcherIndex(1),
+ /* [124] */ MatcherIndex(48),
+ /* [125] */ MatcherIndex(0),
+ /* [126] */ MatcherIndex(1),
+ /* [127] */ MatcherIndex(45),
+ /* [128] */ MatcherIndex(9),
+ /* [129] */ MatcherIndex(15),
/* [130] */ MatcherIndex(9),
- /* [131] */ MatcherIndex(15),
- /* [132] */ MatcherIndex(0),
- /* [133] */ MatcherIndex(48),
- /* [134] */ MatcherIndex(9),
- /* [135] */ MatcherIndex(15),
- /* [136] */ MatcherIndex(1),
- /* [137] */ MatcherIndex(45),
- /* [138] */ MatcherIndex(10),
- /* [139] */ MatcherIndex(15),
- /* [140] */ MatcherIndex(46),
- /* [141] */ MatcherIndex(10),
- /* [142] */ MatcherIndex(15),
- /* [143] */ MatcherIndex(47),
+ /* [131] */ MatcherIndex(46),
+ /* [132] */ MatcherIndex(9),
+ /* [133] */ MatcherIndex(15),
+ /* [134] */ MatcherIndex(10),
+ /* [135] */ MatcherIndex(47),
+ /* [136] */ MatcherIndex(9),
+ /* [137] */ MatcherIndex(15),
+ /* [138] */ MatcherIndex(0),
+ /* [139] */ MatcherIndex(48),
+ /* [140] */ MatcherIndex(9),
+ /* [141] */ MatcherIndex(15),
+ /* [142] */ MatcherIndex(1),
+ /* [143] */ MatcherIndex(45),
/* [144] */ MatcherIndex(10),
/* [145] */ MatcherIndex(15),
- /* [146] */ MatcherIndex(48),
+ /* [146] */ MatcherIndex(46),
/* [147] */ MatcherIndex(10),
/* [148] */ MatcherIndex(15),
- /* [149] */ MatcherIndex(45),
- /* [150] */ MatcherIndex(11),
+ /* [149] */ MatcherIndex(47),
+ /* [150] */ MatcherIndex(10),
/* [151] */ MatcherIndex(15),
- /* [152] */ MatcherIndex(46),
- /* [153] */ MatcherIndex(11),
+ /* [152] */ MatcherIndex(48),
+ /* [153] */ MatcherIndex(10),
/* [154] */ MatcherIndex(15),
- /* [155] */ MatcherIndex(47),
+ /* [155] */ MatcherIndex(45),
/* [156] */ MatcherIndex(11),
/* [157] */ MatcherIndex(15),
- /* [158] */ MatcherIndex(48),
+ /* [158] */ MatcherIndex(46),
/* [159] */ MatcherIndex(11),
/* [160] */ MatcherIndex(15),
- /* [161] */ MatcherIndex(45),
- /* [162] */ MatcherIndex(9),
- /* [163] */ MatcherIndex(14),
- /* [164] */ MatcherIndex(10),
- /* [165] */ MatcherIndex(45),
- /* [166] */ MatcherIndex(10),
- /* [167] */ MatcherIndex(14),
- /* [168] */ MatcherIndex(11),
- /* [169] */ MatcherIndex(45),
+ /* [161] */ MatcherIndex(47),
+ /* [162] */ MatcherIndex(11),
+ /* [163] */ MatcherIndex(15),
+ /* [164] */ MatcherIndex(48),
+ /* [165] */ MatcherIndex(11),
+ /* [166] */ MatcherIndex(15),
+ /* [167] */ MatcherIndex(45),
+ /* [168] */ MatcherIndex(9),
+ /* [169] */ MatcherIndex(14),
/* [170] */ MatcherIndex(11),
- /* [171] */ MatcherIndex(14),
- /* [172] */ MatcherIndex(9),
- /* [173] */ MatcherIndex(46),
+ /* [171] */ MatcherIndex(45),
+ /* [172] */ MatcherIndex(10),
+ /* [173] */ MatcherIndex(14),
/* [174] */ MatcherIndex(9),
- /* [175] */ MatcherIndex(14),
- /* [176] */ MatcherIndex(1),
- /* [177] */ MatcherIndex(46),
- /* [178] */ MatcherIndex(10),
- /* [179] */ MatcherIndex(14),
- /* [180] */ MatcherIndex(46),
- /* [181] */ MatcherIndex(11),
- /* [182] */ MatcherIndex(14),
- /* [183] */ MatcherIndex(47),
- /* [184] */ MatcherIndex(9),
- /* [185] */ MatcherIndex(14),
- /* [186] */ MatcherIndex(47),
- /* [187] */ MatcherIndex(10),
- /* [188] */ MatcherIndex(14),
- /* [189] */ MatcherIndex(47),
- /* [190] */ MatcherIndex(11),
- /* [191] */ MatcherIndex(14),
- /* [192] */ MatcherIndex(48),
- /* [193] */ MatcherIndex(9),
- /* [194] */ MatcherIndex(14),
- /* [195] */ MatcherIndex(48),
- /* [196] */ MatcherIndex(10),
- /* [197] */ MatcherIndex(14),
- /* [198] */ MatcherIndex(48),
- /* [199] */ MatcherIndex(11),
- /* [200] */ MatcherIndex(14),
- /* [201] */ MatcherIndex(25),
- /* [202] */ MatcherIndex(2),
- /* [203] */ MatcherIndex(0),
- /* [204] */ MatcherIndex(25),
- /* [205] */ MatcherIndex(1),
- /* [206] */ MatcherIndex(6),
- /* [207] */ MatcherIndex(25),
- /* [208] */ MatcherIndex(1),
- /* [209] */ MatcherIndex(10),
- /* [210] */ MatcherIndex(53),
- /* [211] */ MatcherIndex(0),
- /* [212] */ MatcherIndex(51),
- /* [213] */ MatcherIndex(0),
- /* [214] */ MatcherIndex(33),
- /* [215] */ MatcherIndex(0),
- /* [216] */ MatcherIndex(13),
- /* [217] */ MatcherIndex(10),
- /* [218] */ MatcherIndex(34),
- /* [219] */ MatcherIndex(0),
- /* [220] */ MatcherIndex(35),
- /* [221] */ MatcherIndex(0),
- /* [222] */ MatcherIndex(36),
- /* [223] */ MatcherIndex(0),
- /* [224] */ MatcherIndex(37),
- /* [225] */ MatcherIndex(0),
- /* [226] */ MatcherIndex(38),
- /* [227] */ MatcherIndex(0),
- /* [228] */ MatcherIndex(39),
- /* [229] */ MatcherIndex(0),
- /* [230] */ MatcherIndex(13),
- /* [231] */ MatcherIndex(9),
- /* [232] */ MatcherIndex(33),
- /* [233] */ MatcherIndex(11),
- /* [234] */ MatcherIndex(34),
- /* [235] */ MatcherIndex(11),
- /* [236] */ MatcherIndex(35),
- /* [237] */ MatcherIndex(11),
- /* [238] */ MatcherIndex(36),
- /* [239] */ MatcherIndex(11),
- /* [240] */ MatcherIndex(37),
- /* [241] */ MatcherIndex(11),
- /* [242] */ MatcherIndex(38),
- /* [243] */ MatcherIndex(11),
- /* [244] */ MatcherIndex(13),
- /* [245] */ MatcherIndex(0),
- /* [246] */ MatcherIndex(13),
- /* [247] */ MatcherIndex(1),
- /* [248] */ MatcherIndex(50),
- /* [249] */ MatcherIndex(0),
- /* [250] */ MatcherIndex(55),
- /* [251] */ MatcherIndex(0),
- /* [252] */ MatcherIndex(16),
- /* [253] */ MatcherIndex(0),
- /* [254] */ MatcherIndex(16),
- /* [255] */ MatcherIndex(11),
- /* [256] */ MatcherIndex(16),
- /* [257] */ MatcherIndex(12),
- /* [258] */ MatcherIndex(17),
- /* [259] */ MatcherIndex(0),
- /* [260] */ MatcherIndex(17),
- /* [261] */ MatcherIndex(11),
- /* [262] */ MatcherIndex(17),
- /* [263] */ MatcherIndex(12),
- /* [264] */ MatcherIndex(18),
- /* [265] */ MatcherIndex(0),
- /* [266] */ MatcherIndex(18),
- /* [267] */ MatcherIndex(11),
- /* [268] */ MatcherIndex(18),
- /* [269] */ MatcherIndex(12),
- /* [270] */ MatcherIndex(19),
- /* [271] */ MatcherIndex(0),
- /* [272] */ MatcherIndex(19),
- /* [273] */ MatcherIndex(11),
- /* [274] */ MatcherIndex(19),
- /* [275] */ MatcherIndex(12),
- /* [276] */ MatcherIndex(20),
- /* [277] */ MatcherIndex(0),
- /* [278] */ MatcherIndex(20),
- /* [279] */ MatcherIndex(11),
- /* [280] */ MatcherIndex(20),
- /* [281] */ MatcherIndex(12),
- /* [282] */ MatcherIndex(21),
- /* [283] */ MatcherIndex(0),
- /* [284] */ MatcherIndex(21),
- /* [285] */ MatcherIndex(11),
- /* [286] */ MatcherIndex(21),
- /* [287] */ MatcherIndex(12),
- /* [288] */ MatcherIndex(22),
- /* [289] */ MatcherIndex(0),
- /* [290] */ MatcherIndex(22),
- /* [291] */ MatcherIndex(11),
- /* [292] */ MatcherIndex(22),
- /* [293] */ MatcherIndex(12),
- /* [294] */ MatcherIndex(23),
- /* [295] */ MatcherIndex(0),
- /* [296] */ MatcherIndex(23),
- /* [297] */ MatcherIndex(11),
- /* [298] */ MatcherIndex(23),
- /* [299] */ MatcherIndex(12),
- /* [300] */ MatcherIndex(24),
- /* [301] */ MatcherIndex(0),
- /* [302] */ MatcherIndex(24),
- /* [303] */ MatcherIndex(11),
- /* [304] */ MatcherIndex(24),
- /* [305] */ MatcherIndex(12),
- /* [306] */ MatcherIndex(63),
- /* [307] */ MatcherIndex(67),
- /* [308] */ MatcherIndex(68),
- /* [309] */ MatcherIndex(57),
- /* [310] */ MatcherIndex(65),
- /* [311] */ MatcherIndex(64),
- /* [312] */ MatcherIndex(40),
- /* [313] */ MatcherIndex(41),
- /* [314] */ MatcherIndex(42),
- /* [315] */ MatcherIndex(43),
- /* [316] */ MatcherIndex(44),
- /* [317] */ MatcherIndex(49),
- /* [318] */ MatcherIndex(31),
- /* [319] */ MatcherIndex(32),
- /* [320] */ MatcherIndex(69),
- /* [321] */ MatcherIndex(60),
- /* [322] */ MatcherIndex(61),
- /* [323] */ MatcherIndex(58),
- /* [324] */ MatcherIndex(59),
- /* [325] */ MatcherIndex(62),
+ /* [175] */ MatcherIndex(45),
+ /* [176] */ MatcherIndex(11),
+ /* [177] */ MatcherIndex(14),
+ /* [178] */ MatcherIndex(1),
+ /* [179] */ MatcherIndex(46),
+ /* [180] */ MatcherIndex(9),
+ /* [181] */ MatcherIndex(14),
+ /* [182] */ MatcherIndex(46),
+ /* [183] */ MatcherIndex(10),
+ /* [184] */ MatcherIndex(14),
+ /* [185] */ MatcherIndex(46),
+ /* [186] */ MatcherIndex(11),
+ /* [187] */ MatcherIndex(14),
+ /* [188] */ MatcherIndex(47),
+ /* [189] */ MatcherIndex(9),
+ /* [190] */ MatcherIndex(14),
+ /* [191] */ MatcherIndex(47),
+ /* [192] */ MatcherIndex(10),
+ /* [193] */ MatcherIndex(14),
+ /* [194] */ MatcherIndex(47),
+ /* [195] */ MatcherIndex(11),
+ /* [196] */ MatcherIndex(14),
+ /* [197] */ MatcherIndex(48),
+ /* [198] */ MatcherIndex(9),
+ /* [199] */ MatcherIndex(14),
+ /* [200] */ MatcherIndex(48),
+ /* [201] */ MatcherIndex(10),
+ /* [202] */ MatcherIndex(14),
+ /* [203] */ MatcherIndex(48),
+ /* [204] */ MatcherIndex(11),
+ /* [205] */ MatcherIndex(14),
+ /* [206] */ MatcherIndex(25),
+ /* [207] */ MatcherIndex(2),
+ /* [208] */ MatcherIndex(0),
+ /* [209] */ MatcherIndex(25),
+ /* [210] */ MatcherIndex(1),
+ /* [211] */ MatcherIndex(6),
+ /* [212] */ MatcherIndex(25),
+ /* [213] */ MatcherIndex(1),
+ /* [214] */ MatcherIndex(10),
+ /* [215] */ MatcherIndex(53),
+ /* [216] */ MatcherIndex(0),
+ /* [217] */ MatcherIndex(51),
+ /* [218] */ MatcherIndex(0),
+ /* [219] */ MatcherIndex(33),
+ /* [220] */ MatcherIndex(0),
+ /* [221] */ MatcherIndex(13),
+ /* [222] */ MatcherIndex(10),
+ /* [223] */ MatcherIndex(34),
+ /* [224] */ MatcherIndex(0),
+ /* [225] */ MatcherIndex(35),
+ /* [226] */ MatcherIndex(0),
+ /* [227] */ MatcherIndex(36),
+ /* [228] */ MatcherIndex(0),
+ /* [229] */ MatcherIndex(37),
+ /* [230] */ MatcherIndex(0),
+ /* [231] */ MatcherIndex(38),
+ /* [232] */ MatcherIndex(0),
+ /* [233] */ MatcherIndex(39),
+ /* [234] */ MatcherIndex(0),
+ /* [235] */ MatcherIndex(13),
+ /* [236] */ MatcherIndex(9),
+ /* [237] */ MatcherIndex(33),
+ /* [238] */ MatcherIndex(11),
+ /* [239] */ MatcherIndex(34),
+ /* [240] */ MatcherIndex(11),
+ /* [241] */ MatcherIndex(35),
+ /* [242] */ MatcherIndex(11),
+ /* [243] */ MatcherIndex(36),
+ /* [244] */ MatcherIndex(11),
+ /* [245] */ MatcherIndex(37),
+ /* [246] */ MatcherIndex(11),
+ /* [247] */ MatcherIndex(38),
+ /* [248] */ MatcherIndex(11),
+ /* [249] */ MatcherIndex(13),
+ /* [250] */ MatcherIndex(0),
+ /* [251] */ MatcherIndex(13),
+ /* [252] */ MatcherIndex(1),
+ /* [253] */ MatcherIndex(50),
+ /* [254] */ MatcherIndex(0),
+ /* [255] */ MatcherIndex(55),
+ /* [256] */ MatcherIndex(0),
+ /* [257] */ MatcherIndex(16),
+ /* [258] */ MatcherIndex(0),
+ /* [259] */ MatcherIndex(16),
+ /* [260] */ MatcherIndex(11),
+ /* [261] */ MatcherIndex(16),
+ /* [262] */ MatcherIndex(12),
+ /* [263] */ MatcherIndex(17),
+ /* [264] */ MatcherIndex(0),
+ /* [265] */ MatcherIndex(17),
+ /* [266] */ MatcherIndex(11),
+ /* [267] */ MatcherIndex(17),
+ /* [268] */ MatcherIndex(12),
+ /* [269] */ MatcherIndex(18),
+ /* [270] */ MatcherIndex(0),
+ /* [271] */ MatcherIndex(18),
+ /* [272] */ MatcherIndex(11),
+ /* [273] */ MatcherIndex(18),
+ /* [274] */ MatcherIndex(12),
+ /* [275] */ MatcherIndex(19),
+ /* [276] */ MatcherIndex(0),
+ /* [277] */ MatcherIndex(19),
+ /* [278] */ MatcherIndex(11),
+ /* [279] */ MatcherIndex(19),
+ /* [280] */ MatcherIndex(12),
+ /* [281] */ MatcherIndex(20),
+ /* [282] */ MatcherIndex(0),
+ /* [283] */ MatcherIndex(20),
+ /* [284] */ MatcherIndex(11),
+ /* [285] */ MatcherIndex(20),
+ /* [286] */ MatcherIndex(12),
+ /* [287] */ MatcherIndex(21),
+ /* [288] */ MatcherIndex(0),
+ /* [289] */ MatcherIndex(21),
+ /* [290] */ MatcherIndex(11),
+ /* [291] */ MatcherIndex(21),
+ /* [292] */ MatcherIndex(12),
+ /* [293] */ MatcherIndex(22),
+ /* [294] */ MatcherIndex(0),
+ /* [295] */ MatcherIndex(22),
+ /* [296] */ MatcherIndex(11),
+ /* [297] */ MatcherIndex(22),
+ /* [298] */ MatcherIndex(12),
+ /* [299] */ MatcherIndex(23),
+ /* [300] */ MatcherIndex(0),
+ /* [301] */ MatcherIndex(23),
+ /* [302] */ MatcherIndex(11),
+ /* [303] */ MatcherIndex(23),
+ /* [304] */ MatcherIndex(12),
+ /* [305] */ MatcherIndex(24),
+ /* [306] */ MatcherIndex(0),
+ /* [307] */ MatcherIndex(24),
+ /* [308] */ MatcherIndex(11),
+ /* [309] */ MatcherIndex(24),
+ /* [310] */ MatcherIndex(12),
+ /* [311] */ MatcherIndex(63),
+ /* [312] */ MatcherIndex(67),
+ /* [313] */ MatcherIndex(68),
+ /* [314] */ MatcherIndex(57),
+ /* [315] */ MatcherIndex(65),
+ /* [316] */ MatcherIndex(64),
+ /* [317] */ MatcherIndex(40),
+ /* [318] */ MatcherIndex(41),
+ /* [319] */ MatcherIndex(42),
+ /* [320] */ MatcherIndex(43),
+ /* [321] */ MatcherIndex(44),
+ /* [322] */ MatcherIndex(49),
+ /* [323] */ MatcherIndex(31),
+ /* [324] */ MatcherIndex(32),
+ /* [325] */ MatcherIndex(69),
+ /* [326] */ MatcherIndex(60),
+ /* [327] */ MatcherIndex(61),
+ /* [328] */ MatcherIndex(58),
+ /* [329] */ MatcherIndex(59),
+ /* [330] */ MatcherIndex(62),
};
static_assert(MatcherIndicesIndex::CanIndex(kMatcherIndices),
@@ -2107,22 +2112,22 @@
{
/* [17] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(128),
+ /* matcher_indices */ MatcherIndicesIndex(35),
},
{
/* [18] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(128),
+ /* matcher_indices */ MatcherIndicesIndex(35),
},
{
/* [19] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(236),
+ /* matcher_indices */ MatcherIndicesIndex(241),
},
{
/* [20] */
/* usage */ core::ParameterUsage::kSampler,
- /* matcher_indices */ MatcherIndicesIndex(318),
+ /* matcher_indices */ MatcherIndicesIndex(323),
},
{
/* [21] */
@@ -2147,7 +2152,7 @@
{
/* [25] */
/* usage */ core::ParameterUsage::kOffset,
- /* matcher_indices */ MatcherIndicesIndex(230),
+ /* matcher_indices */ MatcherIndicesIndex(235),
},
{
/* [26] */
@@ -2157,12 +2162,12 @@
{
/* [27] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(220),
+ /* matcher_indices */ MatcherIndicesIndex(225),
},
{
/* [28] */
/* usage */ core::ParameterUsage::kSampler,
- /* matcher_indices */ MatcherIndicesIndex(318),
+ /* matcher_indices */ MatcherIndicesIndex(323),
},
{
/* [29] */
@@ -2177,17 +2182,17 @@
{
/* [31] */
/* usage */ core::ParameterUsage::kOffset,
- /* matcher_indices */ MatcherIndicesIndex(230),
+ /* matcher_indices */ MatcherIndicesIndex(235),
},
{
/* [32] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(313),
+ /* matcher_indices */ MatcherIndicesIndex(318),
},
{
/* [33] */
/* usage */ core::ParameterUsage::kSampler,
- /* matcher_indices */ MatcherIndicesIndex(319),
+ /* matcher_indices */ MatcherIndicesIndex(324),
},
{
/* [34] */
@@ -2207,17 +2212,17 @@
{
/* [37] */
/* usage */ core::ParameterUsage::kOffset,
- /* matcher_indices */ MatcherIndicesIndex(230),
+ /* matcher_indices */ MatcherIndicesIndex(235),
},
{
/* [38] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(236),
+ /* matcher_indices */ MatcherIndicesIndex(241),
},
{
/* [39] */
/* usage */ core::ParameterUsage::kSampler,
- /* matcher_indices */ MatcherIndicesIndex(318),
+ /* matcher_indices */ MatcherIndicesIndex(323),
},
{
/* [40] */
@@ -2237,17 +2242,17 @@
{
/* [43] */
/* usage */ core::ParameterUsage::kOffset,
- /* matcher_indices */ MatcherIndicesIndex(230),
+ /* matcher_indices */ MatcherIndicesIndex(235),
},
{
/* [44] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(234),
+ /* matcher_indices */ MatcherIndicesIndex(239),
},
{
/* [45] */
/* usage */ core::ParameterUsage::kSampler,
- /* matcher_indices */ MatcherIndicesIndex(318),
+ /* matcher_indices */ MatcherIndicesIndex(323),
},
{
/* [46] */
@@ -2267,52 +2272,52 @@
{
/* [49] */
/* usage */ core::ParameterUsage::kOffset,
- /* matcher_indices */ MatcherIndicesIndex(230),
+ /* matcher_indices */ MatcherIndicesIndex(235),
},
{
/* [50] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(238),
+ /* matcher_indices */ MatcherIndicesIndex(243),
},
{
/* [51] */
/* usage */ core::ParameterUsage::kSampler,
- /* matcher_indices */ MatcherIndicesIndex(318),
+ /* matcher_indices */ MatcherIndicesIndex(323),
},
{
/* [52] */
/* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(167),
+ /* matcher_indices */ MatcherIndicesIndex(169),
},
{
/* [53] */
/* usage */ core::ParameterUsage::kDdx,
- /* matcher_indices */ MatcherIndicesIndex(167),
+ /* matcher_indices */ MatcherIndicesIndex(169),
},
{
/* [54] */
/* usage */ core::ParameterUsage::kDdy,
- /* matcher_indices */ MatcherIndicesIndex(167),
+ /* matcher_indices */ MatcherIndicesIndex(169),
},
{
/* [55] */
/* usage */ core::ParameterUsage::kOffset,
- /* matcher_indices */ MatcherIndicesIndex(171),
+ /* matcher_indices */ MatcherIndicesIndex(173),
},
{
/* [56] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(242),
+ /* matcher_indices */ MatcherIndicesIndex(247),
},
{
/* [57] */
/* usage */ core::ParameterUsage::kSampler,
- /* matcher_indices */ MatcherIndicesIndex(318),
+ /* matcher_indices */ MatcherIndicesIndex(323),
},
{
/* [58] */
/* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(167),
+ /* matcher_indices */ MatcherIndicesIndex(169),
},
{
/* [59] */
@@ -2322,22 +2327,22 @@
{
/* [60] */
/* usage */ core::ParameterUsage::kDdx,
- /* matcher_indices */ MatcherIndicesIndex(167),
+ /* matcher_indices */ MatcherIndicesIndex(169),
},
{
/* [61] */
/* usage */ core::ParameterUsage::kDdy,
- /* matcher_indices */ MatcherIndicesIndex(167),
+ /* matcher_indices */ MatcherIndicesIndex(169),
},
{
/* [62] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(236),
+ /* matcher_indices */ MatcherIndicesIndex(241),
},
{
/* [63] */
/* usage */ core::ParameterUsage::kSampler,
- /* matcher_indices */ MatcherIndicesIndex(318),
+ /* matcher_indices */ MatcherIndicesIndex(323),
},
{
/* [64] */
@@ -2357,17 +2362,17 @@
{
/* [67] */
/* usage */ core::ParameterUsage::kOffset,
- /* matcher_indices */ MatcherIndicesIndex(230),
+ /* matcher_indices */ MatcherIndicesIndex(235),
},
{
/* [68] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(313),
+ /* matcher_indices */ MatcherIndicesIndex(318),
},
{
/* [69] */
/* usage */ core::ParameterUsage::kSampler,
- /* matcher_indices */ MatcherIndicesIndex(318),
+ /* matcher_indices */ MatcherIndicesIndex(323),
},
{
/* [70] */
@@ -2387,7 +2392,7 @@
{
/* [73] */
/* usage */ core::ParameterUsage::kOffset,
- /* matcher_indices */ MatcherIndicesIndex(230),
+ /* matcher_indices */ MatcherIndicesIndex(235),
},
{
/* [74] */
@@ -2397,12 +2402,12 @@
{
/* [75] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(218),
+ /* matcher_indices */ MatcherIndicesIndex(223),
},
{
/* [76] */
/* usage */ core::ParameterUsage::kSampler,
- /* matcher_indices */ MatcherIndicesIndex(318),
+ /* matcher_indices */ MatcherIndicesIndex(323),
},
{
/* [77] */
@@ -2412,7 +2417,7 @@
{
/* [78] */
/* usage */ core::ParameterUsage::kOffset,
- /* matcher_indices */ MatcherIndicesIndex(230),
+ /* matcher_indices */ MatcherIndicesIndex(235),
},
{
/* [79] */
@@ -2422,17 +2427,17 @@
{
/* [80] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(226),
+ /* matcher_indices */ MatcherIndicesIndex(231),
},
{
/* [81] */
/* usage */ core::ParameterUsage::kSampler,
- /* matcher_indices */ MatcherIndicesIndex(318),
+ /* matcher_indices */ MatcherIndicesIndex(323),
},
{
/* [82] */
/* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(167),
+ /* matcher_indices */ MatcherIndicesIndex(169),
},
{
/* [83] */
@@ -2442,12 +2447,12 @@
{
/* [84] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(313),
+ /* matcher_indices */ MatcherIndicesIndex(318),
},
{
/* [85] */
/* usage */ core::ParameterUsage::kSampler,
- /* matcher_indices */ MatcherIndicesIndex(318),
+ /* matcher_indices */ MatcherIndicesIndex(323),
},
{
/* [86] */
@@ -2462,17 +2467,17 @@
{
/* [88] */
/* usage */ core::ParameterUsage::kOffset,
- /* matcher_indices */ MatcherIndicesIndex(230),
+ /* matcher_indices */ MatcherIndicesIndex(235),
},
{
/* [89] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(312),
+ /* matcher_indices */ MatcherIndicesIndex(317),
},
{
/* [90] */
/* usage */ core::ParameterUsage::kSampler,
- /* matcher_indices */ MatcherIndicesIndex(319),
+ /* matcher_indices */ MatcherIndicesIndex(324),
},
{
/* [91] */
@@ -2487,22 +2492,22 @@
{
/* [93] */
/* usage */ core::ParameterUsage::kOffset,
- /* matcher_indices */ MatcherIndicesIndex(230),
+ /* matcher_indices */ MatcherIndicesIndex(235),
},
{
/* [94] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(315),
+ /* matcher_indices */ MatcherIndicesIndex(320),
},
{
/* [95] */
/* usage */ core::ParameterUsage::kSampler,
- /* matcher_indices */ MatcherIndicesIndex(319),
+ /* matcher_indices */ MatcherIndicesIndex(324),
},
{
/* [96] */
/* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(167),
+ /* matcher_indices */ MatcherIndicesIndex(169),
},
{
/* [97] */
@@ -2517,12 +2522,12 @@
{
/* [99] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(236),
+ /* matcher_indices */ MatcherIndicesIndex(241),
},
{
/* [100] */
/* usage */ core::ParameterUsage::kSampler,
- /* matcher_indices */ MatcherIndicesIndex(318),
+ /* matcher_indices */ MatcherIndicesIndex(323),
},
{
/* [101] */
@@ -2537,17 +2542,17 @@
{
/* [103] */
/* usage */ core::ParameterUsage::kOffset,
- /* matcher_indices */ MatcherIndicesIndex(230),
+ /* matcher_indices */ MatcherIndicesIndex(235),
},
{
/* [104] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(234),
+ /* matcher_indices */ MatcherIndicesIndex(239),
},
{
/* [105] */
/* usage */ core::ParameterUsage::kSampler,
- /* matcher_indices */ MatcherIndicesIndex(318),
+ /* matcher_indices */ MatcherIndicesIndex(323),
},
{
/* [106] */
@@ -2562,22 +2567,22 @@
{
/* [108] */
/* usage */ core::ParameterUsage::kOffset,
- /* matcher_indices */ MatcherIndicesIndex(230),
+ /* matcher_indices */ MatcherIndicesIndex(235),
},
{
/* [109] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(238),
+ /* matcher_indices */ MatcherIndicesIndex(243),
},
{
/* [110] */
/* usage */ core::ParameterUsage::kSampler,
- /* matcher_indices */ MatcherIndicesIndex(318),
+ /* matcher_indices */ MatcherIndicesIndex(323),
},
{
/* [111] */
/* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(167),
+ /* matcher_indices */ MatcherIndicesIndex(169),
},
{
/* [112] */
@@ -2587,22 +2592,22 @@
{
/* [113] */
/* usage */ core::ParameterUsage::kOffset,
- /* matcher_indices */ MatcherIndicesIndex(171),
+ /* matcher_indices */ MatcherIndicesIndex(173),
},
{
/* [114] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(242),
+ /* matcher_indices */ MatcherIndicesIndex(247),
},
{
/* [115] */
/* usage */ core::ParameterUsage::kSampler,
- /* matcher_indices */ MatcherIndicesIndex(318),
+ /* matcher_indices */ MatcherIndicesIndex(323),
},
{
/* [116] */
/* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(167),
+ /* matcher_indices */ MatcherIndicesIndex(169),
},
{
/* [117] */
@@ -2617,37 +2622,37 @@
{
/* [119] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(240),
+ /* matcher_indices */ MatcherIndicesIndex(245),
},
{
/* [120] */
/* usage */ core::ParameterUsage::kSampler,
- /* matcher_indices */ MatcherIndicesIndex(318),
+ /* matcher_indices */ MatcherIndicesIndex(323),
},
{
/* [121] */
/* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(167),
+ /* matcher_indices */ MatcherIndicesIndex(169),
},
{
/* [122] */
/* usage */ core::ParameterUsage::kDdx,
- /* matcher_indices */ MatcherIndicesIndex(167),
+ /* matcher_indices */ MatcherIndicesIndex(169),
},
{
/* [123] */
/* usage */ core::ParameterUsage::kDdy,
- /* matcher_indices */ MatcherIndicesIndex(167),
+ /* matcher_indices */ MatcherIndicesIndex(169),
},
{
/* [124] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(234),
+ /* matcher_indices */ MatcherIndicesIndex(239),
},
{
/* [125] */
/* usage */ core::ParameterUsage::kSampler,
- /* matcher_indices */ MatcherIndicesIndex(318),
+ /* matcher_indices */ MatcherIndicesIndex(323),
},
{
/* [126] */
@@ -2662,22 +2667,22 @@
{
/* [128] */
/* usage */ core::ParameterUsage::kOffset,
- /* matcher_indices */ MatcherIndicesIndex(230),
+ /* matcher_indices */ MatcherIndicesIndex(235),
},
{
/* [129] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(238),
+ /* matcher_indices */ MatcherIndicesIndex(243),
},
{
/* [130] */
/* usage */ core::ParameterUsage::kSampler,
- /* matcher_indices */ MatcherIndicesIndex(318),
+ /* matcher_indices */ MatcherIndicesIndex(323),
},
{
/* [131] */
/* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(167),
+ /* matcher_indices */ MatcherIndicesIndex(169),
},
{
/* [132] */
@@ -2687,22 +2692,22 @@
{
/* [133] */
/* usage */ core::ParameterUsage::kOffset,
- /* matcher_indices */ MatcherIndicesIndex(171),
+ /* matcher_indices */ MatcherIndicesIndex(173),
},
{
/* [134] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(242),
+ /* matcher_indices */ MatcherIndicesIndex(247),
},
{
/* [135] */
/* usage */ core::ParameterUsage::kSampler,
- /* matcher_indices */ MatcherIndicesIndex(318),
+ /* matcher_indices */ MatcherIndicesIndex(323),
},
{
/* [136] */
/* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(167),
+ /* matcher_indices */ MatcherIndicesIndex(169),
},
{
/* [137] */
@@ -2717,12 +2722,12 @@
{
/* [139] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(312),
+ /* matcher_indices */ MatcherIndicesIndex(317),
},
{
/* [140] */
/* usage */ core::ParameterUsage::kSampler,
- /* matcher_indices */ MatcherIndicesIndex(318),
+ /* matcher_indices */ MatcherIndicesIndex(323),
},
{
/* [141] */
@@ -2737,22 +2742,22 @@
{
/* [143] */
/* usage */ core::ParameterUsage::kOffset,
- /* matcher_indices */ MatcherIndicesIndex(230),
+ /* matcher_indices */ MatcherIndicesIndex(235),
},
{
/* [144] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(315),
+ /* matcher_indices */ MatcherIndicesIndex(320),
},
{
/* [145] */
/* usage */ core::ParameterUsage::kSampler,
- /* matcher_indices */ MatcherIndicesIndex(318),
+ /* matcher_indices */ MatcherIndicesIndex(323),
},
{
/* [146] */
/* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(167),
+ /* matcher_indices */ MatcherIndicesIndex(169),
},
{
/* [147] */
@@ -2772,42 +2777,42 @@
{
/* [150] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(128),
+ /* matcher_indices */ MatcherIndicesIndex(35),
},
{
/* [151] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(30),
+ /* matcher_indices */ MatcherIndicesIndex(36),
},
{
/* [152] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(41),
+ /* matcher_indices */ MatcherIndicesIndex(47),
},
{
/* [153] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(128),
+ /* matcher_indices */ MatcherIndicesIndex(35),
},
{
/* [154] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(88),
+ /* matcher_indices */ MatcherIndicesIndex(94),
},
{
/* [155] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(88),
+ /* matcher_indices */ MatcherIndicesIndex(94),
},
{
/* [156] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(128),
+ /* matcher_indices */ MatcherIndicesIndex(35),
},
{
/* [157] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(128),
+ /* matcher_indices */ MatcherIndicesIndex(35),
},
{
/* [158] */
@@ -2817,27 +2822,27 @@
{
/* [159] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(224),
+ /* matcher_indices */ MatcherIndicesIndex(229),
},
{
/* [160] */
/* usage */ core::ParameterUsage::kSampler,
- /* matcher_indices */ MatcherIndicesIndex(318),
+ /* matcher_indices */ MatcherIndicesIndex(323),
},
{
/* [161] */
/* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(167),
+ /* matcher_indices */ MatcherIndicesIndex(169),
},
{
/* [162] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(312),
+ /* matcher_indices */ MatcherIndicesIndex(317),
},
{
/* [163] */
/* usage */ core::ParameterUsage::kSampler,
- /* matcher_indices */ MatcherIndicesIndex(318),
+ /* matcher_indices */ MatcherIndicesIndex(323),
},
{
/* [164] */
@@ -2847,22 +2852,22 @@
{
/* [165] */
/* usage */ core::ParameterUsage::kOffset,
- /* matcher_indices */ MatcherIndicesIndex(230),
+ /* matcher_indices */ MatcherIndicesIndex(235),
},
{
/* [166] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(314),
+ /* matcher_indices */ MatcherIndicesIndex(319),
},
{
/* [167] */
/* usage */ core::ParameterUsage::kSampler,
- /* matcher_indices */ MatcherIndicesIndex(319),
+ /* matcher_indices */ MatcherIndicesIndex(324),
},
{
/* [168] */
/* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(167),
+ /* matcher_indices */ MatcherIndicesIndex(169),
},
{
/* [169] */
@@ -2872,12 +2877,12 @@
{
/* [170] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(234),
+ /* matcher_indices */ MatcherIndicesIndex(239),
},
{
/* [171] */
/* usage */ core::ParameterUsage::kSampler,
- /* matcher_indices */ MatcherIndicesIndex(318),
+ /* matcher_indices */ MatcherIndicesIndex(323),
},
{
/* [172] */
@@ -2887,42 +2892,42 @@
{
/* [173] */
/* usage */ core::ParameterUsage::kOffset,
- /* matcher_indices */ MatcherIndicesIndex(230),
+ /* matcher_indices */ MatcherIndicesIndex(235),
},
{
/* [174] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(238),
+ /* matcher_indices */ MatcherIndicesIndex(243),
},
{
/* [175] */
/* usage */ core::ParameterUsage::kSampler,
- /* matcher_indices */ MatcherIndicesIndex(318),
+ /* matcher_indices */ MatcherIndicesIndex(323),
},
{
/* [176] */
/* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(167),
+ /* matcher_indices */ MatcherIndicesIndex(169),
},
{
/* [177] */
/* usage */ core::ParameterUsage::kOffset,
- /* matcher_indices */ MatcherIndicesIndex(171),
+ /* matcher_indices */ MatcherIndicesIndex(173),
},
{
/* [178] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(240),
+ /* matcher_indices */ MatcherIndicesIndex(245),
},
{
/* [179] */
/* usage */ core::ParameterUsage::kSampler,
- /* matcher_indices */ MatcherIndicesIndex(318),
+ /* matcher_indices */ MatcherIndicesIndex(323),
},
{
/* [180] */
/* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(167),
+ /* matcher_indices */ MatcherIndicesIndex(169),
},
{
/* [181] */
@@ -2932,17 +2937,17 @@
{
/* [182] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(240),
+ /* matcher_indices */ MatcherIndicesIndex(245),
},
{
/* [183] */
/* usage */ core::ParameterUsage::kSampler,
- /* matcher_indices */ MatcherIndicesIndex(318),
+ /* matcher_indices */ MatcherIndicesIndex(323),
},
{
/* [184] */
/* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(167),
+ /* matcher_indices */ MatcherIndicesIndex(169),
},
{
/* [185] */
@@ -2952,17 +2957,17 @@
{
/* [186] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(314),
+ /* matcher_indices */ MatcherIndicesIndex(319),
},
{
/* [187] */
/* usage */ core::ParameterUsage::kSampler,
- /* matcher_indices */ MatcherIndicesIndex(318),
+ /* matcher_indices */ MatcherIndicesIndex(323),
},
{
/* [188] */
/* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(167),
+ /* matcher_indices */ MatcherIndicesIndex(169),
},
{
/* [189] */
@@ -2972,12 +2977,12 @@
{
/* [190] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(129),
+ /* matcher_indices */ MatcherIndicesIndex(135),
},
{
/* [191] */
/* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(244),
+ /* matcher_indices */ MatcherIndicesIndex(249),
},
{
/* [192] */
@@ -2992,12 +2997,12 @@
{
/* [194] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(143),
+ /* matcher_indices */ MatcherIndicesIndex(149),
},
{
/* [195] */
/* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(244),
+ /* matcher_indices */ MatcherIndicesIndex(249),
},
{
/* [196] */
@@ -3007,17 +3012,17 @@
{
/* [197] */
/* usage */ core::ParameterUsage::kValue,
- /* matcher_indices */ MatcherIndicesIndex(123),
+ /* matcher_indices */ MatcherIndicesIndex(129),
},
{
/* [198] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(155),
+ /* matcher_indices */ MatcherIndicesIndex(161),
},
{
/* [199] */
/* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(244),
+ /* matcher_indices */ MatcherIndicesIndex(249),
},
{
/* [200] */
@@ -3027,17 +3032,17 @@
{
/* [201] */
/* usage */ core::ParameterUsage::kValue,
- /* matcher_indices */ MatcherIndicesIndex(127),
+ /* matcher_indices */ MatcherIndicesIndex(133),
},
{
/* [202] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(220),
+ /* matcher_indices */ MatcherIndicesIndex(225),
},
{
/* [203] */
/* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(246),
+ /* matcher_indices */ MatcherIndicesIndex(251),
},
{
/* [204] */
@@ -3052,12 +3057,12 @@
{
/* [206] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(313),
+ /* matcher_indices */ MatcherIndicesIndex(318),
},
{
/* [207] */
/* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(244),
+ /* matcher_indices */ MatcherIndicesIndex(249),
},
{
/* [208] */
@@ -3072,572 +3077,572 @@
{
/* [210] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(0),
+ /* matcher_indices */ MatcherIndicesIndex(30),
},
{
/* [211] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(128),
+ /* matcher_indices */ MatcherIndicesIndex(35),
},
{
/* [212] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(41),
+ /* matcher_indices */ MatcherIndicesIndex(47),
},
{
/* [213] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(128),
+ /* matcher_indices */ MatcherIndicesIndex(35),
},
{
/* [214] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* matcher_indices */ MatcherIndicesIndex(0),
+ },
+ {
+ /* [215] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* matcher_indices */ MatcherIndicesIndex(35),
+ },
+ {
+ /* [216] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* matcher_indices */ MatcherIndicesIndex(47),
+ },
+ {
+ /* [217] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* matcher_indices */ MatcherIndicesIndex(35),
+ },
+ {
+ /* [218] */
/* usage */ core::ParameterUsage::kX,
/* matcher_indices */ MatcherIndicesIndex(6),
},
{
- /* [215] */
+ /* [219] */
/* usage */ core::ParameterUsage::kY,
/* matcher_indices */ MatcherIndicesIndex(6),
},
{
- /* [216] */
+ /* [220] */
/* usage */ core::ParameterUsage::kZ,
/* matcher_indices */ MatcherIndicesIndex(6),
},
{
- /* [217] */
+ /* [221] */
/* usage */ core::ParameterUsage::kW,
/* matcher_indices */ MatcherIndicesIndex(6),
},
{
- /* [218] */
- /* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(244),
- },
- {
- /* [219] */
- /* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(244),
- },
- {
- /* [220] */
- /* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(244),
- },
- {
- /* [221] */
- /* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(244),
- },
- {
/* [222] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(5),
+ /* matcher_indices */ MatcherIndicesIndex(249),
},
{
/* [223] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(5),
+ /* matcher_indices */ MatcherIndicesIndex(249),
},
{
/* [224] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(5),
+ /* matcher_indices */ MatcherIndicesIndex(249),
},
{
/* [225] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(5),
+ /* matcher_indices */ MatcherIndicesIndex(249),
},
{
/* [226] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(131),
+ /* matcher_indices */ MatcherIndicesIndex(5),
},
{
/* [227] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(131),
+ /* matcher_indices */ MatcherIndicesIndex(5),
},
{
/* [228] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(131),
+ /* matcher_indices */ MatcherIndicesIndex(5),
},
{
/* [229] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(131),
+ /* matcher_indices */ MatcherIndicesIndex(5),
},
{
/* [230] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(94),
+ /* matcher_indices */ MatcherIndicesIndex(137),
},
{
/* [231] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(94),
+ /* matcher_indices */ MatcherIndicesIndex(137),
},
{
/* [232] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(94),
+ /* matcher_indices */ MatcherIndicesIndex(137),
},
{
/* [233] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(41),
+ /* matcher_indices */ MatcherIndicesIndex(137),
},
{
/* [234] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(41),
+ /* matcher_indices */ MatcherIndicesIndex(100),
},
{
/* [235] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(88),
+ /* matcher_indices */ MatcherIndicesIndex(100),
},
{
/* [236] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(88),
+ /* matcher_indices */ MatcherIndicesIndex(100),
},
{
/* [237] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(88),
+ /* matcher_indices */ MatcherIndicesIndex(47),
},
{
/* [238] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(10),
+ /* matcher_indices */ MatcherIndicesIndex(47),
},
{
/* [239] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(6),
+ /* matcher_indices */ MatcherIndicesIndex(94),
},
{
/* [240] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(6),
+ /* matcher_indices */ MatcherIndicesIndex(94),
},
{
/* [241] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(41),
+ /* matcher_indices */ MatcherIndicesIndex(94),
},
{
/* [242] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(88),
+ /* matcher_indices */ MatcherIndicesIndex(10),
},
{
/* [243] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(88),
+ /* matcher_indices */ MatcherIndicesIndex(6),
},
{
/* [244] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(91),
+ /* matcher_indices */ MatcherIndicesIndex(6),
},
{
/* [245] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(91),
+ /* matcher_indices */ MatcherIndicesIndex(47),
},
{
/* [246] */
- /* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(232),
+ /* usage */ core::ParameterUsage::kNone,
+ /* matcher_indices */ MatcherIndicesIndex(94),
},
{
/* [247] */
- /* usage */ core::ParameterUsage::kSampler,
- /* matcher_indices */ MatcherIndicesIndex(318),
+ /* usage */ core::ParameterUsage::kNone,
+ /* matcher_indices */ MatcherIndicesIndex(94),
},
{
/* [248] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* matcher_indices */ MatcherIndicesIndex(97),
+ },
+ {
+ /* [249] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* matcher_indices */ MatcherIndicesIndex(97),
+ },
+ {
+ /* [250] */
+ /* usage */ core::ParameterUsage::kTexture,
+ /* matcher_indices */ MatcherIndicesIndex(237),
+ },
+ {
+ /* [251] */
+ /* usage */ core::ParameterUsage::kSampler,
+ /* matcher_indices */ MatcherIndicesIndex(323),
+ },
+ {
+ /* [252] */
/* usage */ core::ParameterUsage::kCoords,
/* matcher_indices */ MatcherIndicesIndex(13),
},
{
- /* [249] */
+ /* [253] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(317),
+ /* matcher_indices */ MatcherIndicesIndex(322),
},
{
- /* [250] */
+ /* [254] */
/* usage */ core::ParameterUsage::kSampler,
- /* matcher_indices */ MatcherIndicesIndex(318),
+ /* matcher_indices */ MatcherIndicesIndex(323),
},
{
- /* [251] */
+ /* [255] */
/* usage */ core::ParameterUsage::kCoords,
/* matcher_indices */ MatcherIndicesIndex(23),
},
{
- /* [252] */
+ /* [256] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(121),
+ /* matcher_indices */ MatcherIndicesIndex(127),
},
{
- /* [253] */
+ /* [257] */
/* usage */ core::ParameterUsage::kCoords,
/* matcher_indices */ MatcherIndicesIndex(6),
},
{
- /* [254] */
- /* usage */ core::ParameterUsage::kValue,
- /* matcher_indices */ MatcherIndicesIndex(12),
- },
- {
- /* [255] */
- /* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(125),
- },
- {
- /* [256] */
- /* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(244),
- },
- {
- /* [257] */
- /* usage */ core::ParameterUsage::kValue,
- /* matcher_indices */ MatcherIndicesIndex(12),
- },
- {
/* [258] */
- /* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(133),
+ /* usage */ core::ParameterUsage::kValue,
+ /* matcher_indices */ MatcherIndicesIndex(12),
},
{
/* [259] */
+ /* usage */ core::ParameterUsage::kTexture,
+ /* matcher_indices */ MatcherIndicesIndex(131),
+ },
+ {
+ /* [260] */
+ /* usage */ core::ParameterUsage::kCoords,
+ /* matcher_indices */ MatcherIndicesIndex(249),
+ },
+ {
+ /* [261] */
+ /* usage */ core::ParameterUsage::kValue,
+ /* matcher_indices */ MatcherIndicesIndex(12),
+ },
+ {
+ /* [262] */
+ /* usage */ core::ParameterUsage::kTexture,
+ /* matcher_indices */ MatcherIndicesIndex(139),
+ },
+ {
+ /* [263] */
/* usage */ core::ParameterUsage::kCoords,
/* matcher_indices */ MatcherIndicesIndex(5),
},
{
- /* [260] */
+ /* [264] */
/* usage */ core::ParameterUsage::kValue,
/* matcher_indices */ MatcherIndicesIndex(12),
},
{
- /* [261] */
+ /* [265] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(137),
+ /* matcher_indices */ MatcherIndicesIndex(143),
},
{
- /* [262] */
+ /* [266] */
/* usage */ core::ParameterUsage::kCoords,
/* matcher_indices */ MatcherIndicesIndex(6),
},
{
- /* [263] */
- /* usage */ core::ParameterUsage::kValue,
- /* matcher_indices */ MatcherIndicesIndex(123),
- },
- {
- /* [264] */
- /* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(140),
- },
- {
- /* [265] */
- /* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(244),
- },
- {
- /* [266] */
- /* usage */ core::ParameterUsage::kValue,
- /* matcher_indices */ MatcherIndicesIndex(123),
- },
- {
/* [267] */
+ /* usage */ core::ParameterUsage::kValue,
+ /* matcher_indices */ MatcherIndicesIndex(129),
+ },
+ {
+ /* [268] */
/* usage */ core::ParameterUsage::kTexture,
/* matcher_indices */ MatcherIndicesIndex(146),
},
{
- /* [268] */
- /* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(5),
- },
- {
/* [269] */
- /* usage */ core::ParameterUsage::kValue,
- /* matcher_indices */ MatcherIndicesIndex(123),
+ /* usage */ core::ParameterUsage::kCoords,
+ /* matcher_indices */ MatcherIndicesIndex(249),
},
{
/* [270] */
- /* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(149),
+ /* usage */ core::ParameterUsage::kValue,
+ /* matcher_indices */ MatcherIndicesIndex(129),
},
{
/* [271] */
- /* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(6),
- },
- {
- /* [272] */
- /* usage */ core::ParameterUsage::kValue,
- /* matcher_indices */ MatcherIndicesIndex(127),
- },
- {
- /* [273] */
/* usage */ core::ParameterUsage::kTexture,
/* matcher_indices */ MatcherIndicesIndex(152),
},
{
- /* [274] */
- /* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(244),
- },
- {
- /* [275] */
- /* usage */ core::ParameterUsage::kValue,
- /* matcher_indices */ MatcherIndicesIndex(127),
- },
- {
- /* [276] */
- /* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(158),
- },
- {
- /* [277] */
+ /* [272] */
/* usage */ core::ParameterUsage::kCoords,
/* matcher_indices */ MatcherIndicesIndex(5),
},
{
- /* [278] */
+ /* [273] */
/* usage */ core::ParameterUsage::kValue,
- /* matcher_indices */ MatcherIndicesIndex(127),
+ /* matcher_indices */ MatcherIndicesIndex(129),
+ },
+ {
+ /* [274] */
+ /* usage */ core::ParameterUsage::kTexture,
+ /* matcher_indices */ MatcherIndicesIndex(155),
+ },
+ {
+ /* [275] */
+ /* usage */ core::ParameterUsage::kCoords,
+ /* matcher_indices */ MatcherIndicesIndex(6),
+ },
+ {
+ /* [276] */
+ /* usage */ core::ParameterUsage::kValue,
+ /* matcher_indices */ MatcherIndicesIndex(133),
+ },
+ {
+ /* [277] */
+ /* usage */ core::ParameterUsage::kTexture,
+ /* matcher_indices */ MatcherIndicesIndex(158),
+ },
+ {
+ /* [278] */
+ /* usage */ core::ParameterUsage::kCoords,
+ /* matcher_indices */ MatcherIndicesIndex(249),
},
{
/* [279] */
- /* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(214),
+ /* usage */ core::ParameterUsage::kValue,
+ /* matcher_indices */ MatcherIndicesIndex(133),
},
{
/* [280] */
- /* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(10),
+ /* usage */ core::ParameterUsage::kTexture,
+ /* matcher_indices */ MatcherIndicesIndex(164),
},
{
/* [281] */
- /* usage */ core::ParameterUsage::kLevel,
- /* matcher_indices */ MatcherIndicesIndex(3),
+ /* usage */ core::ParameterUsage::kCoords,
+ /* matcher_indices */ MatcherIndicesIndex(5),
},
{
/* [282] */
- /* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(218),
+ /* usage */ core::ParameterUsage::kValue,
+ /* matcher_indices */ MatcherIndicesIndex(133),
},
{
/* [283] */
- /* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(246),
+ /* usage */ core::ParameterUsage::kTexture,
+ /* matcher_indices */ MatcherIndicesIndex(219),
},
{
/* [284] */
- /* usage */ core::ParameterUsage::kLevel,
- /* matcher_indices */ MatcherIndicesIndex(3),
+ /* usage */ core::ParameterUsage::kCoords,
+ /* matcher_indices */ MatcherIndicesIndex(10),
},
{
/* [285] */
- /* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(222),
+ /* usage */ core::ParameterUsage::kLevel,
+ /* matcher_indices */ MatcherIndicesIndex(3),
},
{
/* [286] */
- /* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(175),
+ /* usage */ core::ParameterUsage::kTexture,
+ /* matcher_indices */ MatcherIndicesIndex(223),
},
{
/* [287] */
- /* usage */ core::ParameterUsage::kLevel,
- /* matcher_indices */ MatcherIndicesIndex(3),
+ /* usage */ core::ParameterUsage::kCoords,
+ /* matcher_indices */ MatcherIndicesIndex(251),
},
{
/* [288] */
- /* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(228),
+ /* usage */ core::ParameterUsage::kLevel,
+ /* matcher_indices */ MatcherIndicesIndex(3),
},
{
/* [289] */
- /* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(246),
+ /* usage */ core::ParameterUsage::kTexture,
+ /* matcher_indices */ MatcherIndicesIndex(227),
},
{
/* [290] */
+ /* usage */ core::ParameterUsage::kCoords,
+ /* matcher_indices */ MatcherIndicesIndex(177),
+ },
+ {
+ /* [291] */
+ /* usage */ core::ParameterUsage::kLevel,
+ /* matcher_indices */ MatcherIndicesIndex(3),
+ },
+ {
+ /* [292] */
+ /* usage */ core::ParameterUsage::kTexture,
+ /* matcher_indices */ MatcherIndicesIndex(233),
+ },
+ {
+ /* [293] */
+ /* usage */ core::ParameterUsage::kCoords,
+ /* matcher_indices */ MatcherIndicesIndex(251),
+ },
+ {
+ /* [294] */
/* usage */ core::ParameterUsage::kSampleIndex,
/* matcher_indices */ MatcherIndicesIndex(3),
},
{
- /* [291] */
+ /* [295] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(312),
+ /* matcher_indices */ MatcherIndicesIndex(317),
},
{
- /* [292] */
+ /* [296] */
/* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(244),
+ /* matcher_indices */ MatcherIndicesIndex(249),
},
{
- /* [293] */
+ /* [297] */
/* usage */ core::ParameterUsage::kLevel,
/* matcher_indices */ MatcherIndicesIndex(10),
},
{
- /* [294] */
+ /* [298] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(316),
+ /* matcher_indices */ MatcherIndicesIndex(321),
},
{
- /* [295] */
+ /* [299] */
/* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(244),
+ /* matcher_indices */ MatcherIndicesIndex(249),
},
{
- /* [296] */
+ /* [300] */
/* usage */ core::ParameterUsage::kSampleIndex,
/* matcher_indices */ MatcherIndicesIndex(10),
},
{
- /* [297] */
- /* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(183),
- },
- {
- /* [298] */
- /* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(244),
- },
- {
- /* [299] */
- /* usage */ core::ParameterUsage::kArrayIndex,
- /* matcher_indices */ MatcherIndicesIndex(10),
- },
- {
- /* [300] */
- /* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(186),
- },
- {
/* [301] */
- /* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(244),
+ /* usage */ core::ParameterUsage::kTexture,
+ /* matcher_indices */ MatcherIndicesIndex(188),
},
{
/* [302] */
- /* usage */ core::ParameterUsage::kArrayIndex,
- /* matcher_indices */ MatcherIndicesIndex(10),
+ /* usage */ core::ParameterUsage::kCoords,
+ /* matcher_indices */ MatcherIndicesIndex(249),
},
{
/* [303] */
- /* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(189),
- },
- {
- /* [304] */
- /* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(244),
- },
- {
- /* [305] */
/* usage */ core::ParameterUsage::kArrayIndex,
/* matcher_indices */ MatcherIndicesIndex(10),
},
{
+ /* [304] */
+ /* usage */ core::ParameterUsage::kTexture,
+ /* matcher_indices */ MatcherIndicesIndex(191),
+ },
+ {
+ /* [305] */
+ /* usage */ core::ParameterUsage::kCoords,
+ /* matcher_indices */ MatcherIndicesIndex(249),
+ },
+ {
/* [306] */
- /* usage */ core::ParameterUsage::kXy,
- /* matcher_indices */ MatcherIndicesIndex(244),
+ /* usage */ core::ParameterUsage::kArrayIndex,
+ /* matcher_indices */ MatcherIndicesIndex(10),
},
{
/* [307] */
+ /* usage */ core::ParameterUsage::kTexture,
+ /* matcher_indices */ MatcherIndicesIndex(194),
+ },
+ {
+ /* [308] */
+ /* usage */ core::ParameterUsage::kCoords,
+ /* matcher_indices */ MatcherIndicesIndex(249),
+ },
+ {
+ /* [309] */
+ /* usage */ core::ParameterUsage::kArrayIndex,
+ /* matcher_indices */ MatcherIndicesIndex(10),
+ },
+ {
+ /* [310] */
+ /* usage */ core::ParameterUsage::kXy,
+ /* matcher_indices */ MatcherIndicesIndex(249),
+ },
+ {
+ /* [311] */
/* usage */ core::ParameterUsage::kZ,
/* matcher_indices */ MatcherIndicesIndex(6),
},
{
- /* [308] */
- /* usage */ core::ParameterUsage::kW,
- /* matcher_indices */ MatcherIndicesIndex(6),
- },
- {
- /* [309] */
- /* usage */ core::ParameterUsage::kX,
- /* matcher_indices */ MatcherIndicesIndex(6),
- },
- {
- /* [310] */
- /* usage */ core::ParameterUsage::kYz,
- /* matcher_indices */ MatcherIndicesIndex(244),
- },
- {
- /* [311] */
- /* usage */ core::ParameterUsage::kW,
- /* matcher_indices */ MatcherIndicesIndex(6),
- },
- {
/* [312] */
- /* usage */ core::ParameterUsage::kX,
+ /* usage */ core::ParameterUsage::kW,
/* matcher_indices */ MatcherIndicesIndex(6),
},
{
/* [313] */
- /* usage */ core::ParameterUsage::kY,
+ /* usage */ core::ParameterUsage::kX,
/* matcher_indices */ MatcherIndicesIndex(6),
},
{
/* [314] */
- /* usage */ core::ParameterUsage::kZw,
- /* matcher_indices */ MatcherIndicesIndex(244),
+ /* usage */ core::ParameterUsage::kYz,
+ /* matcher_indices */ MatcherIndicesIndex(249),
},
{
/* [315] */
- /* usage */ core::ParameterUsage::kNone,
+ /* usage */ core::ParameterUsage::kW,
/* matcher_indices */ MatcherIndicesIndex(6),
},
{
/* [316] */
- /* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(10),
+ /* usage */ core::ParameterUsage::kX,
+ /* matcher_indices */ MatcherIndicesIndex(6),
},
{
/* [317] */
- /* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(88),
+ /* usage */ core::ParameterUsage::kY,
+ /* matcher_indices */ MatcherIndicesIndex(6),
},
{
/* [318] */
- /* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(103),
+ /* usage */ core::ParameterUsage::kZw,
+ /* matcher_indices */ MatcherIndicesIndex(249),
},
{
/* [319] */
- /* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(214),
+ /* usage */ core::ParameterUsage::kNone,
+ /* matcher_indices */ MatcherIndicesIndex(6),
},
{
/* [320] */
- /* usage */ core::ParameterUsage::kLevel,
+ /* usage */ core::ParameterUsage::kNone,
/* matcher_indices */ MatcherIndicesIndex(10),
},
{
/* [321] */
- /* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(218),
+ /* usage */ core::ParameterUsage::kNone,
+ /* matcher_indices */ MatcherIndicesIndex(94),
},
{
/* [322] */
- /* usage */ core::ParameterUsage::kLevel,
- /* matcher_indices */ MatcherIndicesIndex(10),
+ /* usage */ core::ParameterUsage::kNone,
+ /* matcher_indices */ MatcherIndicesIndex(109),
},
{
/* [323] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(220),
+ /* matcher_indices */ MatcherIndicesIndex(219),
},
{
/* [324] */
@@ -3647,7 +3652,7 @@
{
/* [325] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(222),
+ /* matcher_indices */ MatcherIndicesIndex(223),
},
{
/* [326] */
@@ -3657,7 +3662,7 @@
{
/* [327] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(224),
+ /* matcher_indices */ MatcherIndicesIndex(225),
},
{
/* [328] */
@@ -3667,7 +3672,7 @@
{
/* [329] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(226),
+ /* matcher_indices */ MatcherIndicesIndex(227),
},
{
/* [330] */
@@ -3677,27 +3682,27 @@
{
/* [331] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(312),
+ /* matcher_indices */ MatcherIndicesIndex(229),
},
{
/* [332] */
/* usage */ core::ParameterUsage::kLevel,
- /* matcher_indices */ MatcherIndicesIndex(6),
+ /* matcher_indices */ MatcherIndicesIndex(10),
},
{
/* [333] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(313),
+ /* matcher_indices */ MatcherIndicesIndex(231),
},
{
/* [334] */
/* usage */ core::ParameterUsage::kLevel,
- /* matcher_indices */ MatcherIndicesIndex(6),
+ /* matcher_indices */ MatcherIndicesIndex(10),
},
{
/* [335] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(314),
+ /* matcher_indices */ MatcherIndicesIndex(317),
},
{
/* [336] */
@@ -3707,7 +3712,7 @@
{
/* [337] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(315),
+ /* matcher_indices */ MatcherIndicesIndex(318),
},
{
/* [338] */
@@ -3717,37 +3722,37 @@
{
/* [339] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(317),
+ /* matcher_indices */ MatcherIndicesIndex(319),
},
{
/* [340] */
- /* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(244),
+ /* usage */ core::ParameterUsage::kLevel,
+ /* matcher_indices */ MatcherIndicesIndex(6),
},
{
/* [341] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(161),
+ /* matcher_indices */ MatcherIndicesIndex(320),
},
{
/* [342] */
- /* usage */ core::ParameterUsage::kCoords,
+ /* usage */ core::ParameterUsage::kLevel,
/* matcher_indices */ MatcherIndicesIndex(6),
},
{
/* [343] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(165),
+ /* matcher_indices */ MatcherIndicesIndex(322),
},
{
/* [344] */
/* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(6),
+ /* matcher_indices */ MatcherIndicesIndex(249),
},
{
/* [345] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(169),
+ /* matcher_indices */ MatcherIndicesIndex(167),
},
{
/* [346] */
@@ -3757,57 +3762,57 @@
{
/* [347] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(173),
+ /* matcher_indices */ MatcherIndicesIndex(171),
},
{
/* [348] */
/* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(244),
+ /* matcher_indices */ MatcherIndicesIndex(6),
},
{
/* [349] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(177),
+ /* matcher_indices */ MatcherIndicesIndex(175),
},
{
/* [350] */
/* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(244),
+ /* matcher_indices */ MatcherIndicesIndex(6),
},
{
/* [351] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(180),
+ /* matcher_indices */ MatcherIndicesIndex(179),
},
{
/* [352] */
/* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(244),
+ /* matcher_indices */ MatcherIndicesIndex(249),
},
{
/* [353] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(192),
+ /* matcher_indices */ MatcherIndicesIndex(182),
},
{
/* [354] */
/* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(5),
+ /* matcher_indices */ MatcherIndicesIndex(249),
},
{
/* [355] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(195),
+ /* matcher_indices */ MatcherIndicesIndex(185),
},
{
/* [356] */
/* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(5),
+ /* matcher_indices */ MatcherIndicesIndex(249),
},
{
/* [357] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(198),
+ /* matcher_indices */ MatcherIndicesIndex(197),
},
{
/* [358] */
@@ -3816,23 +3821,23 @@
},
{
/* [359] */
- /* usage */ core::ParameterUsage::kValue,
- /* matcher_indices */ MatcherIndicesIndex(6),
+ /* usage */ core::ParameterUsage::kTexture,
+ /* matcher_indices */ MatcherIndicesIndex(200),
},
{
/* [360] */
- /* usage */ core::ParameterUsage::kSourceLaneIndex,
- /* matcher_indices */ MatcherIndicesIndex(308),
+ /* usage */ core::ParameterUsage::kCoords,
+ /* matcher_indices */ MatcherIndicesIndex(5),
},
{
/* [361] */
- /* usage */ core::ParameterUsage::kValue,
- /* matcher_indices */ MatcherIndicesIndex(88),
+ /* usage */ core::ParameterUsage::kTexture,
+ /* matcher_indices */ MatcherIndicesIndex(203),
},
{
/* [362] */
- /* usage */ core::ParameterUsage::kSourceLaneIndex,
- /* matcher_indices */ MatcherIndicesIndex(308),
+ /* usage */ core::ParameterUsage::kCoords,
+ /* matcher_indices */ MatcherIndicesIndex(5),
},
{
/* [363] */
@@ -3841,18 +3846,18 @@
},
{
/* [364] */
- /* usage */ core::ParameterUsage::kMask,
- /* matcher_indices */ MatcherIndicesIndex(128),
+ /* usage */ core::ParameterUsage::kSourceLaneIndex,
+ /* matcher_indices */ MatcherIndicesIndex(313),
},
{
/* [365] */
/* usage */ core::ParameterUsage::kValue,
- /* matcher_indices */ MatcherIndicesIndex(88),
+ /* matcher_indices */ MatcherIndicesIndex(94),
},
{
/* [366] */
- /* usage */ core::ParameterUsage::kMask,
- /* matcher_indices */ MatcherIndicesIndex(128),
+ /* usage */ core::ParameterUsage::kSourceLaneIndex,
+ /* matcher_indices */ MatcherIndicesIndex(313),
},
{
/* [367] */
@@ -3861,373 +3866,393 @@
},
{
/* [368] */
- /* usage */ core::ParameterUsage::kDelta,
- /* matcher_indices */ MatcherIndicesIndex(128),
+ /* usage */ core::ParameterUsage::kMask,
+ /* matcher_indices */ MatcherIndicesIndex(35),
},
{
/* [369] */
/* usage */ core::ParameterUsage::kValue,
- /* matcher_indices */ MatcherIndicesIndex(88),
+ /* matcher_indices */ MatcherIndicesIndex(94),
},
{
/* [370] */
- /* usage */ core::ParameterUsage::kDelta,
- /* matcher_indices */ MatcherIndicesIndex(128),
+ /* usage */ core::ParameterUsage::kMask,
+ /* matcher_indices */ MatcherIndicesIndex(35),
},
{
/* [371] */
- /* usage */ core::ParameterUsage::kE,
+ /* usage */ core::ParameterUsage::kValue,
/* matcher_indices */ MatcherIndicesIndex(6),
},
{
/* [372] */
- /* usage */ core::ParameterUsage::kId,
- /* matcher_indices */ MatcherIndicesIndex(308),
+ /* usage */ core::ParameterUsage::kDelta,
+ /* matcher_indices */ MatcherIndicesIndex(35),
},
{
/* [373] */
- /* usage */ core::ParameterUsage::kE,
- /* matcher_indices */ MatcherIndicesIndex(88),
+ /* usage */ core::ParameterUsage::kValue,
+ /* matcher_indices */ MatcherIndicesIndex(94),
},
{
/* [374] */
- /* usage */ core::ParameterUsage::kId,
- /* matcher_indices */ MatcherIndicesIndex(308),
+ /* usage */ core::ParameterUsage::kDelta,
+ /* matcher_indices */ MatcherIndicesIndex(35),
},
{
/* [375] */
- /* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(40),
+ /* usage */ core::ParameterUsage::kE,
+ /* matcher_indices */ MatcherIndicesIndex(6),
},
{
/* [376] */
- /* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(45),
+ /* usage */ core::ParameterUsage::kId,
+ /* matcher_indices */ MatcherIndicesIndex(313),
},
{
/* [377] */
- /* usage */ core::ParameterUsage::kNone,
+ /* usage */ core::ParameterUsage::kE,
/* matcher_indices */ MatcherIndicesIndex(94),
},
{
/* [378] */
- /* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(6),
+ /* usage */ core::ParameterUsage::kId,
+ /* matcher_indices */ MatcherIndicesIndex(313),
},
{
/* [379] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(94),
+ /* matcher_indices */ MatcherIndicesIndex(46),
},
{
/* [380] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(207),
+ /* matcher_indices */ MatcherIndicesIndex(51),
},
{
/* [381] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(72),
+ /* matcher_indices */ MatcherIndicesIndex(100),
},
{
/* [382] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(72),
+ /* matcher_indices */ MatcherIndicesIndex(6),
},
{
/* [383] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(6),
+ /* matcher_indices */ MatcherIndicesIndex(100),
},
{
/* [384] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(72),
+ /* matcher_indices */ MatcherIndicesIndex(212),
},
{
/* [385] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(94),
+ /* matcher_indices */ MatcherIndicesIndex(78),
},
{
/* [386] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(201),
+ /* matcher_indices */ MatcherIndicesIndex(78),
},
{
/* [387] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(72),
+ /* matcher_indices */ MatcherIndicesIndex(6),
},
{
/* [388] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(80),
+ /* matcher_indices */ MatcherIndicesIndex(78),
},
{
/* [389] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(84),
+ /* matcher_indices */ MatcherIndicesIndex(100),
},
{
/* [390] */
- /* usage */ core::ParameterUsage::kXy,
- /* matcher_indices */ MatcherIndicesIndex(244),
+ /* usage */ core::ParameterUsage::kNone,
+ /* matcher_indices */ MatcherIndicesIndex(206),
},
{
/* [391] */
- /* usage */ core::ParameterUsage::kZw,
- /* matcher_indices */ MatcherIndicesIndex(244),
+ /* usage */ core::ParameterUsage::kNone,
+ /* matcher_indices */ MatcherIndicesIndex(78),
},
{
/* [392] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* matcher_indices */ MatcherIndicesIndex(86),
+ },
+ {
+ /* [393] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* matcher_indices */ MatcherIndicesIndex(90),
+ },
+ {
+ /* [394] */
+ /* usage */ core::ParameterUsage::kXy,
+ /* matcher_indices */ MatcherIndicesIndex(249),
+ },
+ {
+ /* [395] */
+ /* usage */ core::ParameterUsage::kZw,
+ /* matcher_indices */ MatcherIndicesIndex(249),
+ },
+ {
+ /* [396] */
/* usage */ core::ParameterUsage::kXyz,
/* matcher_indices */ MatcherIndicesIndex(5),
},
{
- /* [393] */
+ /* [397] */
/* usage */ core::ParameterUsage::kW,
/* matcher_indices */ MatcherIndicesIndex(6),
},
{
- /* [394] */
+ /* [398] */
/* usage */ core::ParameterUsage::kX,
/* matcher_indices */ MatcherIndicesIndex(6),
},
{
- /* [395] */
+ /* [399] */
/* usage */ core::ParameterUsage::kZyw,
/* matcher_indices */ MatcherIndicesIndex(5),
},
{
- /* [396] */
+ /* [400] */
/* usage */ core::ParameterUsage::kNone,
/* matcher_indices */ MatcherIndicesIndex(14),
},
{
- /* [397] */
- /* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(60),
- },
- {
- /* [398] */
- /* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(13),
- },
- {
- /* [399] */
- /* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(97),
- },
- {
- /* [400] */
- /* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(23),
- },
- {
/* [401] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(12),
+ /* matcher_indices */ MatcherIndicesIndex(66),
},
{
/* [402] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(123),
+ /* matcher_indices */ MatcherIndicesIndex(13),
},
{
/* [403] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(127),
+ /* matcher_indices */ MatcherIndicesIndex(103),
},
{
/* [404] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(68),
+ /* matcher_indices */ MatcherIndicesIndex(23),
},
{
/* [405] */
- /* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(109),
+ /* usage */ core::ParameterUsage::kNone,
+ /* matcher_indices */ MatcherIndicesIndex(12),
},
{
/* [406] */
- /* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(112),
+ /* usage */ core::ParameterUsage::kNone,
+ /* matcher_indices */ MatcherIndicesIndex(129),
},
{
/* [407] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* matcher_indices */ MatcherIndicesIndex(133),
+ },
+ {
+ /* [408] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* matcher_indices */ MatcherIndicesIndex(74),
+ },
+ {
+ /* [409] */
/* usage */ core::ParameterUsage::kTexture,
/* matcher_indices */ MatcherIndicesIndex(115),
},
{
- /* [408] */
+ /* [410] */
/* usage */ core::ParameterUsage::kTexture,
/* matcher_indices */ MatcherIndicesIndex(118),
},
{
- /* [409] */
- /* usage */ core::ParameterUsage::kInputAttachment,
- /* matcher_indices */ MatcherIndicesIndex(248),
- },
- {
- /* [410] */
- /* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(122),
- },
- {
/* [411] */
- /* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(257),
+ /* usage */ core::ParameterUsage::kTexture,
+ /* matcher_indices */ MatcherIndicesIndex(121),
},
{
/* [412] */
- /* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(246),
+ /* usage */ core::ParameterUsage::kTexture,
+ /* matcher_indices */ MatcherIndicesIndex(124),
},
{
/* [413] */
- /* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(175),
+ /* usage */ core::ParameterUsage::kInputAttachment,
+ /* matcher_indices */ MatcherIndicesIndex(253),
},
{
/* [414] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(135),
+ /* matcher_indices */ MatcherIndicesIndex(128),
},
{
/* [415] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(252),
+ /* matcher_indices */ MatcherIndicesIndex(262),
},
{
/* [416] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(254),
+ /* matcher_indices */ MatcherIndicesIndex(251),
},
{
/* [417] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(256),
+ /* matcher_indices */ MatcherIndicesIndex(177),
},
{
/* [418] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(258),
+ /* matcher_indices */ MatcherIndicesIndex(141),
},
{
/* [419] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(260),
+ /* matcher_indices */ MatcherIndicesIndex(257),
},
{
/* [420] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(262),
+ /* matcher_indices */ MatcherIndicesIndex(259),
},
{
/* [421] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(264),
+ /* matcher_indices */ MatcherIndicesIndex(261),
},
{
/* [422] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(266),
+ /* matcher_indices */ MatcherIndicesIndex(263),
},
{
/* [423] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(268),
+ /* matcher_indices */ MatcherIndicesIndex(265),
},
{
/* [424] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(270),
+ /* matcher_indices */ MatcherIndicesIndex(267),
},
{
/* [425] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(272),
+ /* matcher_indices */ MatcherIndicesIndex(269),
},
{
/* [426] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(274),
+ /* matcher_indices */ MatcherIndicesIndex(271),
},
{
/* [427] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(276),
+ /* matcher_indices */ MatcherIndicesIndex(273),
},
{
/* [428] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(278),
+ /* matcher_indices */ MatcherIndicesIndex(275),
},
{
/* [429] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(280),
+ /* matcher_indices */ MatcherIndicesIndex(277),
},
{
/* [430] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(282),
+ /* matcher_indices */ MatcherIndicesIndex(279),
},
{
/* [431] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(284),
+ /* matcher_indices */ MatcherIndicesIndex(281),
},
{
/* [432] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(286),
+ /* matcher_indices */ MatcherIndicesIndex(283),
},
{
/* [433] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(288),
+ /* matcher_indices */ MatcherIndicesIndex(285),
},
{
/* [434] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(290),
+ /* matcher_indices */ MatcherIndicesIndex(287),
},
{
/* [435] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(292),
+ /* matcher_indices */ MatcherIndicesIndex(289),
},
{
/* [436] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(294),
+ /* matcher_indices */ MatcherIndicesIndex(291),
},
{
/* [437] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(296),
+ /* matcher_indices */ MatcherIndicesIndex(293),
},
{
/* [438] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(298),
+ /* matcher_indices */ MatcherIndicesIndex(295),
},
{
/* [439] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(300),
+ /* matcher_indices */ MatcherIndicesIndex(297),
},
{
/* [440] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(302),
+ /* matcher_indices */ MatcherIndicesIndex(299),
},
{
/* [441] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(304),
+ /* matcher_indices */ MatcherIndicesIndex(301),
+ },
+ {
+ /* [442] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* matcher_indices */ MatcherIndicesIndex(303),
+ },
+ {
+ /* [443] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* matcher_indices */ MatcherIndicesIndex(305),
+ },
+ {
+ /* [444] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* matcher_indices */ MatcherIndicesIndex(307),
+ },
+ {
+ /* [445] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* matcher_indices */ MatcherIndicesIndex(309),
},
};
@@ -4250,7 +4275,7 @@
{
/* [2] */
/* name */ "S",
- /* matcher_indices */ MatcherIndicesIndex(306),
+ /* matcher_indices */ MatcherIndicesIndex(311),
/* kind */ TemplateInfo::Kind::kType,
},
{
@@ -4274,31 +4299,31 @@
{
/* [6] */
/* name */ "T",
- /* matcher_indices */ MatcherIndicesIndex(311),
+ /* matcher_indices */ MatcherIndicesIndex(316),
/* kind */ TemplateInfo::Kind::kType,
},
{
/* [7] */
/* name */ "C",
- /* matcher_indices */ MatcherIndicesIndex(308),
+ /* matcher_indices */ MatcherIndicesIndex(313),
/* kind */ TemplateInfo::Kind::kType,
},
{
/* [8] */
/* name */ "A",
- /* matcher_indices */ MatcherIndicesIndex(308),
+ /* matcher_indices */ MatcherIndicesIndex(313),
/* kind */ TemplateInfo::Kind::kType,
},
{
/* [9] */
/* name */ "L",
- /* matcher_indices */ MatcherIndicesIndex(308),
+ /* matcher_indices */ MatcherIndicesIndex(313),
/* kind */ TemplateInfo::Kind::kType,
},
{
/* [10] */
/* name */ "S",
- /* matcher_indices */ MatcherIndicesIndex(320),
+ /* matcher_indices */ MatcherIndicesIndex(325),
/* kind */ TemplateInfo::Kind::kType,
},
{
@@ -4322,7 +4347,7 @@
{
/* [14] */
/* name */ "T",
- /* matcher_indices */ MatcherIndicesIndex(307),
+ /* matcher_indices */ MatcherIndicesIndex(312),
/* kind */ TemplateInfo::Kind::kType,
},
{
@@ -4352,13 +4377,13 @@
{
/* [19] */
/* name */ "T",
- /* matcher_indices */ MatcherIndicesIndex(307),
+ /* matcher_indices */ MatcherIndicesIndex(312),
/* kind */ TemplateInfo::Kind::kType,
},
{
/* [20] */
/* name */ "U",
- /* matcher_indices */ MatcherIndicesIndex(122),
+ /* matcher_indices */ MatcherIndicesIndex(128),
/* kind */ TemplateInfo::Kind::kType,
},
{
@@ -4376,7 +4401,7 @@
{
/* [23] */
/* name */ "T",
- /* matcher_indices */ MatcherIndicesIndex(307),
+ /* matcher_indices */ MatcherIndicesIndex(312),
/* kind */ TemplateInfo::Kind::kType,
},
{
@@ -4394,43 +4419,43 @@
{
/* [26] */
/* name */ "T",
- /* matcher_indices */ MatcherIndicesIndex(311),
+ /* matcher_indices */ MatcherIndicesIndex(316),
/* kind */ TemplateInfo::Kind::kType,
},
{
/* [27] */
/* name */ "C",
- /* matcher_indices */ MatcherIndicesIndex(308),
+ /* matcher_indices */ MatcherIndicesIndex(313),
/* kind */ TemplateInfo::Kind::kType,
},
{
/* [28] */
/* name */ "L",
- /* matcher_indices */ MatcherIndicesIndex(308),
+ /* matcher_indices */ MatcherIndicesIndex(313),
/* kind */ TemplateInfo::Kind::kType,
},
{
/* [29] */
/* name */ "T",
- /* matcher_indices */ MatcherIndicesIndex(311),
+ /* matcher_indices */ MatcherIndicesIndex(316),
/* kind */ TemplateInfo::Kind::kType,
},
{
/* [30] */
/* name */ "C",
- /* matcher_indices */ MatcherIndicesIndex(308),
+ /* matcher_indices */ MatcherIndicesIndex(313),
/* kind */ TemplateInfo::Kind::kType,
},
{
/* [31] */
/* name */ "S",
- /* matcher_indices */ MatcherIndicesIndex(308),
+ /* matcher_indices */ MatcherIndicesIndex(313),
/* kind */ TemplateInfo::Kind::kType,
},
{
/* [32] */
/* name */ "T",
- /* matcher_indices */ MatcherIndicesIndex(307),
+ /* matcher_indices */ MatcherIndicesIndex(312),
/* kind */ TemplateInfo::Kind::kType,
},
{
@@ -4448,7 +4473,7 @@
{
/* [35] */
/* name */ "T",
- /* matcher_indices */ MatcherIndicesIndex(320),
+ /* matcher_indices */ MatcherIndicesIndex(325),
/* kind */ TemplateInfo::Kind::kType,
},
{
@@ -4466,7 +4491,7 @@
{
/* [38] */
/* name */ "T",
- /* matcher_indices */ MatcherIndicesIndex(320),
+ /* matcher_indices */ MatcherIndicesIndex(325),
/* kind */ TemplateInfo::Kind::kType,
},
{
@@ -4484,7 +4509,7 @@
{
/* [41] */
/* name */ "T",
- /* matcher_indices */ MatcherIndicesIndex(320),
+ /* matcher_indices */ MatcherIndicesIndex(325),
/* kind */ TemplateInfo::Kind::kType,
},
{
@@ -4508,7 +4533,7 @@
{
/* [45] */
/* name */ "T",
- /* matcher_indices */ MatcherIndicesIndex(306),
+ /* matcher_indices */ MatcherIndicesIndex(311),
/* kind */ TemplateInfo::Kind::kType,
},
{
@@ -4520,7 +4545,7 @@
{
/* [47] */
/* name */ "T",
- /* matcher_indices */ MatcherIndicesIndex(308),
+ /* matcher_indices */ MatcherIndicesIndex(313),
/* kind */ TemplateInfo::Kind::kType,
},
{
@@ -4544,7 +4569,7 @@
{
/* [51] */
/* name */ "T",
- /* matcher_indices */ MatcherIndicesIndex(309),
+ /* matcher_indices */ MatcherIndicesIndex(314),
/* kind */ TemplateInfo::Kind::kType,
},
{
@@ -4556,7 +4581,7 @@
{
/* [53] */
/* name */ "T",
- /* matcher_indices */ MatcherIndicesIndex(309),
+ /* matcher_indices */ MatcherIndicesIndex(314),
/* kind */ TemplateInfo::Kind::kType,
},
{
@@ -4568,7 +4593,7 @@
{
/* [55] */
/* name */ "T",
- /* matcher_indices */ MatcherIndicesIndex(310),
+ /* matcher_indices */ MatcherIndicesIndex(315),
/* kind */ TemplateInfo::Kind::kType,
},
{
@@ -4580,13 +4605,13 @@
{
/* [57] */
/* name */ "T",
- /* matcher_indices */ MatcherIndicesIndex(311),
+ /* matcher_indices */ MatcherIndicesIndex(316),
/* kind */ TemplateInfo::Kind::kType,
},
{
/* [58] */
/* name */ "L",
- /* matcher_indices */ MatcherIndicesIndex(308),
+ /* matcher_indices */ MatcherIndicesIndex(313),
/* kind */ TemplateInfo::Kind::kType,
},
{
@@ -4604,7 +4629,7 @@
{
/* [61] */
/* name */ "T",
- /* matcher_indices */ MatcherIndicesIndex(308),
+ /* matcher_indices */ MatcherIndicesIndex(313),
/* kind */ TemplateInfo::Kind::kType,
},
{
@@ -4622,85 +4647,85 @@
{
/* [64] */
/* name */ "U",
- /* matcher_indices */ MatcherIndicesIndex(323),
+ /* matcher_indices */ MatcherIndicesIndex(328),
/* kind */ TemplateInfo::Kind::kType,
},
{
/* [65] */
/* name */ "T",
- /* matcher_indices */ MatcherIndicesIndex(257),
+ /* matcher_indices */ MatcherIndicesIndex(262),
/* kind */ TemplateInfo::Kind::kType,
},
{
/* [66] */
/* name */ "U",
- /* matcher_indices */ MatcherIndicesIndex(324),
+ /* matcher_indices */ MatcherIndicesIndex(329),
/* kind */ TemplateInfo::Kind::kType,
},
{
/* [67] */
/* name */ "T",
- /* matcher_indices */ MatcherIndicesIndex(122),
+ /* matcher_indices */ MatcherIndicesIndex(128),
/* kind */ TemplateInfo::Kind::kType,
},
{
/* [68] */
/* name */ "U",
- /* matcher_indices */ MatcherIndicesIndex(321),
+ /* matcher_indices */ MatcherIndicesIndex(326),
/* kind */ TemplateInfo::Kind::kType,
},
{
/* [69] */
/* name */ "T",
- /* matcher_indices */ MatcherIndicesIndex(128),
+ /* matcher_indices */ MatcherIndicesIndex(35),
/* kind */ TemplateInfo::Kind::kType,
},
{
/* [70] */
/* name */ "U",
- /* matcher_indices */ MatcherIndicesIndex(322),
+ /* matcher_indices */ MatcherIndicesIndex(327),
/* kind */ TemplateInfo::Kind::kType,
},
{
/* [71] */
/* name */ "T",
- /* matcher_indices */ MatcherIndicesIndex(41),
+ /* matcher_indices */ MatcherIndicesIndex(47),
/* kind */ TemplateInfo::Kind::kType,
},
{
/* [72] */
/* name */ "U",
- /* matcher_indices */ MatcherIndicesIndex(325),
+ /* matcher_indices */ MatcherIndicesIndex(330),
/* kind */ TemplateInfo::Kind::kType,
},
{
/* [73] */
/* name */ "T",
- /* matcher_indices */ MatcherIndicesIndex(321),
+ /* matcher_indices */ MatcherIndicesIndex(326),
/* kind */ TemplateInfo::Kind::kType,
},
{
/* [74] */
/* name */ "T",
- /* matcher_indices */ MatcherIndicesIndex(322),
+ /* matcher_indices */ MatcherIndicesIndex(327),
/* kind */ TemplateInfo::Kind::kType,
},
{
/* [75] */
/* name */ "T",
- /* matcher_indices */ MatcherIndicesIndex(323),
+ /* matcher_indices */ MatcherIndicesIndex(328),
/* kind */ TemplateInfo::Kind::kType,
},
{
/* [76] */
/* name */ "T",
- /* matcher_indices */ MatcherIndicesIndex(324),
+ /* matcher_indices */ MatcherIndicesIndex(329),
/* kind */ TemplateInfo::Kind::kType,
},
{
/* [77] */
/* name */ "T",
- /* matcher_indices */ MatcherIndicesIndex(325),
+ /* matcher_indices */ MatcherIndicesIndex(330),
/* kind */ TemplateInfo::Kind::kType,
},
};
@@ -4835,8 +4860,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(6),
- /* parameters */ ParameterIndex(279),
- /* return_matcher_indices */ MatcherIndicesIndex(128),
+ /* parameters */ ParameterIndex(283),
+ /* return_matcher_indices */ MatcherIndicesIndex(35),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -4846,8 +4871,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(57),
- /* parameters */ ParameterIndex(319),
- /* return_matcher_indices */ MatcherIndicesIndex(128),
+ /* parameters */ ParameterIndex(323),
+ /* return_matcher_indices */ MatcherIndicesIndex(35),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -4858,7 +4883,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(6),
/* parameters */ ParameterIndex(75),
- /* return_matcher_indices */ MatcherIndicesIndex(216),
+ /* return_matcher_indices */ MatcherIndicesIndex(221),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -4868,8 +4893,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(57),
- /* parameters */ ParameterIndex(321),
- /* return_matcher_indices */ MatcherIndicesIndex(216),
+ /* parameters */ ParameterIndex(325),
+ /* return_matcher_indices */ MatcherIndicesIndex(221),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -4880,7 +4905,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(6),
/* parameters */ ParameterIndex(27),
- /* return_matcher_indices */ MatcherIndicesIndex(216),
+ /* return_matcher_indices */ MatcherIndicesIndex(221),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -4890,8 +4915,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(57),
- /* parameters */ ParameterIndex(323),
- /* return_matcher_indices */ MatcherIndicesIndex(216),
+ /* parameters */ ParameterIndex(327),
+ /* return_matcher_indices */ MatcherIndicesIndex(221),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -4901,8 +4926,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(6),
- /* parameters */ ParameterIndex(285),
- /* return_matcher_indices */ MatcherIndicesIndex(163),
+ /* parameters */ ParameterIndex(289),
+ /* return_matcher_indices */ MatcherIndicesIndex(34),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -4912,8 +4937,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(57),
- /* parameters */ ParameterIndex(325),
- /* return_matcher_indices */ MatcherIndicesIndex(163),
+ /* parameters */ ParameterIndex(329),
+ /* return_matcher_indices */ MatcherIndicesIndex(34),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -4924,7 +4949,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(6),
/* parameters */ ParameterIndex(159),
- /* return_matcher_indices */ MatcherIndicesIndex(216),
+ /* return_matcher_indices */ MatcherIndicesIndex(221),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -4934,8 +4959,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(57),
- /* parameters */ ParameterIndex(327),
- /* return_matcher_indices */ MatcherIndicesIndex(216),
+ /* parameters */ ParameterIndex(331),
+ /* return_matcher_indices */ MatcherIndicesIndex(221),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -4946,7 +4971,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(6),
/* parameters */ ParameterIndex(80),
- /* return_matcher_indices */ MatcherIndicesIndex(216),
+ /* return_matcher_indices */ MatcherIndicesIndex(221),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -4956,8 +4981,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(57),
- /* parameters */ ParameterIndex(329),
- /* return_matcher_indices */ MatcherIndicesIndex(216),
+ /* parameters */ ParameterIndex(333),
+ /* return_matcher_indices */ MatcherIndicesIndex(221),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -4967,8 +4992,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(6),
- /* parameters */ ParameterIndex(288),
- /* return_matcher_indices */ MatcherIndicesIndex(216),
+ /* parameters */ ParameterIndex(292),
+ /* return_matcher_indices */ MatcherIndicesIndex(221),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -4979,7 +5004,7 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(89),
- /* return_matcher_indices */ MatcherIndicesIndex(216),
+ /* return_matcher_indices */ MatcherIndicesIndex(221),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -4989,8 +5014,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(9),
- /* parameters */ ParameterIndex(331),
- /* return_matcher_indices */ MatcherIndicesIndex(216),
+ /* parameters */ ParameterIndex(335),
+ /* return_matcher_indices */ MatcherIndicesIndex(221),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5001,7 +5026,7 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(32),
- /* return_matcher_indices */ MatcherIndicesIndex(216),
+ /* return_matcher_indices */ MatcherIndicesIndex(221),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5011,8 +5036,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(9),
- /* parameters */ ParameterIndex(333),
- /* return_matcher_indices */ MatcherIndicesIndex(216),
+ /* parameters */ ParameterIndex(337),
+ /* return_matcher_indices */ MatcherIndicesIndex(221),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5023,7 +5048,7 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(166),
- /* return_matcher_indices */ MatcherIndicesIndex(216),
+ /* return_matcher_indices */ MatcherIndicesIndex(221),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5033,8 +5058,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(9),
- /* parameters */ ParameterIndex(335),
- /* return_matcher_indices */ MatcherIndicesIndex(216),
+ /* parameters */ ParameterIndex(339),
+ /* return_matcher_indices */ MatcherIndicesIndex(221),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5045,7 +5070,7 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(94),
- /* return_matcher_indices */ MatcherIndicesIndex(216),
+ /* return_matcher_indices */ MatcherIndicesIndex(221),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5055,8 +5080,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(9),
- /* parameters */ ParameterIndex(337),
- /* return_matcher_indices */ MatcherIndicesIndex(216),
+ /* parameters */ ParameterIndex(341),
+ /* return_matcher_indices */ MatcherIndicesIndex(221),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5066,8 +5091,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
- /* parameters */ ParameterIndex(294),
- /* return_matcher_indices */ MatcherIndicesIndex(216),
+ /* parameters */ ParameterIndex(298),
+ /* return_matcher_indices */ MatcherIndicesIndex(221),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5077,8 +5102,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(59),
- /* parameters */ ParameterIndex(405),
- /* return_matcher_indices */ MatcherIndicesIndex(128),
+ /* parameters */ ParameterIndex(409),
+ /* return_matcher_indices */ MatcherIndicesIndex(35),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5088,8 +5113,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(59),
- /* parameters */ ParameterIndex(406),
- /* return_matcher_indices */ MatcherIndicesIndex(216),
+ /* parameters */ ParameterIndex(410),
+ /* return_matcher_indices */ MatcherIndicesIndex(221),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5099,8 +5124,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(59),
- /* parameters */ ParameterIndex(407),
- /* return_matcher_indices */ MatcherIndicesIndex(216),
+ /* parameters */ ParameterIndex(411),
+ /* return_matcher_indices */ MatcherIndicesIndex(221),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5110,8 +5135,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(59),
- /* parameters */ ParameterIndex(408),
- /* return_matcher_indices */ MatcherIndicesIndex(163),
+ /* parameters */ ParameterIndex(412),
+ /* return_matcher_indices */ MatcherIndicesIndex(34),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5121,8 +5146,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
- /* parameters */ ParameterIndex(249),
- /* return_matcher_indices */ MatcherIndicesIndex(216),
+ /* parameters */ ParameterIndex(253),
+ /* return_matcher_indices */ MatcherIndicesIndex(221),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5132,8 +5157,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 3,
/* templates */ TemplateIndex(26),
- /* parameters */ ParameterIndex(279),
- /* return_matcher_indices */ MatcherIndicesIndex(131),
+ /* parameters */ ParameterIndex(283),
+ /* return_matcher_indices */ MatcherIndicesIndex(137),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5143,8 +5168,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 3,
/* templates */ TemplateIndex(26),
- /* parameters */ ParameterIndex(282),
- /* return_matcher_indices */ MatcherIndicesIndex(131),
+ /* parameters */ ParameterIndex(286),
+ /* return_matcher_indices */ MatcherIndicesIndex(137),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5155,7 +5180,7 @@
/* num_templates */ 4,
/* templates */ TemplateIndex(6),
/* parameters */ ParameterIndex(202),
- /* return_matcher_indices */ MatcherIndicesIndex(131),
+ /* return_matcher_indices */ MatcherIndicesIndex(137),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5165,8 +5190,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 3,
/* templates */ TemplateIndex(26),
- /* parameters */ ParameterIndex(285),
- /* return_matcher_indices */ MatcherIndicesIndex(131),
+ /* parameters */ ParameterIndex(289),
+ /* return_matcher_indices */ MatcherIndicesIndex(137),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5176,8 +5201,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 3,
/* templates */ TemplateIndex(29),
- /* parameters */ ParameterIndex(288),
- /* return_matcher_indices */ MatcherIndicesIndex(131),
+ /* parameters */ ParameterIndex(292),
+ /* return_matcher_indices */ MatcherIndicesIndex(137),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5187,7 +5212,7 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(27),
- /* parameters */ ParameterIndex(291),
+ /* parameters */ ParameterIndex(295),
/* return_matcher_indices */ MatcherIndicesIndex(13),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -5209,7 +5234,7 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(30),
- /* parameters */ ParameterIndex(294),
+ /* parameters */ ParameterIndex(298),
/* return_matcher_indices */ MatcherIndicesIndex(13),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -5220,7 +5245,7 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(7),
- /* parameters */ ParameterIndex(339),
+ /* parameters */ ParameterIndex(343),
/* return_matcher_indices */ MatcherIndicesIndex(12),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -5231,7 +5256,7 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(7),
- /* parameters */ ParameterIndex(341),
+ /* parameters */ ParameterIndex(345),
/* return_matcher_indices */ MatcherIndicesIndex(12),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -5242,8 +5267,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(7),
- /* parameters */ ParameterIndex(343),
- /* return_matcher_indices */ MatcherIndicesIndex(123),
+ /* parameters */ ParameterIndex(347),
+ /* return_matcher_indices */ MatcherIndicesIndex(129),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5253,8 +5278,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(7),
- /* parameters */ ParameterIndex(345),
- /* return_matcher_indices */ MatcherIndicesIndex(127),
+ /* parameters */ ParameterIndex(349),
+ /* return_matcher_indices */ MatcherIndicesIndex(133),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5264,7 +5289,7 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(7),
- /* parameters */ ParameterIndex(347),
+ /* parameters */ ParameterIndex(351),
/* return_matcher_indices */ MatcherIndicesIndex(12),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -5275,8 +5300,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(7),
- /* parameters */ ParameterIndex(349),
- /* return_matcher_indices */ MatcherIndicesIndex(123),
+ /* parameters */ ParameterIndex(353),
+ /* return_matcher_indices */ MatcherIndicesIndex(129),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5286,8 +5311,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(7),
- /* parameters */ ParameterIndex(351),
- /* return_matcher_indices */ MatcherIndicesIndex(127),
+ /* parameters */ ParameterIndex(355),
+ /* return_matcher_indices */ MatcherIndicesIndex(133),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5297,7 +5322,7 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(7),
- /* parameters */ ParameterIndex(297),
+ /* parameters */ ParameterIndex(301),
/* return_matcher_indices */ MatcherIndicesIndex(12),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -5308,8 +5333,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(7),
- /* parameters */ ParameterIndex(300),
- /* return_matcher_indices */ MatcherIndicesIndex(123),
+ /* parameters */ ParameterIndex(304),
+ /* return_matcher_indices */ MatcherIndicesIndex(129),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5319,8 +5344,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(7),
- /* parameters */ ParameterIndex(303),
- /* return_matcher_indices */ MatcherIndicesIndex(127),
+ /* parameters */ ParameterIndex(307),
+ /* return_matcher_indices */ MatcherIndicesIndex(133),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5330,7 +5355,7 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(7),
- /* parameters */ ParameterIndex(353),
+ /* parameters */ ParameterIndex(357),
/* return_matcher_indices */ MatcherIndicesIndex(12),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -5341,8 +5366,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(7),
- /* parameters */ ParameterIndex(355),
- /* return_matcher_indices */ MatcherIndicesIndex(123),
+ /* parameters */ ParameterIndex(359),
+ /* return_matcher_indices */ MatcherIndicesIndex(129),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5352,8 +5377,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(7),
- /* parameters */ ParameterIndex(357),
- /* return_matcher_indices */ MatcherIndicesIndex(127),
+ /* parameters */ ParameterIndex(361),
+ /* return_matcher_indices */ MatcherIndicesIndex(133),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5363,7 +5388,7 @@
/* num_explicit_templates */ 0,
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
- /* parameters */ ParameterIndex(246),
+ /* parameters */ ParameterIndex(250),
/* return_matcher_indices */ MatcherIndicesIndex(12),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -5529,7 +5554,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(51),
/* parameters */ ParameterIndex(/* invalid */),
- /* return_matcher_indices */ MatcherIndicesIndex(131),
+ /* return_matcher_indices */ MatcherIndicesIndex(137),
/* const_eval_fn */ ConstEvalFunctionIndex(105),
},
{
@@ -5539,8 +5564,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(51),
- /* parameters */ ParameterIndex(226),
- /* return_matcher_indices */ MatcherIndicesIndex(131),
+ /* parameters */ ParameterIndex(230),
+ /* return_matcher_indices */ MatcherIndicesIndex(137),
/* const_eval_fn */ ConstEvalFunctionIndex(106),
},
{
@@ -5551,7 +5576,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(51),
/* parameters */ ParameterIndex(1),
- /* return_matcher_indices */ MatcherIndicesIndex(131),
+ /* return_matcher_indices */ MatcherIndicesIndex(137),
/* const_eval_fn */ ConstEvalFunctionIndex(108),
},
{
@@ -5561,8 +5586,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(51),
- /* parameters */ ParameterIndex(214),
- /* return_matcher_indices */ MatcherIndicesIndex(131),
+ /* parameters */ ParameterIndex(218),
+ /* return_matcher_indices */ MatcherIndicesIndex(137),
/* const_eval_fn */ ConstEvalFunctionIndex(109),
},
{
@@ -5572,8 +5597,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(51),
- /* parameters */ ParameterIndex(306),
- /* return_matcher_indices */ MatcherIndicesIndex(131),
+ /* parameters */ ParameterIndex(310),
+ /* return_matcher_indices */ MatcherIndicesIndex(137),
/* const_eval_fn */ ConstEvalFunctionIndex(110),
},
{
@@ -5583,8 +5608,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(51),
- /* parameters */ ParameterIndex(309),
- /* return_matcher_indices */ MatcherIndicesIndex(131),
+ /* parameters */ ParameterIndex(313),
+ /* return_matcher_indices */ MatcherIndicesIndex(137),
/* const_eval_fn */ ConstEvalFunctionIndex(110),
},
{
@@ -5594,8 +5619,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(51),
- /* parameters */ ParameterIndex(312),
- /* return_matcher_indices */ MatcherIndicesIndex(131),
+ /* parameters */ ParameterIndex(316),
+ /* return_matcher_indices */ MatcherIndicesIndex(137),
/* const_eval_fn */ ConstEvalFunctionIndex(110),
},
{
@@ -5605,8 +5630,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(51),
- /* parameters */ ParameterIndex(390),
- /* return_matcher_indices */ MatcherIndicesIndex(131),
+ /* parameters */ ParameterIndex(394),
+ /* return_matcher_indices */ MatcherIndicesIndex(137),
/* const_eval_fn */ ConstEvalFunctionIndex(110),
},
{
@@ -5616,8 +5641,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(51),
- /* parameters */ ParameterIndex(392),
- /* return_matcher_indices */ MatcherIndicesIndex(131),
+ /* parameters */ ParameterIndex(396),
+ /* return_matcher_indices */ MatcherIndicesIndex(137),
/* const_eval_fn */ ConstEvalFunctionIndex(110),
},
{
@@ -5627,8 +5652,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(51),
- /* parameters */ ParameterIndex(394),
- /* return_matcher_indices */ MatcherIndicesIndex(131),
+ /* parameters */ ParameterIndex(398),
+ /* return_matcher_indices */ MatcherIndicesIndex(137),
/* const_eval_fn */ ConstEvalFunctionIndex(110),
},
{
@@ -5638,8 +5663,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 2,
/* templates */ TemplateIndex(63),
- /* parameters */ ParameterIndex(414),
- /* return_matcher_indices */ MatcherIndicesIndex(131),
+ /* parameters */ ParameterIndex(418),
+ /* return_matcher_indices */ MatcherIndicesIndex(137),
/* const_eval_fn */ ConstEvalFunctionIndex(107),
},
{
@@ -5649,8 +5674,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 2,
/* templates */ TemplateIndex(65),
- /* parameters */ ParameterIndex(414),
- /* return_matcher_indices */ MatcherIndicesIndex(131),
+ /* parameters */ ParameterIndex(418),
+ /* return_matcher_indices */ MatcherIndicesIndex(137),
/* const_eval_fn */ ConstEvalFunctionIndex(107),
},
{
@@ -5660,8 +5685,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 2,
/* templates */ TemplateIndex(67),
- /* parameters */ ParameterIndex(414),
- /* return_matcher_indices */ MatcherIndicesIndex(131),
+ /* parameters */ ParameterIndex(418),
+ /* return_matcher_indices */ MatcherIndicesIndex(137),
/* const_eval_fn */ ConstEvalFunctionIndex(107),
},
{
@@ -5671,8 +5696,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 2,
/* templates */ TemplateIndex(69),
- /* parameters */ ParameterIndex(414),
- /* return_matcher_indices */ MatcherIndicesIndex(131),
+ /* parameters */ ParameterIndex(418),
+ /* return_matcher_indices */ MatcherIndicesIndex(137),
/* const_eval_fn */ ConstEvalFunctionIndex(107),
},
{
@@ -5682,8 +5707,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 2,
/* templates */ TemplateIndex(71),
- /* parameters */ ParameterIndex(414),
- /* return_matcher_indices */ MatcherIndicesIndex(131),
+ /* parameters */ ParameterIndex(418),
+ /* return_matcher_indices */ MatcherIndicesIndex(137),
/* const_eval_fn */ ConstEvalFunctionIndex(107),
},
{
@@ -5848,7 +5873,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(6),
/* parameters */ ParameterIndex(74),
- /* return_matcher_indices */ MatcherIndicesIndex(131),
+ /* return_matcher_indices */ MatcherIndicesIndex(137),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5859,7 +5884,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(6),
/* parameters */ ParameterIndex(74),
- /* return_matcher_indices */ MatcherIndicesIndex(131),
+ /* return_matcher_indices */ MatcherIndicesIndex(137),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5870,7 +5895,7 @@
/* num_templates */ 3,
/* templates */ TemplateIndex(6),
/* parameters */ ParameterIndex(26),
- /* return_matcher_indices */ MatcherIndicesIndex(131),
+ /* return_matcher_indices */ MatcherIndicesIndex(137),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5881,7 +5906,7 @@
/* num_templates */ 3,
/* templates */ TemplateIndex(6),
/* parameters */ ParameterIndex(26),
- /* return_matcher_indices */ MatcherIndicesIndex(131),
+ /* return_matcher_indices */ MatcherIndicesIndex(137),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5892,7 +5917,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(6),
/* parameters */ ParameterIndex(158),
- /* return_matcher_indices */ MatcherIndicesIndex(131),
+ /* return_matcher_indices */ MatcherIndicesIndex(137),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5903,7 +5928,7 @@
/* num_templates */ 3,
/* templates */ TemplateIndex(6),
/* parameters */ ParameterIndex(79),
- /* return_matcher_indices */ MatcherIndicesIndex(131),
+ /* return_matcher_indices */ MatcherIndicesIndex(137),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5979,7 +6004,7 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(7),
- /* parameters */ ParameterIndex(252),
+ /* parameters */ ParameterIndex(256),
/* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -5990,7 +6015,7 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(7),
- /* parameters */ ParameterIndex(255),
+ /* parameters */ ParameterIndex(259),
/* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -6012,7 +6037,7 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(7),
- /* parameters */ ParameterIndex(258),
+ /* parameters */ ParameterIndex(262),
/* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -6023,7 +6048,7 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(7),
- /* parameters */ ParameterIndex(261),
+ /* parameters */ ParameterIndex(265),
/* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -6034,7 +6059,7 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(7),
- /* parameters */ ParameterIndex(264),
+ /* parameters */ ParameterIndex(268),
/* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -6056,7 +6081,7 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(7),
- /* parameters */ ParameterIndex(267),
+ /* parameters */ ParameterIndex(271),
/* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -6067,7 +6092,7 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(7),
- /* parameters */ ParameterIndex(270),
+ /* parameters */ ParameterIndex(274),
/* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -6078,7 +6103,7 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(7),
- /* parameters */ ParameterIndex(273),
+ /* parameters */ ParameterIndex(277),
/* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -6100,7 +6125,7 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(7),
- /* parameters */ ParameterIndex(276),
+ /* parameters */ ParameterIndex(280),
/* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -6122,7 +6147,7 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(51),
- /* parameters */ ParameterIndex(222),
+ /* parameters */ ParameterIndex(226),
/* return_matcher_indices */ MatcherIndicesIndex(5),
/* const_eval_fn */ ConstEvalFunctionIndex(106),
},
@@ -6144,7 +6169,7 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(51),
- /* parameters */ ParameterIndex(214),
+ /* parameters */ ParameterIndex(218),
/* return_matcher_indices */ MatcherIndicesIndex(5),
/* const_eval_fn */ ConstEvalFunctionIndex(109),
},
@@ -6155,7 +6180,7 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(51),
- /* parameters */ ParameterIndex(306),
+ /* parameters */ ParameterIndex(310),
/* return_matcher_indices */ MatcherIndicesIndex(5),
/* const_eval_fn */ ConstEvalFunctionIndex(110),
},
@@ -6166,7 +6191,7 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(51),
- /* parameters */ ParameterIndex(309),
+ /* parameters */ ParameterIndex(313),
/* return_matcher_indices */ MatcherIndicesIndex(5),
/* const_eval_fn */ ConstEvalFunctionIndex(110),
},
@@ -6177,7 +6202,7 @@
/* num_explicit_templates */ 1,
/* num_templates */ 2,
/* templates */ TemplateIndex(63),
- /* parameters */ ParameterIndex(413),
+ /* parameters */ ParameterIndex(417),
/* return_matcher_indices */ MatcherIndicesIndex(5),
/* const_eval_fn */ ConstEvalFunctionIndex(107),
},
@@ -6188,7 +6213,7 @@
/* num_explicit_templates */ 1,
/* num_templates */ 2,
/* templates */ TemplateIndex(65),
- /* parameters */ ParameterIndex(413),
+ /* parameters */ ParameterIndex(417),
/* return_matcher_indices */ MatcherIndicesIndex(5),
/* const_eval_fn */ ConstEvalFunctionIndex(107),
},
@@ -6199,7 +6224,7 @@
/* num_explicit_templates */ 1,
/* num_templates */ 2,
/* templates */ TemplateIndex(67),
- /* parameters */ ParameterIndex(413),
+ /* parameters */ ParameterIndex(417),
/* return_matcher_indices */ MatcherIndicesIndex(5),
/* const_eval_fn */ ConstEvalFunctionIndex(107),
},
@@ -6210,7 +6235,7 @@
/* num_explicit_templates */ 1,
/* num_templates */ 2,
/* templates */ TemplateIndex(69),
- /* parameters */ ParameterIndex(413),
+ /* parameters */ ParameterIndex(417),
/* return_matcher_indices */ MatcherIndicesIndex(5),
/* const_eval_fn */ ConstEvalFunctionIndex(107),
},
@@ -6221,7 +6246,7 @@
/* num_explicit_templates */ 1,
/* num_templates */ 2,
/* templates */ TemplateIndex(71),
- /* parameters */ ParameterIndex(413),
+ /* parameters */ ParameterIndex(417),
/* return_matcher_indices */ MatcherIndicesIndex(5),
/* const_eval_fn */ ConstEvalFunctionIndex(107),
},
@@ -6232,8 +6257,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(6),
- /* parameters */ ParameterIndex(279),
- /* return_matcher_indices */ MatcherIndicesIndex(128),
+ /* parameters */ ParameterIndex(283),
+ /* return_matcher_indices */ MatcherIndicesIndex(35),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -6244,7 +6269,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(6),
/* parameters */ ParameterIndex(75),
- /* return_matcher_indices */ MatcherIndicesIndex(128),
+ /* return_matcher_indices */ MatcherIndicesIndex(35),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -6255,7 +6280,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(6),
/* parameters */ ParameterIndex(27),
- /* return_matcher_indices */ MatcherIndicesIndex(128),
+ /* return_matcher_indices */ MatcherIndicesIndex(35),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -6265,8 +6290,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(6),
- /* parameters */ ParameterIndex(285),
- /* return_matcher_indices */ MatcherIndicesIndex(128),
+ /* parameters */ ParameterIndex(289),
+ /* return_matcher_indices */ MatcherIndicesIndex(35),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -6277,7 +6302,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(6),
/* parameters */ ParameterIndex(159),
- /* return_matcher_indices */ MatcherIndicesIndex(128),
+ /* return_matcher_indices */ MatcherIndicesIndex(35),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -6288,7 +6313,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(6),
/* parameters */ ParameterIndex(80),
- /* return_matcher_indices */ MatcherIndicesIndex(128),
+ /* return_matcher_indices */ MatcherIndicesIndex(35),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -6299,7 +6324,7 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(89),
- /* return_matcher_indices */ MatcherIndicesIndex(128),
+ /* return_matcher_indices */ MatcherIndicesIndex(35),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -6310,7 +6335,7 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(32),
- /* return_matcher_indices */ MatcherIndicesIndex(128),
+ /* return_matcher_indices */ MatcherIndicesIndex(35),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -6321,7 +6346,7 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(166),
- /* return_matcher_indices */ MatcherIndicesIndex(128),
+ /* return_matcher_indices */ MatcherIndicesIndex(35),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -6332,7 +6357,7 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(94),
- /* return_matcher_indices */ MatcherIndicesIndex(128),
+ /* return_matcher_indices */ MatcherIndicesIndex(35),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -6353,8 +6378,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(45),
- /* parameters */ ParameterIndex(230),
- /* return_matcher_indices */ MatcherIndicesIndex(94),
+ /* parameters */ ParameterIndex(234),
+ /* return_matcher_indices */ MatcherIndicesIndex(100),
/* const_eval_fn */ ConstEvalFunctionIndex(86),
},
{
@@ -6364,8 +6389,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(45),
- /* parameters */ ParameterIndex(377),
- /* return_matcher_indices */ MatcherIndicesIndex(94),
+ /* parameters */ ParameterIndex(381),
+ /* return_matcher_indices */ MatcherIndicesIndex(100),
/* const_eval_fn */ ConstEvalFunctionIndex(86),
},
{
@@ -6375,8 +6400,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(45),
- /* parameters */ ParameterIndex(378),
- /* return_matcher_indices */ MatcherIndicesIndex(94),
+ /* parameters */ ParameterIndex(382),
+ /* return_matcher_indices */ MatcherIndicesIndex(100),
/* const_eval_fn */ ConstEvalFunctionIndex(86),
},
{
@@ -6386,8 +6411,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 3,
/* templates */ TemplateIndex(23),
- /* parameters */ ParameterIndex(383),
- /* return_matcher_indices */ MatcherIndicesIndex(72),
+ /* parameters */ ParameterIndex(387),
+ /* return_matcher_indices */ MatcherIndicesIndex(78),
/* const_eval_fn */ ConstEvalFunctionIndex(86),
},
{
@@ -6397,8 +6422,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 3,
/* templates */ TemplateIndex(23),
- /* parameters */ ParameterIndex(382),
- /* return_matcher_indices */ MatcherIndicesIndex(72),
+ /* parameters */ ParameterIndex(386),
+ /* return_matcher_indices */ MatcherIndicesIndex(78),
/* const_eval_fn */ ConstEvalFunctionIndex(86),
},
{
@@ -6408,8 +6433,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 3,
/* templates */ TemplateIndex(32),
- /* parameters */ ParameterIndex(384),
- /* return_matcher_indices */ MatcherIndicesIndex(201),
+ /* parameters */ ParameterIndex(388),
+ /* return_matcher_indices */ MatcherIndicesIndex(206),
/* const_eval_fn */ ConstEvalFunctionIndex(87),
},
{
@@ -6419,8 +6444,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 3,
/* templates */ TemplateIndex(32),
- /* parameters */ ParameterIndex(386),
- /* return_matcher_indices */ MatcherIndicesIndex(94),
+ /* parameters */ ParameterIndex(390),
+ /* return_matcher_indices */ MatcherIndicesIndex(100),
/* const_eval_fn */ ConstEvalFunctionIndex(88),
},
{
@@ -6430,8 +6455,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 4,
/* templates */ TemplateIndex(14),
- /* parameters */ ParameterIndex(388),
- /* return_matcher_indices */ MatcherIndicesIndex(76),
+ /* parameters */ ParameterIndex(392),
+ /* return_matcher_indices */ MatcherIndicesIndex(82),
/* const_eval_fn */ ConstEvalFunctionIndex(89),
},
{
@@ -6442,7 +6467,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(51),
/* parameters */ ParameterIndex(/* invalid */),
- /* return_matcher_indices */ MatcherIndicesIndex(244),
+ /* return_matcher_indices */ MatcherIndicesIndex(249),
/* const_eval_fn */ ConstEvalFunctionIndex(105),
},
{
@@ -6452,8 +6477,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(51),
- /* parameters */ ParameterIndex(218),
- /* return_matcher_indices */ MatcherIndicesIndex(244),
+ /* parameters */ ParameterIndex(222),
+ /* return_matcher_indices */ MatcherIndicesIndex(249),
/* const_eval_fn */ ConstEvalFunctionIndex(106),
},
{
@@ -6464,7 +6489,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(51),
/* parameters */ ParameterIndex(1),
- /* return_matcher_indices */ MatcherIndicesIndex(244),
+ /* return_matcher_indices */ MatcherIndicesIndex(249),
/* const_eval_fn */ ConstEvalFunctionIndex(108),
},
{
@@ -6474,8 +6499,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(51),
- /* parameters */ ParameterIndex(214),
- /* return_matcher_indices */ MatcherIndicesIndex(244),
+ /* parameters */ ParameterIndex(218),
+ /* return_matcher_indices */ MatcherIndicesIndex(249),
/* const_eval_fn */ ConstEvalFunctionIndex(109),
},
{
@@ -6485,8 +6510,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 2,
/* templates */ TemplateIndex(63),
- /* parameters */ ParameterIndex(412),
- /* return_matcher_indices */ MatcherIndicesIndex(244),
+ /* parameters */ ParameterIndex(416),
+ /* return_matcher_indices */ MatcherIndicesIndex(249),
/* const_eval_fn */ ConstEvalFunctionIndex(107),
},
{
@@ -6496,8 +6521,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 2,
/* templates */ TemplateIndex(65),
- /* parameters */ ParameterIndex(412),
- /* return_matcher_indices */ MatcherIndicesIndex(244),
+ /* parameters */ ParameterIndex(416),
+ /* return_matcher_indices */ MatcherIndicesIndex(249),
/* const_eval_fn */ ConstEvalFunctionIndex(107),
},
{
@@ -6507,8 +6532,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 2,
/* templates */ TemplateIndex(67),
- /* parameters */ ParameterIndex(412),
- /* return_matcher_indices */ MatcherIndicesIndex(244),
+ /* parameters */ ParameterIndex(416),
+ /* return_matcher_indices */ MatcherIndicesIndex(249),
/* const_eval_fn */ ConstEvalFunctionIndex(107),
},
{
@@ -6518,8 +6543,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 2,
/* templates */ TemplateIndex(69),
- /* parameters */ ParameterIndex(412),
- /* return_matcher_indices */ MatcherIndicesIndex(244),
+ /* parameters */ ParameterIndex(416),
+ /* return_matcher_indices */ MatcherIndicesIndex(249),
/* const_eval_fn */ ConstEvalFunctionIndex(107),
},
{
@@ -6529,8 +6554,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 2,
/* templates */ TemplateIndex(71),
- /* parameters */ ParameterIndex(412),
- /* return_matcher_indices */ MatcherIndicesIndex(244),
+ /* parameters */ ParameterIndex(416),
+ /* return_matcher_indices */ MatcherIndicesIndex(249),
/* const_eval_fn */ ConstEvalFunctionIndex(107),
},
{
@@ -6915,7 +6940,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(14),
/* parameters */ ParameterIndex(/* invalid */),
- /* return_matcher_indices */ MatcherIndicesIndex(252),
+ /* return_matcher_indices */ MatcherIndicesIndex(257),
/* const_eval_fn */ ConstEvalFunctionIndex(105),
},
{
@@ -6925,8 +6950,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(14),
- /* parameters */ ParameterIndex(415),
- /* return_matcher_indices */ MatcherIndicesIndex(252),
+ /* parameters */ ParameterIndex(419),
+ /* return_matcher_indices */ MatcherIndicesIndex(257),
/* const_eval_fn */ ConstEvalFunctionIndex(106),
},
{
@@ -6937,7 +6962,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(14),
/* parameters */ ParameterIndex(1),
- /* return_matcher_indices */ MatcherIndicesIndex(252),
+ /* return_matcher_indices */ MatcherIndicesIndex(257),
/* const_eval_fn */ ConstEvalFunctionIndex(111),
},
{
@@ -6947,8 +6972,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(14),
- /* parameters */ ParameterIndex(218),
- /* return_matcher_indices */ MatcherIndicesIndex(252),
+ /* parameters */ ParameterIndex(222),
+ /* return_matcher_indices */ MatcherIndicesIndex(257),
/* const_eval_fn */ ConstEvalFunctionIndex(112),
},
{
@@ -6958,8 +6983,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(65),
- /* parameters */ ParameterIndex(416),
- /* return_matcher_indices */ MatcherIndicesIndex(252),
+ /* parameters */ ParameterIndex(420),
+ /* return_matcher_indices */ MatcherIndicesIndex(257),
/* const_eval_fn */ ConstEvalFunctionIndex(107),
},
{
@@ -6969,8 +6994,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(63),
- /* parameters */ ParameterIndex(417),
- /* return_matcher_indices */ MatcherIndicesIndex(252),
+ /* parameters */ ParameterIndex(421),
+ /* return_matcher_indices */ MatcherIndicesIndex(257),
/* const_eval_fn */ ConstEvalFunctionIndex(107),
},
{
@@ -6981,7 +7006,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(14),
/* parameters */ ParameterIndex(/* invalid */),
- /* return_matcher_indices */ MatcherIndicesIndex(258),
+ /* return_matcher_indices */ MatcherIndicesIndex(263),
/* const_eval_fn */ ConstEvalFunctionIndex(105),
},
{
@@ -6991,8 +7016,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(14),
- /* parameters */ ParameterIndex(418),
- /* return_matcher_indices */ MatcherIndicesIndex(258),
+ /* parameters */ ParameterIndex(422),
+ /* return_matcher_indices */ MatcherIndicesIndex(263),
/* const_eval_fn */ ConstEvalFunctionIndex(106),
},
{
@@ -7003,7 +7028,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(14),
/* parameters */ ParameterIndex(1),
- /* return_matcher_indices */ MatcherIndicesIndex(258),
+ /* return_matcher_indices */ MatcherIndicesIndex(263),
/* const_eval_fn */ ConstEvalFunctionIndex(111),
},
{
@@ -7013,8 +7038,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(14),
- /* parameters */ ParameterIndex(222),
- /* return_matcher_indices */ MatcherIndicesIndex(258),
+ /* parameters */ ParameterIndex(226),
+ /* return_matcher_indices */ MatcherIndicesIndex(263),
/* const_eval_fn */ ConstEvalFunctionIndex(112),
},
{
@@ -7024,8 +7049,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(65),
- /* parameters */ ParameterIndex(419),
- /* return_matcher_indices */ MatcherIndicesIndex(258),
+ /* parameters */ ParameterIndex(423),
+ /* return_matcher_indices */ MatcherIndicesIndex(263),
/* const_eval_fn */ ConstEvalFunctionIndex(107),
},
{
@@ -7035,8 +7060,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(63),
- /* parameters */ ParameterIndex(420),
- /* return_matcher_indices */ MatcherIndicesIndex(258),
+ /* parameters */ ParameterIndex(424),
+ /* return_matcher_indices */ MatcherIndicesIndex(263),
/* const_eval_fn */ ConstEvalFunctionIndex(107),
},
{
@@ -7047,7 +7072,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(14),
/* parameters */ ParameterIndex(/* invalid */),
- /* return_matcher_indices */ MatcherIndicesIndex(264),
+ /* return_matcher_indices */ MatcherIndicesIndex(269),
/* const_eval_fn */ ConstEvalFunctionIndex(105),
},
{
@@ -7057,8 +7082,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(14),
- /* parameters */ ParameterIndex(421),
- /* return_matcher_indices */ MatcherIndicesIndex(264),
+ /* parameters */ ParameterIndex(425),
+ /* return_matcher_indices */ MatcherIndicesIndex(269),
/* const_eval_fn */ ConstEvalFunctionIndex(106),
},
{
@@ -7069,7 +7094,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(14),
/* parameters */ ParameterIndex(1),
- /* return_matcher_indices */ MatcherIndicesIndex(264),
+ /* return_matcher_indices */ MatcherIndicesIndex(269),
/* const_eval_fn */ ConstEvalFunctionIndex(111),
},
{
@@ -7079,8 +7104,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(14),
- /* parameters */ ParameterIndex(226),
- /* return_matcher_indices */ MatcherIndicesIndex(264),
+ /* parameters */ ParameterIndex(230),
+ /* return_matcher_indices */ MatcherIndicesIndex(269),
/* const_eval_fn */ ConstEvalFunctionIndex(112),
},
{
@@ -7090,8 +7115,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(65),
- /* parameters */ ParameterIndex(422),
- /* return_matcher_indices */ MatcherIndicesIndex(264),
+ /* parameters */ ParameterIndex(426),
+ /* return_matcher_indices */ MatcherIndicesIndex(269),
/* const_eval_fn */ ConstEvalFunctionIndex(107),
},
{
@@ -7101,8 +7126,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(63),
- /* parameters */ ParameterIndex(423),
- /* return_matcher_indices */ MatcherIndicesIndex(264),
+ /* parameters */ ParameterIndex(427),
+ /* return_matcher_indices */ MatcherIndicesIndex(269),
/* const_eval_fn */ ConstEvalFunctionIndex(107),
},
{
@@ -7113,7 +7138,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(14),
/* parameters */ ParameterIndex(/* invalid */),
- /* return_matcher_indices */ MatcherIndicesIndex(270),
+ /* return_matcher_indices */ MatcherIndicesIndex(275),
/* const_eval_fn */ ConstEvalFunctionIndex(105),
},
{
@@ -7123,8 +7148,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(14),
- /* parameters */ ParameterIndex(424),
- /* return_matcher_indices */ MatcherIndicesIndex(270),
+ /* parameters */ ParameterIndex(428),
+ /* return_matcher_indices */ MatcherIndicesIndex(275),
/* const_eval_fn */ ConstEvalFunctionIndex(106),
},
{
@@ -7135,7 +7160,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(14),
/* parameters */ ParameterIndex(1),
- /* return_matcher_indices */ MatcherIndicesIndex(270),
+ /* return_matcher_indices */ MatcherIndicesIndex(275),
/* const_eval_fn */ ConstEvalFunctionIndex(111),
},
{
@@ -7145,8 +7170,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(14),
- /* parameters */ ParameterIndex(218),
- /* return_matcher_indices */ MatcherIndicesIndex(270),
+ /* parameters */ ParameterIndex(222),
+ /* return_matcher_indices */ MatcherIndicesIndex(275),
/* const_eval_fn */ ConstEvalFunctionIndex(112),
},
{
@@ -7156,8 +7181,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(65),
- /* parameters */ ParameterIndex(425),
- /* return_matcher_indices */ MatcherIndicesIndex(270),
+ /* parameters */ ParameterIndex(429),
+ /* return_matcher_indices */ MatcherIndicesIndex(275),
/* const_eval_fn */ ConstEvalFunctionIndex(107),
},
{
@@ -7167,8 +7192,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(63),
- /* parameters */ ParameterIndex(426),
- /* return_matcher_indices */ MatcherIndicesIndex(270),
+ /* parameters */ ParameterIndex(430),
+ /* return_matcher_indices */ MatcherIndicesIndex(275),
/* const_eval_fn */ ConstEvalFunctionIndex(107),
},
{
@@ -7179,7 +7204,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(14),
/* parameters */ ParameterIndex(/* invalid */),
- /* return_matcher_indices */ MatcherIndicesIndex(276),
+ /* return_matcher_indices */ MatcherIndicesIndex(281),
/* const_eval_fn */ ConstEvalFunctionIndex(105),
},
{
@@ -7189,8 +7214,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(14),
- /* parameters */ ParameterIndex(427),
- /* return_matcher_indices */ MatcherIndicesIndex(276),
+ /* parameters */ ParameterIndex(431),
+ /* return_matcher_indices */ MatcherIndicesIndex(281),
/* const_eval_fn */ ConstEvalFunctionIndex(106),
},
{
@@ -7201,7 +7226,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(14),
/* parameters */ ParameterIndex(1),
- /* return_matcher_indices */ MatcherIndicesIndex(276),
+ /* return_matcher_indices */ MatcherIndicesIndex(281),
/* const_eval_fn */ ConstEvalFunctionIndex(111),
},
{
@@ -7211,8 +7236,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(14),
- /* parameters */ ParameterIndex(222),
- /* return_matcher_indices */ MatcherIndicesIndex(276),
+ /* parameters */ ParameterIndex(226),
+ /* return_matcher_indices */ MatcherIndicesIndex(281),
/* const_eval_fn */ ConstEvalFunctionIndex(112),
},
{
@@ -7222,8 +7247,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(65),
- /* parameters */ ParameterIndex(428),
- /* return_matcher_indices */ MatcherIndicesIndex(276),
+ /* parameters */ ParameterIndex(432),
+ /* return_matcher_indices */ MatcherIndicesIndex(281),
/* const_eval_fn */ ConstEvalFunctionIndex(107),
},
{
@@ -7233,8 +7258,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(63),
- /* parameters */ ParameterIndex(429),
- /* return_matcher_indices */ MatcherIndicesIndex(276),
+ /* parameters */ ParameterIndex(433),
+ /* return_matcher_indices */ MatcherIndicesIndex(281),
/* const_eval_fn */ ConstEvalFunctionIndex(107),
},
{
@@ -7245,7 +7270,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(14),
/* parameters */ ParameterIndex(/* invalid */),
- /* return_matcher_indices */ MatcherIndicesIndex(282),
+ /* return_matcher_indices */ MatcherIndicesIndex(287),
/* const_eval_fn */ ConstEvalFunctionIndex(105),
},
{
@@ -7255,8 +7280,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(14),
- /* parameters */ ParameterIndex(430),
- /* return_matcher_indices */ MatcherIndicesIndex(282),
+ /* parameters */ ParameterIndex(434),
+ /* return_matcher_indices */ MatcherIndicesIndex(287),
/* const_eval_fn */ ConstEvalFunctionIndex(106),
},
{
@@ -7267,7 +7292,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(14),
/* parameters */ ParameterIndex(1),
- /* return_matcher_indices */ MatcherIndicesIndex(282),
+ /* return_matcher_indices */ MatcherIndicesIndex(287),
/* const_eval_fn */ ConstEvalFunctionIndex(111),
},
{
@@ -7277,8 +7302,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(14),
- /* parameters */ ParameterIndex(226),
- /* return_matcher_indices */ MatcherIndicesIndex(282),
+ /* parameters */ ParameterIndex(230),
+ /* return_matcher_indices */ MatcherIndicesIndex(287),
/* const_eval_fn */ ConstEvalFunctionIndex(112),
},
{
@@ -7288,8 +7313,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(65),
- /* parameters */ ParameterIndex(431),
- /* return_matcher_indices */ MatcherIndicesIndex(282),
+ /* parameters */ ParameterIndex(435),
+ /* return_matcher_indices */ MatcherIndicesIndex(287),
/* const_eval_fn */ ConstEvalFunctionIndex(107),
},
{
@@ -7299,8 +7324,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(63),
- /* parameters */ ParameterIndex(432),
- /* return_matcher_indices */ MatcherIndicesIndex(282),
+ /* parameters */ ParameterIndex(436),
+ /* return_matcher_indices */ MatcherIndicesIndex(287),
/* const_eval_fn */ ConstEvalFunctionIndex(107),
},
{
@@ -7311,7 +7336,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(14),
/* parameters */ ParameterIndex(/* invalid */),
- /* return_matcher_indices */ MatcherIndicesIndex(288),
+ /* return_matcher_indices */ MatcherIndicesIndex(293),
/* const_eval_fn */ ConstEvalFunctionIndex(105),
},
{
@@ -7321,8 +7346,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(14),
- /* parameters */ ParameterIndex(433),
- /* return_matcher_indices */ MatcherIndicesIndex(288),
+ /* parameters */ ParameterIndex(437),
+ /* return_matcher_indices */ MatcherIndicesIndex(293),
/* const_eval_fn */ ConstEvalFunctionIndex(106),
},
{
@@ -7333,7 +7358,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(14),
/* parameters */ ParameterIndex(1),
- /* return_matcher_indices */ MatcherIndicesIndex(288),
+ /* return_matcher_indices */ MatcherIndicesIndex(293),
/* const_eval_fn */ ConstEvalFunctionIndex(111),
},
{
@@ -7343,8 +7368,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(14),
- /* parameters */ ParameterIndex(218),
- /* return_matcher_indices */ MatcherIndicesIndex(288),
+ /* parameters */ ParameterIndex(222),
+ /* return_matcher_indices */ MatcherIndicesIndex(293),
/* const_eval_fn */ ConstEvalFunctionIndex(112),
},
{
@@ -7354,8 +7379,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(65),
- /* parameters */ ParameterIndex(434),
- /* return_matcher_indices */ MatcherIndicesIndex(288),
+ /* parameters */ ParameterIndex(438),
+ /* return_matcher_indices */ MatcherIndicesIndex(293),
/* const_eval_fn */ ConstEvalFunctionIndex(107),
},
{
@@ -7365,8 +7390,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(63),
- /* parameters */ ParameterIndex(435),
- /* return_matcher_indices */ MatcherIndicesIndex(288),
+ /* parameters */ ParameterIndex(439),
+ /* return_matcher_indices */ MatcherIndicesIndex(293),
/* const_eval_fn */ ConstEvalFunctionIndex(107),
},
{
@@ -7377,7 +7402,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(14),
/* parameters */ ParameterIndex(/* invalid */),
- /* return_matcher_indices */ MatcherIndicesIndex(294),
+ /* return_matcher_indices */ MatcherIndicesIndex(299),
/* const_eval_fn */ ConstEvalFunctionIndex(105),
},
{
@@ -7387,8 +7412,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(14),
- /* parameters */ ParameterIndex(436),
- /* return_matcher_indices */ MatcherIndicesIndex(294),
+ /* parameters */ ParameterIndex(440),
+ /* return_matcher_indices */ MatcherIndicesIndex(299),
/* const_eval_fn */ ConstEvalFunctionIndex(106),
},
{
@@ -7399,7 +7424,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(14),
/* parameters */ ParameterIndex(1),
- /* return_matcher_indices */ MatcherIndicesIndex(294),
+ /* return_matcher_indices */ MatcherIndicesIndex(299),
/* const_eval_fn */ ConstEvalFunctionIndex(111),
},
{
@@ -7409,8 +7434,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(14),
- /* parameters */ ParameterIndex(222),
- /* return_matcher_indices */ MatcherIndicesIndex(294),
+ /* parameters */ ParameterIndex(226),
+ /* return_matcher_indices */ MatcherIndicesIndex(299),
/* const_eval_fn */ ConstEvalFunctionIndex(112),
},
{
@@ -7420,8 +7445,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(65),
- /* parameters */ ParameterIndex(437),
- /* return_matcher_indices */ MatcherIndicesIndex(294),
+ /* parameters */ ParameterIndex(441),
+ /* return_matcher_indices */ MatcherIndicesIndex(299),
/* const_eval_fn */ ConstEvalFunctionIndex(107),
},
{
@@ -7431,8 +7456,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(63),
- /* parameters */ ParameterIndex(438),
- /* return_matcher_indices */ MatcherIndicesIndex(294),
+ /* parameters */ ParameterIndex(442),
+ /* return_matcher_indices */ MatcherIndicesIndex(299),
/* const_eval_fn */ ConstEvalFunctionIndex(107),
},
{
@@ -7443,7 +7468,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(14),
/* parameters */ ParameterIndex(/* invalid */),
- /* return_matcher_indices */ MatcherIndicesIndex(300),
+ /* return_matcher_indices */ MatcherIndicesIndex(305),
/* const_eval_fn */ ConstEvalFunctionIndex(105),
},
{
@@ -7453,8 +7478,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(14),
- /* parameters */ ParameterIndex(439),
- /* return_matcher_indices */ MatcherIndicesIndex(300),
+ /* parameters */ ParameterIndex(443),
+ /* return_matcher_indices */ MatcherIndicesIndex(305),
/* const_eval_fn */ ConstEvalFunctionIndex(106),
},
{
@@ -7465,7 +7490,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(14),
/* parameters */ ParameterIndex(1),
- /* return_matcher_indices */ MatcherIndicesIndex(300),
+ /* return_matcher_indices */ MatcherIndicesIndex(305),
/* const_eval_fn */ ConstEvalFunctionIndex(111),
},
{
@@ -7475,8 +7500,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(14),
- /* parameters */ ParameterIndex(226),
- /* return_matcher_indices */ MatcherIndicesIndex(300),
+ /* parameters */ ParameterIndex(230),
+ /* return_matcher_indices */ MatcherIndicesIndex(305),
/* const_eval_fn */ ConstEvalFunctionIndex(112),
},
{
@@ -7486,8 +7511,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(65),
- /* parameters */ ParameterIndex(440),
- /* return_matcher_indices */ MatcherIndicesIndex(300),
+ /* parameters */ ParameterIndex(444),
+ /* return_matcher_indices */ MatcherIndicesIndex(305),
/* const_eval_fn */ ConstEvalFunctionIndex(107),
},
{
@@ -7497,8 +7522,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(63),
- /* parameters */ ParameterIndex(441),
- /* return_matcher_indices */ MatcherIndicesIndex(300),
+ /* parameters */ ParameterIndex(445),
+ /* return_matcher_indices */ MatcherIndicesIndex(305),
/* const_eval_fn */ ConstEvalFunctionIndex(107),
},
{
@@ -7509,7 +7534,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(6),
/* parameters */ ParameterIndex(27),
- /* return_matcher_indices */ MatcherIndicesIndex(128),
+ /* return_matcher_indices */ MatcherIndicesIndex(35),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -7520,7 +7545,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(6),
/* parameters */ ParameterIndex(80),
- /* return_matcher_indices */ MatcherIndicesIndex(128),
+ /* return_matcher_indices */ MatcherIndicesIndex(35),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -7531,7 +7556,7 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(32),
- /* return_matcher_indices */ MatcherIndicesIndex(128),
+ /* return_matcher_indices */ MatcherIndicesIndex(35),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -7542,7 +7567,7 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(94),
- /* return_matcher_indices */ MatcherIndicesIndex(128),
+ /* return_matcher_indices */ MatcherIndicesIndex(35),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -7552,8 +7577,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(59),
- /* parameters */ ParameterIndex(407),
- /* return_matcher_indices */ MatcherIndicesIndex(128),
+ /* parameters */ ParameterIndex(411),
+ /* return_matcher_indices */ MatcherIndicesIndex(35),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -7574,8 +7599,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(45),
- /* parameters */ ParameterIndex(230),
- /* return_matcher_indices */ MatcherIndicesIndex(94),
+ /* parameters */ ParameterIndex(234),
+ /* return_matcher_indices */ MatcherIndicesIndex(100),
/* const_eval_fn */ ConstEvalFunctionIndex(84),
},
{
@@ -7585,8 +7610,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(45),
- /* parameters */ ParameterIndex(377),
- /* return_matcher_indices */ MatcherIndicesIndex(94),
+ /* parameters */ ParameterIndex(381),
+ /* return_matcher_indices */ MatcherIndicesIndex(100),
/* const_eval_fn */ ConstEvalFunctionIndex(84),
},
{
@@ -7596,8 +7621,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(45),
- /* parameters */ ParameterIndex(378),
- /* return_matcher_indices */ MatcherIndicesIndex(94),
+ /* parameters */ ParameterIndex(382),
+ /* return_matcher_indices */ MatcherIndicesIndex(100),
/* const_eval_fn */ ConstEvalFunctionIndex(84),
},
{
@@ -7607,8 +7632,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 3,
/* templates */ TemplateIndex(23),
- /* parameters */ ParameterIndex(381),
- /* return_matcher_indices */ MatcherIndicesIndex(72),
+ /* parameters */ ParameterIndex(385),
+ /* return_matcher_indices */ MatcherIndicesIndex(78),
/* const_eval_fn */ ConstEvalFunctionIndex(84),
},
{
@@ -7629,8 +7654,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(45),
- /* parameters */ ParameterIndex(230),
- /* return_matcher_indices */ MatcherIndicesIndex(94),
+ /* parameters */ ParameterIndex(234),
+ /* return_matcher_indices */ MatcherIndicesIndex(100),
/* const_eval_fn */ ConstEvalFunctionIndex(85),
},
{
@@ -7640,8 +7665,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(45),
- /* parameters */ ParameterIndex(377),
- /* return_matcher_indices */ MatcherIndicesIndex(94),
+ /* parameters */ ParameterIndex(381),
+ /* return_matcher_indices */ MatcherIndicesIndex(100),
/* const_eval_fn */ ConstEvalFunctionIndex(85),
},
{
@@ -7651,8 +7676,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(45),
- /* parameters */ ParameterIndex(378),
- /* return_matcher_indices */ MatcherIndicesIndex(94),
+ /* parameters */ ParameterIndex(382),
+ /* return_matcher_indices */ MatcherIndicesIndex(100),
/* const_eval_fn */ ConstEvalFunctionIndex(85),
},
{
@@ -7662,8 +7687,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 3,
/* templates */ TemplateIndex(23),
- /* parameters */ ParameterIndex(381),
- /* return_matcher_indices */ MatcherIndicesIndex(72),
+ /* parameters */ ParameterIndex(385),
+ /* return_matcher_indices */ MatcherIndicesIndex(78),
/* const_eval_fn */ ConstEvalFunctionIndex(85),
},
{
@@ -7684,8 +7709,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(45),
- /* parameters */ ParameterIndex(230),
- /* return_matcher_indices */ MatcherIndicesIndex(94),
+ /* parameters */ ParameterIndex(234),
+ /* return_matcher_indices */ MatcherIndicesIndex(100),
/* const_eval_fn */ ConstEvalFunctionIndex(90),
},
{
@@ -7695,8 +7720,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(45),
- /* parameters */ ParameterIndex(377),
- /* return_matcher_indices */ MatcherIndicesIndex(94),
+ /* parameters */ ParameterIndex(381),
+ /* return_matcher_indices */ MatcherIndicesIndex(100),
/* const_eval_fn */ ConstEvalFunctionIndex(90),
},
{
@@ -7706,8 +7731,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(45),
- /* parameters */ ParameterIndex(378),
- /* return_matcher_indices */ MatcherIndicesIndex(94),
+ /* parameters */ ParameterIndex(382),
+ /* return_matcher_indices */ MatcherIndicesIndex(100),
/* const_eval_fn */ ConstEvalFunctionIndex(90),
},
{
@@ -7728,8 +7753,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(45),
- /* parameters */ ParameterIndex(230),
- /* return_matcher_indices */ MatcherIndicesIndex(94),
+ /* parameters */ ParameterIndex(234),
+ /* return_matcher_indices */ MatcherIndicesIndex(100),
/* const_eval_fn */ ConstEvalFunctionIndex(91),
},
{
@@ -7739,8 +7764,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(45),
- /* parameters */ ParameterIndex(377),
- /* return_matcher_indices */ MatcherIndicesIndex(94),
+ /* parameters */ ParameterIndex(381),
+ /* return_matcher_indices */ MatcherIndicesIndex(100),
/* const_eval_fn */ ConstEvalFunctionIndex(91),
},
{
@@ -7750,8 +7775,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(45),
- /* parameters */ ParameterIndex(378),
- /* return_matcher_indices */ MatcherIndicesIndex(94),
+ /* parameters */ ParameterIndex(382),
+ /* return_matcher_indices */ MatcherIndicesIndex(100),
/* const_eval_fn */ ConstEvalFunctionIndex(91),
},
{
@@ -7761,8 +7786,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
- /* parameters */ ParameterIndex(233),
- /* return_matcher_indices */ MatcherIndicesIndex(41),
+ /* parameters */ ParameterIndex(237),
+ /* return_matcher_indices */ MatcherIndicesIndex(47),
/* const_eval_fn */ ConstEvalFunctionIndex(93),
},
{
@@ -7772,8 +7797,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(18),
- /* parameters */ ParameterIndex(244),
- /* return_matcher_indices */ MatcherIndicesIndex(91),
+ /* parameters */ ParameterIndex(248),
+ /* return_matcher_indices */ MatcherIndicesIndex(97),
/* const_eval_fn */ ConstEvalFunctionIndex(93),
},
{
@@ -7794,8 +7819,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(61),
- /* parameters */ ParameterIndex(230),
- /* return_matcher_indices */ MatcherIndicesIndex(94),
+ /* parameters */ ParameterIndex(234),
+ /* return_matcher_indices */ MatcherIndicesIndex(100),
/* const_eval_fn */ ConstEvalFunctionIndex(93),
},
{
@@ -7805,8 +7830,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
- /* parameters */ ParameterIndex(233),
- /* return_matcher_indices */ MatcherIndicesIndex(41),
+ /* parameters */ ParameterIndex(237),
+ /* return_matcher_indices */ MatcherIndicesIndex(47),
/* const_eval_fn */ ConstEvalFunctionIndex(94),
},
{
@@ -7816,8 +7841,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(18),
- /* parameters */ ParameterIndex(244),
- /* return_matcher_indices */ MatcherIndicesIndex(91),
+ /* parameters */ ParameterIndex(248),
+ /* return_matcher_indices */ MatcherIndicesIndex(97),
/* const_eval_fn */ ConstEvalFunctionIndex(94),
},
{
@@ -7838,8 +7863,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(61),
- /* parameters */ ParameterIndex(230),
- /* return_matcher_indices */ MatcherIndicesIndex(94),
+ /* parameters */ ParameterIndex(234),
+ /* return_matcher_indices */ MatcherIndicesIndex(100),
/* const_eval_fn */ ConstEvalFunctionIndex(94),
},
{
@@ -7860,8 +7885,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(18),
- /* parameters */ ParameterIndex(235),
- /* return_matcher_indices */ MatcherIndicesIndex(88),
+ /* parameters */ ParameterIndex(239),
+ /* return_matcher_indices */ MatcherIndicesIndex(94),
/* const_eval_fn */ ConstEvalFunctionIndex(42),
},
{
@@ -7871,8 +7896,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(18),
- /* parameters */ ParameterIndex(236),
- /* return_matcher_indices */ MatcherIndicesIndex(88),
+ /* parameters */ ParameterIndex(240),
+ /* return_matcher_indices */ MatcherIndicesIndex(94),
/* const_eval_fn */ ConstEvalFunctionIndex(42),
},
{
@@ -7882,7 +7907,7 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(51),
- /* parameters */ ParameterIndex(239),
+ /* parameters */ ParameterIndex(243),
/* return_matcher_indices */ MatcherIndicesIndex(6),
/* const_eval_fn */ ConstEvalFunctionIndex(62),
},
@@ -7893,8 +7918,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(51),
- /* parameters */ ParameterIndex(231),
- /* return_matcher_indices */ MatcherIndicesIndex(94),
+ /* parameters */ ParameterIndex(235),
+ /* return_matcher_indices */ MatcherIndicesIndex(100),
/* const_eval_fn */ ConstEvalFunctionIndex(62),
},
{
@@ -7904,8 +7929,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(52),
- /* parameters */ ParameterIndex(242),
- /* return_matcher_indices */ MatcherIndicesIndex(88),
+ /* parameters */ ParameterIndex(246),
+ /* return_matcher_indices */ MatcherIndicesIndex(94),
/* const_eval_fn */ ConstEvalFunctionIndex(63),
},
{
@@ -7916,7 +7941,7 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(/* invalid */),
- /* return_matcher_indices */ MatcherIndicesIndex(122),
+ /* return_matcher_indices */ MatcherIndicesIndex(128),
/* const_eval_fn */ ConstEvalFunctionIndex(105),
},
{
@@ -7926,8 +7951,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
- /* parameters */ ParameterIndex(410),
- /* return_matcher_indices */ MatcherIndicesIndex(122),
+ /* parameters */ ParameterIndex(414),
+ /* return_matcher_indices */ MatcherIndicesIndex(128),
/* const_eval_fn */ ConstEvalFunctionIndex(106),
},
{
@@ -7938,7 +7963,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(73),
/* parameters */ ParameterIndex(1),
- /* return_matcher_indices */ MatcherIndicesIndex(122),
+ /* return_matcher_indices */ MatcherIndicesIndex(128),
/* const_eval_fn */ ConstEvalFunctionIndex(107),
},
{
@@ -7949,7 +7974,7 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(/* invalid */),
- /* return_matcher_indices */ MatcherIndicesIndex(128),
+ /* return_matcher_indices */ MatcherIndicesIndex(35),
/* const_eval_fn */ ConstEvalFunctionIndex(105),
},
{
@@ -7960,7 +7985,7 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(17),
- /* return_matcher_indices */ MatcherIndicesIndex(128),
+ /* return_matcher_indices */ MatcherIndicesIndex(35),
/* const_eval_fn */ ConstEvalFunctionIndex(106),
},
{
@@ -7971,7 +7996,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(74),
/* parameters */ ParameterIndex(1),
- /* return_matcher_indices */ MatcherIndicesIndex(128),
+ /* return_matcher_indices */ MatcherIndicesIndex(35),
/* const_eval_fn */ ConstEvalFunctionIndex(107),
},
{
@@ -7992,7 +8017,7 @@
/* num_explicit_templates */ 0,
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
- /* parameters */ ParameterIndex(398),
+ /* parameters */ ParameterIndex(402),
/* return_matcher_indices */ MatcherIndicesIndex(13),
/* const_eval_fn */ ConstEvalFunctionIndex(106),
},
@@ -8015,7 +8040,7 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(/* invalid */),
- /* return_matcher_indices */ MatcherIndicesIndex(257),
+ /* return_matcher_indices */ MatcherIndicesIndex(262),
/* const_eval_fn */ ConstEvalFunctionIndex(105),
},
{
@@ -8025,8 +8050,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
- /* parameters */ ParameterIndex(411),
- /* return_matcher_indices */ MatcherIndicesIndex(257),
+ /* parameters */ ParameterIndex(415),
+ /* return_matcher_indices */ MatcherIndicesIndex(262),
/* const_eval_fn */ ConstEvalFunctionIndex(106),
},
{
@@ -8037,7 +8062,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(76),
/* parameters */ ParameterIndex(1),
- /* return_matcher_indices */ MatcherIndicesIndex(257),
+ /* return_matcher_indices */ MatcherIndicesIndex(262),
/* const_eval_fn */ ConstEvalFunctionIndex(107),
},
{
@@ -8048,7 +8073,7 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(/* invalid */),
- /* return_matcher_indices */ MatcherIndicesIndex(41),
+ /* return_matcher_indices */ MatcherIndicesIndex(47),
/* const_eval_fn */ ConstEvalFunctionIndex(105),
},
{
@@ -8059,7 +8084,7 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(152),
- /* return_matcher_indices */ MatcherIndicesIndex(41),
+ /* return_matcher_indices */ MatcherIndicesIndex(47),
/* const_eval_fn */ ConstEvalFunctionIndex(106),
},
{
@@ -8070,7 +8095,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(77),
/* parameters */ ParameterIndex(1),
- /* return_matcher_indices */ MatcherIndicesIndex(41),
+ /* return_matcher_indices */ MatcherIndicesIndex(47),
/* const_eval_fn */ ConstEvalFunctionIndex(107),
},
{
@@ -8092,7 +8117,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(44),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(88),
+ /* return_matcher_indices */ MatcherIndicesIndex(94),
/* const_eval_fn */ ConstEvalFunctionIndex(0),
},
{
@@ -8114,7 +8139,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(18),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(88),
+ /* return_matcher_indices */ MatcherIndicesIndex(94),
/* const_eval_fn */ ConstEvalFunctionIndex(1),
},
{
@@ -8136,7 +8161,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(18),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(88),
+ /* return_matcher_indices */ MatcherIndicesIndex(94),
/* const_eval_fn */ ConstEvalFunctionIndex(2),
},
{
@@ -8147,7 +8172,7 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(152),
- /* return_matcher_indices */ MatcherIndicesIndex(41),
+ /* return_matcher_indices */ MatcherIndicesIndex(47),
/* const_eval_fn */ ConstEvalFunctionIndex(3),
},
{
@@ -8157,8 +8182,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(18),
- /* parameters */ ParameterIndex(244),
- /* return_matcher_indices */ MatcherIndicesIndex(41),
+ /* parameters */ ParameterIndex(248),
+ /* return_matcher_indices */ MatcherIndicesIndex(47),
/* const_eval_fn */ ConstEvalFunctionIndex(3),
},
{
@@ -8169,7 +8194,7 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(152),
- /* return_matcher_indices */ MatcherIndicesIndex(41),
+ /* return_matcher_indices */ MatcherIndicesIndex(47),
/* const_eval_fn */ ConstEvalFunctionIndex(4),
},
{
@@ -8179,8 +8204,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(18),
- /* parameters */ ParameterIndex(244),
- /* return_matcher_indices */ MatcherIndicesIndex(41),
+ /* parameters */ ParameterIndex(248),
+ /* return_matcher_indices */ MatcherIndicesIndex(47),
/* const_eval_fn */ ConstEvalFunctionIndex(4),
},
{
@@ -8202,7 +8227,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(18),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(88),
+ /* return_matcher_indices */ MatcherIndicesIndex(94),
/* const_eval_fn */ ConstEvalFunctionIndex(5),
},
{
@@ -8224,7 +8249,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(18),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(88),
+ /* return_matcher_indices */ MatcherIndicesIndex(94),
/* const_eval_fn */ ConstEvalFunctionIndex(6),
},
{
@@ -8246,7 +8271,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(18),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(88),
+ /* return_matcher_indices */ MatcherIndicesIndex(94),
/* const_eval_fn */ ConstEvalFunctionIndex(7),
},
{
@@ -8267,8 +8292,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(23),
- /* parameters */ ParameterIndex(230),
- /* return_matcher_indices */ MatcherIndicesIndex(94),
+ /* parameters */ ParameterIndex(234),
+ /* return_matcher_indices */ MatcherIndicesIndex(100),
/* const_eval_fn */ ConstEvalFunctionIndex(8),
},
{
@@ -8290,7 +8315,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(18),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(88),
+ /* return_matcher_indices */ MatcherIndicesIndex(94),
/* const_eval_fn */ ConstEvalFunctionIndex(9),
},
{
@@ -8312,7 +8337,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(18),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(88),
+ /* return_matcher_indices */ MatcherIndicesIndex(94),
/* const_eval_fn */ ConstEvalFunctionIndex(10),
},
{
@@ -8333,8 +8358,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(45),
- /* parameters */ ParameterIndex(230),
- /* return_matcher_indices */ MatcherIndicesIndex(94),
+ /* parameters */ ParameterIndex(234),
+ /* return_matcher_indices */ MatcherIndicesIndex(100),
/* const_eval_fn */ ConstEvalFunctionIndex(11),
},
{
@@ -8356,7 +8381,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(18),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(88),
+ /* return_matcher_indices */ MatcherIndicesIndex(94),
/* const_eval_fn */ ConstEvalFunctionIndex(12),
},
{
@@ -8378,7 +8403,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(18),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(88),
+ /* return_matcher_indices */ MatcherIndicesIndex(94),
/* const_eval_fn */ ConstEvalFunctionIndex(13),
},
{
@@ -8400,7 +8425,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(46),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(88),
+ /* return_matcher_indices */ MatcherIndicesIndex(94),
/* const_eval_fn */ ConstEvalFunctionIndex(14),
},
{
@@ -8422,7 +8447,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(46),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(88),
+ /* return_matcher_indices */ MatcherIndicesIndex(94),
/* const_eval_fn */ ConstEvalFunctionIndex(15),
},
{
@@ -8444,7 +8469,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(46),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(88),
+ /* return_matcher_indices */ MatcherIndicesIndex(94),
/* const_eval_fn */ ConstEvalFunctionIndex(16),
},
{
@@ -8466,7 +8491,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(18),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(88),
+ /* return_matcher_indices */ MatcherIndicesIndex(94),
/* const_eval_fn */ ConstEvalFunctionIndex(18),
},
{
@@ -8498,7 +8523,7 @@
/* num_explicit_templates */ 0,
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
- /* parameters */ ParameterIndex(398),
+ /* parameters */ ParameterIndex(402),
/* return_matcher_indices */ MatcherIndicesIndex(13),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -8509,8 +8534,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(18),
- /* parameters */ ParameterIndex(399),
- /* return_matcher_indices */ MatcherIndicesIndex(97),
+ /* parameters */ ParameterIndex(403),
+ /* return_matcher_indices */ MatcherIndicesIndex(103),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -8532,7 +8557,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(18),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(88),
+ /* return_matcher_indices */ MatcherIndicesIndex(94),
/* const_eval_fn */ ConstEvalFunctionIndex(24),
},
{
@@ -8554,7 +8579,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(18),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(88),
+ /* return_matcher_indices */ MatcherIndicesIndex(94),
/* const_eval_fn */ ConstEvalFunctionIndex(25),
},
{
@@ -8576,7 +8601,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(46),
/* parameters */ ParameterIndex(155),
- /* return_matcher_indices */ MatcherIndicesIndex(88),
+ /* return_matcher_indices */ MatcherIndicesIndex(94),
/* const_eval_fn */ ConstEvalFunctionIndex(26),
},
{
@@ -8598,7 +8623,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(46),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(88),
+ /* return_matcher_indices */ MatcherIndicesIndex(94),
/* const_eval_fn */ ConstEvalFunctionIndex(28),
},
{
@@ -8620,7 +8645,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(46),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(88),
+ /* return_matcher_indices */ MatcherIndicesIndex(94),
/* const_eval_fn */ ConstEvalFunctionIndex(29),
},
{
@@ -8642,7 +8667,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(18),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(88),
+ /* return_matcher_indices */ MatcherIndicesIndex(94),
/* const_eval_fn */ ConstEvalFunctionIndex(30),
},
{
@@ -8663,8 +8688,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(18),
- /* parameters */ ParameterIndex(235),
- /* return_matcher_indices */ MatcherIndicesIndex(88),
+ /* parameters */ ParameterIndex(239),
+ /* return_matcher_indices */ MatcherIndicesIndex(94),
/* const_eval_fn */ ConstEvalFunctionIndex(31),
},
{
@@ -8686,7 +8711,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(18),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(88),
+ /* return_matcher_indices */ MatcherIndicesIndex(94),
/* const_eval_fn */ ConstEvalFunctionIndex(32),
},
{
@@ -8697,7 +8722,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(14),
/* parameters */ ParameterIndex(1),
- /* return_matcher_indices */ MatcherIndicesIndex(210),
+ /* return_matcher_indices */ MatcherIndicesIndex(215),
/* const_eval_fn */ ConstEvalFunctionIndex(33),
},
{
@@ -8708,7 +8733,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(18),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(100),
+ /* return_matcher_indices */ MatcherIndicesIndex(106),
/* const_eval_fn */ ConstEvalFunctionIndex(33),
},
{
@@ -8730,7 +8755,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(46),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(88),
+ /* return_matcher_indices */ MatcherIndicesIndex(94),
/* const_eval_fn */ ConstEvalFunctionIndex(34),
},
{
@@ -8752,7 +8777,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(18),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(88),
+ /* return_matcher_indices */ MatcherIndicesIndex(94),
/* const_eval_fn */ ConstEvalFunctionIndex(35),
},
{
@@ -8762,7 +8787,7 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(19),
- /* parameters */ ParameterIndex(315),
+ /* parameters */ ParameterIndex(319),
/* return_matcher_indices */ MatcherIndicesIndex(6),
/* const_eval_fn */ ConstEvalFunctionIndex(36),
},
@@ -8773,8 +8798,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 3,
/* templates */ TemplateIndex(18),
- /* parameters */ ParameterIndex(317),
- /* return_matcher_indices */ MatcherIndicesIndex(88),
+ /* parameters */ ParameterIndex(321),
+ /* return_matcher_indices */ MatcherIndicesIndex(94),
/* const_eval_fn */ ConstEvalFunctionIndex(36),
},
{
@@ -8818,7 +8843,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(18),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(88),
+ /* return_matcher_indices */ MatcherIndicesIndex(94),
/* const_eval_fn */ ConstEvalFunctionIndex(38),
},
{
@@ -8840,7 +8865,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(18),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(88),
+ /* return_matcher_indices */ MatcherIndicesIndex(94),
/* const_eval_fn */ ConstEvalFunctionIndex(39),
},
{
@@ -8862,7 +8887,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(44),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(88),
+ /* return_matcher_indices */ MatcherIndicesIndex(94),
/* const_eval_fn */ ConstEvalFunctionIndex(40),
},
{
@@ -8884,7 +8909,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(44),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(88),
+ /* return_matcher_indices */ MatcherIndicesIndex(94),
/* const_eval_fn */ ConstEvalFunctionIndex(41),
},
{
@@ -8895,7 +8920,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(14),
/* parameters */ ParameterIndex(1),
- /* return_matcher_indices */ MatcherIndicesIndex(212),
+ /* return_matcher_indices */ MatcherIndicesIndex(217),
/* const_eval_fn */ ConstEvalFunctionIndex(43),
},
{
@@ -8906,7 +8931,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(18),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(106),
+ /* return_matcher_indices */ MatcherIndicesIndex(112),
/* const_eval_fn */ ConstEvalFunctionIndex(43),
},
{
@@ -8928,7 +8953,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(18),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(88),
+ /* return_matcher_indices */ MatcherIndicesIndex(94),
/* const_eval_fn */ ConstEvalFunctionIndex(54),
},
{
@@ -8938,7 +8963,7 @@
/* num_explicit_templates */ 0,
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
- /* parameters */ ParameterIndex(398),
+ /* parameters */ ParameterIndex(402),
/* return_matcher_indices */ MatcherIndicesIndex(13),
/* const_eval_fn */ ConstEvalFunctionIndex(55),
},
@@ -8949,8 +8974,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(18),
- /* parameters */ ParameterIndex(399),
- /* return_matcher_indices */ MatcherIndicesIndex(97),
+ /* parameters */ ParameterIndex(403),
+ /* return_matcher_indices */ MatcherIndicesIndex(103),
/* const_eval_fn */ ConstEvalFunctionIndex(55),
},
{
@@ -8972,7 +8997,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(18),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(88),
+ /* return_matcher_indices */ MatcherIndicesIndex(94),
/* const_eval_fn */ ConstEvalFunctionIndex(56),
},
{
@@ -8994,7 +9019,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(46),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(88),
+ /* return_matcher_indices */ MatcherIndicesIndex(94),
/* const_eval_fn */ ConstEvalFunctionIndex(59),
},
{
@@ -9016,7 +9041,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(18),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(88),
+ /* return_matcher_indices */ MatcherIndicesIndex(94),
/* const_eval_fn */ ConstEvalFunctionIndex(60),
},
{
@@ -9037,8 +9062,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(23),
- /* parameters */ ParameterIndex(230),
- /* return_matcher_indices */ MatcherIndicesIndex(94),
+ /* parameters */ ParameterIndex(234),
+ /* return_matcher_indices */ MatcherIndicesIndex(100),
/* const_eval_fn */ ConstEvalFunctionIndex(61),
},
{
@@ -9060,7 +9085,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(54),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(88),
+ /* return_matcher_indices */ MatcherIndicesIndex(94),
/* const_eval_fn */ ConstEvalFunctionIndex(64),
},
{
@@ -9082,7 +9107,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(18),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(88),
+ /* return_matcher_indices */ MatcherIndicesIndex(94),
/* const_eval_fn */ ConstEvalFunctionIndex(65),
},
{
@@ -9104,7 +9129,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(18),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(88),
+ /* return_matcher_indices */ MatcherIndicesIndex(94),
/* const_eval_fn */ ConstEvalFunctionIndex(66),
},
{
@@ -9125,8 +9150,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(18),
- /* parameters */ ParameterIndex(235),
- /* return_matcher_indices */ MatcherIndicesIndex(88),
+ /* parameters */ ParameterIndex(239),
+ /* return_matcher_indices */ MatcherIndicesIndex(94),
/* const_eval_fn */ ConstEvalFunctionIndex(67),
},
{
@@ -9148,7 +9173,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(18),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(88),
+ /* return_matcher_indices */ MatcherIndicesIndex(94),
/* const_eval_fn */ ConstEvalFunctionIndex(68),
},
{
@@ -9170,7 +9195,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(18),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(88),
+ /* return_matcher_indices */ MatcherIndicesIndex(94),
/* const_eval_fn */ ConstEvalFunctionIndex(69),
},
{
@@ -9192,7 +9217,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(18),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(88),
+ /* return_matcher_indices */ MatcherIndicesIndex(94),
/* const_eval_fn */ ConstEvalFunctionIndex(70),
},
{
@@ -9214,7 +9239,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(18),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(88),
+ /* return_matcher_indices */ MatcherIndicesIndex(94),
/* const_eval_fn */ ConstEvalFunctionIndex(71),
},
{
@@ -9236,7 +9261,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(18),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(88),
+ /* return_matcher_indices */ MatcherIndicesIndex(94),
/* const_eval_fn */ ConstEvalFunctionIndex(73),
},
{
@@ -9246,8 +9271,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(6),
- /* parameters */ ParameterIndex(288),
- /* return_matcher_indices */ MatcherIndicesIndex(128),
+ /* parameters */ ParameterIndex(292),
+ /* return_matcher_indices */ MatcherIndicesIndex(35),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -9257,8 +9282,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
- /* parameters */ ParameterIndex(294),
- /* return_matcher_indices */ MatcherIndicesIndex(128),
+ /* parameters */ ParameterIndex(298),
+ /* return_matcher_indices */ MatcherIndicesIndex(35),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -9279,7 +9304,7 @@
/* num_explicit_templates */ 0,
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
- /* parameters */ ParameterIndex(249),
+ /* parameters */ ParameterIndex(253),
/* return_matcher_indices */ MatcherIndicesIndex(12),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -9290,7 +9315,7 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(45),
- /* parameters */ ParameterIndex(359),
+ /* parameters */ ParameterIndex(363),
/* return_matcher_indices */ MatcherIndicesIndex(6),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -9301,8 +9326,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(44),
- /* parameters */ ParameterIndex(361),
- /* return_matcher_indices */ MatcherIndicesIndex(88),
+ /* parameters */ ParameterIndex(365),
+ /* return_matcher_indices */ MatcherIndicesIndex(94),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -9312,7 +9337,7 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(45),
- /* parameters */ ParameterIndex(359),
+ /* parameters */ ParameterIndex(363),
/* return_matcher_indices */ MatcherIndicesIndex(6),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -9323,8 +9348,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(44),
- /* parameters */ ParameterIndex(361),
- /* return_matcher_indices */ MatcherIndicesIndex(88),
+ /* parameters */ ParameterIndex(365),
+ /* return_matcher_indices */ MatcherIndicesIndex(94),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -9334,41 +9359,41 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(45),
- /* parameters */ ParameterIndex(363),
- /* 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(44),
- /* parameters */ ParameterIndex(365),
- /* return_matcher_indices */ MatcherIndicesIndex(88),
- /* 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(45),
/* parameters */ ParameterIndex(367),
/* return_matcher_indices */ MatcherIndicesIndex(6),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [412] */
+ /* [410] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(44),
/* parameters */ ParameterIndex(369),
- /* return_matcher_indices */ MatcherIndicesIndex(88),
+ /* return_matcher_indices */ MatcherIndicesIndex(94),
+ /* 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(45),
+ /* parameters */ ParameterIndex(371),
+ /* 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(44),
+ /* parameters */ ParameterIndex(373),
+ /* return_matcher_indices */ MatcherIndicesIndex(94),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -9378,7 +9403,7 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(47),
- /* parameters */ ParameterIndex(359),
+ /* parameters */ ParameterIndex(363),
/* return_matcher_indices */ MatcherIndicesIndex(6),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -9389,8 +9414,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(46),
- /* parameters */ ParameterIndex(361),
- /* return_matcher_indices */ MatcherIndicesIndex(88),
+ /* parameters */ ParameterIndex(365),
+ /* return_matcher_indices */ MatcherIndicesIndex(94),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -9400,7 +9425,7 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(45),
- /* parameters */ ParameterIndex(371),
+ /* parameters */ ParameterIndex(375),
/* return_matcher_indices */ MatcherIndicesIndex(6),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -9411,8 +9436,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(44),
- /* parameters */ ParameterIndex(373),
- /* return_matcher_indices */ MatcherIndicesIndex(88),
+ /* parameters */ ParameterIndex(377),
+ /* return_matcher_indices */ MatcherIndicesIndex(94),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -9422,7 +9447,7 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(45),
- /* parameters */ ParameterIndex(371),
+ /* parameters */ ParameterIndex(375),
/* return_matcher_indices */ MatcherIndicesIndex(6),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -9433,53 +9458,53 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(44),
- /* parameters */ ParameterIndex(373),
- /* return_matcher_indices */ MatcherIndicesIndex(88),
+ /* parameters */ ParameterIndex(377),
+ /* return_matcher_indices */ MatcherIndicesIndex(94),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
/* [419] */
- /* 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(41),
- /* const_eval_fn */ ConstEvalFunctionIndex(81),
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline),
+ /* num_parameters */ 4,
+ /* num_explicit_templates */ 1,
+ /* num_templates */ 5,
+ /* templates */ TemplateIndex(0),
+ /* parameters */ ParameterIndex(210),
+ /* return_matcher_indices */ MatcherIndicesIndex(6),
+ /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
/* [420] */
- /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 1,
- /* num_explicit_templates */ 0,
- /* num_templates */ 1,
- /* templates */ TemplateIndex(18),
- /* parameters */ ParameterIndex(244),
- /* return_matcher_indices */ MatcherIndicesIndex(91),
- /* const_eval_fn */ ConstEvalFunctionIndex(81),
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline),
+ /* num_parameters */ 4,
+ /* num_explicit_templates */ 1,
+ /* num_templates */ 6,
+ /* templates */ TemplateIndex(0),
+ /* parameters */ ParameterIndex(214),
+ /* return_matcher_indices */ MatcherIndicesIndex(6),
+ /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
/* [421] */
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_explicit_templates */ 0,
- /* num_templates */ 1,
- /* templates */ TemplateIndex(47),
- /* parameters */ ParameterIndex(1),
- /* return_matcher_indices */ MatcherIndicesIndex(6),
- /* const_eval_fn */ ConstEvalFunctionIndex(82),
+ /* num_templates */ 0,
+ /* templates */ TemplateIndex(/* invalid */),
+ /* parameters */ ParameterIndex(152),
+ /* return_matcher_indices */ MatcherIndicesIndex(47),
+ /* const_eval_fn */ ConstEvalFunctionIndex(81),
},
{
/* [422] */
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_explicit_templates */ 0,
- /* num_templates */ 2,
- /* templates */ TemplateIndex(61),
- /* parameters */ ParameterIndex(230),
- /* return_matcher_indices */ MatcherIndicesIndex(94),
- /* const_eval_fn */ ConstEvalFunctionIndex(82),
+ /* num_templates */ 1,
+ /* templates */ TemplateIndex(18),
+ /* parameters */ ParameterIndex(248),
+ /* return_matcher_indices */ MatcherIndicesIndex(97),
+ /* const_eval_fn */ ConstEvalFunctionIndex(81),
},
{
/* [423] */
@@ -9487,10 +9512,10 @@
/* num_parameters */ 1,
/* num_explicit_templates */ 0,
/* num_templates */ 1,
- /* templates */ TemplateIndex(55),
+ /* templates */ TemplateIndex(47),
/* parameters */ ParameterIndex(1),
/* return_matcher_indices */ MatcherIndicesIndex(6),
- /* const_eval_fn */ ConstEvalFunctionIndex(83),
+ /* const_eval_fn */ ConstEvalFunctionIndex(82),
},
{
/* [424] */
@@ -9498,14 +9523,36 @@
/* num_parameters */ 1,
/* num_explicit_templates */ 0,
/* num_templates */ 2,
- /* templates */ TemplateIndex(55),
- /* parameters */ ParameterIndex(230),
- /* return_matcher_indices */ MatcherIndicesIndex(94),
- /* const_eval_fn */ ConstEvalFunctionIndex(83),
+ /* templates */ TemplateIndex(61),
+ /* parameters */ ParameterIndex(234),
+ /* return_matcher_indices */ MatcherIndicesIndex(100),
+ /* const_eval_fn */ ConstEvalFunctionIndex(82),
},
{
/* [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(55),
+ /* parameters */ ParameterIndex(1),
+ /* return_matcher_indices */ MatcherIndicesIndex(6),
+ /* const_eval_fn */ ConstEvalFunctionIndex(83),
+ },
+ {
+ /* [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(55),
+ /* parameters */ ParameterIndex(234),
+ /* return_matcher_indices */ MatcherIndicesIndex(100),
+ /* const_eval_fn */ ConstEvalFunctionIndex(83),
+ },
+ {
+ /* [427] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
/* num_explicit_templates */ 0,
/* num_templates */ 1,
@@ -9515,37 +9562,15 @@
/* const_eval_fn */ ConstEvalFunctionIndex(92),
},
{
- /* [426] */
- /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 2,
- /* num_explicit_templates */ 0,
- /* num_templates */ 2,
- /* templates */ TemplateIndex(61),
- /* parameters */ ParameterIndex(230),
- /* return_matcher_indices */ MatcherIndicesIndex(94),
- /* const_eval_fn */ ConstEvalFunctionIndex(92),
- },
- {
- /* [427] */
- /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 2,
- /* num_explicit_templates */ 0,
- /* num_templates */ 1,
- /* templates */ TemplateIndex(51),
- /* parameters */ ParameterIndex(1),
- /* return_matcher_indices */ MatcherIndicesIndex(41),
- /* const_eval_fn */ ConstEvalFunctionIndex(97),
- },
- {
/* [428] */
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
/* num_explicit_templates */ 0,
/* num_templates */ 2,
- /* templates */ TemplateIndex(51),
- /* parameters */ ParameterIndex(230),
- /* return_matcher_indices */ MatcherIndicesIndex(204),
- /* const_eval_fn */ ConstEvalFunctionIndex(97),
+ /* templates */ TemplateIndex(61),
+ /* parameters */ ParameterIndex(234),
+ /* return_matcher_indices */ MatcherIndicesIndex(100),
+ /* const_eval_fn */ ConstEvalFunctionIndex(92),
},
{
/* [429] */
@@ -9555,8 +9580,8 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(51),
/* parameters */ ParameterIndex(1),
- /* return_matcher_indices */ MatcherIndicesIndex(41),
- /* const_eval_fn */ ConstEvalFunctionIndex(98),
+ /* return_matcher_indices */ MatcherIndicesIndex(47),
+ /* const_eval_fn */ ConstEvalFunctionIndex(97),
},
{
/* [430] */
@@ -9565,9 +9590,9 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(51),
- /* parameters */ ParameterIndex(230),
- /* return_matcher_indices */ MatcherIndicesIndex(204),
- /* const_eval_fn */ ConstEvalFunctionIndex(98),
+ /* parameters */ ParameterIndex(234),
+ /* return_matcher_indices */ MatcherIndicesIndex(209),
+ /* const_eval_fn */ ConstEvalFunctionIndex(97),
},
{
/* [431] */
@@ -9575,10 +9600,10 @@
/* num_parameters */ 2,
/* num_explicit_templates */ 0,
/* num_templates */ 1,
- /* templates */ TemplateIndex(45),
+ /* templates */ TemplateIndex(51),
/* parameters */ ParameterIndex(1),
- /* return_matcher_indices */ MatcherIndicesIndex(41),
- /* const_eval_fn */ ConstEvalFunctionIndex(99),
+ /* return_matcher_indices */ MatcherIndicesIndex(47),
+ /* const_eval_fn */ ConstEvalFunctionIndex(98),
},
{
/* [432] */
@@ -9586,10 +9611,10 @@
/* num_parameters */ 2,
/* num_explicit_templates */ 0,
/* num_templates */ 2,
- /* templates */ TemplateIndex(45),
- /* parameters */ ParameterIndex(230),
- /* return_matcher_indices */ MatcherIndicesIndex(204),
- /* const_eval_fn */ ConstEvalFunctionIndex(99),
+ /* templates */ TemplateIndex(51),
+ /* parameters */ ParameterIndex(234),
+ /* return_matcher_indices */ MatcherIndicesIndex(209),
+ /* const_eval_fn */ ConstEvalFunctionIndex(98),
},
{
/* [433] */
@@ -9599,8 +9624,8 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(45),
/* parameters */ ParameterIndex(1),
- /* return_matcher_indices */ MatcherIndicesIndex(41),
- /* const_eval_fn */ ConstEvalFunctionIndex(100),
+ /* return_matcher_indices */ MatcherIndicesIndex(47),
+ /* const_eval_fn */ ConstEvalFunctionIndex(99),
},
{
/* [434] */
@@ -9609,9 +9634,9 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(45),
- /* parameters */ ParameterIndex(230),
- /* return_matcher_indices */ MatcherIndicesIndex(204),
- /* const_eval_fn */ ConstEvalFunctionIndex(100),
+ /* parameters */ ParameterIndex(234),
+ /* return_matcher_indices */ MatcherIndicesIndex(209),
+ /* const_eval_fn */ ConstEvalFunctionIndex(99),
},
{
/* [435] */
@@ -9621,8 +9646,8 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(45),
/* parameters */ ParameterIndex(1),
- /* return_matcher_indices */ MatcherIndicesIndex(41),
- /* const_eval_fn */ ConstEvalFunctionIndex(101),
+ /* return_matcher_indices */ MatcherIndicesIndex(47),
+ /* const_eval_fn */ ConstEvalFunctionIndex(100),
},
{
/* [436] */
@@ -9631,9 +9656,9 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(45),
- /* parameters */ ParameterIndex(230),
- /* return_matcher_indices */ MatcherIndicesIndex(204),
- /* const_eval_fn */ ConstEvalFunctionIndex(101),
+ /* parameters */ ParameterIndex(234),
+ /* return_matcher_indices */ MatcherIndicesIndex(209),
+ /* const_eval_fn */ ConstEvalFunctionIndex(100),
},
{
/* [437] */
@@ -9643,8 +9668,8 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(45),
/* parameters */ ParameterIndex(1),
- /* return_matcher_indices */ MatcherIndicesIndex(41),
- /* const_eval_fn */ ConstEvalFunctionIndex(102),
+ /* return_matcher_indices */ MatcherIndicesIndex(47),
+ /* const_eval_fn */ ConstEvalFunctionIndex(101),
},
{
/* [438] */
@@ -9653,9 +9678,9 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(45),
- /* parameters */ ParameterIndex(230),
- /* return_matcher_indices */ MatcherIndicesIndex(204),
- /* const_eval_fn */ ConstEvalFunctionIndex(102),
+ /* parameters */ ParameterIndex(234),
+ /* return_matcher_indices */ MatcherIndicesIndex(209),
+ /* const_eval_fn */ ConstEvalFunctionIndex(101),
},
{
/* [439] */
@@ -9663,10 +9688,10 @@
/* num_parameters */ 2,
/* num_explicit_templates */ 0,
/* num_templates */ 1,
- /* templates */ TemplateIndex(47),
- /* parameters */ ParameterIndex(16),
- /* return_matcher_indices */ MatcherIndicesIndex(6),
- /* const_eval_fn */ ConstEvalFunctionIndex(103),
+ /* templates */ TemplateIndex(45),
+ /* parameters */ ParameterIndex(1),
+ /* return_matcher_indices */ MatcherIndicesIndex(47),
+ /* const_eval_fn */ ConstEvalFunctionIndex(102),
},
{
/* [440] */
@@ -9674,10 +9699,10 @@
/* num_parameters */ 2,
/* num_explicit_templates */ 0,
/* num_templates */ 2,
- /* templates */ TemplateIndex(61),
- /* parameters */ ParameterIndex(379),
- /* return_matcher_indices */ MatcherIndicesIndex(94),
- /* const_eval_fn */ ConstEvalFunctionIndex(103),
+ /* templates */ TemplateIndex(45),
+ /* parameters */ ParameterIndex(234),
+ /* return_matcher_indices */ MatcherIndicesIndex(209),
+ /* const_eval_fn */ ConstEvalFunctionIndex(102),
},
{
/* [441] */
@@ -9688,7 +9713,7 @@
/* templates */ TemplateIndex(47),
/* parameters */ ParameterIndex(16),
/* return_matcher_indices */ MatcherIndicesIndex(6),
- /* const_eval_fn */ ConstEvalFunctionIndex(104),
+ /* const_eval_fn */ ConstEvalFunctionIndex(103),
},
{
/* [442] */
@@ -9697,31 +9722,31 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(61),
- /* parameters */ ParameterIndex(379),
- /* return_matcher_indices */ MatcherIndicesIndex(94),
- /* const_eval_fn */ ConstEvalFunctionIndex(104),
+ /* parameters */ ParameterIndex(383),
+ /* return_matcher_indices */ MatcherIndicesIndex(100),
+ /* const_eval_fn */ ConstEvalFunctionIndex(103),
},
{
/* [443] */
- /* 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(396),
- /* return_matcher_indices */ MatcherIndicesIndex(128),
- /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
- },
- {
- /* [444] */
- /* 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(14),
- /* parameters */ ParameterIndex(222),
- /* return_matcher_indices */ MatcherIndicesIndex(5),
- /* const_eval_fn */ ConstEvalFunctionIndex(17),
+ /* templates */ TemplateIndex(47),
+ /* parameters */ ParameterIndex(16),
+ /* return_matcher_indices */ MatcherIndicesIndex(6),
+ /* const_eval_fn */ ConstEvalFunctionIndex(104),
+ },
+ {
+ /* [444] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 2,
+ /* num_explicit_templates */ 0,
+ /* num_templates */ 2,
+ /* templates */ TemplateIndex(61),
+ /* parameters */ ParameterIndex(383),
+ /* return_matcher_indices */ MatcherIndicesIndex(100),
+ /* const_eval_fn */ ConstEvalFunctionIndex(104),
},
{
/* [445] */
@@ -9729,13 +9754,35 @@
/* num_parameters */ 1,
/* num_explicit_templates */ 0,
/* num_templates */ 2,
+ /* templates */ TemplateIndex(49),
+ /* parameters */ ParameterIndex(400),
+ /* return_matcher_indices */ MatcherIndicesIndex(35),
+ /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+ },
+ {
+ /* [446] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 2,
+ /* num_explicit_templates */ 0,
+ /* num_templates */ 1,
+ /* templates */ TemplateIndex(14),
+ /* parameters */ ParameterIndex(226),
+ /* return_matcher_indices */ MatcherIndicesIndex(5),
+ /* const_eval_fn */ ConstEvalFunctionIndex(17),
+ },
+ {
+ /* [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(18),
- /* parameters */ ParameterIndex(397),
+ /* parameters */ ParameterIndex(401),
/* return_matcher_indices */ MatcherIndicesIndex(10),
/* const_eval_fn */ ConstEvalFunctionIndex(19),
},
{
- /* [446] */
+ /* [448] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
/* num_explicit_templates */ 0,
@@ -9746,18 +9793,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(21),
},
{
- /* [447] */
- /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, 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(122),
- /* const_eval_fn */ ConstEvalFunctionIndex(22),
- },
- {
- /* [448] */
+ /* [449] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
/* num_explicit_templates */ 0,
@@ -9765,51 +9801,40 @@
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(17),
/* return_matcher_indices */ MatcherIndicesIndex(128),
+ /* const_eval_fn */ ConstEvalFunctionIndex(22),
+ },
+ {
+ /* [450] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, 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),
},
{
- /* [449] */
+ /* [451] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 3,
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(18),
- /* parameters */ ParameterIndex(235),
- /* return_matcher_indices */ MatcherIndicesIndex(88),
+ /* parameters */ ParameterIndex(239),
+ /* return_matcher_indices */ MatcherIndicesIndex(94),
/* const_eval_fn */ ConstEvalFunctionIndex(27),
},
{
- /* [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(18),
- /* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(88),
- /* const_eval_fn */ ConstEvalFunctionIndex(44),
- },
- {
- /* [451] */
- /* 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(400),
- /* return_matcher_indices */ MatcherIndicesIndex(128),
- /* const_eval_fn */ ConstEvalFunctionIndex(45),
- },
- {
/* [452] */
/* 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(400),
- /* return_matcher_indices */ MatcherIndicesIndex(128),
- /* const_eval_fn */ ConstEvalFunctionIndex(46),
+ /* num_templates */ 2,
+ /* templates */ TemplateIndex(18),
+ /* parameters */ ParameterIndex(154),
+ /* return_matcher_indices */ MatcherIndicesIndex(94),
+ /* const_eval_fn */ ConstEvalFunctionIndex(44),
},
{
/* [453] */
@@ -9818,9 +9843,9 @@
/* num_explicit_templates */ 0,
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
- /* parameters */ ParameterIndex(400),
- /* return_matcher_indices */ MatcherIndicesIndex(128),
- /* const_eval_fn */ ConstEvalFunctionIndex(47),
+ /* parameters */ ParameterIndex(404),
+ /* return_matcher_indices */ MatcherIndicesIndex(35),
+ /* const_eval_fn */ ConstEvalFunctionIndex(45),
},
{
/* [454] */
@@ -9829,9 +9854,9 @@
/* num_explicit_templates */ 0,
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
- /* parameters */ ParameterIndex(401),
- /* return_matcher_indices */ MatcherIndicesIndex(128),
- /* const_eval_fn */ ConstEvalFunctionIndex(48),
+ /* parameters */ ParameterIndex(404),
+ /* return_matcher_indices */ MatcherIndicesIndex(35),
+ /* const_eval_fn */ ConstEvalFunctionIndex(46),
},
{
/* [455] */
@@ -9840,9 +9865,9 @@
/* num_explicit_templates */ 0,
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
- /* parameters */ ParameterIndex(401),
- /* return_matcher_indices */ MatcherIndicesIndex(128),
- /* const_eval_fn */ ConstEvalFunctionIndex(49),
+ /* parameters */ ParameterIndex(404),
+ /* return_matcher_indices */ MatcherIndicesIndex(35),
+ /* const_eval_fn */ ConstEvalFunctionIndex(47),
},
{
/* [456] */
@@ -9851,9 +9876,9 @@
/* num_explicit_templates */ 0,
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
- /* parameters */ ParameterIndex(402),
- /* return_matcher_indices */ MatcherIndicesIndex(128),
- /* const_eval_fn */ ConstEvalFunctionIndex(50),
+ /* parameters */ ParameterIndex(405),
+ /* return_matcher_indices */ MatcherIndicesIndex(35),
+ /* const_eval_fn */ ConstEvalFunctionIndex(48),
},
{
/* [457] */
@@ -9862,9 +9887,9 @@
/* num_explicit_templates */ 0,
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
- /* parameters */ ParameterIndex(403),
- /* return_matcher_indices */ MatcherIndicesIndex(128),
- /* const_eval_fn */ ConstEvalFunctionIndex(51),
+ /* parameters */ ParameterIndex(405),
+ /* return_matcher_indices */ MatcherIndicesIndex(35),
+ /* const_eval_fn */ ConstEvalFunctionIndex(49),
},
{
/* [458] */
@@ -9873,9 +9898,9 @@
/* num_explicit_templates */ 0,
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
- /* parameters */ ParameterIndex(402),
- /* return_matcher_indices */ MatcherIndicesIndex(128),
- /* const_eval_fn */ ConstEvalFunctionIndex(52),
+ /* parameters */ ParameterIndex(406),
+ /* return_matcher_indices */ MatcherIndicesIndex(35),
+ /* const_eval_fn */ ConstEvalFunctionIndex(50),
},
{
/* [459] */
@@ -9884,34 +9909,56 @@
/* num_explicit_templates */ 0,
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
- /* parameters */ ParameterIndex(403),
- /* return_matcher_indices */ MatcherIndicesIndex(128),
- /* const_eval_fn */ ConstEvalFunctionIndex(53),
+ /* parameters */ ParameterIndex(407),
+ /* return_matcher_indices */ MatcherIndicesIndex(35),
+ /* const_eval_fn */ ConstEvalFunctionIndex(51),
},
{
/* [460] */
/* 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(406),
+ /* return_matcher_indices */ MatcherIndicesIndex(35),
+ /* const_eval_fn */ ConstEvalFunctionIndex(52),
+ },
+ {
+ /* [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(407),
+ /* return_matcher_indices */ MatcherIndicesIndex(35),
+ /* const_eval_fn */ ConstEvalFunctionIndex(53),
+ },
+ {
+ /* [462] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(18),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(88),
+ /* return_matcher_indices */ MatcherIndicesIndex(94),
/* const_eval_fn */ ConstEvalFunctionIndex(57),
},
{
- /* [461] */
+ /* [463] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 3,
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(18),
- /* parameters */ ParameterIndex(236),
- /* return_matcher_indices */ MatcherIndicesIndex(88),
+ /* parameters */ ParameterIndex(240),
+ /* return_matcher_indices */ MatcherIndicesIndex(94),
/* const_eval_fn */ ConstEvalFunctionIndex(58),
},
{
- /* [462] */
+ /* [464] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline),
/* num_parameters */ 0,
/* num_explicit_templates */ 0,
@@ -9922,39 +9969,17 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [463] */
+ /* [465] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_explicit_templates */ 0,
/* num_templates */ 3,
/* templates */ TemplateIndex(21),
- /* parameters */ ParameterIndex(404),
- /* return_matcher_indices */ MatcherIndicesIndex(64),
+ /* parameters */ ParameterIndex(408),
+ /* return_matcher_indices */ MatcherIndicesIndex(70),
/* const_eval_fn */ ConstEvalFunctionIndex(72),
},
{
- /* [464] */
- /* 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),
- /* const_eval_fn */ ConstEvalFunctionIndex(74),
- },
- {
- /* [465] */
- /* 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),
- /* const_eval_fn */ ConstEvalFunctionIndex(75),
- },
- {
/* [466] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
@@ -9963,7 +9988,7 @@
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(17),
/* return_matcher_indices */ MatcherIndicesIndex(23),
- /* const_eval_fn */ ConstEvalFunctionIndex(76),
+ /* const_eval_fn */ ConstEvalFunctionIndex(74),
},
{
/* [467] */
@@ -9973,11 +9998,33 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(17),
+ /* return_matcher_indices */ MatcherIndicesIndex(23),
+ /* const_eval_fn */ ConstEvalFunctionIndex(75),
+ },
+ {
+ /* [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(17),
+ /* return_matcher_indices */ MatcherIndicesIndex(23),
+ /* const_eval_fn */ ConstEvalFunctionIndex(76),
+ },
+ {
+ /* [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(17),
/* return_matcher_indices */ MatcherIndicesIndex(12),
/* const_eval_fn */ ConstEvalFunctionIndex(77),
},
{
- /* [468] */
+ /* [470] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_explicit_templates */ 0,
@@ -9988,64 +10035,42 @@
/* const_eval_fn */ ConstEvalFunctionIndex(78),
},
{
- /* [469] */
+ /* [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(17),
- /* return_matcher_indices */ MatcherIndicesIndex(123),
+ /* return_matcher_indices */ MatcherIndicesIndex(129),
/* const_eval_fn */ ConstEvalFunctionIndex(79),
},
{
- /* [470] */
+ /* [472] */
/* 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(127),
+ /* return_matcher_indices */ MatcherIndicesIndex(133),
/* const_eval_fn */ ConstEvalFunctionIndex(80),
},
{
- /* [471] */
+ /* [473] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline),
/* num_parameters */ 1,
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(6),
- /* parameters */ ParameterIndex(409),
- /* return_matcher_indices */ MatcherIndicesIndex(131),
- /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
- },
- {
- /* [472] */
- /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
- /* num_parameters */ 1,
- /* num_explicit_templates */ 0,
- /* num_templates */ 2,
- /* templates */ TemplateIndex(47),
- /* parameters */ ParameterIndex(0),
- /* return_matcher_indices */ MatcherIndicesIndex(6),
- /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
- },
- {
- /* [473] */
- /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
- /* num_parameters */ 2,
- /* num_explicit_templates */ 0,
- /* num_templates */ 2,
- /* templates */ TemplateIndex(47),
- /* parameters */ ParameterIndex(0),
- /* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
+ /* parameters */ ParameterIndex(413),
+ /* return_matcher_indices */ MatcherIndicesIndex(137),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
/* [474] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
- /* num_parameters */ 2,
+ /* num_parameters */ 1,
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(47),
@@ -10056,34 +10081,34 @@
{
/* [475] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
+ /* num_parameters */ 2,
+ /* num_explicit_templates */ 0,
+ /* num_templates */ 2,
+ /* templates */ TemplateIndex(47),
+ /* parameters */ ParameterIndex(0),
+ /* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+ },
+ {
+ /* [476] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
+ /* num_parameters */ 2,
+ /* num_explicit_templates */ 0,
+ /* num_templates */ 2,
+ /* templates */ TemplateIndex(47),
+ /* parameters */ ParameterIndex(0),
+ /* return_matcher_indices */ MatcherIndicesIndex(6),
+ /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+ },
+ {
+ /* [477] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* num_parameters */ 3,
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(47),
/* parameters */ ParameterIndex(0),
- /* return_matcher_indices */ MatcherIndicesIndex(250),
- /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
- },
- {
- /* [476] */
- /* 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(127),
- /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
- },
- {
- /* [477] */
- /* 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(41),
+ /* return_matcher_indices */ MatcherIndicesIndex(255),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -10094,22 +10119,33 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(152),
- /* return_matcher_indices */ MatcherIndicesIndex(41),
+ /* return_matcher_indices */ MatcherIndicesIndex(133),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
/* [479] */
- /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline),
- /* num_parameters */ 4,
- /* num_explicit_templates */ 1,
- /* num_templates */ 6,
- /* templates */ TemplateIndex(0),
- /* parameters */ ParameterIndex(210),
- /* return_matcher_indices */ MatcherIndicesIndex(6),
+ /* 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(47),
/* 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(47),
+ /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+ },
+ {
+ /* [481] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline),
/* num_parameters */ 5,
/* num_explicit_templates */ 0,
@@ -10120,26 +10156,15 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [481] */
+ /* [482] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
/* num_explicit_templates */ 0,
/* num_templates */ 4,
/* templates */ TemplateIndex(10),
- /* parameters */ ParameterIndex(375),
- /* return_matcher_indices */ MatcherIndicesIndex(35),
- /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
- },
- {
- /* [482] */
- /* 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(233),
+ /* parameters */ ParameterIndex(379),
/* return_matcher_indices */ MatcherIndicesIndex(41),
- /* const_eval_fn */ ConstEvalFunctionIndex(95),
+ /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
/* [483] */
@@ -10148,20 +10173,20 @@
/* num_explicit_templates */ 0,
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
- /* parameters */ ParameterIndex(233),
- /* return_matcher_indices */ MatcherIndicesIndex(41),
- /* const_eval_fn */ ConstEvalFunctionIndex(96),
+ /* parameters */ ParameterIndex(237),
+ /* return_matcher_indices */ MatcherIndicesIndex(47),
+ /* const_eval_fn */ ConstEvalFunctionIndex(95),
},
{
/* [484] */
- /* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 0,
- /* num_explicit_templates */ 3,
- /* num_templates */ 3,
- /* templates */ TemplateIndex(35),
- /* parameters */ ParameterIndex(/* invalid */),
- /* return_matcher_indices */ MatcherIndicesIndex(50),
- /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+ /* 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(237),
+ /* return_matcher_indices */ MatcherIndicesIndex(47),
+ /* const_eval_fn */ ConstEvalFunctionIndex(96),
},
{
/* [485] */
@@ -10169,9 +10194,9 @@
/* num_parameters */ 0,
/* num_explicit_templates */ 3,
/* num_templates */ 3,
- /* templates */ TemplateIndex(38),
+ /* templates */ TemplateIndex(35),
/* parameters */ ParameterIndex(/* invalid */),
- /* return_matcher_indices */ MatcherIndicesIndex(55),
+ /* return_matcher_indices */ MatcherIndicesIndex(56),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -10180,9 +10205,20 @@
/* num_parameters */ 0,
/* num_explicit_templates */ 3,
/* num_templates */ 3,
+ /* templates */ TemplateIndex(38),
+ /* parameters */ ParameterIndex(/* invalid */),
+ /* return_matcher_indices */ MatcherIndicesIndex(61),
+ /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+ },
+ {
+ /* [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(35),
+ /* return_matcher_indices */ MatcherIndicesIndex(41),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
};
@@ -10230,7 +10266,7 @@
/* [5] */
/* fn arrayLength[T, A : access](ptr<storage, runtime_array<T>, A>) -> u32 */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(443),
+ /* overloads */ OverloadIndex(445),
},
{
/* [6] */
@@ -10320,7 +10356,7 @@
/* [18] */
/* fn cross[T : f32_f16](vec3<T>, vec3<T>) -> vec3<T> */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(444),
+ /* overloads */ OverloadIndex(446),
},
{
/* [19] */
@@ -10333,7 +10369,7 @@
/* [20] */
/* fn determinant[N : num, T : f32_f16](mat<N, N, T>) -> T */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(445),
+ /* overloads */ OverloadIndex(447),
},
{
/* [21] */
@@ -10346,19 +10382,19 @@
/* [22] */
/* fn dot[N : num, T : fiu32_f16](vec<N, T>, vec<N, T>) -> T */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(446),
+ /* overloads */ OverloadIndex(448),
},
{
/* [23] */
/* fn dot4I8Packed(u32, u32) -> i32 */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(447),
+ /* overloads */ OverloadIndex(449),
},
{
/* [24] */
/* fn dot4U8Packed(u32, u32) -> u32 */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(448),
+ /* overloads */ OverloadIndex(450),
},
{
/* [25] */
@@ -10427,7 +10463,7 @@
/* [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(449),
+ /* overloads */ OverloadIndex(451),
},
{
/* [35] */
@@ -10567,61 +10603,61 @@
/* [54] */
/* fn normalize[N : num, T : f32_f16](vec<N, T>) -> vec<N, T> */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(450),
+ /* overloads */ OverloadIndex(452),
},
{
/* [55] */
/* fn pack2x16float(vec2<f32>) -> u32 */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(451),
+ /* overloads */ OverloadIndex(453),
},
{
/* [56] */
/* fn pack2x16snorm(vec2<f32>) -> u32 */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(452),
+ /* overloads */ OverloadIndex(454),
},
{
/* [57] */
/* fn pack2x16unorm(vec2<f32>) -> u32 */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(453),
+ /* overloads */ OverloadIndex(455),
},
{
/* [58] */
/* fn pack4x8snorm(vec4<f32>) -> u32 */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(454),
+ /* overloads */ OverloadIndex(456),
},
{
/* [59] */
/* fn pack4x8unorm(vec4<f32>) -> u32 */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(455),
+ /* overloads */ OverloadIndex(457),
},
{
/* [60] */
/* fn pack4xI8(vec4<i32>) -> u32 */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(456),
+ /* overloads */ OverloadIndex(458),
},
{
/* [61] */
/* fn pack4xU8(vec4<u32>) -> u32 */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(457),
+ /* overloads */ OverloadIndex(459),
},
{
/* [62] */
/* fn pack4xI8Clamp(vec4<i32>) -> u32 */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(458),
+ /* overloads */ OverloadIndex(460),
},
{
/* [63] */
/* fn pack4xU8Clamp(vec4<u32>) -> u32 */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(459),
+ /* overloads */ OverloadIndex(461),
},
{
/* [64] */
@@ -10648,13 +10684,13 @@
/* [67] */
/* fn reflect[N : num, T : f32_f16](vec<N, T>, vec<N, T>) -> vec<N, T> */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(460),
+ /* overloads */ OverloadIndex(462),
},
{
/* [68] */
/* fn refract[N : num, T : f32_f16](vec<N, T>, vec<N, T>, T) -> vec<N, T> */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(461),
+ /* overloads */ OverloadIndex(463),
},
{
/* [69] */
@@ -10731,7 +10767,7 @@
/* [79] */
/* fn storageBarrier() */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(462),
+ /* overloads */ OverloadIndex(464),
},
{
/* [80] */
@@ -10751,7 +10787,7 @@
/* [82] */
/* fn transpose[M : num, N : num, T : f32_f16](mat<M, N, T>) -> mat<N, M, T> */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(463),
+ /* overloads */ OverloadIndex(465),
},
{
/* [83] */
@@ -10764,55 +10800,55 @@
/* [84] */
/* fn unpack2x16float(u32) -> vec2<f32> */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(464),
+ /* overloads */ OverloadIndex(466),
},
{
/* [85] */
/* fn unpack2x16snorm(u32) -> vec2<f32> */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(465),
+ /* overloads */ OverloadIndex(467),
},
{
/* [86] */
/* fn unpack2x16unorm(u32) -> vec2<f32> */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(466),
+ /* overloads */ OverloadIndex(468),
},
{
/* [87] */
/* fn unpack4x8snorm(u32) -> vec4<f32> */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(467),
+ /* overloads */ OverloadIndex(469),
},
{
/* [88] */
/* fn unpack4x8unorm(u32) -> vec4<f32> */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(468),
+ /* overloads */ OverloadIndex(470),
},
{
/* [89] */
/* fn unpack4xI8(u32) -> vec4<i32> */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(469),
+ /* overloads */ OverloadIndex(471),
},
{
/* [90] */
/* fn unpack4xU8(u32) -> vec4<u32> */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(470),
+ /* overloads */ OverloadIndex(472),
},
{
/* [91] */
/* fn workgroupBarrier() */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(462),
+ /* overloads */ OverloadIndex(464),
},
{
/* [92] */
/* fn textureBarrier() */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(462),
+ /* overloads */ OverloadIndex(464),
},
{
/* [93] */
@@ -11047,85 +11083,85 @@
/* [108] */
/* fn inputAttachmentLoad[T : fiu32](input_attachment: input_attachment<T>) -> vec4<T> */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(471),
+ /* overloads */ OverloadIndex(473),
},
{
/* [109] */
/* fn atomicLoad[T : iu32, S : workgroup_or_storage](ptr<S, atomic<T>, read_write>) -> T */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(472),
+ /* overloads */ OverloadIndex(474),
},
{
/* [110] */
/* fn atomicStore[T : iu32, S : workgroup_or_storage](ptr<S, atomic<T>, read_write>, T) */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(473),
+ /* overloads */ OverloadIndex(475),
},
{
/* [111] */
/* fn atomicAdd[T : iu32, S : workgroup_or_storage](ptr<S, atomic<T>, read_write>, T) -> T */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(474),
+ /* overloads */ OverloadIndex(476),
},
{
/* [112] */
/* fn atomicSub[T : iu32, S : workgroup_or_storage](ptr<S, atomic<T>, read_write>, T) -> T */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(474),
+ /* overloads */ OverloadIndex(476),
},
{
/* [113] */
/* fn atomicMax[T : iu32, S : workgroup_or_storage](ptr<S, atomic<T>, read_write>, T) -> T */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(474),
+ /* overloads */ OverloadIndex(476),
},
{
/* [114] */
/* fn atomicMin[T : iu32, S : workgroup_or_storage](ptr<S, atomic<T>, read_write>, T) -> T */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(474),
+ /* overloads */ OverloadIndex(476),
},
{
/* [115] */
/* fn atomicAnd[T : iu32, S : workgroup_or_storage](ptr<S, atomic<T>, read_write>, T) -> T */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(474),
+ /* overloads */ OverloadIndex(476),
},
{
/* [116] */
/* fn atomicOr[T : iu32, S : workgroup_or_storage](ptr<S, atomic<T>, read_write>, T) -> T */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(474),
+ /* overloads */ OverloadIndex(476),
},
{
/* [117] */
/* fn atomicXor[T : iu32, S : workgroup_or_storage](ptr<S, atomic<T>, read_write>, T) -> T */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(474),
+ /* overloads */ OverloadIndex(476),
},
{
/* [118] */
/* fn atomicExchange[T : iu32, S : workgroup_or_storage](ptr<S, atomic<T>, read_write>, T) -> T */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(474),
+ /* overloads */ OverloadIndex(476),
},
{
/* [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(475),
+ /* overloads */ OverloadIndex(477),
},
{
/* [120] */
/* fn subgroupBallot(bool) -> vec4<u32> */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(476),
+ /* overloads */ OverloadIndex(478),
},
{
/* [121] */
/* fn subgroupElect() -> bool */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(477),
+ /* overloads */ OverloadIndex(479),
},
{
/* [122] */
@@ -11250,13 +11286,13 @@
/* [139] */
/* fn subgroupAll(bool) -> bool */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(478),
+ /* overloads */ OverloadIndex(480),
},
{
/* [140] */
/* fn subgroupAny(bool) -> bool */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(478),
+ /* overloads */ OverloadIndex(480),
},
{
/* [141] */
@@ -11288,21 +11324,22 @@
},
{
/* [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 */ 1,
- /* overloads */ OverloadIndex(479),
+ /* num overloads */ 2,
+ /* overloads */ OverloadIndex(419),
},
{
/* [146] */
/* 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 */ 1,
- /* overloads */ OverloadIndex(480),
+ /* overloads */ OverloadIndex(481),
},
{
/* [147] */
/* fn subgroupMatrixMultiply[S : subgroup_matrix_elements, C : num, R : num, K : num](subgroup_matrix<subgroup_matrix_kind_left, S, K, R>, subgroup_matrix<subgroup_matrix_kind_right, S, C, K>) -> subgroup_matrix<subgroup_matrix_kind_result, S, C, R> */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(481),
+ /* overloads */ OverloadIndex(482),
},
};
@@ -11312,21 +11349,21 @@
/* op !(bool) -> bool */
/* op  -> vec<N, bool> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(419),
+ /* overloads */ OverloadIndex(421),
},
{
/* [1] */
/* op ~[T : iu32](T) -> T */
/* op ~[T : iu32, N : num](vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(421),
+ /* overloads */ OverloadIndex(423),
},
{
/* [2] */
/* op -[T : fi32_f16](T) -> T */
/* op -[T : fi32_f16, N : num](vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(423),
+ /* overloads */ OverloadIndex(425),
},
};
constexpr uint8_t kUnaryOperatorNot = 0;
@@ -11391,7 +11428,7 @@
/* 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(425),
+ /* overloads */ OverloadIndex(427),
},
{
/* [6] */
@@ -11415,69 +11452,69 @@
/* [8] */
/* op &&(bool, bool) -> bool */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(482),
+ /* overloads */ OverloadIndex(483),
},
{
/* [9] */
/* op ||(bool, bool) -> bool */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(483),
+ /* overloads */ OverloadIndex(484),
},
{
/* [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(427),
+ /* overloads */ OverloadIndex(429),
},
{
/* [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(429),
+ /* overloads */ OverloadIndex(431),
},
{
/* [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(431),
+ /* overloads */ OverloadIndex(433),
},
{
/* [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(433),
+ /* overloads */ OverloadIndex(435),
},
{
/* [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(435),
+ /* overloads */ OverloadIndex(437),
},
{
/* [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(437),
+ /* overloads */ OverloadIndex(439),
},
{
/* [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(439),
+ /* overloads */ OverloadIndex(441),
},
{
/* [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(441),
+ /* overloads */ OverloadIndex(443),
},
};
constexpr uint8_t kBinaryOperatorPlus = 0;
@@ -11693,19 +11730,19 @@
/* [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(484),
+ /* overloads */ OverloadIndex(485),
},
{
/* [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(485),
+ /* overloads */ OverloadIndex(486),
},
{
/* [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(486),
+ /* overloads */ OverloadIndex(487),
},
};
diff --git a/src/tint/lang/wgsl/intrinsic/data.cc b/src/tint/lang/wgsl/intrinsic/data.cc
index f183944..7c1f3f6 100644
--- a/src/tint/lang/wgsl/intrinsic/data.cc
+++ b/src/tint/lang/wgsl/intrinsic/data.cc
@@ -2043,281 +2043,285 @@
/* [26] */ MatcherIndex(2),
/* [27] */ MatcherIndex(3),
/* [28] */ MatcherIndex(4),
- /* [29] */ MatcherIndex(59),
- /* [30] */ MatcherIndex(0),
- /* [31] */ MatcherIndex(1),
+ /* [29] */ MatcherIndex(29),
+ /* [30] */ MatcherIndex(19),
+ /* [31] */ MatcherIndex(32),
/* [32] */ MatcherIndex(2),
- /* [33] */ MatcherIndex(3),
- /* [34] */ MatcherIndex(59),
- /* [35] */ MatcherIndex(8),
+ /* [33] */ MatcherIndex(15),
+ /* [34] */ MatcherIndex(75),
+ /* [35] */ MatcherIndex(59),
/* [36] */ MatcherIndex(0),
/* [37] */ MatcherIndex(1),
/* [38] */ MatcherIndex(2),
- /* [39] */ MatcherIndex(59),
- /* [40] */ MatcherIndex(6),
- /* [41] */ MatcherIndex(0),
- /* [42] */ MatcherIndex(3),
- /* [43] */ MatcherIndex(2),
- /* [44] */ MatcherIndex(59),
- /* [45] */ MatcherIndex(7),
- /* [46] */ MatcherIndex(0),
- /* [47] */ MatcherIndex(1),
+ /* [39] */ MatcherIndex(3),
+ /* [40] */ MatcherIndex(59),
+ /* [41] */ MatcherIndex(8),
+ /* [42] */ MatcherIndex(0),
+ /* [43] */ MatcherIndex(1),
+ /* [44] */ MatcherIndex(2),
+ /* [45] */ MatcherIndex(59),
+ /* [46] */ MatcherIndex(6),
+ /* [47] */ MatcherIndex(0),
/* [48] */ MatcherIndex(3),
- /* [49] */ MatcherIndex(28),
- /* [50] */ MatcherIndex(0),
- /* [51] */ MatcherIndex(0),
- /* [52] */ MatcherIndex(1),
- /* [53] */ MatcherIndex(28),
- /* [54] */ MatcherIndex(1),
- /* [55] */ MatcherIndex(0),
- /* [56] */ MatcherIndex(2),
- /* [57] */ MatcherIndex(28),
- /* [58] */ MatcherIndex(0),
- /* [59] */ MatcherIndex(1),
- /* [60] */ MatcherIndex(2),
- /* [61] */ MatcherIndex(29),
- /* [62] */ MatcherIndex(20),
- /* [63] */ MatcherIndex(0),
- /* [64] */ MatcherIndex(14),
- /* [65] */ MatcherIndex(29),
- /* [66] */ MatcherIndex(0),
- /* [67] */ MatcherIndex(1),
- /* [68] */ MatcherIndex(2),
- /* [69] */ MatcherIndex(30),
- /* [70] */ MatcherIndex(0),
- /* [71] */ MatcherIndex(1),
- /* [72] */ MatcherIndex(2),
- /* [73] */ MatcherIndex(28),
- /* [74] */ MatcherIndex(1),
- /* [75] */ MatcherIndex(2),
+ /* [49] */ MatcherIndex(2),
+ /* [50] */ MatcherIndex(59),
+ /* [51] */ MatcherIndex(7),
+ /* [52] */ MatcherIndex(0),
+ /* [53] */ MatcherIndex(1),
+ /* [54] */ MatcherIndex(3),
+ /* [55] */ MatcherIndex(28),
+ /* [56] */ MatcherIndex(0),
+ /* [57] */ MatcherIndex(0),
+ /* [58] */ MatcherIndex(1),
+ /* [59] */ MatcherIndex(28),
+ /* [60] */ MatcherIndex(1),
+ /* [61] */ MatcherIndex(0),
+ /* [62] */ MatcherIndex(2),
+ /* [63] */ MatcherIndex(28),
+ /* [64] */ MatcherIndex(0),
+ /* [65] */ MatcherIndex(1),
+ /* [66] */ MatcherIndex(2),
+ /* [67] */ MatcherIndex(29),
+ /* [68] */ MatcherIndex(20),
+ /* [69] */ MatcherIndex(0),
+ /* [70] */ MatcherIndex(14),
+ /* [71] */ MatcherIndex(29),
+ /* [72] */ MatcherIndex(0),
+ /* [73] */ MatcherIndex(1),
+ /* [74] */ MatcherIndex(2),
+ /* [75] */ MatcherIndex(30),
/* [76] */ MatcherIndex(0),
- /* [77] */ MatcherIndex(28),
+ /* [77] */ MatcherIndex(1),
/* [78] */ MatcherIndex(2),
- /* [79] */ MatcherIndex(3),
- /* [80] */ MatcherIndex(0),
- /* [81] */ MatcherIndex(28),
- /* [82] */ MatcherIndex(1),
- /* [83] */ MatcherIndex(3),
- /* [84] */ MatcherIndex(0),
- /* [85] */ MatcherIndex(28),
- /* [86] */ MatcherIndex(2),
- /* [87] */ MatcherIndex(1),
- /* [88] */ MatcherIndex(0),
- /* [89] */ MatcherIndex(27),
+ /* [79] */ MatcherIndex(28),
+ /* [80] */ MatcherIndex(1),
+ /* [81] */ MatcherIndex(2),
+ /* [82] */ MatcherIndex(0),
+ /* [83] */ MatcherIndex(28),
+ /* [84] */ MatcherIndex(2),
+ /* [85] */ MatcherIndex(3),
+ /* [86] */ MatcherIndex(0),
+ /* [87] */ MatcherIndex(28),
+ /* [88] */ MatcherIndex(1),
+ /* [89] */ MatcherIndex(3),
/* [90] */ MatcherIndex(0),
- /* [91] */ MatcherIndex(1),
- /* [92] */ MatcherIndex(27),
- /* [93] */ MatcherIndex(0),
- /* [94] */ MatcherIndex(6),
+ /* [91] */ MatcherIndex(28),
+ /* [92] */ MatcherIndex(2),
+ /* [93] */ MatcherIndex(1),
+ /* [94] */ MatcherIndex(0),
/* [95] */ MatcherIndex(27),
- /* [96] */ MatcherIndex(1),
- /* [97] */ MatcherIndex(0),
+ /* [96] */ MatcherIndex(0),
+ /* [97] */ MatcherIndex(1),
/* [98] */ MatcherIndex(27),
- /* [99] */ MatcherIndex(1),
- /* [100] */ MatcherIndex(75),
+ /* [99] */ MatcherIndex(0),
+ /* [100] */ MatcherIndex(6),
/* [101] */ MatcherIndex(27),
/* [102] */ MatcherIndex(1),
- /* [103] */ MatcherIndex(2),
+ /* [103] */ MatcherIndex(0),
/* [104] */ MatcherIndex(27),
/* [105] */ MatcherIndex(1),
- /* [106] */ MatcherIndex(14),
+ /* [106] */ MatcherIndex(75),
/* [107] */ MatcherIndex(27),
/* [108] */ MatcherIndex(1),
- /* [109] */ MatcherIndex(12),
+ /* [109] */ MatcherIndex(2),
/* [110] */ MatcherIndex(27),
/* [111] */ MatcherIndex(1),
- /* [112] */ MatcherIndex(9),
+ /* [112] */ MatcherIndex(14),
/* [113] */ MatcherIndex(27),
- /* [114] */ MatcherIndex(0),
- /* [115] */ MatcherIndex(13),
- /* [116] */ MatcherIndex(57),
- /* [117] */ MatcherIndex(0),
- /* [118] */ MatcherIndex(1),
+ /* [114] */ MatcherIndex(1),
+ /* [115] */ MatcherIndex(12),
+ /* [116] */ MatcherIndex(27),
+ /* [117] */ MatcherIndex(1),
+ /* [118] */ MatcherIndex(9),
/* [119] */ MatcherIndex(27),
/* [120] */ MatcherIndex(0),
- /* [121] */ MatcherIndex(2),
- /* [122] */ MatcherIndex(55),
+ /* [121] */ MatcherIndex(13),
+ /* [122] */ MatcherIndex(57),
/* [123] */ MatcherIndex(0),
/* [124] */ MatcherIndex(1),
- /* [125] */ MatcherIndex(48),
+ /* [125] */ MatcherIndex(27),
/* [126] */ MatcherIndex(0),
- /* [127] */ MatcherIndex(1),
- /* [128] */ MatcherIndex(49),
+ /* [127] */ MatcherIndex(2),
+ /* [128] */ MatcherIndex(55),
/* [129] */ MatcherIndex(0),
/* [130] */ MatcherIndex(1),
- /* [131] */ MatcherIndex(50),
+ /* [131] */ MatcherIndex(48),
/* [132] */ MatcherIndex(0),
/* [133] */ MatcherIndex(1),
- /* [134] */ MatcherIndex(51),
+ /* [134] */ MatcherIndex(49),
/* [135] */ MatcherIndex(0),
/* [136] */ MatcherIndex(1),
- /* [137] */ MatcherIndex(48),
- /* [138] */ MatcherIndex(1),
- /* [139] */ MatcherIndex(2),
- /* [140] */ MatcherIndex(49),
- /* [141] */ MatcherIndex(1),
- /* [142] */ MatcherIndex(2),
- /* [143] */ MatcherIndex(50),
+ /* [137] */ MatcherIndex(50),
+ /* [138] */ MatcherIndex(0),
+ /* [139] */ MatcherIndex(1),
+ /* [140] */ MatcherIndex(51),
+ /* [141] */ MatcherIndex(0),
+ /* [142] */ MatcherIndex(1),
+ /* [143] */ MatcherIndex(48),
/* [144] */ MatcherIndex(1),
/* [145] */ MatcherIndex(2),
- /* [146] */ MatcherIndex(51),
+ /* [146] */ MatcherIndex(49),
/* [147] */ MatcherIndex(1),
/* [148] */ MatcherIndex(2),
- /* [149] */ MatcherIndex(27),
- /* [150] */ MatcherIndex(2),
- /* [151] */ MatcherIndex(0),
- /* [152] */ MatcherIndex(27),
+ /* [149] */ MatcherIndex(50),
+ /* [150] */ MatcherIndex(1),
+ /* [151] */ MatcherIndex(2),
+ /* [152] */ MatcherIndex(51),
/* [153] */ MatcherIndex(1),
- /* [154] */ MatcherIndex(6),
- /* [155] */ MatcherIndex(15),
- /* [156] */ MatcherIndex(75),
- /* [157] */ MatcherIndex(17),
- /* [158] */ MatcherIndex(14),
- /* [159] */ MatcherIndex(15),
- /* [160] */ MatcherIndex(1),
- /* [161] */ MatcherIndex(56),
- /* [162] */ MatcherIndex(0),
- /* [163] */ MatcherIndex(54),
- /* [164] */ MatcherIndex(0),
- /* [165] */ MatcherIndex(15),
- /* [166] */ MatcherIndex(13),
- /* [167] */ MatcherIndex(17),
- /* [168] */ MatcherIndex(13),
- /* [169] */ MatcherIndex(17),
- /* [170] */ MatcherIndex(11),
+ /* [154] */ MatcherIndex(2),
+ /* [155] */ MatcherIndex(27),
+ /* [156] */ MatcherIndex(2),
+ /* [157] */ MatcherIndex(0),
+ /* [158] */ MatcherIndex(27),
+ /* [159] */ MatcherIndex(1),
+ /* [160] */ MatcherIndex(6),
+ /* [161] */ MatcherIndex(17),
+ /* [162] */ MatcherIndex(14),
+ /* [163] */ MatcherIndex(15),
+ /* [164] */ MatcherIndex(1),
+ /* [165] */ MatcherIndex(56),
+ /* [166] */ MatcherIndex(0),
+ /* [167] */ MatcherIndex(54),
+ /* [168] */ MatcherIndex(0),
+ /* [169] */ MatcherIndex(15),
+ /* [170] */ MatcherIndex(13),
/* [171] */ MatcherIndex(17),
- /* [172] */ MatcherIndex(12),
- /* [173] */ MatcherIndex(36),
- /* [174] */ MatcherIndex(0),
- /* [175] */ MatcherIndex(15),
+ /* [172] */ MatcherIndex(13),
+ /* [173] */ MatcherIndex(17),
+ /* [174] */ MatcherIndex(11),
+ /* [175] */ MatcherIndex(17),
/* [176] */ MatcherIndex(12),
- /* [177] */ MatcherIndex(37),
+ /* [177] */ MatcherIndex(36),
/* [178] */ MatcherIndex(0),
- /* [179] */ MatcherIndex(38),
- /* [180] */ MatcherIndex(0),
- /* [181] */ MatcherIndex(16),
- /* [182] */ MatcherIndex(12),
- /* [183] */ MatcherIndex(39),
+ /* [179] */ MatcherIndex(15),
+ /* [180] */ MatcherIndex(12),
+ /* [181] */ MatcherIndex(37),
+ /* [182] */ MatcherIndex(0),
+ /* [183] */ MatcherIndex(38),
/* [184] */ MatcherIndex(0),
- /* [185] */ MatcherIndex(40),
- /* [186] */ MatcherIndex(0),
- /* [187] */ MatcherIndex(41),
+ /* [185] */ MatcherIndex(16),
+ /* [186] */ MatcherIndex(12),
+ /* [187] */ MatcherIndex(39),
/* [188] */ MatcherIndex(0),
- /* [189] */ MatcherIndex(42),
+ /* [189] */ MatcherIndex(40),
/* [190] */ MatcherIndex(0),
- /* [191] */ MatcherIndex(17),
+ /* [191] */ MatcherIndex(41),
/* [192] */ MatcherIndex(0),
- /* [193] */ MatcherIndex(15),
- /* [194] */ MatcherIndex(11),
- /* [195] */ MatcherIndex(16),
- /* [196] */ MatcherIndex(13),
- /* [197] */ MatcherIndex(36),
- /* [198] */ MatcherIndex(13),
- /* [199] */ MatcherIndex(37),
+ /* [193] */ MatcherIndex(42),
+ /* [194] */ MatcherIndex(0),
+ /* [195] */ MatcherIndex(17),
+ /* [196] */ MatcherIndex(0),
+ /* [197] */ MatcherIndex(15),
+ /* [198] */ MatcherIndex(11),
+ /* [199] */ MatcherIndex(16),
/* [200] */ MatcherIndex(13),
- /* [201] */ MatcherIndex(38),
+ /* [201] */ MatcherIndex(36),
/* [202] */ MatcherIndex(13),
- /* [203] */ MatcherIndex(39),
+ /* [203] */ MatcherIndex(37),
/* [204] */ MatcherIndex(13),
- /* [205] */ MatcherIndex(16),
- /* [206] */ MatcherIndex(11),
- /* [207] */ MatcherIndex(40),
+ /* [205] */ MatcherIndex(38),
+ /* [206] */ MatcherIndex(13),
+ /* [207] */ MatcherIndex(39),
/* [208] */ MatcherIndex(13),
- /* [209] */ MatcherIndex(41),
- /* [210] */ MatcherIndex(13),
- /* [211] */ MatcherIndex(15),
- /* [212] */ MatcherIndex(0),
- /* [213] */ MatcherIndex(16),
- /* [214] */ MatcherIndex(1),
- /* [215] */ MatcherIndex(53),
+ /* [209] */ MatcherIndex(16),
+ /* [210] */ MatcherIndex(11),
+ /* [211] */ MatcherIndex(40),
+ /* [212] */ MatcherIndex(13),
+ /* [213] */ MatcherIndex(41),
+ /* [214] */ MatcherIndex(13),
+ /* [215] */ MatcherIndex(15),
/* [216] */ MatcherIndex(0),
- /* [217] */ MatcherIndex(58),
- /* [218] */ MatcherIndex(0),
- /* [219] */ MatcherIndex(15),
- /* [220] */ MatcherIndex(9),
- /* [221] */ MatcherIndex(16),
- /* [222] */ MatcherIndex(9),
- /* [223] */ MatcherIndex(17),
+ /* [217] */ MatcherIndex(16),
+ /* [218] */ MatcherIndex(1),
+ /* [219] */ MatcherIndex(53),
+ /* [220] */ MatcherIndex(0),
+ /* [221] */ MatcherIndex(58),
+ /* [222] */ MatcherIndex(0),
+ /* [223] */ MatcherIndex(15),
/* [224] */ MatcherIndex(9),
- /* [225] */ MatcherIndex(17),
- /* [226] */ MatcherIndex(1),
- /* [227] */ MatcherIndex(18),
- /* [228] */ MatcherIndex(0),
- /* [229] */ MatcherIndex(18),
- /* [230] */ MatcherIndex(13),
+ /* [225] */ MatcherIndex(16),
+ /* [226] */ MatcherIndex(9),
+ /* [227] */ MatcherIndex(17),
+ /* [228] */ MatcherIndex(9),
+ /* [229] */ MatcherIndex(17),
+ /* [230] */ MatcherIndex(1),
/* [231] */ MatcherIndex(18),
- /* [232] */ MatcherIndex(14),
- /* [233] */ MatcherIndex(19),
- /* [234] */ MatcherIndex(0),
- /* [235] */ MatcherIndex(19),
- /* [236] */ MatcherIndex(13),
+ /* [232] */ MatcherIndex(0),
+ /* [233] */ MatcherIndex(18),
+ /* [234] */ MatcherIndex(13),
+ /* [235] */ MatcherIndex(18),
+ /* [236] */ MatcherIndex(14),
/* [237] */ MatcherIndex(19),
- /* [238] */ MatcherIndex(14),
- /* [239] */ MatcherIndex(20),
+ /* [238] */ MatcherIndex(0),
+ /* [239] */ MatcherIndex(19),
/* [240] */ MatcherIndex(13),
- /* [241] */ MatcherIndex(20),
+ /* [241] */ MatcherIndex(19),
/* [242] */ MatcherIndex(14),
- /* [243] */ MatcherIndex(21),
- /* [244] */ MatcherIndex(0),
- /* [245] */ MatcherIndex(21),
- /* [246] */ MatcherIndex(13),
+ /* [243] */ MatcherIndex(20),
+ /* [244] */ MatcherIndex(13),
+ /* [245] */ MatcherIndex(20),
+ /* [246] */ MatcherIndex(14),
/* [247] */ MatcherIndex(21),
- /* [248] */ MatcherIndex(14),
- /* [249] */ MatcherIndex(22),
- /* [250] */ MatcherIndex(0),
- /* [251] */ MatcherIndex(22),
- /* [252] */ MatcherIndex(13),
+ /* [248] */ MatcherIndex(0),
+ /* [249] */ MatcherIndex(21),
+ /* [250] */ MatcherIndex(13),
+ /* [251] */ MatcherIndex(21),
+ /* [252] */ MatcherIndex(14),
/* [253] */ MatcherIndex(22),
- /* [254] */ MatcherIndex(14),
- /* [255] */ MatcherIndex(23),
- /* [256] */ MatcherIndex(0),
- /* [257] */ MatcherIndex(23),
- /* [258] */ MatcherIndex(13),
+ /* [254] */ MatcherIndex(0),
+ /* [255] */ MatcherIndex(22),
+ /* [256] */ MatcherIndex(13),
+ /* [257] */ MatcherIndex(22),
+ /* [258] */ MatcherIndex(14),
/* [259] */ MatcherIndex(23),
- /* [260] */ MatcherIndex(14),
- /* [261] */ MatcherIndex(24),
- /* [262] */ MatcherIndex(0),
- /* [263] */ MatcherIndex(24),
- /* [264] */ MatcherIndex(13),
+ /* [260] */ MatcherIndex(0),
+ /* [261] */ MatcherIndex(23),
+ /* [262] */ MatcherIndex(13),
+ /* [263] */ MatcherIndex(23),
+ /* [264] */ MatcherIndex(14),
/* [265] */ MatcherIndex(24),
- /* [266] */ MatcherIndex(14),
- /* [267] */ MatcherIndex(25),
- /* [268] */ MatcherIndex(0),
- /* [269] */ MatcherIndex(25),
- /* [270] */ MatcherIndex(13),
+ /* [266] */ MatcherIndex(0),
+ /* [267] */ MatcherIndex(24),
+ /* [268] */ MatcherIndex(13),
+ /* [269] */ MatcherIndex(24),
+ /* [270] */ MatcherIndex(14),
/* [271] */ MatcherIndex(25),
- /* [272] */ MatcherIndex(14),
- /* [273] */ MatcherIndex(26),
- /* [274] */ MatcherIndex(0),
- /* [275] */ MatcherIndex(26),
- /* [276] */ MatcherIndex(13),
+ /* [272] */ MatcherIndex(0),
+ /* [273] */ MatcherIndex(25),
+ /* [274] */ MatcherIndex(13),
+ /* [275] */ MatcherIndex(25),
+ /* [276] */ MatcherIndex(14),
/* [277] */ MatcherIndex(26),
- /* [278] */ MatcherIndex(14),
- /* [279] */ MatcherIndex(67),
- /* [280] */ MatcherIndex(71),
- /* [281] */ MatcherIndex(79),
- /* [282] */ MatcherIndex(73),
- /* [283] */ MatcherIndex(60),
- /* [284] */ MatcherIndex(68),
- /* [285] */ MatcherIndex(43),
- /* [286] */ MatcherIndex(44),
- /* [287] */ MatcherIndex(45),
- /* [288] */ MatcherIndex(46),
- /* [289] */ MatcherIndex(47),
- /* [290] */ MatcherIndex(52),
- /* [291] */ MatcherIndex(34),
- /* [292] */ MatcherIndex(35),
- /* [293] */ MatcherIndex(10),
- /* [294] */ MatcherIndex(74),
- /* [295] */ MatcherIndex(80),
- /* [296] */ MatcherIndex(72),
- /* [297] */ MatcherIndex(64),
- /* [298] */ MatcherIndex(65),
- /* [299] */ MatcherIndex(62),
- /* [300] */ MatcherIndex(63),
- /* [301] */ MatcherIndex(66),
- /* [302] */ MatcherIndex(61),
- /* [303] */ MatcherIndex(78),
+ /* [278] */ MatcherIndex(0),
+ /* [279] */ MatcherIndex(26),
+ /* [280] */ MatcherIndex(13),
+ /* [281] */ MatcherIndex(26),
+ /* [282] */ MatcherIndex(14),
+ /* [283] */ MatcherIndex(67),
+ /* [284] */ MatcherIndex(71),
+ /* [285] */ MatcherIndex(79),
+ /* [286] */ MatcherIndex(73),
+ /* [287] */ MatcherIndex(60),
+ /* [288] */ MatcherIndex(68),
+ /* [289] */ MatcherIndex(43),
+ /* [290] */ MatcherIndex(44),
+ /* [291] */ MatcherIndex(45),
+ /* [292] */ MatcherIndex(46),
+ /* [293] */ MatcherIndex(47),
+ /* [294] */ MatcherIndex(52),
+ /* [295] */ MatcherIndex(34),
+ /* [296] */ MatcherIndex(35),
+ /* [297] */ MatcherIndex(10),
+ /* [298] */ MatcherIndex(74),
+ /* [299] */ MatcherIndex(80),
+ /* [300] */ MatcherIndex(72),
+ /* [301] */ MatcherIndex(64),
+ /* [302] */ MatcherIndex(65),
+ /* [303] */ MatcherIndex(62),
+ /* [304] */ MatcherIndex(63),
+ /* [305] */ MatcherIndex(66),
+ /* [306] */ MatcherIndex(61),
+ /* [307] */ MatcherIndex(78),
};
static_assert(MatcherIndicesIndex::CanIndex(kMatcherIndices),
@@ -2412,27 +2416,27 @@
{
/* [17] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(109),
+ /* matcher_indices */ MatcherIndicesIndex(115),
},
{
/* [18] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(109),
+ /* matcher_indices */ MatcherIndicesIndex(115),
},
{
/* [19] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(201),
+ /* matcher_indices */ MatcherIndicesIndex(205),
},
{
/* [20] */
/* usage */ core::ParameterUsage::kSampler,
- /* matcher_indices */ MatcherIndicesIndex(291),
+ /* matcher_indices */ MatcherIndicesIndex(295),
},
{
/* [21] */
/* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(165),
+ /* matcher_indices */ MatcherIndicesIndex(169),
},
{
/* [22] */
@@ -2442,17 +2446,17 @@
{
/* [23] */
/* usage */ core::ParameterUsage::kDdx,
- /* matcher_indices */ MatcherIndicesIndex(165),
+ /* matcher_indices */ MatcherIndicesIndex(169),
},
{
/* [24] */
/* usage */ core::ParameterUsage::kDdy,
- /* matcher_indices */ MatcherIndicesIndex(165),
+ /* matcher_indices */ MatcherIndicesIndex(169),
},
{
/* [25] */
/* usage */ core::ParameterUsage::kOffset,
- /* matcher_indices */ MatcherIndicesIndex(193),
+ /* matcher_indices */ MatcherIndicesIndex(197),
},
{
/* [26] */
@@ -2462,17 +2466,17 @@
{
/* [27] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(179),
+ /* matcher_indices */ MatcherIndicesIndex(183),
},
{
/* [28] */
/* usage */ core::ParameterUsage::kSampler,
- /* matcher_indices */ MatcherIndicesIndex(291),
+ /* matcher_indices */ MatcherIndicesIndex(295),
},
{
/* [29] */
/* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(165),
+ /* matcher_indices */ MatcherIndicesIndex(169),
},
{
/* [30] */
@@ -2482,22 +2486,22 @@
{
/* [31] */
/* usage */ core::ParameterUsage::kOffset,
- /* matcher_indices */ MatcherIndicesIndex(193),
+ /* matcher_indices */ MatcherIndicesIndex(197),
},
{
/* [32] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(286),
+ /* matcher_indices */ MatcherIndicesIndex(290),
},
{
/* [33] */
/* usage */ core::ParameterUsage::kSampler,
- /* matcher_indices */ MatcherIndicesIndex(292),
+ /* matcher_indices */ MatcherIndicesIndex(296),
},
{
/* [34] */
/* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(165),
+ /* matcher_indices */ MatcherIndicesIndex(169),
},
{
/* [35] */
@@ -2507,27 +2511,27 @@
{
/* [36] */
/* usage */ core::ParameterUsage::kDepthRef,
- /* matcher_indices */ MatcherIndicesIndex(115),
+ /* matcher_indices */ MatcherIndicesIndex(121),
},
{
/* [37] */
/* usage */ core::ParameterUsage::kOffset,
- /* matcher_indices */ MatcherIndicesIndex(193),
+ /* matcher_indices */ MatcherIndicesIndex(197),
},
{
/* [38] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(201),
+ /* matcher_indices */ MatcherIndicesIndex(205),
},
{
/* [39] */
/* usage */ core::ParameterUsage::kSampler,
- /* matcher_indices */ MatcherIndicesIndex(291),
+ /* matcher_indices */ MatcherIndicesIndex(295),
},
{
/* [40] */
/* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(165),
+ /* matcher_indices */ MatcherIndicesIndex(169),
},
{
/* [41] */
@@ -2537,87 +2541,87 @@
{
/* [42] */
/* usage */ core::ParameterUsage::kBias,
- /* matcher_indices */ MatcherIndicesIndex(115),
+ /* matcher_indices */ MatcherIndicesIndex(121),
},
{
/* [43] */
/* usage */ core::ParameterUsage::kOffset,
- /* matcher_indices */ MatcherIndicesIndex(193),
+ /* matcher_indices */ MatcherIndicesIndex(197),
},
{
/* [44] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(199),
+ /* matcher_indices */ MatcherIndicesIndex(203),
},
{
/* [45] */
/* usage */ core::ParameterUsage::kSampler,
- /* matcher_indices */ MatcherIndicesIndex(291),
+ /* matcher_indices */ MatcherIndicesIndex(295),
},
{
/* [46] */
/* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(165),
+ /* matcher_indices */ MatcherIndicesIndex(169),
},
{
/* [47] */
/* usage */ core::ParameterUsage::kDdx,
- /* matcher_indices */ MatcherIndicesIndex(165),
+ /* matcher_indices */ MatcherIndicesIndex(169),
},
{
/* [48] */
/* usage */ core::ParameterUsage::kDdy,
- /* matcher_indices */ MatcherIndicesIndex(165),
+ /* matcher_indices */ MatcherIndicesIndex(169),
},
{
/* [49] */
/* usage */ core::ParameterUsage::kOffset,
- /* matcher_indices */ MatcherIndicesIndex(193),
+ /* matcher_indices */ MatcherIndicesIndex(197),
},
{
/* [50] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(203),
+ /* matcher_indices */ MatcherIndicesIndex(207),
},
{
/* [51] */
/* usage */ core::ParameterUsage::kSampler,
- /* matcher_indices */ MatcherIndicesIndex(291),
+ /* matcher_indices */ MatcherIndicesIndex(295),
},
{
/* [52] */
/* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(195),
+ /* matcher_indices */ MatcherIndicesIndex(199),
},
{
/* [53] */
/* usage */ core::ParameterUsage::kDdx,
- /* matcher_indices */ MatcherIndicesIndex(195),
+ /* matcher_indices */ MatcherIndicesIndex(199),
},
{
/* [54] */
/* usage */ core::ParameterUsage::kDdy,
- /* matcher_indices */ MatcherIndicesIndex(195),
+ /* matcher_indices */ MatcherIndicesIndex(199),
},
{
/* [55] */
/* usage */ core::ParameterUsage::kOffset,
- /* matcher_indices */ MatcherIndicesIndex(205),
+ /* matcher_indices */ MatcherIndicesIndex(209),
},
{
/* [56] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(209),
+ /* matcher_indices */ MatcherIndicesIndex(213),
},
{
/* [57] */
/* usage */ core::ParameterUsage::kSampler,
- /* matcher_indices */ MatcherIndicesIndex(291),
+ /* matcher_indices */ MatcherIndicesIndex(295),
},
{
/* [58] */
/* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(195),
+ /* matcher_indices */ MatcherIndicesIndex(199),
},
{
/* [59] */
@@ -2627,27 +2631,27 @@
{
/* [60] */
/* usage */ core::ParameterUsage::kDdx,
- /* matcher_indices */ MatcherIndicesIndex(195),
+ /* matcher_indices */ MatcherIndicesIndex(199),
},
{
/* [61] */
/* usage */ core::ParameterUsage::kDdy,
- /* matcher_indices */ MatcherIndicesIndex(195),
+ /* matcher_indices */ MatcherIndicesIndex(199),
},
{
/* [62] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(201),
+ /* matcher_indices */ MatcherIndicesIndex(205),
},
{
/* [63] */
/* usage */ core::ParameterUsage::kSampler,
- /* matcher_indices */ MatcherIndicesIndex(291),
+ /* matcher_indices */ MatcherIndicesIndex(295),
},
{
/* [64] */
/* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(165),
+ /* matcher_indices */ MatcherIndicesIndex(169),
},
{
/* [65] */
@@ -2657,27 +2661,27 @@
{
/* [66] */
/* usage */ core::ParameterUsage::kLevel,
- /* matcher_indices */ MatcherIndicesIndex(115),
+ /* matcher_indices */ MatcherIndicesIndex(121),
},
{
/* [67] */
/* usage */ core::ParameterUsage::kOffset,
- /* matcher_indices */ MatcherIndicesIndex(193),
+ /* matcher_indices */ MatcherIndicesIndex(197),
},
{
/* [68] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(286),
+ /* matcher_indices */ MatcherIndicesIndex(290),
},
{
/* [69] */
/* usage */ core::ParameterUsage::kSampler,
- /* matcher_indices */ MatcherIndicesIndex(291),
+ /* matcher_indices */ MatcherIndicesIndex(295),
},
{
/* [70] */
/* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(165),
+ /* matcher_indices */ MatcherIndicesIndex(169),
},
{
/* [71] */
@@ -2692,7 +2696,7 @@
{
/* [73] */
/* usage */ core::ParameterUsage::kOffset,
- /* matcher_indices */ MatcherIndicesIndex(193),
+ /* matcher_indices */ MatcherIndicesIndex(197),
},
{
/* [74] */
@@ -2702,22 +2706,22 @@
{
/* [75] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(177),
+ /* matcher_indices */ MatcherIndicesIndex(181),
},
{
/* [76] */
/* usage */ core::ParameterUsage::kSampler,
- /* matcher_indices */ MatcherIndicesIndex(291),
+ /* matcher_indices */ MatcherIndicesIndex(295),
},
{
/* [77] */
/* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(165),
+ /* matcher_indices */ MatcherIndicesIndex(169),
},
{
/* [78] */
/* usage */ core::ParameterUsage::kOffset,
- /* matcher_indices */ MatcherIndicesIndex(193),
+ /* matcher_indices */ MatcherIndicesIndex(197),
},
{
/* [79] */
@@ -2727,17 +2731,17 @@
{
/* [80] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(187),
+ /* matcher_indices */ MatcherIndicesIndex(191),
},
{
/* [81] */
/* usage */ core::ParameterUsage::kSampler,
- /* matcher_indices */ MatcherIndicesIndex(291),
+ /* matcher_indices */ MatcherIndicesIndex(295),
},
{
/* [82] */
/* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(195),
+ /* matcher_indices */ MatcherIndicesIndex(199),
},
{
/* [83] */
@@ -2747,17 +2751,17 @@
{
/* [84] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(286),
+ /* matcher_indices */ MatcherIndicesIndex(290),
},
{
/* [85] */
/* usage */ core::ParameterUsage::kSampler,
- /* matcher_indices */ MatcherIndicesIndex(291),
+ /* matcher_indices */ MatcherIndicesIndex(295),
},
{
/* [86] */
/* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(165),
+ /* matcher_indices */ MatcherIndicesIndex(169),
},
{
/* [87] */
@@ -2767,47 +2771,47 @@
{
/* [88] */
/* usage */ core::ParameterUsage::kOffset,
- /* matcher_indices */ MatcherIndicesIndex(193),
+ /* matcher_indices */ MatcherIndicesIndex(197),
},
{
/* [89] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(285),
+ /* matcher_indices */ MatcherIndicesIndex(289),
},
{
/* [90] */
/* usage */ core::ParameterUsage::kSampler,
- /* matcher_indices */ MatcherIndicesIndex(292),
+ /* matcher_indices */ MatcherIndicesIndex(296),
},
{
/* [91] */
/* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(165),
+ /* matcher_indices */ MatcherIndicesIndex(169),
},
{
/* [92] */
/* usage */ core::ParameterUsage::kDepthRef,
- /* matcher_indices */ MatcherIndicesIndex(115),
+ /* matcher_indices */ MatcherIndicesIndex(121),
},
{
/* [93] */
/* usage */ core::ParameterUsage::kOffset,
- /* matcher_indices */ MatcherIndicesIndex(193),
+ /* matcher_indices */ MatcherIndicesIndex(197),
},
{
/* [94] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(288),
+ /* matcher_indices */ MatcherIndicesIndex(292),
},
{
/* [95] */
/* usage */ core::ParameterUsage::kSampler,
- /* matcher_indices */ MatcherIndicesIndex(292),
+ /* matcher_indices */ MatcherIndicesIndex(296),
},
{
/* [96] */
/* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(195),
+ /* matcher_indices */ MatcherIndicesIndex(199),
},
{
/* [97] */
@@ -2817,22 +2821,22 @@
{
/* [98] */
/* usage */ core::ParameterUsage::kDepthRef,
- /* matcher_indices */ MatcherIndicesIndex(115),
+ /* matcher_indices */ MatcherIndicesIndex(121),
},
{
/* [99] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(201),
+ /* matcher_indices */ MatcherIndicesIndex(205),
},
{
/* [100] */
/* usage */ core::ParameterUsage::kSampler,
- /* matcher_indices */ MatcherIndicesIndex(291),
+ /* matcher_indices */ MatcherIndicesIndex(295),
},
{
/* [101] */
/* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(165),
+ /* matcher_indices */ MatcherIndicesIndex(169),
},
{
/* [102] */
@@ -2842,72 +2846,72 @@
{
/* [103] */
/* usage */ core::ParameterUsage::kOffset,
- /* matcher_indices */ MatcherIndicesIndex(193),
+ /* matcher_indices */ MatcherIndicesIndex(197),
},
{
/* [104] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(199),
+ /* matcher_indices */ MatcherIndicesIndex(203),
},
{
/* [105] */
/* usage */ core::ParameterUsage::kSampler,
- /* matcher_indices */ MatcherIndicesIndex(291),
+ /* matcher_indices */ MatcherIndicesIndex(295),
},
{
/* [106] */
/* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(165),
+ /* matcher_indices */ MatcherIndicesIndex(169),
},
{
/* [107] */
/* usage */ core::ParameterUsage::kBias,
- /* matcher_indices */ MatcherIndicesIndex(115),
+ /* matcher_indices */ MatcherIndicesIndex(121),
},
{
/* [108] */
/* usage */ core::ParameterUsage::kOffset,
- /* matcher_indices */ MatcherIndicesIndex(193),
+ /* matcher_indices */ MatcherIndicesIndex(197),
},
{
/* [109] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(203),
+ /* matcher_indices */ MatcherIndicesIndex(207),
},
{
/* [110] */
/* usage */ core::ParameterUsage::kSampler,
- /* matcher_indices */ MatcherIndicesIndex(291),
+ /* matcher_indices */ MatcherIndicesIndex(295),
},
{
/* [111] */
/* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(195),
+ /* matcher_indices */ MatcherIndicesIndex(199),
},
{
/* [112] */
/* usage */ core::ParameterUsage::kBias,
- /* matcher_indices */ MatcherIndicesIndex(115),
+ /* matcher_indices */ MatcherIndicesIndex(121),
},
{
/* [113] */
/* usage */ core::ParameterUsage::kOffset,
- /* matcher_indices */ MatcherIndicesIndex(205),
+ /* matcher_indices */ MatcherIndicesIndex(209),
},
{
/* [114] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(209),
+ /* matcher_indices */ MatcherIndicesIndex(213),
},
{
/* [115] */
/* usage */ core::ParameterUsage::kSampler,
- /* matcher_indices */ MatcherIndicesIndex(291),
+ /* matcher_indices */ MatcherIndicesIndex(295),
},
{
/* [116] */
/* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(195),
+ /* matcher_indices */ MatcherIndicesIndex(199),
},
{
/* [117] */
@@ -2917,97 +2921,97 @@
{
/* [118] */
/* usage */ core::ParameterUsage::kBias,
- /* matcher_indices */ MatcherIndicesIndex(115),
+ /* matcher_indices */ MatcherIndicesIndex(121),
},
{
/* [119] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(207),
+ /* matcher_indices */ MatcherIndicesIndex(211),
},
{
/* [120] */
/* usage */ core::ParameterUsage::kSampler,
- /* matcher_indices */ MatcherIndicesIndex(291),
+ /* matcher_indices */ MatcherIndicesIndex(295),
},
{
/* [121] */
/* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(195),
+ /* matcher_indices */ MatcherIndicesIndex(199),
},
{
/* [122] */
/* usage */ core::ParameterUsage::kDdx,
- /* matcher_indices */ MatcherIndicesIndex(195),
+ /* matcher_indices */ MatcherIndicesIndex(199),
},
{
/* [123] */
/* usage */ core::ParameterUsage::kDdy,
- /* matcher_indices */ MatcherIndicesIndex(195),
+ /* matcher_indices */ MatcherIndicesIndex(199),
},
{
/* [124] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(199),
+ /* matcher_indices */ MatcherIndicesIndex(203),
},
{
/* [125] */
/* usage */ core::ParameterUsage::kSampler,
- /* matcher_indices */ MatcherIndicesIndex(291),
+ /* matcher_indices */ MatcherIndicesIndex(295),
},
{
/* [126] */
/* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(165),
+ /* matcher_indices */ MatcherIndicesIndex(169),
},
{
/* [127] */
/* usage */ core::ParameterUsage::kLevel,
- /* matcher_indices */ MatcherIndicesIndex(115),
+ /* matcher_indices */ MatcherIndicesIndex(121),
},
{
/* [128] */
/* usage */ core::ParameterUsage::kOffset,
- /* matcher_indices */ MatcherIndicesIndex(193),
+ /* matcher_indices */ MatcherIndicesIndex(197),
},
{
/* [129] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(203),
+ /* matcher_indices */ MatcherIndicesIndex(207),
},
{
/* [130] */
/* usage */ core::ParameterUsage::kSampler,
- /* matcher_indices */ MatcherIndicesIndex(291),
+ /* matcher_indices */ MatcherIndicesIndex(295),
},
{
/* [131] */
/* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(195),
+ /* matcher_indices */ MatcherIndicesIndex(199),
},
{
/* [132] */
/* usage */ core::ParameterUsage::kLevel,
- /* matcher_indices */ MatcherIndicesIndex(115),
+ /* matcher_indices */ MatcherIndicesIndex(121),
},
{
/* [133] */
/* usage */ core::ParameterUsage::kOffset,
- /* matcher_indices */ MatcherIndicesIndex(205),
+ /* matcher_indices */ MatcherIndicesIndex(209),
},
{
/* [134] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(209),
+ /* matcher_indices */ MatcherIndicesIndex(213),
},
{
/* [135] */
/* usage */ core::ParameterUsage::kSampler,
- /* matcher_indices */ MatcherIndicesIndex(291),
+ /* matcher_indices */ MatcherIndicesIndex(295),
},
{
/* [136] */
/* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(195),
+ /* matcher_indices */ MatcherIndicesIndex(199),
},
{
/* [137] */
@@ -3017,22 +3021,22 @@
{
/* [138] */
/* usage */ core::ParameterUsage::kLevel,
- /* matcher_indices */ MatcherIndicesIndex(115),
+ /* matcher_indices */ MatcherIndicesIndex(121),
},
{
/* [139] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(285),
+ /* matcher_indices */ MatcherIndicesIndex(289),
},
{
/* [140] */
/* usage */ core::ParameterUsage::kSampler,
- /* matcher_indices */ MatcherIndicesIndex(291),
+ /* matcher_indices */ MatcherIndicesIndex(295),
},
{
/* [141] */
/* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(165),
+ /* matcher_indices */ MatcherIndicesIndex(169),
},
{
/* [142] */
@@ -3042,22 +3046,22 @@
{
/* [143] */
/* usage */ core::ParameterUsage::kOffset,
- /* matcher_indices */ MatcherIndicesIndex(193),
+ /* matcher_indices */ MatcherIndicesIndex(197),
},
{
/* [144] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(288),
+ /* matcher_indices */ MatcherIndicesIndex(292),
},
{
/* [145] */
/* usage */ core::ParameterUsage::kSampler,
- /* matcher_indices */ MatcherIndicesIndex(291),
+ /* matcher_indices */ MatcherIndicesIndex(295),
},
{
/* [146] */
/* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(195),
+ /* matcher_indices */ MatcherIndicesIndex(199),
},
{
/* [147] */
@@ -3077,42 +3081,42 @@
{
/* [150] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(109),
+ /* matcher_indices */ MatcherIndicesIndex(115),
},
{
/* [151] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(29),
+ /* matcher_indices */ MatcherIndicesIndex(35),
},
{
/* [152] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(40),
+ /* matcher_indices */ MatcherIndicesIndex(46),
},
{
/* [153] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(109),
+ /* matcher_indices */ MatcherIndicesIndex(115),
},
{
/* [154] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(89),
+ /* matcher_indices */ MatcherIndicesIndex(95),
},
{
/* [155] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(89),
+ /* matcher_indices */ MatcherIndicesIndex(95),
},
{
/* [156] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(109),
+ /* matcher_indices */ MatcherIndicesIndex(115),
},
{
/* [157] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(109),
+ /* matcher_indices */ MatcherIndicesIndex(115),
},
{
/* [158] */
@@ -3122,152 +3126,152 @@
{
/* [159] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(185),
+ /* matcher_indices */ MatcherIndicesIndex(189),
},
{
/* [160] */
/* usage */ core::ParameterUsage::kSampler,
- /* matcher_indices */ MatcherIndicesIndex(291),
+ /* matcher_indices */ MatcherIndicesIndex(295),
},
{
/* [161] */
/* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(195),
+ /* matcher_indices */ MatcherIndicesIndex(199),
},
{
/* [162] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(285),
+ /* matcher_indices */ MatcherIndicesIndex(289),
},
{
/* [163] */
/* usage */ core::ParameterUsage::kSampler,
- /* matcher_indices */ MatcherIndicesIndex(291),
+ /* matcher_indices */ MatcherIndicesIndex(295),
},
{
/* [164] */
/* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(165),
+ /* matcher_indices */ MatcherIndicesIndex(169),
},
{
/* [165] */
/* usage */ core::ParameterUsage::kOffset,
- /* matcher_indices */ MatcherIndicesIndex(193),
+ /* matcher_indices */ MatcherIndicesIndex(197),
},
{
/* [166] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(287),
+ /* matcher_indices */ MatcherIndicesIndex(291),
},
{
/* [167] */
/* usage */ core::ParameterUsage::kSampler,
- /* matcher_indices */ MatcherIndicesIndex(292),
+ /* matcher_indices */ MatcherIndicesIndex(296),
},
{
/* [168] */
/* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(195),
+ /* matcher_indices */ MatcherIndicesIndex(199),
},
{
/* [169] */
/* usage */ core::ParameterUsage::kDepthRef,
- /* matcher_indices */ MatcherIndicesIndex(115),
+ /* matcher_indices */ MatcherIndicesIndex(121),
},
{
/* [170] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(199),
+ /* matcher_indices */ MatcherIndicesIndex(203),
},
{
/* [171] */
/* usage */ core::ParameterUsage::kSampler,
- /* matcher_indices */ MatcherIndicesIndex(291),
+ /* matcher_indices */ MatcherIndicesIndex(295),
},
{
/* [172] */
/* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(165),
+ /* matcher_indices */ MatcherIndicesIndex(169),
},
{
/* [173] */
/* usage */ core::ParameterUsage::kOffset,
- /* matcher_indices */ MatcherIndicesIndex(193),
+ /* matcher_indices */ MatcherIndicesIndex(197),
},
{
/* [174] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(203),
+ /* matcher_indices */ MatcherIndicesIndex(207),
},
{
/* [175] */
/* usage */ core::ParameterUsage::kSampler,
- /* matcher_indices */ MatcherIndicesIndex(291),
+ /* matcher_indices */ MatcherIndicesIndex(295),
},
{
/* [176] */
/* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(195),
+ /* matcher_indices */ MatcherIndicesIndex(199),
},
{
/* [177] */
/* usage */ core::ParameterUsage::kOffset,
- /* matcher_indices */ MatcherIndicesIndex(205),
+ /* matcher_indices */ MatcherIndicesIndex(209),
},
{
/* [178] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(207),
+ /* matcher_indices */ MatcherIndicesIndex(211),
},
{
/* [179] */
/* usage */ core::ParameterUsage::kSampler,
- /* matcher_indices */ MatcherIndicesIndex(291),
+ /* matcher_indices */ MatcherIndicesIndex(295),
},
{
/* [180] */
/* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(195),
+ /* matcher_indices */ MatcherIndicesIndex(199),
},
{
/* [181] */
/* usage */ core::ParameterUsage::kBias,
- /* matcher_indices */ MatcherIndicesIndex(115),
+ /* matcher_indices */ MatcherIndicesIndex(121),
},
{
/* [182] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(207),
+ /* matcher_indices */ MatcherIndicesIndex(211),
},
{
/* [183] */
/* usage */ core::ParameterUsage::kSampler,
- /* matcher_indices */ MatcherIndicesIndex(291),
+ /* matcher_indices */ MatcherIndicesIndex(295),
},
{
/* [184] */
/* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(195),
+ /* matcher_indices */ MatcherIndicesIndex(199),
},
{
/* [185] */
/* usage */ core::ParameterUsage::kLevel,
- /* matcher_indices */ MatcherIndicesIndex(115),
+ /* matcher_indices */ MatcherIndicesIndex(121),
},
{
/* [186] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(287),
+ /* matcher_indices */ MatcherIndicesIndex(291),
},
{
/* [187] */
/* usage */ core::ParameterUsage::kSampler,
- /* matcher_indices */ MatcherIndicesIndex(291),
+ /* matcher_indices */ MatcherIndicesIndex(295),
},
{
/* [188] */
/* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(195),
+ /* matcher_indices */ MatcherIndicesIndex(199),
},
{
/* [189] */
@@ -3277,12 +3281,12 @@
{
/* [190] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(143),
+ /* matcher_indices */ MatcherIndicesIndex(149),
},
{
/* [191] */
/* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(211),
+ /* matcher_indices */ MatcherIndicesIndex(215),
},
{
/* [192] */
@@ -3292,17 +3296,17 @@
{
/* [193] */
/* usage */ core::ParameterUsage::kValue,
- /* matcher_indices */ MatcherIndicesIndex(167),
+ /* matcher_indices */ MatcherIndicesIndex(171),
},
{
/* [194] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(143),
+ /* matcher_indices */ MatcherIndicesIndex(149),
},
{
/* [195] */
/* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(211),
+ /* matcher_indices */ MatcherIndicesIndex(215),
},
{
/* [196] */
@@ -3312,17 +3316,17 @@
{
/* [197] */
/* usage */ core::ParameterUsage::kValue,
- /* matcher_indices */ MatcherIndicesIndex(169),
+ /* matcher_indices */ MatcherIndicesIndex(173),
},
{
/* [198] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(143),
+ /* matcher_indices */ MatcherIndicesIndex(149),
},
{
/* [199] */
/* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(211),
+ /* matcher_indices */ MatcherIndicesIndex(215),
},
{
/* [200] */
@@ -3332,17 +3336,17 @@
{
/* [201] */
/* usage */ core::ParameterUsage::kValue,
- /* matcher_indices */ MatcherIndicesIndex(171),
+ /* matcher_indices */ MatcherIndicesIndex(175),
},
{
/* [202] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(179),
+ /* matcher_indices */ MatcherIndicesIndex(183),
},
{
/* [203] */
/* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(159),
+ /* matcher_indices */ MatcherIndicesIndex(163),
},
{
/* [204] */
@@ -3357,12 +3361,12 @@
{
/* [206] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(286),
+ /* matcher_indices */ MatcherIndicesIndex(290),
},
{
/* [207] */
/* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(211),
+ /* matcher_indices */ MatcherIndicesIndex(215),
},
{
/* [208] */
@@ -3377,527 +3381,527 @@
{
/* [210] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(0),
+ /* matcher_indices */ MatcherIndicesIndex(29),
},
{
/* [211] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(109),
+ /* matcher_indices */ MatcherIndicesIndex(115),
},
{
/* [212] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(40),
+ /* matcher_indices */ MatcherIndicesIndex(46),
},
{
/* [213] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(109),
+ /* matcher_indices */ MatcherIndicesIndex(115),
},
{
/* [214] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* matcher_indices */ MatcherIndicesIndex(0),
+ },
+ {
+ /* [215] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* matcher_indices */ MatcherIndicesIndex(115),
+ },
+ {
+ /* [216] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* matcher_indices */ MatcherIndicesIndex(46),
+ },
+ {
+ /* [217] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* matcher_indices */ MatcherIndicesIndex(115),
+ },
+ {
+ /* [218] */
/* usage */ core::ParameterUsage::kX,
/* matcher_indices */ MatcherIndicesIndex(13),
},
{
- /* [215] */
+ /* [219] */
/* usage */ core::ParameterUsage::kY,
/* matcher_indices */ MatcherIndicesIndex(13),
},
{
- /* [216] */
+ /* [220] */
/* usage */ core::ParameterUsage::kZ,
/* matcher_indices */ MatcherIndicesIndex(13),
},
{
- /* [217] */
+ /* [221] */
/* usage */ core::ParameterUsage::kW,
/* matcher_indices */ MatcherIndicesIndex(13),
},
{
- /* [218] */
- /* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(211),
- },
- {
- /* [219] */
- /* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(211),
- },
- {
- /* [220] */
- /* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(211),
- },
- {
- /* [221] */
- /* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(211),
- },
- {
/* [222] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(12),
+ /* matcher_indices */ MatcherIndicesIndex(215),
},
{
/* [223] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(12),
+ /* matcher_indices */ MatcherIndicesIndex(215),
},
{
/* [224] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(12),
+ /* matcher_indices */ MatcherIndicesIndex(215),
},
{
/* [225] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(12),
+ /* matcher_indices */ MatcherIndicesIndex(215),
},
{
/* [226] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(191),
+ /* matcher_indices */ MatcherIndicesIndex(12),
},
{
/* [227] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(191),
+ /* matcher_indices */ MatcherIndicesIndex(12),
},
{
/* [228] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(191),
+ /* matcher_indices */ MatcherIndicesIndex(12),
},
{
/* [229] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(191),
+ /* matcher_indices */ MatcherIndicesIndex(12),
},
{
/* [230] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(95),
+ /* matcher_indices */ MatcherIndicesIndex(195),
},
{
/* [231] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(95),
+ /* matcher_indices */ MatcherIndicesIndex(195),
},
{
/* [232] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(95),
+ /* matcher_indices */ MatcherIndicesIndex(195),
},
{
/* [233] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(40),
+ /* matcher_indices */ MatcherIndicesIndex(195),
},
{
/* [234] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(40),
+ /* matcher_indices */ MatcherIndicesIndex(101),
},
{
/* [235] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(89),
+ /* matcher_indices */ MatcherIndicesIndex(101),
},
{
/* [236] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(89),
+ /* matcher_indices */ MatcherIndicesIndex(101),
},
{
/* [237] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(89),
+ /* matcher_indices */ MatcherIndicesIndex(46),
},
{
/* [238] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(10),
+ /* matcher_indices */ MatcherIndicesIndex(46),
},
{
/* [239] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(13),
+ /* matcher_indices */ MatcherIndicesIndex(95),
},
{
/* [240] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(13),
+ /* matcher_indices */ MatcherIndicesIndex(95),
},
{
/* [241] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(40),
+ /* matcher_indices */ MatcherIndicesIndex(95),
},
{
/* [242] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(89),
+ /* matcher_indices */ MatcherIndicesIndex(10),
},
{
/* [243] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(89),
+ /* matcher_indices */ MatcherIndicesIndex(13),
},
{
/* [244] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(92),
+ /* matcher_indices */ MatcherIndicesIndex(13),
},
{
/* [245] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(92),
+ /* matcher_indices */ MatcherIndicesIndex(46),
},
{
/* [246] */
- /* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(197),
+ /* usage */ core::ParameterUsage::kNone,
+ /* matcher_indices */ MatcherIndicesIndex(95),
},
{
/* [247] */
- /* usage */ core::ParameterUsage::kSampler,
- /* matcher_indices */ MatcherIndicesIndex(291),
+ /* usage */ core::ParameterUsage::kNone,
+ /* matcher_indices */ MatcherIndicesIndex(95),
},
{
/* [248] */
- /* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(115),
+ /* usage */ core::ParameterUsage::kNone,
+ /* matcher_indices */ MatcherIndicesIndex(98),
},
{
/* [249] */
- /* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(290),
+ /* usage */ core::ParameterUsage::kNone,
+ /* matcher_indices */ MatcherIndicesIndex(98),
},
{
/* [250] */
- /* usage */ core::ParameterUsage::kSampler,
- /* matcher_indices */ MatcherIndicesIndex(291),
+ /* usage */ core::ParameterUsage::kTexture,
+ /* matcher_indices */ MatcherIndicesIndex(201),
},
{
/* [251] */
- /* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(165),
+ /* usage */ core::ParameterUsage::kSampler,
+ /* matcher_indices */ MatcherIndicesIndex(295),
},
{
/* [252] */
- /* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(137),
+ /* usage */ core::ParameterUsage::kCoords,
+ /* matcher_indices */ MatcherIndicesIndex(121),
},
{
/* [253] */
- /* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(13),
+ /* usage */ core::ParameterUsage::kTexture,
+ /* matcher_indices */ MatcherIndicesIndex(294),
},
{
/* [254] */
- /* usage */ core::ParameterUsage::kValue,
- /* matcher_indices */ MatcherIndicesIndex(167),
+ /* usage */ core::ParameterUsage::kSampler,
+ /* matcher_indices */ MatcherIndicesIndex(295),
},
{
/* [255] */
- /* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(140),
+ /* usage */ core::ParameterUsage::kCoords,
+ /* matcher_indices */ MatcherIndicesIndex(169),
},
{
/* [256] */
- /* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(211),
+ /* usage */ core::ParameterUsage::kTexture,
+ /* matcher_indices */ MatcherIndicesIndex(143),
},
{
/* [257] */
- /* usage */ core::ParameterUsage::kValue,
- /* matcher_indices */ MatcherIndicesIndex(167),
+ /* usage */ core::ParameterUsage::kCoords,
+ /* matcher_indices */ MatcherIndicesIndex(13),
},
{
/* [258] */
- /* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(146),
+ /* usage */ core::ParameterUsage::kValue,
+ /* matcher_indices */ MatcherIndicesIndex(171),
},
{
/* [259] */
- /* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(12),
+ /* usage */ core::ParameterUsage::kTexture,
+ /* matcher_indices */ MatcherIndicesIndex(146),
},
{
/* [260] */
- /* usage */ core::ParameterUsage::kValue,
- /* matcher_indices */ MatcherIndicesIndex(167),
+ /* usage */ core::ParameterUsage::kCoords,
+ /* matcher_indices */ MatcherIndicesIndex(215),
},
{
/* [261] */
- /* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(137),
+ /* usage */ core::ParameterUsage::kValue,
+ /* matcher_indices */ MatcherIndicesIndex(171),
},
{
/* [262] */
- /* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(13),
+ /* usage */ core::ParameterUsage::kTexture,
+ /* matcher_indices */ MatcherIndicesIndex(152),
},
{
/* [263] */
- /* usage */ core::ParameterUsage::kValue,
- /* matcher_indices */ MatcherIndicesIndex(169),
- },
- {
- /* [264] */
- /* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(140),
- },
- {
- /* [265] */
- /* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(211),
- },
- {
- /* [266] */
- /* usage */ core::ParameterUsage::kValue,
- /* matcher_indices */ MatcherIndicesIndex(169),
- },
- {
- /* [267] */
- /* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(146),
- },
- {
- /* [268] */
/* usage */ core::ParameterUsage::kCoords,
/* matcher_indices */ MatcherIndicesIndex(12),
},
{
- /* [269] */
+ /* [264] */
/* usage */ core::ParameterUsage::kValue,
- /* matcher_indices */ MatcherIndicesIndex(169),
+ /* matcher_indices */ MatcherIndicesIndex(171),
},
{
- /* [270] */
+ /* [265] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(137),
+ /* matcher_indices */ MatcherIndicesIndex(143),
},
{
- /* [271] */
+ /* [266] */
/* usage */ core::ParameterUsage::kCoords,
/* matcher_indices */ MatcherIndicesIndex(13),
},
{
- /* [272] */
+ /* [267] */
/* usage */ core::ParameterUsage::kValue,
- /* matcher_indices */ MatcherIndicesIndex(171),
+ /* matcher_indices */ MatcherIndicesIndex(173),
},
{
- /* [273] */
- /* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(140),
- },
- {
- /* [274] */
- /* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(211),
- },
- {
- /* [275] */
- /* usage */ core::ParameterUsage::kValue,
- /* matcher_indices */ MatcherIndicesIndex(171),
- },
- {
- /* [276] */
+ /* [268] */
/* usage */ core::ParameterUsage::kTexture,
/* matcher_indices */ MatcherIndicesIndex(146),
},
{
- /* [277] */
+ /* [269] */
+ /* usage */ core::ParameterUsage::kCoords,
+ /* matcher_indices */ MatcherIndicesIndex(215),
+ },
+ {
+ /* [270] */
+ /* usage */ core::ParameterUsage::kValue,
+ /* matcher_indices */ MatcherIndicesIndex(173),
+ },
+ {
+ /* [271] */
+ /* usage */ core::ParameterUsage::kTexture,
+ /* matcher_indices */ MatcherIndicesIndex(152),
+ },
+ {
+ /* [272] */
/* usage */ core::ParameterUsage::kCoords,
/* matcher_indices */ MatcherIndicesIndex(12),
},
{
- /* [278] */
+ /* [273] */
/* usage */ core::ParameterUsage::kValue,
- /* matcher_indices */ MatcherIndicesIndex(171),
- },
- {
- /* [279] */
- /* usage */ core::ParameterUsage::kTexture,
/* matcher_indices */ MatcherIndicesIndex(173),
},
{
- /* [280] */
+ /* [274] */
+ /* usage */ core::ParameterUsage::kTexture,
+ /* matcher_indices */ MatcherIndicesIndex(143),
+ },
+ {
+ /* [275] */
/* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(10),
+ /* matcher_indices */ MatcherIndicesIndex(13),
+ },
+ {
+ /* [276] */
+ /* usage */ core::ParameterUsage::kValue,
+ /* matcher_indices */ MatcherIndicesIndex(175),
+ },
+ {
+ /* [277] */
+ /* usage */ core::ParameterUsage::kTexture,
+ /* matcher_indices */ MatcherIndicesIndex(146),
+ },
+ {
+ /* [278] */
+ /* usage */ core::ParameterUsage::kCoords,
+ /* matcher_indices */ MatcherIndicesIndex(215),
+ },
+ {
+ /* [279] */
+ /* usage */ core::ParameterUsage::kValue,
+ /* matcher_indices */ MatcherIndicesIndex(175),
+ },
+ {
+ /* [280] */
+ /* usage */ core::ParameterUsage::kTexture,
+ /* matcher_indices */ MatcherIndicesIndex(152),
},
{
/* [281] */
- /* usage */ core::ParameterUsage::kLevel,
- /* matcher_indices */ MatcherIndicesIndex(3),
+ /* usage */ core::ParameterUsage::kCoords,
+ /* matcher_indices */ MatcherIndicesIndex(12),
},
{
/* [282] */
+ /* usage */ core::ParameterUsage::kValue,
+ /* matcher_indices */ MatcherIndicesIndex(175),
+ },
+ {
+ /* [283] */
/* usage */ core::ParameterUsage::kTexture,
/* matcher_indices */ MatcherIndicesIndex(177),
},
{
- /* [283] */
- /* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(159),
- },
- {
/* [284] */
- /* usage */ core::ParameterUsage::kLevel,
- /* matcher_indices */ MatcherIndicesIndex(3),
+ /* usage */ core::ParameterUsage::kCoords,
+ /* matcher_indices */ MatcherIndicesIndex(10),
},
{
/* [285] */
- /* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(183),
- },
- {
- /* [286] */
- /* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(213),
- },
- {
- /* [287] */
/* usage */ core::ParameterUsage::kLevel,
/* matcher_indices */ MatcherIndicesIndex(3),
},
{
- /* [288] */
+ /* [286] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(189),
+ /* matcher_indices */ MatcherIndicesIndex(181),
+ },
+ {
+ /* [287] */
+ /* usage */ core::ParameterUsage::kCoords,
+ /* matcher_indices */ MatcherIndicesIndex(163),
+ },
+ {
+ /* [288] */
+ /* usage */ core::ParameterUsage::kLevel,
+ /* matcher_indices */ MatcherIndicesIndex(3),
},
{
/* [289] */
- /* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(159),
+ /* usage */ core::ParameterUsage::kTexture,
+ /* matcher_indices */ MatcherIndicesIndex(187),
},
{
/* [290] */
+ /* usage */ core::ParameterUsage::kCoords,
+ /* matcher_indices */ MatcherIndicesIndex(217),
+ },
+ {
+ /* [291] */
+ /* usage */ core::ParameterUsage::kLevel,
+ /* matcher_indices */ MatcherIndicesIndex(3),
+ },
+ {
+ /* [292] */
+ /* usage */ core::ParameterUsage::kTexture,
+ /* matcher_indices */ MatcherIndicesIndex(193),
+ },
+ {
+ /* [293] */
+ /* usage */ core::ParameterUsage::kCoords,
+ /* matcher_indices */ MatcherIndicesIndex(163),
+ },
+ {
+ /* [294] */
/* usage */ core::ParameterUsage::kSampleIndex,
/* matcher_indices */ MatcherIndicesIndex(3),
},
{
- /* [291] */
- /* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(285),
- },
- {
- /* [292] */
- /* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(211),
- },
- {
- /* [293] */
- /* usage */ core::ParameterUsage::kLevel,
- /* matcher_indices */ MatcherIndicesIndex(10),
- },
- {
- /* [294] */
+ /* [295] */
/* usage */ core::ParameterUsage::kTexture,
/* matcher_indices */ MatcherIndicesIndex(289),
},
{
- /* [295] */
+ /* [296] */
/* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(211),
+ /* matcher_indices */ MatcherIndicesIndex(215),
},
{
- /* [296] */
+ /* [297] */
+ /* usage */ core::ParameterUsage::kLevel,
+ /* matcher_indices */ MatcherIndicesIndex(10),
+ },
+ {
+ /* [298] */
+ /* usage */ core::ParameterUsage::kTexture,
+ /* matcher_indices */ MatcherIndicesIndex(293),
+ },
+ {
+ /* [299] */
+ /* usage */ core::ParameterUsage::kCoords,
+ /* matcher_indices */ MatcherIndicesIndex(215),
+ },
+ {
+ /* [300] */
/* usage */ core::ParameterUsage::kSampleIndex,
/* matcher_indices */ MatcherIndicesIndex(10),
},
{
- /* [297] */
+ /* [301] */
/* usage */ core::ParameterUsage::kXy,
- /* matcher_indices */ MatcherIndicesIndex(211),
+ /* matcher_indices */ MatcherIndicesIndex(215),
},
{
- /* [298] */
+ /* [302] */
/* usage */ core::ParameterUsage::kZ,
/* matcher_indices */ MatcherIndicesIndex(13),
},
{
- /* [299] */
- /* usage */ core::ParameterUsage::kW,
- /* matcher_indices */ MatcherIndicesIndex(13),
- },
- {
- /* [300] */
- /* usage */ core::ParameterUsage::kX,
- /* matcher_indices */ MatcherIndicesIndex(13),
- },
- {
- /* [301] */
- /* usage */ core::ParameterUsage::kYz,
- /* matcher_indices */ MatcherIndicesIndex(211),
- },
- {
- /* [302] */
- /* usage */ core::ParameterUsage::kW,
- /* matcher_indices */ MatcherIndicesIndex(13),
- },
- {
/* [303] */
- /* usage */ core::ParameterUsage::kX,
+ /* usage */ core::ParameterUsage::kW,
/* matcher_indices */ MatcherIndicesIndex(13),
},
{
/* [304] */
- /* usage */ core::ParameterUsage::kY,
+ /* usage */ core::ParameterUsage::kX,
/* matcher_indices */ MatcherIndicesIndex(13),
},
{
/* [305] */
- /* usage */ core::ParameterUsage::kZw,
- /* matcher_indices */ MatcherIndicesIndex(211),
+ /* usage */ core::ParameterUsage::kYz,
+ /* matcher_indices */ MatcherIndicesIndex(215),
},
{
/* [306] */
- /* usage */ core::ParameterUsage::kNone,
+ /* usage */ core::ParameterUsage::kW,
/* matcher_indices */ MatcherIndicesIndex(13),
},
{
/* [307] */
- /* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(10),
+ /* usage */ core::ParameterUsage::kX,
+ /* matcher_indices */ MatcherIndicesIndex(13),
},
{
/* [308] */
- /* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(89),
+ /* usage */ core::ParameterUsage::kY,
+ /* matcher_indices */ MatcherIndicesIndex(13),
},
{
/* [309] */
- /* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(119),
+ /* usage */ core::ParameterUsage::kZw,
+ /* matcher_indices */ MatcherIndicesIndex(215),
},
{
/* [310] */
- /* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(173),
+ /* usage */ core::ParameterUsage::kNone,
+ /* matcher_indices */ MatcherIndicesIndex(13),
},
{
/* [311] */
- /* usage */ core::ParameterUsage::kLevel,
+ /* usage */ core::ParameterUsage::kNone,
/* matcher_indices */ MatcherIndicesIndex(10),
},
{
/* [312] */
- /* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(177),
+ /* usage */ core::ParameterUsage::kNone,
+ /* matcher_indices */ MatcherIndicesIndex(95),
},
{
/* [313] */
- /* usage */ core::ParameterUsage::kLevel,
- /* matcher_indices */ MatcherIndicesIndex(10),
+ /* usage */ core::ParameterUsage::kNone,
+ /* matcher_indices */ MatcherIndicesIndex(125),
},
{
/* [314] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(179),
+ /* matcher_indices */ MatcherIndicesIndex(177),
},
{
/* [315] */
@@ -3907,7 +3911,7 @@
{
/* [316] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(183),
+ /* matcher_indices */ MatcherIndicesIndex(181),
},
{
/* [317] */
@@ -3917,7 +3921,7 @@
{
/* [318] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(185),
+ /* matcher_indices */ MatcherIndicesIndex(183),
},
{
/* [319] */
@@ -3937,27 +3941,27 @@
{
/* [322] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(285),
+ /* matcher_indices */ MatcherIndicesIndex(189),
},
{
/* [323] */
/* usage */ core::ParameterUsage::kLevel,
- /* matcher_indices */ MatcherIndicesIndex(13),
+ /* matcher_indices */ MatcherIndicesIndex(10),
},
{
/* [324] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(286),
+ /* matcher_indices */ MatcherIndicesIndex(191),
},
{
/* [325] */
/* usage */ core::ParameterUsage::kLevel,
- /* matcher_indices */ MatcherIndicesIndex(13),
+ /* matcher_indices */ MatcherIndicesIndex(10),
},
{
/* [326] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(287),
+ /* matcher_indices */ MatcherIndicesIndex(289),
},
{
/* [327] */
@@ -3967,7 +3971,7 @@
{
/* [328] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(288),
+ /* matcher_indices */ MatcherIndicesIndex(290),
},
{
/* [329] */
@@ -3977,32 +3981,32 @@
{
/* [330] */
/* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(290),
+ /* matcher_indices */ MatcherIndicesIndex(291),
},
{
/* [331] */
- /* usage */ core::ParameterUsage::kCoords,
- /* matcher_indices */ MatcherIndicesIndex(211),
- },
- {
- /* [332] */
- /* usage */ core::ParameterUsage::kValue,
+ /* usage */ core::ParameterUsage::kLevel,
/* matcher_indices */ MatcherIndicesIndex(13),
},
{
+ /* [332] */
+ /* usage */ core::ParameterUsage::kTexture,
+ /* matcher_indices */ MatcherIndicesIndex(292),
+ },
+ {
/* [333] */
- /* usage */ core::ParameterUsage::kSourceLaneIndex,
- /* matcher_indices */ MatcherIndicesIndex(281),
+ /* usage */ core::ParameterUsage::kLevel,
+ /* matcher_indices */ MatcherIndicesIndex(13),
},
{
/* [334] */
- /* usage */ core::ParameterUsage::kValue,
- /* matcher_indices */ MatcherIndicesIndex(89),
+ /* usage */ core::ParameterUsage::kTexture,
+ /* matcher_indices */ MatcherIndicesIndex(294),
},
{
/* [335] */
- /* usage */ core::ParameterUsage::kSourceLaneIndex,
- /* matcher_indices */ MatcherIndicesIndex(281),
+ /* usage */ core::ParameterUsage::kCoords,
+ /* matcher_indices */ MatcherIndicesIndex(215),
},
{
/* [336] */
@@ -4011,18 +4015,18 @@
},
{
/* [337] */
- /* usage */ core::ParameterUsage::kMask,
- /* matcher_indices */ MatcherIndicesIndex(109),
+ /* usage */ core::ParameterUsage::kSourceLaneIndex,
+ /* matcher_indices */ MatcherIndicesIndex(285),
},
{
/* [338] */
/* usage */ core::ParameterUsage::kValue,
- /* matcher_indices */ MatcherIndicesIndex(89),
+ /* matcher_indices */ MatcherIndicesIndex(95),
},
{
/* [339] */
- /* usage */ core::ParameterUsage::kMask,
- /* matcher_indices */ MatcherIndicesIndex(109),
+ /* usage */ core::ParameterUsage::kSourceLaneIndex,
+ /* matcher_indices */ MatcherIndicesIndex(285),
},
{
/* [340] */
@@ -4031,419 +4035,439 @@
},
{
/* [341] */
- /* usage */ core::ParameterUsage::kDelta,
- /* matcher_indices */ MatcherIndicesIndex(109),
+ /* usage */ core::ParameterUsage::kMask,
+ /* matcher_indices */ MatcherIndicesIndex(115),
},
{
/* [342] */
/* usage */ core::ParameterUsage::kValue,
- /* matcher_indices */ MatcherIndicesIndex(89),
+ /* matcher_indices */ MatcherIndicesIndex(95),
},
{
/* [343] */
- /* usage */ core::ParameterUsage::kDelta,
- /* matcher_indices */ MatcherIndicesIndex(109),
+ /* usage */ core::ParameterUsage::kMask,
+ /* matcher_indices */ MatcherIndicesIndex(115),
},
{
/* [344] */
- /* usage */ core::ParameterUsage::kE,
+ /* usage */ core::ParameterUsage::kValue,
/* matcher_indices */ MatcherIndicesIndex(13),
},
{
/* [345] */
- /* usage */ core::ParameterUsage::kId,
- /* matcher_indices */ MatcherIndicesIndex(281),
+ /* usage */ core::ParameterUsage::kDelta,
+ /* matcher_indices */ MatcherIndicesIndex(115),
},
{
/* [346] */
- /* usage */ core::ParameterUsage::kE,
- /* matcher_indices */ MatcherIndicesIndex(89),
+ /* usage */ core::ParameterUsage::kValue,
+ /* matcher_indices */ MatcherIndicesIndex(95),
},
{
/* [347] */
- /* usage */ core::ParameterUsage::kId,
- /* matcher_indices */ MatcherIndicesIndex(281),
+ /* usage */ core::ParameterUsage::kDelta,
+ /* matcher_indices */ MatcherIndicesIndex(115),
},
{
/* [348] */
- /* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(39),
+ /* usage */ core::ParameterUsage::kE,
+ /* matcher_indices */ MatcherIndicesIndex(13),
},
{
/* [349] */
- /* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(44),
+ /* usage */ core::ParameterUsage::kId,
+ /* matcher_indices */ MatcherIndicesIndex(285),
},
{
/* [350] */
- /* usage */ core::ParameterUsage::kNone,
+ /* usage */ core::ParameterUsage::kE,
/* matcher_indices */ MatcherIndicesIndex(95),
},
{
/* [351] */
- /* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(13),
+ /* usage */ core::ParameterUsage::kId,
+ /* matcher_indices */ MatcherIndicesIndex(285),
},
{
/* [352] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(95),
+ /* matcher_indices */ MatcherIndicesIndex(45),
},
{
/* [353] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(107),
+ /* matcher_indices */ MatcherIndicesIndex(50),
},
{
/* [354] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(73),
+ /* matcher_indices */ MatcherIndicesIndex(101),
},
{
/* [355] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(73),
+ /* matcher_indices */ MatcherIndicesIndex(13),
},
{
/* [356] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(13),
+ /* matcher_indices */ MatcherIndicesIndex(101),
},
{
/* [357] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(73),
+ /* matcher_indices */ MatcherIndicesIndex(113),
},
{
/* [358] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(95),
+ /* matcher_indices */ MatcherIndicesIndex(79),
},
{
/* [359] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(149),
+ /* matcher_indices */ MatcherIndicesIndex(79),
},
{
/* [360] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(73),
+ /* matcher_indices */ MatcherIndicesIndex(13),
},
{
/* [361] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(81),
+ /* matcher_indices */ MatcherIndicesIndex(79),
},
{
/* [362] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(85),
+ /* matcher_indices */ MatcherIndicesIndex(101),
},
{
/* [363] */
- /* usage */ core::ParameterUsage::kXy,
- /* matcher_indices */ MatcherIndicesIndex(211),
+ /* usage */ core::ParameterUsage::kNone,
+ /* matcher_indices */ MatcherIndicesIndex(155),
},
{
/* [364] */
- /* usage */ core::ParameterUsage::kZw,
- /* matcher_indices */ MatcherIndicesIndex(211),
+ /* usage */ core::ParameterUsage::kNone,
+ /* matcher_indices */ MatcherIndicesIndex(79),
},
{
/* [365] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* matcher_indices */ MatcherIndicesIndex(87),
+ },
+ {
+ /* [366] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* matcher_indices */ MatcherIndicesIndex(91),
+ },
+ {
+ /* [367] */
+ /* usage */ core::ParameterUsage::kXy,
+ /* matcher_indices */ MatcherIndicesIndex(215),
+ },
+ {
+ /* [368] */
+ /* usage */ core::ParameterUsage::kZw,
+ /* matcher_indices */ MatcherIndicesIndex(215),
+ },
+ {
+ /* [369] */
/* usage */ core::ParameterUsage::kXyz,
/* matcher_indices */ MatcherIndicesIndex(12),
},
{
- /* [366] */
+ /* [370] */
/* usage */ core::ParameterUsage::kW,
/* matcher_indices */ MatcherIndicesIndex(13),
},
{
- /* [367] */
+ /* [371] */
/* usage */ core::ParameterUsage::kX,
/* matcher_indices */ MatcherIndicesIndex(13),
},
{
- /* [368] */
+ /* [372] */
/* usage */ core::ParameterUsage::kZyw,
/* matcher_indices */ MatcherIndicesIndex(12),
},
{
- /* [369] */
+ /* [373] */
/* usage */ core::ParameterUsage::kNone,
/* matcher_indices */ MatcherIndicesIndex(14),
},
{
- /* [370] */
+ /* [374] */
/* usage */ core::ParameterUsage::kNone,
/* matcher_indices */ MatcherIndicesIndex(6),
},
{
- /* [371] */
- /* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(101),
- },
- {
- /* [372] */
- /* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(104),
- },
- {
- /* [373] */
- /* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(112),
- },
- {
- /* [374] */
- /* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(110),
- },
- {
/* [375] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(5),
+ /* matcher_indices */ MatcherIndicesIndex(107),
},
{
/* [376] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(157),
+ /* matcher_indices */ MatcherIndicesIndex(110),
},
{
/* [377] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(159),
+ /* matcher_indices */ MatcherIndicesIndex(118),
},
{
/* [378] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(49),
+ /* matcher_indices */ MatcherIndicesIndex(116),
},
{
/* [379] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(115),
+ /* matcher_indices */ MatcherIndicesIndex(5),
},
{
/* [380] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(113),
+ /* matcher_indices */ MatcherIndicesIndex(161),
},
{
/* [381] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(165),
+ /* matcher_indices */ MatcherIndicesIndex(163),
},
{
/* [382] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(167),
+ /* matcher_indices */ MatcherIndicesIndex(55),
},
{
/* [383] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(169),
+ /* matcher_indices */ MatcherIndicesIndex(121),
},
{
/* [384] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(171),
+ /* matcher_indices */ MatcherIndicesIndex(119),
},
{
/* [385] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(57),
+ /* matcher_indices */ MatcherIndicesIndex(169),
},
{
/* [386] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(61),
+ /* matcher_indices */ MatcherIndicesIndex(171),
},
{
/* [387] */
- /* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(125),
+ /* usage */ core::ParameterUsage::kNone,
+ /* matcher_indices */ MatcherIndicesIndex(173),
},
{
/* [388] */
- /* usage */ core::ParameterUsage::kTexture,
- /* matcher_indices */ MatcherIndicesIndex(128),
+ /* usage */ core::ParameterUsage::kNone,
+ /* matcher_indices */ MatcherIndicesIndex(175),
},
{
/* [389] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* matcher_indices */ MatcherIndicesIndex(63),
+ },
+ {
+ /* [390] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* matcher_indices */ MatcherIndicesIndex(67),
+ },
+ {
+ /* [391] */
/* usage */ core::ParameterUsage::kTexture,
/* matcher_indices */ MatcherIndicesIndex(131),
},
{
- /* [390] */
+ /* [392] */
/* usage */ core::ParameterUsage::kTexture,
/* matcher_indices */ MatcherIndicesIndex(134),
},
{
- /* [391] */
- /* usage */ core::ParameterUsage::kInputAttachment,
- /* matcher_indices */ MatcherIndicesIndex(215),
- },
- {
- /* [392] */
- /* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(69),
- },
- {
/* [393] */
- /* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(65),
+ /* usage */ core::ParameterUsage::kTexture,
+ /* matcher_indices */ MatcherIndicesIndex(137),
},
{
/* [394] */
- /* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(170),
+ /* usage */ core::ParameterUsage::kTexture,
+ /* matcher_indices */ MatcherIndicesIndex(140),
},
{
/* [395] */
- /* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(213),
+ /* usage */ core::ParameterUsage::kInputAttachment,
+ /* matcher_indices */ MatcherIndicesIndex(219),
},
{
/* [396] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(225),
+ /* matcher_indices */ MatcherIndicesIndex(75),
},
{
/* [397] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(227),
+ /* matcher_indices */ MatcherIndicesIndex(71),
},
{
/* [398] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(229),
+ /* matcher_indices */ MatcherIndicesIndex(174),
},
{
/* [399] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(231),
+ /* matcher_indices */ MatcherIndicesIndex(217),
},
{
/* [400] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(233),
+ /* matcher_indices */ MatcherIndicesIndex(229),
},
{
/* [401] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(235),
+ /* matcher_indices */ MatcherIndicesIndex(231),
},
{
/* [402] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(237),
+ /* matcher_indices */ MatcherIndicesIndex(233),
},
{
/* [403] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(62),
+ /* matcher_indices */ MatcherIndicesIndex(235),
},
{
/* [404] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(239),
+ /* matcher_indices */ MatcherIndicesIndex(237),
},
{
/* [405] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(241),
+ /* matcher_indices */ MatcherIndicesIndex(239),
},
{
/* [406] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(243),
+ /* matcher_indices */ MatcherIndicesIndex(241),
},
{
/* [407] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(245),
+ /* matcher_indices */ MatcherIndicesIndex(68),
},
{
/* [408] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(247),
+ /* matcher_indices */ MatcherIndicesIndex(243),
},
{
/* [409] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(249),
+ /* matcher_indices */ MatcherIndicesIndex(245),
},
{
/* [410] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(251),
+ /* matcher_indices */ MatcherIndicesIndex(247),
},
{
/* [411] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(253),
+ /* matcher_indices */ MatcherIndicesIndex(249),
},
{
/* [412] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(255),
+ /* matcher_indices */ MatcherIndicesIndex(251),
},
{
/* [413] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(257),
+ /* matcher_indices */ MatcherIndicesIndex(253),
},
{
/* [414] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(259),
+ /* matcher_indices */ MatcherIndicesIndex(255),
},
{
/* [415] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(261),
+ /* matcher_indices */ MatcherIndicesIndex(257),
},
{
/* [416] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(263),
+ /* matcher_indices */ MatcherIndicesIndex(259),
},
{
/* [417] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(265),
+ /* matcher_indices */ MatcherIndicesIndex(261),
},
{
/* [418] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(267),
+ /* matcher_indices */ MatcherIndicesIndex(263),
},
{
/* [419] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(269),
+ /* matcher_indices */ MatcherIndicesIndex(265),
},
{
/* [420] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(271),
+ /* matcher_indices */ MatcherIndicesIndex(267),
},
{
/* [421] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(273),
+ /* matcher_indices */ MatcherIndicesIndex(269),
},
{
/* [422] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(275),
+ /* matcher_indices */ MatcherIndicesIndex(271),
},
{
/* [423] */
/* usage */ core::ParameterUsage::kNone,
+ /* matcher_indices */ MatcherIndicesIndex(273),
+ },
+ {
+ /* [424] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* matcher_indices */ MatcherIndicesIndex(275),
+ },
+ {
+ /* [425] */
+ /* usage */ core::ParameterUsage::kNone,
/* matcher_indices */ MatcherIndicesIndex(277),
},
+ {
+ /* [426] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* matcher_indices */ MatcherIndicesIndex(279),
+ },
+ {
+ /* [427] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* matcher_indices */ MatcherIndicesIndex(281),
+ },
};
static_assert(ParameterIndex::CanIndex(kParameters),
@@ -4465,7 +4489,7 @@
{
/* [2] */
/* name */ "S",
- /* matcher_indices */ MatcherIndicesIndex(294),
+ /* matcher_indices */ MatcherIndicesIndex(298),
/* kind */ TemplateInfo::Kind::kType,
},
{
@@ -4489,13 +4513,13 @@
{
/* [6] */
/* name */ "C",
- /* matcher_indices */ MatcherIndicesIndex(281),
+ /* matcher_indices */ MatcherIndicesIndex(285),
/* kind */ TemplateInfo::Kind::kType,
},
{
/* [7] */
/* name */ "F",
- /* matcher_indices */ MatcherIndicesIndex(112),
+ /* matcher_indices */ MatcherIndicesIndex(118),
/* kind */ TemplateInfo::Kind::kNumber,
},
{
@@ -4507,25 +4531,25 @@
{
/* [9] */
/* name */ "A",
- /* matcher_indices */ MatcherIndicesIndex(281),
+ /* matcher_indices */ MatcherIndicesIndex(285),
/* kind */ TemplateInfo::Kind::kType,
},
{
/* [10] */
/* name */ "L",
- /* matcher_indices */ MatcherIndicesIndex(281),
+ /* matcher_indices */ MatcherIndicesIndex(285),
/* kind */ TemplateInfo::Kind::kType,
},
{
/* [11] */
/* name */ "C",
- /* matcher_indices */ MatcherIndicesIndex(281),
+ /* matcher_indices */ MatcherIndicesIndex(285),
/* kind */ TemplateInfo::Kind::kType,
},
{
/* [12] */
/* name */ "F",
- /* matcher_indices */ MatcherIndicesIndex(293),
+ /* matcher_indices */ MatcherIndicesIndex(297),
/* kind */ TemplateInfo::Kind::kNumber,
},
{
@@ -4537,19 +4561,19 @@
{
/* [14] */
/* name */ "A",
- /* matcher_indices */ MatcherIndicesIndex(281),
+ /* matcher_indices */ MatcherIndicesIndex(285),
/* kind */ TemplateInfo::Kind::kType,
},
{
/* [15] */
/* name */ "C",
- /* matcher_indices */ MatcherIndicesIndex(281),
+ /* matcher_indices */ MatcherIndicesIndex(285),
/* kind */ TemplateInfo::Kind::kType,
},
{
/* [16] */
/* name */ "F",
- /* matcher_indices */ MatcherIndicesIndex(170),
+ /* matcher_indices */ MatcherIndicesIndex(174),
/* kind */ TemplateInfo::Kind::kNumber,
},
{
@@ -4561,115 +4585,115 @@
{
/* [18] */
/* name */ "A",
- /* matcher_indices */ MatcherIndicesIndex(281),
+ /* matcher_indices */ MatcherIndicesIndex(285),
/* kind */ TemplateInfo::Kind::kType,
},
{
/* [19] */
/* name */ "T",
- /* matcher_indices */ MatcherIndicesIndex(100),
+ /* matcher_indices */ MatcherIndicesIndex(34),
/* kind */ TemplateInfo::Kind::kType,
},
{
/* [20] */
/* name */ "C",
- /* matcher_indices */ MatcherIndicesIndex(281),
+ /* matcher_indices */ MatcherIndicesIndex(285),
/* kind */ TemplateInfo::Kind::kType,
},
{
/* [21] */
/* name */ "A",
- /* matcher_indices */ MatcherIndicesIndex(281),
+ /* matcher_indices */ MatcherIndicesIndex(285),
/* kind */ TemplateInfo::Kind::kType,
},
{
/* [22] */
/* name */ "L",
- /* matcher_indices */ MatcherIndicesIndex(281),
+ /* matcher_indices */ MatcherIndicesIndex(285),
/* kind */ TemplateInfo::Kind::kType,
},
{
/* [23] */
/* name */ "C",
- /* matcher_indices */ MatcherIndicesIndex(281),
+ /* matcher_indices */ MatcherIndicesIndex(285),
/* kind */ TemplateInfo::Kind::kType,
},
{
/* [24] */
/* name */ "F",
- /* matcher_indices */ MatcherIndicesIndex(112),
+ /* matcher_indices */ MatcherIndicesIndex(118),
/* kind */ TemplateInfo::Kind::kNumber,
},
{
/* [25] */
/* name */ "R",
- /* matcher_indices */ MatcherIndicesIndex(109),
+ /* matcher_indices */ MatcherIndicesIndex(115),
/* kind */ TemplateInfo::Kind::kNumber,
},
{
/* [26] */
/* name */ "A",
- /* matcher_indices */ MatcherIndicesIndex(281),
+ /* matcher_indices */ MatcherIndicesIndex(285),
/* kind */ TemplateInfo::Kind::kType,
},
{
/* [27] */
/* name */ "C",
- /* matcher_indices */ MatcherIndicesIndex(281),
+ /* matcher_indices */ MatcherIndicesIndex(285),
/* kind */ TemplateInfo::Kind::kType,
},
{
/* [28] */
/* name */ "F",
- /* matcher_indices */ MatcherIndicesIndex(293),
+ /* matcher_indices */ MatcherIndicesIndex(297),
/* kind */ TemplateInfo::Kind::kNumber,
},
{
/* [29] */
/* name */ "R",
- /* matcher_indices */ MatcherIndicesIndex(109),
+ /* matcher_indices */ MatcherIndicesIndex(115),
/* kind */ TemplateInfo::Kind::kNumber,
},
{
/* [30] */
/* name */ "A",
- /* matcher_indices */ MatcherIndicesIndex(281),
+ /* matcher_indices */ MatcherIndicesIndex(285),
/* kind */ TemplateInfo::Kind::kType,
},
{
/* [31] */
/* name */ "C",
- /* matcher_indices */ MatcherIndicesIndex(281),
+ /* matcher_indices */ MatcherIndicesIndex(285),
/* kind */ TemplateInfo::Kind::kType,
},
{
/* [32] */
/* name */ "F",
- /* matcher_indices */ MatcherIndicesIndex(170),
+ /* matcher_indices */ MatcherIndicesIndex(174),
/* kind */ TemplateInfo::Kind::kNumber,
},
{
/* [33] */
/* name */ "R",
- /* matcher_indices */ MatcherIndicesIndex(109),
+ /* matcher_indices */ MatcherIndicesIndex(115),
/* kind */ TemplateInfo::Kind::kNumber,
},
{
/* [34] */
/* name */ "A",
- /* matcher_indices */ MatcherIndicesIndex(281),
+ /* matcher_indices */ MatcherIndicesIndex(285),
/* kind */ TemplateInfo::Kind::kType,
},
{
/* [35] */
/* name */ "C",
- /* matcher_indices */ MatcherIndicesIndex(281),
+ /* matcher_indices */ MatcherIndicesIndex(285),
/* kind */ TemplateInfo::Kind::kType,
},
{
/* [36] */
/* name */ "F",
- /* matcher_indices */ MatcherIndicesIndex(112),
+ /* matcher_indices */ MatcherIndicesIndex(118),
/* kind */ TemplateInfo::Kind::kNumber,
},
{
@@ -4681,19 +4705,19 @@
{
/* [38] */
/* name */ "A",
- /* matcher_indices */ MatcherIndicesIndex(281),
+ /* matcher_indices */ MatcherIndicesIndex(285),
/* kind */ TemplateInfo::Kind::kType,
},
{
/* [39] */
/* name */ "C",
- /* matcher_indices */ MatcherIndicesIndex(281),
+ /* matcher_indices */ MatcherIndicesIndex(285),
/* kind */ TemplateInfo::Kind::kType,
},
{
/* [40] */
/* name */ "F",
- /* matcher_indices */ MatcherIndicesIndex(293),
+ /* matcher_indices */ MatcherIndicesIndex(297),
/* kind */ TemplateInfo::Kind::kNumber,
},
{
@@ -4705,19 +4729,19 @@
{
/* [42] */
/* name */ "A",
- /* matcher_indices */ MatcherIndicesIndex(281),
+ /* matcher_indices */ MatcherIndicesIndex(285),
/* kind */ TemplateInfo::Kind::kType,
},
{
/* [43] */
/* name */ "C",
- /* matcher_indices */ MatcherIndicesIndex(281),
+ /* matcher_indices */ MatcherIndicesIndex(285),
/* kind */ TemplateInfo::Kind::kType,
},
{
/* [44] */
/* name */ "F",
- /* matcher_indices */ MatcherIndicesIndex(170),
+ /* matcher_indices */ MatcherIndicesIndex(174),
/* kind */ TemplateInfo::Kind::kNumber,
},
{
@@ -4729,13 +4753,13 @@
{
/* [46] */
/* name */ "A",
- /* matcher_indices */ MatcherIndicesIndex(281),
+ /* matcher_indices */ MatcherIndicesIndex(285),
/* kind */ TemplateInfo::Kind::kType,
},
{
/* [47] */
/* name */ "S",
- /* matcher_indices */ MatcherIndicesIndex(295),
+ /* matcher_indices */ MatcherIndicesIndex(299),
/* kind */ TemplateInfo::Kind::kType,
},
{
@@ -4759,7 +4783,7 @@
{
/* [51] */
/* name */ "T",
- /* matcher_indices */ MatcherIndicesIndex(280),
+ /* matcher_indices */ MatcherIndicesIndex(284),
/* kind */ TemplateInfo::Kind::kType,
},
{
@@ -4783,7 +4807,7 @@
{
/* [55] */
/* name */ "T",
- /* matcher_indices */ MatcherIndicesIndex(98),
+ /* matcher_indices */ MatcherIndicesIndex(104),
/* kind */ TemplateInfo::Kind::kType,
},
{
@@ -4795,7 +4819,7 @@
{
/* [57] */
/* name */ "U",
- /* matcher_indices */ MatcherIndicesIndex(100),
+ /* matcher_indices */ MatcherIndicesIndex(34),
/* kind */ TemplateInfo::Kind::kType,
},
{
@@ -4807,13 +4831,13 @@
{
/* [59] */
/* name */ "T",
- /* matcher_indices */ MatcherIndicesIndex(280),
+ /* matcher_indices */ MatcherIndicesIndex(284),
/* kind */ TemplateInfo::Kind::kType,
},
{
/* [60] */
/* name */ "U",
- /* matcher_indices */ MatcherIndicesIndex(282),
+ /* matcher_indices */ MatcherIndicesIndex(286),
/* kind */ TemplateInfo::Kind::kType,
},
{
@@ -4831,7 +4855,7 @@
{
/* [63] */
/* name */ "T",
- /* matcher_indices */ MatcherIndicesIndex(280),
+ /* matcher_indices */ MatcherIndicesIndex(284),
/* kind */ TemplateInfo::Kind::kType,
},
{
@@ -4849,37 +4873,37 @@
{
/* [66] */
/* name */ "T",
- /* matcher_indices */ MatcherIndicesIndex(100),
+ /* matcher_indices */ MatcherIndicesIndex(34),
/* kind */ TemplateInfo::Kind::kType,
},
{
/* [67] */
/* name */ "C",
- /* matcher_indices */ MatcherIndicesIndex(281),
+ /* matcher_indices */ MatcherIndicesIndex(285),
/* kind */ TemplateInfo::Kind::kType,
},
{
/* [68] */
/* name */ "L",
- /* matcher_indices */ MatcherIndicesIndex(281),
+ /* matcher_indices */ MatcherIndicesIndex(285),
/* kind */ TemplateInfo::Kind::kType,
},
{
/* [69] */
/* name */ "T",
- /* matcher_indices */ MatcherIndicesIndex(100),
+ /* matcher_indices */ MatcherIndicesIndex(34),
/* kind */ TemplateInfo::Kind::kType,
},
{
/* [70] */
/* name */ "C",
- /* matcher_indices */ MatcherIndicesIndex(281),
+ /* matcher_indices */ MatcherIndicesIndex(285),
/* kind */ TemplateInfo::Kind::kType,
},
{
/* [71] */
/* name */ "S",
- /* matcher_indices */ MatcherIndicesIndex(281),
+ /* matcher_indices */ MatcherIndicesIndex(285),
/* kind */ TemplateInfo::Kind::kType,
},
{
@@ -4903,7 +4927,7 @@
{
/* [75] */
/* name */ "T",
- /* matcher_indices */ MatcherIndicesIndex(280),
+ /* matcher_indices */ MatcherIndicesIndex(284),
/* kind */ TemplateInfo::Kind::kType,
},
{
@@ -4927,7 +4951,7 @@
{
/* [79] */
/* name */ "T",
- /* matcher_indices */ MatcherIndicesIndex(279),
+ /* matcher_indices */ MatcherIndicesIndex(283),
/* kind */ TemplateInfo::Kind::kType,
},
{
@@ -4939,7 +4963,7 @@
{
/* [81] */
/* name */ "T",
- /* matcher_indices */ MatcherIndicesIndex(281),
+ /* matcher_indices */ MatcherIndicesIndex(285),
/* kind */ TemplateInfo::Kind::kType,
},
{
@@ -4957,7 +4981,7 @@
{
/* [84] */
/* name */ "R",
- /* matcher_indices */ MatcherIndicesIndex(109),
+ /* matcher_indices */ MatcherIndicesIndex(115),
/* kind */ TemplateInfo::Kind::kNumber,
},
{
@@ -4975,19 +4999,19 @@
{
/* [87] */
/* name */ "T",
- /* matcher_indices */ MatcherIndicesIndex(100),
+ /* matcher_indices */ MatcherIndicesIndex(34),
/* kind */ TemplateInfo::Kind::kType,
},
{
/* [88] */
/* name */ "U",
- /* matcher_indices */ MatcherIndicesIndex(100),
+ /* matcher_indices */ MatcherIndicesIndex(34),
/* kind */ TemplateInfo::Kind::kType,
},
{
/* [89] */
/* name */ "T",
- /* matcher_indices */ MatcherIndicesIndex(104),
+ /* matcher_indices */ MatcherIndicesIndex(110),
/* kind */ TemplateInfo::Kind::kType,
},
{
@@ -4999,7 +5023,7 @@
{
/* [91] */
/* name */ "T",
- /* matcher_indices */ MatcherIndicesIndex(283),
+ /* matcher_indices */ MatcherIndicesIndex(287),
/* kind */ TemplateInfo::Kind::kType,
},
{
@@ -5011,7 +5035,7 @@
{
/* [93] */
/* name */ "T",
- /* matcher_indices */ MatcherIndicesIndex(284),
+ /* matcher_indices */ MatcherIndicesIndex(288),
/* kind */ TemplateInfo::Kind::kType,
},
{
@@ -5023,13 +5047,13 @@
{
/* [95] */
/* name */ "T",
- /* matcher_indices */ MatcherIndicesIndex(294),
+ /* matcher_indices */ MatcherIndicesIndex(298),
/* kind */ TemplateInfo::Kind::kType,
},
{
/* [96] */
/* name */ "T",
- /* matcher_indices */ MatcherIndicesIndex(107),
+ /* matcher_indices */ MatcherIndicesIndex(113),
/* kind */ TemplateInfo::Kind::kType,
},
{
@@ -5047,31 +5071,31 @@
{
/* [99] */
/* name */ "S",
- /* matcher_indices */ MatcherIndicesIndex(100),
+ /* matcher_indices */ MatcherIndicesIndex(34),
/* kind */ TemplateInfo::Kind::kType,
},
{
/* [100] */
/* name */ "T",
- /* matcher_indices */ MatcherIndicesIndex(157),
+ /* matcher_indices */ MatcherIndicesIndex(161),
/* kind */ TemplateInfo::Kind::kType,
},
{
/* [101] */
/* name */ "S",
- /* matcher_indices */ MatcherIndicesIndex(100),
+ /* matcher_indices */ MatcherIndicesIndex(34),
/* kind */ TemplateInfo::Kind::kType,
},
{
/* [102] */
/* name */ "T",
- /* matcher_indices */ MatcherIndicesIndex(100),
+ /* matcher_indices */ MatcherIndicesIndex(34),
/* kind */ TemplateInfo::Kind::kType,
},
{
/* [103] */
/* name */ "L",
- /* matcher_indices */ MatcherIndicesIndex(281),
+ /* matcher_indices */ MatcherIndicesIndex(285),
/* kind */ TemplateInfo::Kind::kType,
},
{
@@ -5083,7 +5107,7 @@
{
/* [105] */
/* name */ "R",
- /* matcher_indices */ MatcherIndicesIndex(109),
+ /* matcher_indices */ MatcherIndicesIndex(115),
/* kind */ TemplateInfo::Kind::kNumber,
},
{
@@ -5101,7 +5125,7 @@
{
/* [108] */
/* name */ "T",
- /* matcher_indices */ MatcherIndicesIndex(296),
+ /* matcher_indices */ MatcherIndicesIndex(300),
/* kind */ TemplateInfo::Kind::kType,
},
{
@@ -5113,13 +5137,13 @@
{
/* [110] */
/* name */ "T",
- /* matcher_indices */ MatcherIndicesIndex(115),
+ /* matcher_indices */ MatcherIndicesIndex(121),
/* kind */ TemplateInfo::Kind::kType,
},
{
/* [111] */
/* name */ "U",
- /* matcher_indices */ MatcherIndicesIndex(299),
+ /* matcher_indices */ MatcherIndicesIndex(303),
/* kind */ TemplateInfo::Kind::kType,
},
{
@@ -5131,91 +5155,91 @@
{
/* [113] */
/* name */ "U",
- /* matcher_indices */ MatcherIndicesIndex(300),
+ /* matcher_indices */ MatcherIndicesIndex(304),
/* kind */ TemplateInfo::Kind::kType,
},
{
/* [114] */
/* name */ "T",
- /* matcher_indices */ MatcherIndicesIndex(170),
+ /* matcher_indices */ MatcherIndicesIndex(174),
/* kind */ TemplateInfo::Kind::kType,
},
{
/* [115] */
/* name */ "U",
- /* matcher_indices */ MatcherIndicesIndex(297),
+ /* matcher_indices */ MatcherIndicesIndex(301),
/* kind */ TemplateInfo::Kind::kType,
},
{
/* [116] */
/* name */ "T",
- /* matcher_indices */ MatcherIndicesIndex(109),
+ /* matcher_indices */ MatcherIndicesIndex(115),
/* kind */ TemplateInfo::Kind::kType,
},
{
/* [117] */
/* name */ "U",
- /* matcher_indices */ MatcherIndicesIndex(298),
+ /* matcher_indices */ MatcherIndicesIndex(302),
/* kind */ TemplateInfo::Kind::kType,
},
{
/* [118] */
/* name */ "T",
- /* matcher_indices */ MatcherIndicesIndex(40),
+ /* matcher_indices */ MatcherIndicesIndex(46),
/* kind */ TemplateInfo::Kind::kType,
},
{
/* [119] */
/* name */ "U",
- /* matcher_indices */ MatcherIndicesIndex(301),
+ /* matcher_indices */ MatcherIndicesIndex(305),
/* kind */ TemplateInfo::Kind::kType,
},
{
/* [120] */
/* name */ "T",
- /* matcher_indices */ MatcherIndicesIndex(155),
+ /* matcher_indices */ MatcherIndicesIndex(33),
/* kind */ TemplateInfo::Kind::kType,
},
{
/* [121] */
/* name */ "T",
- /* matcher_indices */ MatcherIndicesIndex(297),
+ /* matcher_indices */ MatcherIndicesIndex(301),
/* kind */ TemplateInfo::Kind::kType,
},
{
/* [122] */
/* name */ "T",
- /* matcher_indices */ MatcherIndicesIndex(298),
+ /* matcher_indices */ MatcherIndicesIndex(302),
/* kind */ TemplateInfo::Kind::kType,
},
{
/* [123] */
/* name */ "T",
- /* matcher_indices */ MatcherIndicesIndex(299),
+ /* matcher_indices */ MatcherIndicesIndex(303),
/* kind */ TemplateInfo::Kind::kType,
},
{
/* [124] */
/* name */ "T",
- /* matcher_indices */ MatcherIndicesIndex(300),
+ /* matcher_indices */ MatcherIndicesIndex(304),
/* kind */ TemplateInfo::Kind::kType,
},
{
/* [125] */
/* name */ "T",
- /* matcher_indices */ MatcherIndicesIndex(301),
+ /* matcher_indices */ MatcherIndicesIndex(305),
/* kind */ TemplateInfo::Kind::kType,
},
{
/* [126] */
/* name */ "T",
- /* matcher_indices */ MatcherIndicesIndex(302),
+ /* matcher_indices */ MatcherIndicesIndex(306),
/* kind */ TemplateInfo::Kind::kType,
},
{
/* [127] */
/* name */ "T",
- /* matcher_indices */ MatcherIndicesIndex(303),
+ /* matcher_indices */ MatcherIndicesIndex(307),
/* kind */ TemplateInfo::Kind::kType,
},
};
@@ -5351,8 +5375,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 3,
/* templates */ TemplateIndex(66),
- /* parameters */ ParameterIndex(279),
- /* return_matcher_indices */ MatcherIndicesIndex(191),
+ /* parameters */ ParameterIndex(283),
+ /* return_matcher_indices */ MatcherIndicesIndex(195),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5362,8 +5386,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 3,
/* templates */ TemplateIndex(66),
- /* parameters */ ParameterIndex(282),
- /* return_matcher_indices */ MatcherIndicesIndex(191),
+ /* parameters */ ParameterIndex(286),
+ /* return_matcher_indices */ MatcherIndicesIndex(195),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5374,7 +5398,7 @@
/* num_templates */ 4,
/* templates */ TemplateIndex(19),
/* parameters */ ParameterIndex(202),
- /* return_matcher_indices */ MatcherIndicesIndex(191),
+ /* return_matcher_indices */ MatcherIndicesIndex(195),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5384,8 +5408,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 3,
/* templates */ TemplateIndex(66),
- /* parameters */ ParameterIndex(285),
- /* return_matcher_indices */ MatcherIndicesIndex(191),
+ /* parameters */ ParameterIndex(289),
+ /* return_matcher_indices */ MatcherIndicesIndex(195),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5395,8 +5419,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 3,
/* templates */ TemplateIndex(69),
- /* parameters */ ParameterIndex(288),
- /* return_matcher_indices */ MatcherIndicesIndex(191),
+ /* parameters */ ParameterIndex(292),
+ /* return_matcher_indices */ MatcherIndicesIndex(195),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5406,8 +5430,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(67),
- /* parameters */ ParameterIndex(291),
- /* return_matcher_indices */ MatcherIndicesIndex(115),
+ /* parameters */ ParameterIndex(295),
+ /* return_matcher_indices */ MatcherIndicesIndex(121),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5418,7 +5442,7 @@
/* num_templates */ 3,
/* templates */ TemplateIndex(20),
/* parameters */ ParameterIndex(206),
- /* return_matcher_indices */ MatcherIndicesIndex(115),
+ /* return_matcher_indices */ MatcherIndicesIndex(121),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5428,8 +5452,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(70),
- /* parameters */ ParameterIndex(294),
- /* return_matcher_indices */ MatcherIndicesIndex(115),
+ /* parameters */ ParameterIndex(298),
+ /* return_matcher_indices */ MatcherIndicesIndex(121),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5439,8 +5463,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(6),
- /* parameters */ ParameterIndex(330),
- /* return_matcher_indices */ MatcherIndicesIndex(167),
+ /* parameters */ ParameterIndex(334),
+ /* return_matcher_indices */ MatcherIndicesIndex(171),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5450,8 +5474,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 3,
/* templates */ TemplateIndex(23),
- /* parameters */ ParameterIndex(252),
- /* return_matcher_indices */ MatcherIndicesIndex(167),
+ /* parameters */ ParameterIndex(256),
+ /* return_matcher_indices */ MatcherIndicesIndex(171),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5461,8 +5485,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 3,
/* templates */ TemplateIndex(27),
- /* parameters */ ParameterIndex(252),
- /* return_matcher_indices */ MatcherIndicesIndex(169),
+ /* parameters */ ParameterIndex(256),
+ /* return_matcher_indices */ MatcherIndicesIndex(173),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5472,8 +5496,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 3,
/* templates */ TemplateIndex(31),
- /* parameters */ ParameterIndex(252),
- /* return_matcher_indices */ MatcherIndicesIndex(171),
+ /* parameters */ ParameterIndex(256),
+ /* return_matcher_indices */ MatcherIndicesIndex(175),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5483,8 +5507,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 3,
/* templates */ TemplateIndex(23),
- /* parameters */ ParameterIndex(255),
- /* return_matcher_indices */ MatcherIndicesIndex(167),
+ /* parameters */ ParameterIndex(259),
+ /* return_matcher_indices */ MatcherIndicesIndex(171),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5494,8 +5518,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 3,
/* templates */ TemplateIndex(27),
- /* parameters */ ParameterIndex(255),
- /* return_matcher_indices */ MatcherIndicesIndex(169),
+ /* parameters */ ParameterIndex(259),
+ /* return_matcher_indices */ MatcherIndicesIndex(173),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5505,8 +5529,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 3,
/* templates */ TemplateIndex(31),
- /* parameters */ ParameterIndex(255),
- /* return_matcher_indices */ MatcherIndicesIndex(171),
+ /* parameters */ ParameterIndex(259),
+ /* return_matcher_indices */ MatcherIndicesIndex(175),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5517,7 +5541,7 @@
/* num_templates */ 4,
/* templates */ TemplateIndex(23),
/* parameters */ ParameterIndex(190),
- /* return_matcher_indices */ MatcherIndicesIndex(167),
+ /* return_matcher_indices */ MatcherIndicesIndex(171),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5528,7 +5552,7 @@
/* num_templates */ 4,
/* templates */ TemplateIndex(27),
/* parameters */ ParameterIndex(190),
- /* return_matcher_indices */ MatcherIndicesIndex(169),
+ /* return_matcher_indices */ MatcherIndicesIndex(173),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5539,7 +5563,7 @@
/* num_templates */ 4,
/* templates */ TemplateIndex(31),
/* parameters */ ParameterIndex(190),
- /* return_matcher_indices */ MatcherIndicesIndex(171),
+ /* return_matcher_indices */ MatcherIndicesIndex(175),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5549,8 +5573,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 3,
/* templates */ TemplateIndex(23),
- /* parameters */ ParameterIndex(258),
- /* return_matcher_indices */ MatcherIndicesIndex(167),
+ /* parameters */ ParameterIndex(262),
+ /* return_matcher_indices */ MatcherIndicesIndex(171),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5560,8 +5584,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 3,
/* templates */ TemplateIndex(27),
- /* parameters */ ParameterIndex(258),
- /* return_matcher_indices */ MatcherIndicesIndex(169),
+ /* parameters */ ParameterIndex(262),
+ /* return_matcher_indices */ MatcherIndicesIndex(173),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5571,8 +5595,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 3,
/* templates */ TemplateIndex(31),
- /* parameters */ ParameterIndex(258),
- /* return_matcher_indices */ MatcherIndicesIndex(171),
+ /* parameters */ ParameterIndex(262),
+ /* return_matcher_indices */ MatcherIndicesIndex(175),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5582,8 +5606,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 3,
/* templates */ TemplateIndex(35),
- /* parameters */ ParameterIndex(252),
- /* return_matcher_indices */ MatcherIndicesIndex(167),
+ /* parameters */ ParameterIndex(256),
+ /* return_matcher_indices */ MatcherIndicesIndex(171),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5593,8 +5617,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 3,
/* templates */ TemplateIndex(39),
- /* parameters */ ParameterIndex(252),
- /* return_matcher_indices */ MatcherIndicesIndex(169),
+ /* parameters */ ParameterIndex(256),
+ /* return_matcher_indices */ MatcherIndicesIndex(173),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5604,8 +5628,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 3,
/* templates */ TemplateIndex(43),
- /* parameters */ ParameterIndex(252),
- /* return_matcher_indices */ MatcherIndicesIndex(171),
+ /* parameters */ ParameterIndex(256),
+ /* return_matcher_indices */ MatcherIndicesIndex(175),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5615,8 +5639,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 3,
/* templates */ TemplateIndex(35),
- /* parameters */ ParameterIndex(255),
- /* return_matcher_indices */ MatcherIndicesIndex(167),
+ /* parameters */ ParameterIndex(259),
+ /* return_matcher_indices */ MatcherIndicesIndex(171),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5626,8 +5650,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 3,
/* templates */ TemplateIndex(39),
- /* parameters */ ParameterIndex(255),
- /* return_matcher_indices */ MatcherIndicesIndex(169),
+ /* parameters */ ParameterIndex(259),
+ /* return_matcher_indices */ MatcherIndicesIndex(173),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5637,8 +5661,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 3,
/* templates */ TemplateIndex(43),
- /* parameters */ ParameterIndex(255),
- /* return_matcher_indices */ MatcherIndicesIndex(171),
+ /* parameters */ ParameterIndex(259),
+ /* return_matcher_indices */ MatcherIndicesIndex(175),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5649,7 +5673,7 @@
/* num_templates */ 4,
/* templates */ TemplateIndex(35),
/* parameters */ ParameterIndex(190),
- /* return_matcher_indices */ MatcherIndicesIndex(167),
+ /* return_matcher_indices */ MatcherIndicesIndex(171),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5660,7 +5684,7 @@
/* num_templates */ 4,
/* templates */ TemplateIndex(39),
/* parameters */ ParameterIndex(190),
- /* return_matcher_indices */ MatcherIndicesIndex(169),
+ /* return_matcher_indices */ MatcherIndicesIndex(173),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5671,7 +5695,7 @@
/* num_templates */ 4,
/* templates */ TemplateIndex(43),
/* parameters */ ParameterIndex(190),
- /* return_matcher_indices */ MatcherIndicesIndex(171),
+ /* return_matcher_indices */ MatcherIndicesIndex(175),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5681,8 +5705,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 3,
/* templates */ TemplateIndex(35),
- /* parameters */ ParameterIndex(258),
- /* return_matcher_indices */ MatcherIndicesIndex(167),
+ /* parameters */ ParameterIndex(262),
+ /* return_matcher_indices */ MatcherIndicesIndex(171),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5692,8 +5716,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 3,
/* templates */ TemplateIndex(39),
- /* parameters */ ParameterIndex(258),
- /* return_matcher_indices */ MatcherIndicesIndex(169),
+ /* parameters */ ParameterIndex(262),
+ /* return_matcher_indices */ MatcherIndicesIndex(173),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5703,8 +5727,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 3,
/* templates */ TemplateIndex(43),
- /* parameters */ ParameterIndex(258),
- /* return_matcher_indices */ MatcherIndicesIndex(171),
+ /* parameters */ ParameterIndex(262),
+ /* return_matcher_indices */ MatcherIndicesIndex(175),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5714,8 +5738,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(19),
- /* parameters */ ParameterIndex(279),
- /* return_matcher_indices */ MatcherIndicesIndex(109),
+ /* parameters */ ParameterIndex(283),
+ /* return_matcher_indices */ MatcherIndicesIndex(115),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5725,8 +5749,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(102),
- /* parameters */ ParameterIndex(310),
- /* return_matcher_indices */ MatcherIndicesIndex(109),
+ /* parameters */ ParameterIndex(314),
+ /* return_matcher_indices */ MatcherIndicesIndex(115),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5737,7 +5761,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(19),
/* parameters */ ParameterIndex(75),
- /* return_matcher_indices */ MatcherIndicesIndex(175),
+ /* return_matcher_indices */ MatcherIndicesIndex(179),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5747,8 +5771,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(102),
- /* parameters */ ParameterIndex(312),
- /* return_matcher_indices */ MatcherIndicesIndex(175),
+ /* parameters */ ParameterIndex(316),
+ /* return_matcher_indices */ MatcherIndicesIndex(179),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5759,7 +5783,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(19),
/* parameters */ ParameterIndex(27),
- /* return_matcher_indices */ MatcherIndicesIndex(175),
+ /* return_matcher_indices */ MatcherIndicesIndex(179),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5769,8 +5793,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(102),
- /* parameters */ ParameterIndex(314),
- /* return_matcher_indices */ MatcherIndicesIndex(175),
+ /* parameters */ ParameterIndex(318),
+ /* return_matcher_indices */ MatcherIndicesIndex(179),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5780,8 +5804,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(19),
- /* parameters */ ParameterIndex(285),
- /* return_matcher_indices */ MatcherIndicesIndex(181),
+ /* parameters */ ParameterIndex(289),
+ /* return_matcher_indices */ MatcherIndicesIndex(185),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5791,8 +5815,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(102),
- /* parameters */ ParameterIndex(316),
- /* return_matcher_indices */ MatcherIndicesIndex(181),
+ /* parameters */ ParameterIndex(320),
+ /* return_matcher_indices */ MatcherIndicesIndex(185),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5803,7 +5827,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(19),
/* parameters */ ParameterIndex(159),
- /* return_matcher_indices */ MatcherIndicesIndex(175),
+ /* return_matcher_indices */ MatcherIndicesIndex(179),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5813,8 +5837,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(102),
- /* parameters */ ParameterIndex(318),
- /* return_matcher_indices */ MatcherIndicesIndex(175),
+ /* parameters */ ParameterIndex(322),
+ /* return_matcher_indices */ MatcherIndicesIndex(179),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5825,7 +5849,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(19),
/* parameters */ ParameterIndex(80),
- /* return_matcher_indices */ MatcherIndicesIndex(175),
+ /* return_matcher_indices */ MatcherIndicesIndex(179),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5835,8 +5859,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(102),
- /* parameters */ ParameterIndex(320),
- /* return_matcher_indices */ MatcherIndicesIndex(175),
+ /* parameters */ ParameterIndex(324),
+ /* return_matcher_indices */ MatcherIndicesIndex(179),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5846,8 +5870,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(19),
- /* parameters */ ParameterIndex(288),
- /* return_matcher_indices */ MatcherIndicesIndex(175),
+ /* parameters */ ParameterIndex(292),
+ /* return_matcher_indices */ MatcherIndicesIndex(179),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5858,7 +5882,7 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(89),
- /* return_matcher_indices */ MatcherIndicesIndex(175),
+ /* return_matcher_indices */ MatcherIndicesIndex(179),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5868,8 +5892,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(10),
- /* parameters */ ParameterIndex(322),
- /* return_matcher_indices */ MatcherIndicesIndex(175),
+ /* parameters */ ParameterIndex(326),
+ /* return_matcher_indices */ MatcherIndicesIndex(179),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5880,7 +5904,7 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(32),
- /* return_matcher_indices */ MatcherIndicesIndex(175),
+ /* return_matcher_indices */ MatcherIndicesIndex(179),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5890,8 +5914,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(10),
- /* parameters */ ParameterIndex(324),
- /* return_matcher_indices */ MatcherIndicesIndex(175),
+ /* parameters */ ParameterIndex(328),
+ /* return_matcher_indices */ MatcherIndicesIndex(179),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5902,7 +5926,7 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(166),
- /* return_matcher_indices */ MatcherIndicesIndex(175),
+ /* return_matcher_indices */ MatcherIndicesIndex(179),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5912,8 +5936,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(10),
- /* parameters */ ParameterIndex(326),
- /* return_matcher_indices */ MatcherIndicesIndex(175),
+ /* parameters */ ParameterIndex(330),
+ /* return_matcher_indices */ MatcherIndicesIndex(179),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5924,7 +5948,7 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(94),
- /* return_matcher_indices */ MatcherIndicesIndex(175),
+ /* return_matcher_indices */ MatcherIndicesIndex(179),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5934,8 +5958,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(10),
- /* parameters */ ParameterIndex(328),
- /* return_matcher_indices */ MatcherIndicesIndex(175),
+ /* parameters */ ParameterIndex(332),
+ /* return_matcher_indices */ MatcherIndicesIndex(179),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5945,8 +5969,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
- /* parameters */ ParameterIndex(294),
- /* return_matcher_indices */ MatcherIndicesIndex(175),
+ /* parameters */ ParameterIndex(298),
+ /* return_matcher_indices */ MatcherIndicesIndex(179),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5956,8 +5980,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(104),
- /* parameters */ ParameterIndex(387),
- /* return_matcher_indices */ MatcherIndicesIndex(109),
+ /* parameters */ ParameterIndex(391),
+ /* return_matcher_indices */ MatcherIndicesIndex(115),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5967,8 +5991,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(104),
- /* parameters */ ParameterIndex(388),
- /* return_matcher_indices */ MatcherIndicesIndex(175),
+ /* parameters */ ParameterIndex(392),
+ /* return_matcher_indices */ MatcherIndicesIndex(179),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5978,8 +6002,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(104),
- /* parameters */ ParameterIndex(389),
- /* return_matcher_indices */ MatcherIndicesIndex(175),
+ /* parameters */ ParameterIndex(393),
+ /* return_matcher_indices */ MatcherIndicesIndex(179),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -5989,8 +6013,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(104),
- /* parameters */ ParameterIndex(390),
- /* return_matcher_indices */ MatcherIndicesIndex(181),
+ /* parameters */ ParameterIndex(394),
+ /* return_matcher_indices */ MatcherIndicesIndex(185),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -6000,8 +6024,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(106),
- /* parameters */ ParameterIndex(387),
- /* return_matcher_indices */ MatcherIndicesIndex(109),
+ /* parameters */ ParameterIndex(391),
+ /* return_matcher_indices */ MatcherIndicesIndex(115),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -6011,8 +6035,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(106),
- /* parameters */ ParameterIndex(388),
- /* return_matcher_indices */ MatcherIndicesIndex(175),
+ /* parameters */ ParameterIndex(392),
+ /* return_matcher_indices */ MatcherIndicesIndex(179),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -6022,8 +6046,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(106),
- /* parameters */ ParameterIndex(389),
- /* return_matcher_indices */ MatcherIndicesIndex(175),
+ /* parameters */ ParameterIndex(393),
+ /* return_matcher_indices */ MatcherIndicesIndex(179),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -6033,8 +6057,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(106),
- /* parameters */ ParameterIndex(390),
- /* return_matcher_indices */ MatcherIndicesIndex(181),
+ /* parameters */ ParameterIndex(394),
+ /* return_matcher_indices */ MatcherIndicesIndex(185),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -6044,8 +6068,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
- /* parameters */ ParameterIndex(249),
- /* return_matcher_indices */ MatcherIndicesIndex(175),
+ /* parameters */ ParameterIndex(253),
+ /* return_matcher_indices */ MatcherIndicesIndex(179),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -6056,7 +6080,7 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(/* invalid */),
- /* return_matcher_indices */ MatcherIndicesIndex(223),
+ /* return_matcher_indices */ MatcherIndicesIndex(227),
/* const_eval_fn */ ConstEvalFunctionIndex(107),
},
{
@@ -6067,7 +6091,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(126),
/* parameters */ ParameterIndex(/* invalid */),
- /* return_matcher_indices */ MatcherIndicesIndex(191),
+ /* return_matcher_indices */ MatcherIndicesIndex(195),
/* const_eval_fn */ ConstEvalFunctionIndex(107),
},
{
@@ -6077,8 +6101,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(126),
- /* parameters */ ParameterIndex(226),
- /* return_matcher_indices */ MatcherIndicesIndex(191),
+ /* parameters */ ParameterIndex(230),
+ /* return_matcher_indices */ MatcherIndicesIndex(195),
/* const_eval_fn */ ConstEvalFunctionIndex(82),
},
{
@@ -6088,8 +6112,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(91),
- /* parameters */ ParameterIndex(226),
- /* return_matcher_indices */ MatcherIndicesIndex(191),
+ /* parameters */ ParameterIndex(230),
+ /* return_matcher_indices */ MatcherIndicesIndex(195),
/* const_eval_fn */ ConstEvalFunctionIndex(82),
},
{
@@ -6100,7 +6124,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(126),
/* parameters */ ParameterIndex(1),
- /* return_matcher_indices */ MatcherIndicesIndex(191),
+ /* return_matcher_indices */ MatcherIndicesIndex(195),
/* const_eval_fn */ ConstEvalFunctionIndex(109),
},
{
@@ -6111,7 +6135,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(91),
/* parameters */ ParameterIndex(1),
- /* return_matcher_indices */ MatcherIndicesIndex(191),
+ /* return_matcher_indices */ MatcherIndicesIndex(195),
/* const_eval_fn */ ConstEvalFunctionIndex(109),
},
{
@@ -6121,8 +6145,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(126),
- /* parameters */ ParameterIndex(214),
- /* return_matcher_indices */ MatcherIndicesIndex(191),
+ /* parameters */ ParameterIndex(218),
+ /* return_matcher_indices */ MatcherIndicesIndex(195),
/* const_eval_fn */ ConstEvalFunctionIndex(110),
},
{
@@ -6132,8 +6156,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(91),
- /* parameters */ ParameterIndex(214),
- /* return_matcher_indices */ MatcherIndicesIndex(191),
+ /* parameters */ ParameterIndex(218),
+ /* return_matcher_indices */ MatcherIndicesIndex(195),
/* const_eval_fn */ ConstEvalFunctionIndex(110),
},
{
@@ -6143,8 +6167,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(126),
- /* parameters */ ParameterIndex(297),
- /* return_matcher_indices */ MatcherIndicesIndex(191),
+ /* parameters */ ParameterIndex(301),
+ /* return_matcher_indices */ MatcherIndicesIndex(195),
/* const_eval_fn */ ConstEvalFunctionIndex(111),
},
{
@@ -6154,8 +6178,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(91),
- /* parameters */ ParameterIndex(297),
- /* return_matcher_indices */ MatcherIndicesIndex(191),
+ /* parameters */ ParameterIndex(301),
+ /* return_matcher_indices */ MatcherIndicesIndex(195),
/* const_eval_fn */ ConstEvalFunctionIndex(111),
},
{
@@ -6165,8 +6189,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(126),
- /* parameters */ ParameterIndex(300),
- /* return_matcher_indices */ MatcherIndicesIndex(191),
+ /* parameters */ ParameterIndex(304),
+ /* return_matcher_indices */ MatcherIndicesIndex(195),
/* const_eval_fn */ ConstEvalFunctionIndex(111),
},
{
@@ -6176,8 +6200,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(91),
- /* parameters */ ParameterIndex(300),
- /* return_matcher_indices */ MatcherIndicesIndex(191),
+ /* parameters */ ParameterIndex(304),
+ /* return_matcher_indices */ MatcherIndicesIndex(195),
/* const_eval_fn */ ConstEvalFunctionIndex(111),
},
{
@@ -6187,8 +6211,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(126),
- /* parameters */ ParameterIndex(303),
- /* return_matcher_indices */ MatcherIndicesIndex(191),
+ /* parameters */ ParameterIndex(307),
+ /* return_matcher_indices */ MatcherIndicesIndex(195),
/* const_eval_fn */ ConstEvalFunctionIndex(111),
},
{
@@ -6198,8 +6222,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(91),
- /* parameters */ ParameterIndex(303),
- /* return_matcher_indices */ MatcherIndicesIndex(191),
+ /* parameters */ ParameterIndex(307),
+ /* return_matcher_indices */ MatcherIndicesIndex(195),
/* const_eval_fn */ ConstEvalFunctionIndex(111),
},
{
@@ -6209,8 +6233,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(126),
- /* parameters */ ParameterIndex(363),
- /* return_matcher_indices */ MatcherIndicesIndex(191),
+ /* parameters */ ParameterIndex(367),
+ /* return_matcher_indices */ MatcherIndicesIndex(195),
/* const_eval_fn */ ConstEvalFunctionIndex(111),
},
{
@@ -6220,8 +6244,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(91),
- /* parameters */ ParameterIndex(363),
- /* return_matcher_indices */ MatcherIndicesIndex(191),
+ /* parameters */ ParameterIndex(367),
+ /* return_matcher_indices */ MatcherIndicesIndex(195),
/* const_eval_fn */ ConstEvalFunctionIndex(111),
},
{
@@ -6231,8 +6255,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(126),
- /* parameters */ ParameterIndex(365),
- /* return_matcher_indices */ MatcherIndicesIndex(191),
+ /* parameters */ ParameterIndex(369),
+ /* return_matcher_indices */ MatcherIndicesIndex(195),
/* const_eval_fn */ ConstEvalFunctionIndex(111),
},
{
@@ -6242,8 +6266,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(91),
- /* parameters */ ParameterIndex(365),
- /* return_matcher_indices */ MatcherIndicesIndex(191),
+ /* parameters */ ParameterIndex(369),
+ /* return_matcher_indices */ MatcherIndicesIndex(195),
/* const_eval_fn */ ConstEvalFunctionIndex(111),
},
{
@@ -6253,8 +6277,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(126),
- /* parameters */ ParameterIndex(367),
- /* return_matcher_indices */ MatcherIndicesIndex(191),
+ /* parameters */ ParameterIndex(371),
+ /* return_matcher_indices */ MatcherIndicesIndex(195),
/* const_eval_fn */ ConstEvalFunctionIndex(111),
},
{
@@ -6264,8 +6288,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(91),
- /* parameters */ ParameterIndex(367),
- /* return_matcher_indices */ MatcherIndicesIndex(191),
+ /* parameters */ ParameterIndex(371),
+ /* return_matcher_indices */ MatcherIndicesIndex(195),
/* const_eval_fn */ ConstEvalFunctionIndex(111),
},
{
@@ -6275,8 +6299,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 2,
/* templates */ TemplateIndex(110),
- /* parameters */ ParameterIndex(396),
- /* return_matcher_indices */ MatcherIndicesIndex(191),
+ /* parameters */ ParameterIndex(400),
+ /* return_matcher_indices */ MatcherIndicesIndex(195),
/* const_eval_fn */ ConstEvalFunctionIndex(108),
},
{
@@ -6286,8 +6310,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 2,
/* templates */ TemplateIndex(112),
- /* parameters */ ParameterIndex(396),
- /* return_matcher_indices */ MatcherIndicesIndex(191),
+ /* parameters */ ParameterIndex(400),
+ /* return_matcher_indices */ MatcherIndicesIndex(195),
/* const_eval_fn */ ConstEvalFunctionIndex(108),
},
{
@@ -6297,8 +6321,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 2,
/* templates */ TemplateIndex(114),
- /* parameters */ ParameterIndex(396),
- /* return_matcher_indices */ MatcherIndicesIndex(191),
+ /* parameters */ ParameterIndex(400),
+ /* return_matcher_indices */ MatcherIndicesIndex(195),
/* const_eval_fn */ ConstEvalFunctionIndex(108),
},
{
@@ -6308,8 +6332,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 2,
/* templates */ TemplateIndex(116),
- /* parameters */ ParameterIndex(396),
- /* return_matcher_indices */ MatcherIndicesIndex(191),
+ /* parameters */ ParameterIndex(400),
+ /* return_matcher_indices */ MatcherIndicesIndex(195),
/* const_eval_fn */ ConstEvalFunctionIndex(108),
},
{
@@ -6319,8 +6343,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 2,
/* templates */ TemplateIndex(118),
- /* parameters */ ParameterIndex(396),
- /* return_matcher_indices */ MatcherIndicesIndex(191),
+ /* parameters */ ParameterIndex(400),
+ /* return_matcher_indices */ MatcherIndicesIndex(195),
/* const_eval_fn */ ConstEvalFunctionIndex(108),
},
{
@@ -6331,7 +6355,7 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(/* invalid */),
- /* return_matcher_indices */ MatcherIndicesIndex(221),
+ /* return_matcher_indices */ MatcherIndicesIndex(225),
/* const_eval_fn */ ConstEvalFunctionIndex(107),
},
{
@@ -6352,7 +6376,7 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(126),
- /* parameters */ ParameterIndex(222),
+ /* parameters */ ParameterIndex(226),
/* return_matcher_indices */ MatcherIndicesIndex(12),
/* const_eval_fn */ ConstEvalFunctionIndex(82),
},
@@ -6363,7 +6387,7 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(91),
- /* parameters */ ParameterIndex(222),
+ /* parameters */ ParameterIndex(226),
/* return_matcher_indices */ MatcherIndicesIndex(12),
/* const_eval_fn */ ConstEvalFunctionIndex(82),
},
@@ -6396,7 +6420,7 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(126),
- /* parameters */ ParameterIndex(214),
+ /* parameters */ ParameterIndex(218),
/* return_matcher_indices */ MatcherIndicesIndex(12),
/* const_eval_fn */ ConstEvalFunctionIndex(110),
},
@@ -6407,7 +6431,7 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(91),
- /* parameters */ ParameterIndex(214),
+ /* parameters */ ParameterIndex(218),
/* return_matcher_indices */ MatcherIndicesIndex(12),
/* const_eval_fn */ ConstEvalFunctionIndex(110),
},
@@ -6418,7 +6442,7 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(126),
- /* parameters */ ParameterIndex(297),
+ /* parameters */ ParameterIndex(301),
/* return_matcher_indices */ MatcherIndicesIndex(12),
/* const_eval_fn */ ConstEvalFunctionIndex(111),
},
@@ -6429,7 +6453,7 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(91),
- /* parameters */ ParameterIndex(297),
+ /* parameters */ ParameterIndex(301),
/* return_matcher_indices */ MatcherIndicesIndex(12),
/* const_eval_fn */ ConstEvalFunctionIndex(111),
},
@@ -6440,7 +6464,7 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(126),
- /* parameters */ ParameterIndex(300),
+ /* parameters */ ParameterIndex(304),
/* return_matcher_indices */ MatcherIndicesIndex(12),
/* const_eval_fn */ ConstEvalFunctionIndex(111),
},
@@ -6451,7 +6475,7 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(91),
- /* parameters */ ParameterIndex(300),
+ /* parameters */ ParameterIndex(304),
/* return_matcher_indices */ MatcherIndicesIndex(12),
/* const_eval_fn */ ConstEvalFunctionIndex(111),
},
@@ -6462,7 +6486,7 @@
/* num_explicit_templates */ 1,
/* num_templates */ 2,
/* templates */ TemplateIndex(110),
- /* parameters */ ParameterIndex(395),
+ /* parameters */ ParameterIndex(399),
/* return_matcher_indices */ MatcherIndicesIndex(12),
/* const_eval_fn */ ConstEvalFunctionIndex(108),
},
@@ -6473,7 +6497,7 @@
/* num_explicit_templates */ 1,
/* num_templates */ 2,
/* templates */ TemplateIndex(112),
- /* parameters */ ParameterIndex(395),
+ /* parameters */ ParameterIndex(399),
/* return_matcher_indices */ MatcherIndicesIndex(12),
/* const_eval_fn */ ConstEvalFunctionIndex(108),
},
@@ -6484,7 +6508,7 @@
/* num_explicit_templates */ 1,
/* num_templates */ 2,
/* templates */ TemplateIndex(114),
- /* parameters */ ParameterIndex(395),
+ /* parameters */ ParameterIndex(399),
/* return_matcher_indices */ MatcherIndicesIndex(12),
/* const_eval_fn */ ConstEvalFunctionIndex(108),
},
@@ -6495,7 +6519,7 @@
/* num_explicit_templates */ 1,
/* num_templates */ 2,
/* templates */ TemplateIndex(116),
- /* parameters */ ParameterIndex(395),
+ /* parameters */ ParameterIndex(399),
/* return_matcher_indices */ MatcherIndicesIndex(12),
/* const_eval_fn */ ConstEvalFunctionIndex(108),
},
@@ -6506,7 +6530,7 @@
/* num_explicit_templates */ 1,
/* num_templates */ 2,
/* templates */ TemplateIndex(118),
- /* parameters */ ParameterIndex(395),
+ /* parameters */ ParameterIndex(399),
/* return_matcher_indices */ MatcherIndicesIndex(12),
/* const_eval_fn */ ConstEvalFunctionIndex(108),
},
@@ -6517,8 +6541,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
- /* parameters */ ParameterIndex(246),
- /* return_matcher_indices */ MatcherIndicesIndex(167),
+ /* parameters */ ParameterIndex(250),
+ /* return_matcher_indices */ MatcherIndicesIndex(171),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -6529,7 +6553,7 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(44),
- /* return_matcher_indices */ MatcherIndicesIndex(167),
+ /* return_matcher_indices */ MatcherIndicesIndex(171),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -6540,7 +6564,7 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(170),
- /* return_matcher_indices */ MatcherIndicesIndex(167),
+ /* return_matcher_indices */ MatcherIndicesIndex(171),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -6551,7 +6575,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(9),
/* parameters */ ParameterIndex(19),
- /* return_matcher_indices */ MatcherIndicesIndex(167),
+ /* return_matcher_indices */ MatcherIndicesIndex(171),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -6562,7 +6586,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(9),
/* parameters */ ParameterIndex(99),
- /* return_matcher_indices */ MatcherIndicesIndex(167),
+ /* return_matcher_indices */ MatcherIndicesIndex(171),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -6573,7 +6597,7 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(50),
- /* return_matcher_indices */ MatcherIndicesIndex(167),
+ /* return_matcher_indices */ MatcherIndicesIndex(171),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -6584,7 +6608,7 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(174),
- /* return_matcher_indices */ MatcherIndicesIndex(167),
+ /* return_matcher_indices */ MatcherIndicesIndex(171),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -6595,7 +6619,7 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(119),
- /* return_matcher_indices */ MatcherIndicesIndex(167),
+ /* return_matcher_indices */ MatcherIndicesIndex(171),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -6606,7 +6630,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(9),
/* parameters */ ParameterIndex(56),
- /* return_matcher_indices */ MatcherIndicesIndex(167),
+ /* return_matcher_indices */ MatcherIndicesIndex(171),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -6617,7 +6641,7 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(139),
- /* return_matcher_indices */ MatcherIndicesIndex(115),
+ /* return_matcher_indices */ MatcherIndicesIndex(121),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -6628,7 +6652,7 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(162),
- /* return_matcher_indices */ MatcherIndicesIndex(115),
+ /* return_matcher_indices */ MatcherIndicesIndex(121),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -6639,7 +6663,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(9),
/* parameters */ ParameterIndex(68),
- /* return_matcher_indices */ MatcherIndicesIndex(115),
+ /* return_matcher_indices */ MatcherIndicesIndex(121),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -6650,7 +6674,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(9),
/* parameters */ ParameterIndex(84),
- /* return_matcher_indices */ MatcherIndicesIndex(115),
+ /* return_matcher_indices */ MatcherIndicesIndex(121),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -6661,7 +6685,7 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(186),
- /* return_matcher_indices */ MatcherIndicesIndex(115),
+ /* return_matcher_indices */ MatcherIndicesIndex(121),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -6672,7 +6696,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(9),
/* parameters */ ParameterIndex(144),
- /* return_matcher_indices */ MatcherIndicesIndex(115),
+ /* return_matcher_indices */ MatcherIndicesIndex(121),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -6683,7 +6707,7 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(124),
- /* return_matcher_indices */ MatcherIndicesIndex(167),
+ /* return_matcher_indices */ MatcherIndicesIndex(171),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -6694,7 +6718,7 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(124),
- /* return_matcher_indices */ MatcherIndicesIndex(167),
+ /* return_matcher_indices */ MatcherIndicesIndex(171),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -6705,7 +6729,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(9),
/* parameters */ ParameterIndex(62),
- /* return_matcher_indices */ MatcherIndicesIndex(167),
+ /* return_matcher_indices */ MatcherIndicesIndex(171),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -6716,7 +6740,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(9),
/* parameters */ ParameterIndex(62),
- /* return_matcher_indices */ MatcherIndicesIndex(167),
+ /* return_matcher_indices */ MatcherIndicesIndex(171),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -6727,7 +6751,7 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(129),
- /* return_matcher_indices */ MatcherIndicesIndex(167),
+ /* return_matcher_indices */ MatcherIndicesIndex(171),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -6738,7 +6762,7 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(129),
- /* return_matcher_indices */ MatcherIndicesIndex(167),
+ /* return_matcher_indices */ MatcherIndicesIndex(171),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -6749,7 +6773,7 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(182),
- /* return_matcher_indices */ MatcherIndicesIndex(167),
+ /* return_matcher_indices */ MatcherIndicesIndex(171),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -6760,7 +6784,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(9),
/* parameters */ ParameterIndex(134),
- /* return_matcher_indices */ MatcherIndicesIndex(167),
+ /* return_matcher_indices */ MatcherIndicesIndex(171),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -6771,7 +6795,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(10),
/* parameters */ ParameterIndex(139),
- /* return_matcher_indices */ MatcherIndicesIndex(115),
+ /* return_matcher_indices */ MatcherIndicesIndex(121),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -6782,7 +6806,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(10),
/* parameters */ ParameterIndex(139),
- /* return_matcher_indices */ MatcherIndicesIndex(115),
+ /* return_matcher_indices */ MatcherIndicesIndex(121),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -6793,7 +6817,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(9),
/* parameters */ ParameterIndex(68),
- /* return_matcher_indices */ MatcherIndicesIndex(115),
+ /* return_matcher_indices */ MatcherIndicesIndex(121),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -6804,7 +6828,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(9),
/* parameters */ ParameterIndex(68),
- /* return_matcher_indices */ MatcherIndicesIndex(115),
+ /* return_matcher_indices */ MatcherIndicesIndex(121),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -6815,7 +6839,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(10),
/* parameters */ ParameterIndex(186),
- /* return_matcher_indices */ MatcherIndicesIndex(115),
+ /* return_matcher_indices */ MatcherIndicesIndex(121),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -6826,7 +6850,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(9),
/* parameters */ ParameterIndex(144),
- /* return_matcher_indices */ MatcherIndicesIndex(115),
+ /* return_matcher_indices */ MatcherIndicesIndex(121),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -6837,7 +6861,7 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(/* invalid */),
- /* return_matcher_indices */ MatcherIndicesIndex(219),
+ /* return_matcher_indices */ MatcherIndicesIndex(223),
/* const_eval_fn */ ConstEvalFunctionIndex(107),
},
{
@@ -6848,7 +6872,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(126),
/* parameters */ ParameterIndex(/* invalid */),
- /* return_matcher_indices */ MatcherIndicesIndex(211),
+ /* return_matcher_indices */ MatcherIndicesIndex(215),
/* const_eval_fn */ ConstEvalFunctionIndex(107),
},
{
@@ -6858,8 +6882,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(126),
- /* parameters */ ParameterIndex(218),
- /* return_matcher_indices */ MatcherIndicesIndex(211),
+ /* parameters */ ParameterIndex(222),
+ /* return_matcher_indices */ MatcherIndicesIndex(215),
/* const_eval_fn */ ConstEvalFunctionIndex(82),
},
{
@@ -6869,8 +6893,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(91),
- /* parameters */ ParameterIndex(218),
- /* return_matcher_indices */ MatcherIndicesIndex(211),
+ /* parameters */ ParameterIndex(222),
+ /* return_matcher_indices */ MatcherIndicesIndex(215),
/* const_eval_fn */ ConstEvalFunctionIndex(82),
},
{
@@ -6881,7 +6905,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(126),
/* parameters */ ParameterIndex(1),
- /* return_matcher_indices */ MatcherIndicesIndex(211),
+ /* return_matcher_indices */ MatcherIndicesIndex(215),
/* const_eval_fn */ ConstEvalFunctionIndex(109),
},
{
@@ -6892,7 +6916,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(91),
/* parameters */ ParameterIndex(1),
- /* return_matcher_indices */ MatcherIndicesIndex(211),
+ /* return_matcher_indices */ MatcherIndicesIndex(215),
/* const_eval_fn */ ConstEvalFunctionIndex(109),
},
{
@@ -6902,8 +6926,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(126),
- /* parameters */ ParameterIndex(214),
- /* return_matcher_indices */ MatcherIndicesIndex(211),
+ /* parameters */ ParameterIndex(218),
+ /* return_matcher_indices */ MatcherIndicesIndex(215),
/* const_eval_fn */ ConstEvalFunctionIndex(110),
},
{
@@ -6913,8 +6937,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(91),
- /* parameters */ ParameterIndex(214),
- /* return_matcher_indices */ MatcherIndicesIndex(211),
+ /* parameters */ ParameterIndex(218),
+ /* return_matcher_indices */ MatcherIndicesIndex(215),
/* const_eval_fn */ ConstEvalFunctionIndex(110),
},
{
@@ -6924,8 +6948,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 2,
/* templates */ TemplateIndex(110),
- /* parameters */ ParameterIndex(377),
- /* return_matcher_indices */ MatcherIndicesIndex(211),
+ /* parameters */ ParameterIndex(381),
+ /* return_matcher_indices */ MatcherIndicesIndex(215),
/* const_eval_fn */ ConstEvalFunctionIndex(108),
},
{
@@ -6935,8 +6959,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 2,
/* templates */ TemplateIndex(112),
- /* parameters */ ParameterIndex(377),
- /* return_matcher_indices */ MatcherIndicesIndex(211),
+ /* parameters */ ParameterIndex(381),
+ /* return_matcher_indices */ MatcherIndicesIndex(215),
/* const_eval_fn */ ConstEvalFunctionIndex(108),
},
{
@@ -6946,8 +6970,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 2,
/* templates */ TemplateIndex(114),
- /* parameters */ ParameterIndex(377),
- /* return_matcher_indices */ MatcherIndicesIndex(211),
+ /* parameters */ ParameterIndex(381),
+ /* return_matcher_indices */ MatcherIndicesIndex(215),
/* const_eval_fn */ ConstEvalFunctionIndex(108),
},
{
@@ -6957,8 +6981,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 2,
/* templates */ TemplateIndex(116),
- /* parameters */ ParameterIndex(377),
- /* return_matcher_indices */ MatcherIndicesIndex(211),
+ /* parameters */ ParameterIndex(381),
+ /* return_matcher_indices */ MatcherIndicesIndex(215),
/* const_eval_fn */ ConstEvalFunctionIndex(108),
},
{
@@ -6968,8 +6992,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 2,
/* templates */ TemplateIndex(118),
- /* parameters */ ParameterIndex(377),
- /* return_matcher_indices */ MatcherIndicesIndex(211),
+ /* parameters */ ParameterIndex(381),
+ /* return_matcher_indices */ MatcherIndicesIndex(215),
/* const_eval_fn */ ConstEvalFunctionIndex(108),
},
{
@@ -6980,7 +7004,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(19),
/* parameters */ ParameterIndex(74),
- /* return_matcher_indices */ MatcherIndicesIndex(191),
+ /* return_matcher_indices */ MatcherIndicesIndex(195),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -6991,7 +7015,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(19),
/* parameters */ ParameterIndex(74),
- /* return_matcher_indices */ MatcherIndicesIndex(191),
+ /* return_matcher_indices */ MatcherIndicesIndex(195),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -7002,7 +7026,7 @@
/* num_templates */ 3,
/* templates */ TemplateIndex(19),
/* parameters */ ParameterIndex(26),
- /* return_matcher_indices */ MatcherIndicesIndex(191),
+ /* return_matcher_indices */ MatcherIndicesIndex(195),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -7013,7 +7037,7 @@
/* num_templates */ 3,
/* templates */ TemplateIndex(19),
/* parameters */ ParameterIndex(26),
- /* return_matcher_indices */ MatcherIndicesIndex(191),
+ /* return_matcher_indices */ MatcherIndicesIndex(195),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -7024,7 +7048,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(19),
/* parameters */ ParameterIndex(158),
- /* return_matcher_indices */ MatcherIndicesIndex(191),
+ /* return_matcher_indices */ MatcherIndicesIndex(195),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -7035,7 +7059,7 @@
/* num_templates */ 3,
/* templates */ TemplateIndex(19),
/* parameters */ ParameterIndex(79),
- /* return_matcher_indices */ MatcherIndicesIndex(191),
+ /* return_matcher_indices */ MatcherIndicesIndex(195),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -7046,7 +7070,7 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(139),
- /* return_matcher_indices */ MatcherIndicesIndex(167),
+ /* return_matcher_indices */ MatcherIndicesIndex(171),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -7057,7 +7081,7 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(162),
- /* return_matcher_indices */ MatcherIndicesIndex(167),
+ /* return_matcher_indices */ MatcherIndicesIndex(171),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -7068,7 +7092,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(9),
/* parameters */ ParameterIndex(68),
- /* return_matcher_indices */ MatcherIndicesIndex(167),
+ /* return_matcher_indices */ MatcherIndicesIndex(171),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -7079,7 +7103,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(9),
/* parameters */ ParameterIndex(84),
- /* return_matcher_indices */ MatcherIndicesIndex(167),
+ /* return_matcher_indices */ MatcherIndicesIndex(171),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -7090,7 +7114,7 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(186),
- /* return_matcher_indices */ MatcherIndicesIndex(167),
+ /* return_matcher_indices */ MatcherIndicesIndex(171),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -7101,7 +7125,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(9),
/* parameters */ ParameterIndex(144),
- /* return_matcher_indices */ MatcherIndicesIndex(167),
+ /* return_matcher_indices */ MatcherIndicesIndex(171),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -7111,7 +7135,7 @@
/* num_explicit_templates */ 0,
/* num_templates */ 3,
/* templates */ TemplateIndex(6),
- /* parameters */ ParameterIndex(252),
+ /* parameters */ ParameterIndex(256),
/* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -7122,7 +7146,7 @@
/* num_explicit_templates */ 0,
/* num_templates */ 3,
/* templates */ TemplateIndex(6),
- /* parameters */ ParameterIndex(255),
+ /* parameters */ ParameterIndex(259),
/* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -7144,7 +7168,7 @@
/* num_explicit_templates */ 0,
/* num_templates */ 3,
/* templates */ TemplateIndex(6),
- /* parameters */ ParameterIndex(258),
+ /* parameters */ ParameterIndex(262),
/* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -7155,7 +7179,7 @@
/* num_explicit_templates */ 0,
/* num_templates */ 3,
/* templates */ TemplateIndex(11),
- /* parameters */ ParameterIndex(261),
+ /* parameters */ ParameterIndex(265),
/* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -7166,7 +7190,7 @@
/* num_explicit_templates */ 0,
/* num_templates */ 3,
/* templates */ TemplateIndex(11),
- /* parameters */ ParameterIndex(264),
+ /* parameters */ ParameterIndex(268),
/* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -7188,7 +7212,7 @@
/* num_explicit_templates */ 0,
/* num_templates */ 3,
/* templates */ TemplateIndex(11),
- /* parameters */ ParameterIndex(267),
+ /* parameters */ ParameterIndex(271),
/* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -7199,7 +7223,7 @@
/* num_explicit_templates */ 0,
/* num_templates */ 3,
/* templates */ TemplateIndex(15),
- /* parameters */ ParameterIndex(270),
+ /* parameters */ ParameterIndex(274),
/* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -7210,7 +7234,7 @@
/* num_explicit_templates */ 0,
/* num_templates */ 3,
/* templates */ TemplateIndex(15),
- /* parameters */ ParameterIndex(273),
+ /* parameters */ ParameterIndex(277),
/* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -7232,7 +7256,7 @@
/* num_explicit_templates */ 0,
/* num_templates */ 3,
/* templates */ TemplateIndex(15),
- /* parameters */ ParameterIndex(276),
+ /* parameters */ ParameterIndex(280),
/* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -7243,7 +7267,7 @@
/* num_explicit_templates */ 1,
/* num_templates */ 2,
/* templates */ TemplateIndex(87),
- /* parameters */ ParameterIndex(238),
+ /* parameters */ ParameterIndex(242),
/* return_matcher_indices */ MatcherIndicesIndex(13),
/* const_eval_fn */ ConstEvalFunctionIndex(10),
},
@@ -7254,7 +7278,7 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(112),
- /* parameters */ ParameterIndex(370),
+ /* parameters */ ParameterIndex(374),
/* return_matcher_indices */ MatcherIndicesIndex(13),
/* const_eval_fn */ ConstEvalFunctionIndex(10),
},
@@ -7265,7 +7289,7 @@
/* num_explicit_templates */ 1,
/* num_templates */ 3,
/* templates */ TemplateIndex(55),
- /* parameters */ ParameterIndex(371),
+ /* parameters */ ParameterIndex(375),
/* return_matcher_indices */ MatcherIndicesIndex(13),
/* const_eval_fn */ ConstEvalFunctionIndex(10),
},
@@ -7276,7 +7300,7 @@
/* num_explicit_templates */ 1,
/* num_templates */ 2,
/* templates */ TemplateIndex(89),
- /* parameters */ ParameterIndex(372),
+ /* parameters */ ParameterIndex(376),
/* return_matcher_indices */ MatcherIndicesIndex(13),
/* const_eval_fn */ ConstEvalFunctionIndex(10),
},
@@ -7287,7 +7311,7 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(116),
- /* parameters */ ParameterIndex(373),
+ /* parameters */ ParameterIndex(377),
/* return_matcher_indices */ MatcherIndicesIndex(13),
/* const_eval_fn */ ConstEvalFunctionIndex(10),
},
@@ -7298,7 +7322,7 @@
/* num_explicit_templates */ 1,
/* num_templates */ 2,
/* templates */ TemplateIndex(96),
- /* parameters */ ParameterIndex(374),
+ /* parameters */ ParameterIndex(378),
/* return_matcher_indices */ MatcherIndicesIndex(13),
/* const_eval_fn */ ConstEvalFunctionIndex(10),
},
@@ -7309,7 +7333,7 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(19),
- /* parameters */ ParameterIndex(375),
+ /* parameters */ ParameterIndex(379),
/* return_matcher_indices */ MatcherIndicesIndex(13),
/* const_eval_fn */ ConstEvalFunctionIndex(10),
},
@@ -7320,7 +7344,7 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(120),
- /* parameters */ ParameterIndex(376),
+ /* parameters */ ParameterIndex(380),
/* return_matcher_indices */ MatcherIndicesIndex(13),
/* const_eval_fn */ ConstEvalFunctionIndex(10),
},
@@ -7331,7 +7355,7 @@
/* num_explicit_templates */ 1,
/* num_templates */ 2,
/* templates */ TemplateIndex(98),
- /* parameters */ ParameterIndex(238),
+ /* parameters */ ParameterIndex(242),
/* return_matcher_indices */ MatcherIndicesIndex(13),
/* const_eval_fn */ ConstEvalFunctionIndex(10),
},
@@ -7342,7 +7366,7 @@
/* num_explicit_templates */ 1,
/* num_templates */ 2,
/* templates */ TemplateIndex(100),
- /* parameters */ ParameterIndex(377),
+ /* parameters */ ParameterIndex(381),
/* return_matcher_indices */ MatcherIndicesIndex(13),
/* const_eval_fn */ ConstEvalFunctionIndex(10),
},
@@ -7353,8 +7377,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(19),
- /* parameters */ ParameterIndex(279),
- /* return_matcher_indices */ MatcherIndicesIndex(109),
+ /* parameters */ ParameterIndex(283),
+ /* return_matcher_indices */ MatcherIndicesIndex(115),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -7365,7 +7389,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(19),
/* parameters */ ParameterIndex(75),
- /* return_matcher_indices */ MatcherIndicesIndex(109),
+ /* return_matcher_indices */ MatcherIndicesIndex(115),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -7376,7 +7400,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(19),
/* parameters */ ParameterIndex(27),
- /* return_matcher_indices */ MatcherIndicesIndex(109),
+ /* return_matcher_indices */ MatcherIndicesIndex(115),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -7386,8 +7410,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(19),
- /* parameters */ ParameterIndex(285),
- /* return_matcher_indices */ MatcherIndicesIndex(109),
+ /* parameters */ ParameterIndex(289),
+ /* return_matcher_indices */ MatcherIndicesIndex(115),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -7398,7 +7422,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(19),
/* parameters */ ParameterIndex(159),
- /* return_matcher_indices */ MatcherIndicesIndex(109),
+ /* return_matcher_indices */ MatcherIndicesIndex(115),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -7409,7 +7433,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(19),
/* parameters */ ParameterIndex(80),
- /* return_matcher_indices */ MatcherIndicesIndex(109),
+ /* return_matcher_indices */ MatcherIndicesIndex(115),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -7420,7 +7444,7 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(89),
- /* return_matcher_indices */ MatcherIndicesIndex(109),
+ /* return_matcher_indices */ MatcherIndicesIndex(115),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -7431,7 +7455,7 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(32),
- /* return_matcher_indices */ MatcherIndicesIndex(109),
+ /* return_matcher_indices */ MatcherIndicesIndex(115),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -7442,7 +7466,7 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(166),
- /* return_matcher_indices */ MatcherIndicesIndex(109),
+ /* return_matcher_indices */ MatcherIndicesIndex(115),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -7453,7 +7477,7 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(94),
- /* return_matcher_indices */ MatcherIndicesIndex(109),
+ /* return_matcher_indices */ MatcherIndicesIndex(115),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -7474,8 +7498,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(79),
- /* parameters */ ParameterIndex(230),
- /* return_matcher_indices */ MatcherIndicesIndex(95),
+ /* parameters */ ParameterIndex(234),
+ /* return_matcher_indices */ MatcherIndicesIndex(101),
/* const_eval_fn */ ConstEvalFunctionIndex(88),
},
{
@@ -7485,8 +7509,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(79),
- /* parameters */ ParameterIndex(350),
- /* return_matcher_indices */ MatcherIndicesIndex(95),
+ /* parameters */ ParameterIndex(354),
+ /* return_matcher_indices */ MatcherIndicesIndex(101),
/* const_eval_fn */ ConstEvalFunctionIndex(88),
},
{
@@ -7496,8 +7520,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(79),
- /* parameters */ ParameterIndex(351),
- /* return_matcher_indices */ MatcherIndicesIndex(95),
+ /* parameters */ ParameterIndex(355),
+ /* return_matcher_indices */ MatcherIndicesIndex(101),
/* const_eval_fn */ ConstEvalFunctionIndex(88),
},
{
@@ -7507,8 +7531,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 3,
/* templates */ TemplateIndex(63),
- /* parameters */ ParameterIndex(356),
- /* return_matcher_indices */ MatcherIndicesIndex(73),
+ /* parameters */ ParameterIndex(360),
+ /* return_matcher_indices */ MatcherIndicesIndex(79),
/* const_eval_fn */ ConstEvalFunctionIndex(88),
},
{
@@ -7518,8 +7542,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 3,
/* templates */ TemplateIndex(63),
- /* parameters */ ParameterIndex(355),
- /* return_matcher_indices */ MatcherIndicesIndex(73),
+ /* parameters */ ParameterIndex(359),
+ /* return_matcher_indices */ MatcherIndicesIndex(79),
/* const_eval_fn */ ConstEvalFunctionIndex(88),
},
{
@@ -7529,8 +7553,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 3,
/* templates */ TemplateIndex(75),
- /* parameters */ ParameterIndex(357),
- /* return_matcher_indices */ MatcherIndicesIndex(149),
+ /* parameters */ ParameterIndex(361),
+ /* return_matcher_indices */ MatcherIndicesIndex(155),
/* const_eval_fn */ ConstEvalFunctionIndex(89),
},
{
@@ -7540,8 +7564,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 3,
/* templates */ TemplateIndex(75),
- /* parameters */ ParameterIndex(359),
- /* return_matcher_indices */ MatcherIndicesIndex(95),
+ /* parameters */ ParameterIndex(363),
+ /* return_matcher_indices */ MatcherIndicesIndex(101),
/* const_eval_fn */ ConstEvalFunctionIndex(90),
},
{
@@ -7551,8 +7575,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 4,
/* templates */ TemplateIndex(51),
- /* parameters */ ParameterIndex(361),
- /* return_matcher_indices */ MatcherIndicesIndex(77),
+ /* parameters */ ParameterIndex(365),
+ /* return_matcher_indices */ MatcherIndicesIndex(83),
/* const_eval_fn */ ConstEvalFunctionIndex(91),
},
{
@@ -7563,7 +7587,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(127),
/* parameters */ ParameterIndex(/* invalid */),
- /* return_matcher_indices */ MatcherIndicesIndex(227),
+ /* return_matcher_indices */ MatcherIndicesIndex(231),
/* const_eval_fn */ ConstEvalFunctionIndex(107),
},
{
@@ -7573,8 +7597,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(127),
- /* parameters */ ParameterIndex(397),
- /* return_matcher_indices */ MatcherIndicesIndex(227),
+ /* parameters */ ParameterIndex(401),
+ /* return_matcher_indices */ MatcherIndicesIndex(231),
/* const_eval_fn */ ConstEvalFunctionIndex(82),
},
{
@@ -7584,8 +7608,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(51),
- /* parameters */ ParameterIndex(397),
- /* return_matcher_indices */ MatcherIndicesIndex(227),
+ /* parameters */ ParameterIndex(401),
+ /* return_matcher_indices */ MatcherIndicesIndex(231),
/* const_eval_fn */ ConstEvalFunctionIndex(82),
},
{
@@ -7596,7 +7620,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(51),
/* parameters */ ParameterIndex(1),
- /* return_matcher_indices */ MatcherIndicesIndex(227),
+ /* return_matcher_indices */ MatcherIndicesIndex(231),
/* const_eval_fn */ ConstEvalFunctionIndex(112),
},
{
@@ -7607,7 +7631,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(51),
/* parameters */ ParameterIndex(1),
- /* return_matcher_indices */ MatcherIndicesIndex(227),
+ /* return_matcher_indices */ MatcherIndicesIndex(231),
/* const_eval_fn */ ConstEvalFunctionIndex(112),
},
{
@@ -7617,8 +7641,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(51),
- /* parameters */ ParameterIndex(218),
- /* return_matcher_indices */ MatcherIndicesIndex(227),
+ /* parameters */ ParameterIndex(222),
+ /* return_matcher_indices */ MatcherIndicesIndex(231),
/* const_eval_fn */ ConstEvalFunctionIndex(113),
},
{
@@ -7628,8 +7652,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(51),
- /* parameters */ ParameterIndex(218),
- /* return_matcher_indices */ MatcherIndicesIndex(227),
+ /* parameters */ ParameterIndex(222),
+ /* return_matcher_indices */ MatcherIndicesIndex(231),
/* const_eval_fn */ ConstEvalFunctionIndex(113),
},
{
@@ -7639,8 +7663,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(112),
- /* parameters */ ParameterIndex(398),
- /* return_matcher_indices */ MatcherIndicesIndex(227),
+ /* parameters */ ParameterIndex(402),
+ /* return_matcher_indices */ MatcherIndicesIndex(231),
/* const_eval_fn */ ConstEvalFunctionIndex(108),
},
{
@@ -7650,8 +7674,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(110),
- /* parameters */ ParameterIndex(399),
- /* return_matcher_indices */ MatcherIndicesIndex(227),
+ /* parameters */ ParameterIndex(403),
+ /* return_matcher_indices */ MatcherIndicesIndex(231),
/* const_eval_fn */ ConstEvalFunctionIndex(108),
},
{
@@ -7662,7 +7686,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(127),
/* parameters */ ParameterIndex(/* invalid */),
- /* return_matcher_indices */ MatcherIndicesIndex(233),
+ /* return_matcher_indices */ MatcherIndicesIndex(237),
/* const_eval_fn */ ConstEvalFunctionIndex(107),
},
{
@@ -7672,8 +7696,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(127),
- /* parameters */ ParameterIndex(400),
- /* return_matcher_indices */ MatcherIndicesIndex(233),
+ /* parameters */ ParameterIndex(404),
+ /* return_matcher_indices */ MatcherIndicesIndex(237),
/* const_eval_fn */ ConstEvalFunctionIndex(82),
},
{
@@ -7683,8 +7707,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(51),
- /* parameters */ ParameterIndex(400),
- /* return_matcher_indices */ MatcherIndicesIndex(233),
+ /* parameters */ ParameterIndex(404),
+ /* return_matcher_indices */ MatcherIndicesIndex(237),
/* const_eval_fn */ ConstEvalFunctionIndex(82),
},
{
@@ -7695,7 +7719,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(51),
/* parameters */ ParameterIndex(1),
- /* return_matcher_indices */ MatcherIndicesIndex(233),
+ /* return_matcher_indices */ MatcherIndicesIndex(237),
/* const_eval_fn */ ConstEvalFunctionIndex(112),
},
{
@@ -7706,7 +7730,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(51),
/* parameters */ ParameterIndex(1),
- /* return_matcher_indices */ MatcherIndicesIndex(233),
+ /* return_matcher_indices */ MatcherIndicesIndex(237),
/* const_eval_fn */ ConstEvalFunctionIndex(112),
},
{
@@ -7716,8 +7740,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(51),
- /* parameters */ ParameterIndex(222),
- /* return_matcher_indices */ MatcherIndicesIndex(233),
+ /* parameters */ ParameterIndex(226),
+ /* return_matcher_indices */ MatcherIndicesIndex(237),
/* const_eval_fn */ ConstEvalFunctionIndex(113),
},
{
@@ -7727,8 +7751,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(51),
- /* parameters */ ParameterIndex(222),
- /* return_matcher_indices */ MatcherIndicesIndex(233),
+ /* parameters */ ParameterIndex(226),
+ /* return_matcher_indices */ MatcherIndicesIndex(237),
/* const_eval_fn */ ConstEvalFunctionIndex(113),
},
{
@@ -7738,8 +7762,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(112),
- /* parameters */ ParameterIndex(401),
- /* return_matcher_indices */ MatcherIndicesIndex(233),
+ /* parameters */ ParameterIndex(405),
+ /* return_matcher_indices */ MatcherIndicesIndex(237),
/* const_eval_fn */ ConstEvalFunctionIndex(108),
},
{
@@ -7749,8 +7773,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(110),
- /* parameters */ ParameterIndex(402),
- /* return_matcher_indices */ MatcherIndicesIndex(233),
+ /* parameters */ ParameterIndex(406),
+ /* return_matcher_indices */ MatcherIndicesIndex(237),
/* const_eval_fn */ ConstEvalFunctionIndex(108),
},
{
@@ -7761,7 +7785,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(127),
/* parameters */ ParameterIndex(/* invalid */),
- /* return_matcher_indices */ MatcherIndicesIndex(62),
+ /* return_matcher_indices */ MatcherIndicesIndex(68),
/* const_eval_fn */ ConstEvalFunctionIndex(107),
},
{
@@ -7771,8 +7795,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(127),
- /* parameters */ ParameterIndex(403),
- /* return_matcher_indices */ MatcherIndicesIndex(62),
+ /* parameters */ ParameterIndex(407),
+ /* return_matcher_indices */ MatcherIndicesIndex(68),
/* const_eval_fn */ ConstEvalFunctionIndex(82),
},
{
@@ -7782,8 +7806,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(51),
- /* parameters */ ParameterIndex(403),
- /* return_matcher_indices */ MatcherIndicesIndex(62),
+ /* parameters */ ParameterIndex(407),
+ /* return_matcher_indices */ MatcherIndicesIndex(68),
/* const_eval_fn */ ConstEvalFunctionIndex(82),
},
{
@@ -7794,7 +7818,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(51),
/* parameters */ ParameterIndex(1),
- /* return_matcher_indices */ MatcherIndicesIndex(62),
+ /* return_matcher_indices */ MatcherIndicesIndex(68),
/* const_eval_fn */ ConstEvalFunctionIndex(112),
},
{
@@ -7805,7 +7829,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(51),
/* parameters */ ParameterIndex(1),
- /* return_matcher_indices */ MatcherIndicesIndex(62),
+ /* return_matcher_indices */ MatcherIndicesIndex(68),
/* const_eval_fn */ ConstEvalFunctionIndex(112),
},
{
@@ -7815,8 +7839,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(51),
- /* parameters */ ParameterIndex(226),
- /* return_matcher_indices */ MatcherIndicesIndex(62),
+ /* parameters */ ParameterIndex(230),
+ /* return_matcher_indices */ MatcherIndicesIndex(68),
/* const_eval_fn */ ConstEvalFunctionIndex(113),
},
{
@@ -7826,8 +7850,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(51),
- /* parameters */ ParameterIndex(226),
- /* return_matcher_indices */ MatcherIndicesIndex(62),
+ /* parameters */ ParameterIndex(230),
+ /* return_matcher_indices */ MatcherIndicesIndex(68),
/* const_eval_fn */ ConstEvalFunctionIndex(113),
},
{
@@ -7837,8 +7861,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(112),
- /* parameters */ ParameterIndex(404),
- /* return_matcher_indices */ MatcherIndicesIndex(62),
+ /* parameters */ ParameterIndex(408),
+ /* return_matcher_indices */ MatcherIndicesIndex(68),
/* const_eval_fn */ ConstEvalFunctionIndex(108),
},
{
@@ -7848,8 +7872,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(110),
- /* parameters */ ParameterIndex(405),
- /* return_matcher_indices */ MatcherIndicesIndex(62),
+ /* parameters */ ParameterIndex(409),
+ /* return_matcher_indices */ MatcherIndicesIndex(68),
/* const_eval_fn */ ConstEvalFunctionIndex(108),
},
{
@@ -7860,7 +7884,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(127),
/* parameters */ ParameterIndex(/* invalid */),
- /* return_matcher_indices */ MatcherIndicesIndex(243),
+ /* return_matcher_indices */ MatcherIndicesIndex(247),
/* const_eval_fn */ ConstEvalFunctionIndex(107),
},
{
@@ -7870,8 +7894,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(127),
- /* parameters */ ParameterIndex(406),
- /* return_matcher_indices */ MatcherIndicesIndex(243),
+ /* parameters */ ParameterIndex(410),
+ /* return_matcher_indices */ MatcherIndicesIndex(247),
/* const_eval_fn */ ConstEvalFunctionIndex(82),
},
{
@@ -7881,8 +7905,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(51),
- /* parameters */ ParameterIndex(406),
- /* return_matcher_indices */ MatcherIndicesIndex(243),
+ /* parameters */ ParameterIndex(410),
+ /* return_matcher_indices */ MatcherIndicesIndex(247),
/* const_eval_fn */ ConstEvalFunctionIndex(82),
},
{
@@ -7893,7 +7917,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(51),
/* parameters */ ParameterIndex(1),
- /* return_matcher_indices */ MatcherIndicesIndex(243),
+ /* return_matcher_indices */ MatcherIndicesIndex(247),
/* const_eval_fn */ ConstEvalFunctionIndex(112),
},
{
@@ -7904,7 +7928,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(51),
/* parameters */ ParameterIndex(1),
- /* return_matcher_indices */ MatcherIndicesIndex(243),
+ /* return_matcher_indices */ MatcherIndicesIndex(247),
/* const_eval_fn */ ConstEvalFunctionIndex(112),
},
{
@@ -7914,8 +7938,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(51),
- /* parameters */ ParameterIndex(218),
- /* return_matcher_indices */ MatcherIndicesIndex(243),
+ /* parameters */ ParameterIndex(222),
+ /* return_matcher_indices */ MatcherIndicesIndex(247),
/* const_eval_fn */ ConstEvalFunctionIndex(113),
},
{
@@ -7925,8 +7949,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(51),
- /* parameters */ ParameterIndex(218),
- /* return_matcher_indices */ MatcherIndicesIndex(243),
+ /* parameters */ ParameterIndex(222),
+ /* return_matcher_indices */ MatcherIndicesIndex(247),
/* const_eval_fn */ ConstEvalFunctionIndex(113),
},
{
@@ -7936,8 +7960,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(112),
- /* parameters */ ParameterIndex(407),
- /* return_matcher_indices */ MatcherIndicesIndex(243),
+ /* parameters */ ParameterIndex(411),
+ /* return_matcher_indices */ MatcherIndicesIndex(247),
/* const_eval_fn */ ConstEvalFunctionIndex(108),
},
{
@@ -7947,8 +7971,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(110),
- /* parameters */ ParameterIndex(408),
- /* return_matcher_indices */ MatcherIndicesIndex(243),
+ /* parameters */ ParameterIndex(412),
+ /* return_matcher_indices */ MatcherIndicesIndex(247),
/* const_eval_fn */ ConstEvalFunctionIndex(108),
},
{
@@ -7959,7 +7983,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(127),
/* parameters */ ParameterIndex(/* invalid */),
- /* return_matcher_indices */ MatcherIndicesIndex(249),
+ /* return_matcher_indices */ MatcherIndicesIndex(253),
/* const_eval_fn */ ConstEvalFunctionIndex(107),
},
{
@@ -7969,8 +7993,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(127),
- /* parameters */ ParameterIndex(409),
- /* return_matcher_indices */ MatcherIndicesIndex(249),
+ /* parameters */ ParameterIndex(413),
+ /* return_matcher_indices */ MatcherIndicesIndex(253),
/* const_eval_fn */ ConstEvalFunctionIndex(82),
},
{
@@ -7980,8 +8004,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(51),
- /* parameters */ ParameterIndex(409),
- /* return_matcher_indices */ MatcherIndicesIndex(249),
+ /* parameters */ ParameterIndex(413),
+ /* return_matcher_indices */ MatcherIndicesIndex(253),
/* const_eval_fn */ ConstEvalFunctionIndex(82),
},
{
@@ -7992,7 +8016,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(51),
/* parameters */ ParameterIndex(1),
- /* return_matcher_indices */ MatcherIndicesIndex(249),
+ /* return_matcher_indices */ MatcherIndicesIndex(253),
/* const_eval_fn */ ConstEvalFunctionIndex(112),
},
{
@@ -8003,7 +8027,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(51),
/* parameters */ ParameterIndex(1),
- /* return_matcher_indices */ MatcherIndicesIndex(249),
+ /* return_matcher_indices */ MatcherIndicesIndex(253),
/* const_eval_fn */ ConstEvalFunctionIndex(112),
},
{
@@ -8013,8 +8037,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(51),
- /* parameters */ ParameterIndex(222),
- /* return_matcher_indices */ MatcherIndicesIndex(249),
+ /* parameters */ ParameterIndex(226),
+ /* return_matcher_indices */ MatcherIndicesIndex(253),
/* const_eval_fn */ ConstEvalFunctionIndex(113),
},
{
@@ -8024,8 +8048,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(51),
- /* parameters */ ParameterIndex(222),
- /* return_matcher_indices */ MatcherIndicesIndex(249),
+ /* parameters */ ParameterIndex(226),
+ /* return_matcher_indices */ MatcherIndicesIndex(253),
/* const_eval_fn */ ConstEvalFunctionIndex(113),
},
{
@@ -8035,8 +8059,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(112),
- /* parameters */ ParameterIndex(410),
- /* return_matcher_indices */ MatcherIndicesIndex(249),
+ /* parameters */ ParameterIndex(414),
+ /* return_matcher_indices */ MatcherIndicesIndex(253),
/* const_eval_fn */ ConstEvalFunctionIndex(108),
},
{
@@ -8046,8 +8070,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(110),
- /* parameters */ ParameterIndex(411),
- /* return_matcher_indices */ MatcherIndicesIndex(249),
+ /* parameters */ ParameterIndex(415),
+ /* return_matcher_indices */ MatcherIndicesIndex(253),
/* const_eval_fn */ ConstEvalFunctionIndex(108),
},
{
@@ -8058,7 +8082,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(127),
/* parameters */ ParameterIndex(/* invalid */),
- /* return_matcher_indices */ MatcherIndicesIndex(255),
+ /* return_matcher_indices */ MatcherIndicesIndex(259),
/* const_eval_fn */ ConstEvalFunctionIndex(107),
},
{
@@ -8068,8 +8092,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(127),
- /* parameters */ ParameterIndex(412),
- /* return_matcher_indices */ MatcherIndicesIndex(255),
+ /* parameters */ ParameterIndex(416),
+ /* return_matcher_indices */ MatcherIndicesIndex(259),
/* const_eval_fn */ ConstEvalFunctionIndex(82),
},
{
@@ -8079,8 +8103,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(51),
- /* parameters */ ParameterIndex(412),
- /* return_matcher_indices */ MatcherIndicesIndex(255),
+ /* parameters */ ParameterIndex(416),
+ /* return_matcher_indices */ MatcherIndicesIndex(259),
/* const_eval_fn */ ConstEvalFunctionIndex(82),
},
{
@@ -8091,7 +8115,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(51),
/* parameters */ ParameterIndex(1),
- /* return_matcher_indices */ MatcherIndicesIndex(255),
+ /* return_matcher_indices */ MatcherIndicesIndex(259),
/* const_eval_fn */ ConstEvalFunctionIndex(112),
},
{
@@ -8102,7 +8126,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(51),
/* parameters */ ParameterIndex(1),
- /* return_matcher_indices */ MatcherIndicesIndex(255),
+ /* return_matcher_indices */ MatcherIndicesIndex(259),
/* const_eval_fn */ ConstEvalFunctionIndex(112),
},
{
@@ -8112,8 +8136,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(51),
- /* parameters */ ParameterIndex(226),
- /* return_matcher_indices */ MatcherIndicesIndex(255),
+ /* parameters */ ParameterIndex(230),
+ /* return_matcher_indices */ MatcherIndicesIndex(259),
/* const_eval_fn */ ConstEvalFunctionIndex(113),
},
{
@@ -8123,8 +8147,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(51),
- /* parameters */ ParameterIndex(226),
- /* return_matcher_indices */ MatcherIndicesIndex(255),
+ /* parameters */ ParameterIndex(230),
+ /* return_matcher_indices */ MatcherIndicesIndex(259),
/* const_eval_fn */ ConstEvalFunctionIndex(113),
},
{
@@ -8134,8 +8158,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(112),
- /* parameters */ ParameterIndex(413),
- /* return_matcher_indices */ MatcherIndicesIndex(255),
+ /* parameters */ ParameterIndex(417),
+ /* return_matcher_indices */ MatcherIndicesIndex(259),
/* const_eval_fn */ ConstEvalFunctionIndex(108),
},
{
@@ -8145,8 +8169,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(110),
- /* parameters */ ParameterIndex(414),
- /* return_matcher_indices */ MatcherIndicesIndex(255),
+ /* parameters */ ParameterIndex(418),
+ /* return_matcher_indices */ MatcherIndicesIndex(259),
/* const_eval_fn */ ConstEvalFunctionIndex(108),
},
{
@@ -8157,7 +8181,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(127),
/* parameters */ ParameterIndex(/* invalid */),
- /* return_matcher_indices */ MatcherIndicesIndex(261),
+ /* return_matcher_indices */ MatcherIndicesIndex(265),
/* const_eval_fn */ ConstEvalFunctionIndex(107),
},
{
@@ -8167,8 +8191,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(127),
- /* parameters */ ParameterIndex(415),
- /* return_matcher_indices */ MatcherIndicesIndex(261),
+ /* parameters */ ParameterIndex(419),
+ /* return_matcher_indices */ MatcherIndicesIndex(265),
/* const_eval_fn */ ConstEvalFunctionIndex(82),
},
{
@@ -8178,8 +8202,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(51),
- /* parameters */ ParameterIndex(415),
- /* return_matcher_indices */ MatcherIndicesIndex(261),
+ /* parameters */ ParameterIndex(419),
+ /* return_matcher_indices */ MatcherIndicesIndex(265),
/* const_eval_fn */ ConstEvalFunctionIndex(82),
},
{
@@ -8190,7 +8214,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(51),
/* parameters */ ParameterIndex(1),
- /* return_matcher_indices */ MatcherIndicesIndex(261),
+ /* return_matcher_indices */ MatcherIndicesIndex(265),
/* const_eval_fn */ ConstEvalFunctionIndex(112),
},
{
@@ -8201,7 +8225,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(51),
/* parameters */ ParameterIndex(1),
- /* return_matcher_indices */ MatcherIndicesIndex(261),
+ /* return_matcher_indices */ MatcherIndicesIndex(265),
/* const_eval_fn */ ConstEvalFunctionIndex(112),
},
{
@@ -8211,8 +8235,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(51),
- /* parameters */ ParameterIndex(218),
- /* return_matcher_indices */ MatcherIndicesIndex(261),
+ /* parameters */ ParameterIndex(222),
+ /* return_matcher_indices */ MatcherIndicesIndex(265),
/* const_eval_fn */ ConstEvalFunctionIndex(113),
},
{
@@ -8222,8 +8246,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(51),
- /* parameters */ ParameterIndex(218),
- /* return_matcher_indices */ MatcherIndicesIndex(261),
+ /* parameters */ ParameterIndex(222),
+ /* return_matcher_indices */ MatcherIndicesIndex(265),
/* const_eval_fn */ ConstEvalFunctionIndex(113),
},
{
@@ -8233,8 +8257,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(112),
- /* parameters */ ParameterIndex(416),
- /* return_matcher_indices */ MatcherIndicesIndex(261),
+ /* parameters */ ParameterIndex(420),
+ /* return_matcher_indices */ MatcherIndicesIndex(265),
/* const_eval_fn */ ConstEvalFunctionIndex(108),
},
{
@@ -8244,8 +8268,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(110),
- /* parameters */ ParameterIndex(417),
- /* return_matcher_indices */ MatcherIndicesIndex(261),
+ /* parameters */ ParameterIndex(421),
+ /* return_matcher_indices */ MatcherIndicesIndex(265),
/* const_eval_fn */ ConstEvalFunctionIndex(108),
},
{
@@ -8256,7 +8280,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(127),
/* parameters */ ParameterIndex(/* invalid */),
- /* return_matcher_indices */ MatcherIndicesIndex(267),
+ /* return_matcher_indices */ MatcherIndicesIndex(271),
/* const_eval_fn */ ConstEvalFunctionIndex(107),
},
{
@@ -8266,8 +8290,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(127),
- /* parameters */ ParameterIndex(418),
- /* return_matcher_indices */ MatcherIndicesIndex(267),
+ /* parameters */ ParameterIndex(422),
+ /* return_matcher_indices */ MatcherIndicesIndex(271),
/* const_eval_fn */ ConstEvalFunctionIndex(82),
},
{
@@ -8277,8 +8301,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(51),
- /* parameters */ ParameterIndex(418),
- /* return_matcher_indices */ MatcherIndicesIndex(267),
+ /* parameters */ ParameterIndex(422),
+ /* return_matcher_indices */ MatcherIndicesIndex(271),
/* const_eval_fn */ ConstEvalFunctionIndex(82),
},
{
@@ -8289,7 +8313,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(51),
/* parameters */ ParameterIndex(1),
- /* return_matcher_indices */ MatcherIndicesIndex(267),
+ /* return_matcher_indices */ MatcherIndicesIndex(271),
/* const_eval_fn */ ConstEvalFunctionIndex(112),
},
{
@@ -8300,7 +8324,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(51),
/* parameters */ ParameterIndex(1),
- /* return_matcher_indices */ MatcherIndicesIndex(267),
+ /* return_matcher_indices */ MatcherIndicesIndex(271),
/* const_eval_fn */ ConstEvalFunctionIndex(112),
},
{
@@ -8310,8 +8334,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(51),
- /* parameters */ ParameterIndex(222),
- /* return_matcher_indices */ MatcherIndicesIndex(267),
+ /* parameters */ ParameterIndex(226),
+ /* return_matcher_indices */ MatcherIndicesIndex(271),
/* const_eval_fn */ ConstEvalFunctionIndex(113),
},
{
@@ -8321,8 +8345,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(51),
- /* parameters */ ParameterIndex(222),
- /* return_matcher_indices */ MatcherIndicesIndex(267),
+ /* parameters */ ParameterIndex(226),
+ /* return_matcher_indices */ MatcherIndicesIndex(271),
/* const_eval_fn */ ConstEvalFunctionIndex(113),
},
{
@@ -8332,8 +8356,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(112),
- /* parameters */ ParameterIndex(419),
- /* return_matcher_indices */ MatcherIndicesIndex(267),
+ /* parameters */ ParameterIndex(423),
+ /* return_matcher_indices */ MatcherIndicesIndex(271),
/* const_eval_fn */ ConstEvalFunctionIndex(108),
},
{
@@ -8343,8 +8367,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(110),
- /* parameters */ ParameterIndex(420),
- /* return_matcher_indices */ MatcherIndicesIndex(267),
+ /* parameters */ ParameterIndex(424),
+ /* return_matcher_indices */ MatcherIndicesIndex(271),
/* const_eval_fn */ ConstEvalFunctionIndex(108),
},
{
@@ -8355,7 +8379,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(127),
/* parameters */ ParameterIndex(/* invalid */),
- /* return_matcher_indices */ MatcherIndicesIndex(273),
+ /* return_matcher_indices */ MatcherIndicesIndex(277),
/* const_eval_fn */ ConstEvalFunctionIndex(107),
},
{
@@ -8365,8 +8389,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(127),
- /* parameters */ ParameterIndex(421),
- /* return_matcher_indices */ MatcherIndicesIndex(273),
+ /* parameters */ ParameterIndex(425),
+ /* return_matcher_indices */ MatcherIndicesIndex(277),
/* const_eval_fn */ ConstEvalFunctionIndex(82),
},
{
@@ -8376,8 +8400,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(51),
- /* parameters */ ParameterIndex(421),
- /* return_matcher_indices */ MatcherIndicesIndex(273),
+ /* parameters */ ParameterIndex(425),
+ /* return_matcher_indices */ MatcherIndicesIndex(277),
/* const_eval_fn */ ConstEvalFunctionIndex(82),
},
{
@@ -8388,7 +8412,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(51),
/* parameters */ ParameterIndex(1),
- /* return_matcher_indices */ MatcherIndicesIndex(273),
+ /* return_matcher_indices */ MatcherIndicesIndex(277),
/* const_eval_fn */ ConstEvalFunctionIndex(112),
},
{
@@ -8399,7 +8423,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(51),
/* parameters */ ParameterIndex(1),
- /* return_matcher_indices */ MatcherIndicesIndex(273),
+ /* return_matcher_indices */ MatcherIndicesIndex(277),
/* const_eval_fn */ ConstEvalFunctionIndex(112),
},
{
@@ -8409,8 +8433,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(51),
- /* parameters */ ParameterIndex(226),
- /* return_matcher_indices */ MatcherIndicesIndex(273),
+ /* parameters */ ParameterIndex(230),
+ /* return_matcher_indices */ MatcherIndicesIndex(277),
/* const_eval_fn */ ConstEvalFunctionIndex(113),
},
{
@@ -8420,8 +8444,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(51),
- /* parameters */ ParameterIndex(226),
- /* return_matcher_indices */ MatcherIndicesIndex(273),
+ /* parameters */ ParameterIndex(230),
+ /* return_matcher_indices */ MatcherIndicesIndex(277),
/* const_eval_fn */ ConstEvalFunctionIndex(113),
},
{
@@ -8431,8 +8455,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(112),
- /* parameters */ ParameterIndex(422),
- /* return_matcher_indices */ MatcherIndicesIndex(273),
+ /* parameters */ ParameterIndex(426),
+ /* return_matcher_indices */ MatcherIndicesIndex(277),
/* const_eval_fn */ ConstEvalFunctionIndex(108),
},
{
@@ -8442,8 +8466,8 @@
/* num_explicit_templates */ 1,
/* num_templates */ 1,
/* templates */ TemplateIndex(110),
- /* parameters */ ParameterIndex(423),
- /* return_matcher_indices */ MatcherIndicesIndex(273),
+ /* parameters */ ParameterIndex(427),
+ /* return_matcher_indices */ MatcherIndicesIndex(277),
/* const_eval_fn */ ConstEvalFunctionIndex(108),
},
{
@@ -8454,7 +8478,7 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(104),
- /* return_matcher_indices */ MatcherIndicesIndex(167),
+ /* return_matcher_indices */ MatcherIndicesIndex(171),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -8465,7 +8489,7 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(104),
- /* return_matcher_indices */ MatcherIndicesIndex(167),
+ /* return_matcher_indices */ MatcherIndicesIndex(171),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -8476,7 +8500,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(9),
/* parameters */ ParameterIndex(38),
- /* return_matcher_indices */ MatcherIndicesIndex(167),
+ /* return_matcher_indices */ MatcherIndicesIndex(171),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -8487,7 +8511,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(9),
/* parameters */ ParameterIndex(38),
- /* return_matcher_indices */ MatcherIndicesIndex(167),
+ /* return_matcher_indices */ MatcherIndicesIndex(171),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -8498,7 +8522,7 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(109),
- /* return_matcher_indices */ MatcherIndicesIndex(167),
+ /* return_matcher_indices */ MatcherIndicesIndex(171),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -8509,7 +8533,7 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(109),
- /* return_matcher_indices */ MatcherIndicesIndex(167),
+ /* return_matcher_indices */ MatcherIndicesIndex(171),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -8520,7 +8544,7 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(178),
- /* return_matcher_indices */ MatcherIndicesIndex(167),
+ /* return_matcher_indices */ MatcherIndicesIndex(171),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -8531,7 +8555,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(9),
/* parameters */ ParameterIndex(114),
- /* return_matcher_indices */ MatcherIndicesIndex(167),
+ /* return_matcher_indices */ MatcherIndicesIndex(171),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -8542,7 +8566,7 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(44),
- /* return_matcher_indices */ MatcherIndicesIndex(167),
+ /* return_matcher_indices */ MatcherIndicesIndex(171),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -8553,7 +8577,7 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(44),
- /* return_matcher_indices */ MatcherIndicesIndex(167),
+ /* return_matcher_indices */ MatcherIndicesIndex(171),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -8564,7 +8588,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(9),
/* parameters */ ParameterIndex(19),
- /* return_matcher_indices */ MatcherIndicesIndex(167),
+ /* return_matcher_indices */ MatcherIndicesIndex(171),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -8575,7 +8599,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(9),
/* parameters */ ParameterIndex(19),
- /* return_matcher_indices */ MatcherIndicesIndex(167),
+ /* return_matcher_indices */ MatcherIndicesIndex(171),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -8586,7 +8610,7 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(50),
- /* return_matcher_indices */ MatcherIndicesIndex(167),
+ /* return_matcher_indices */ MatcherIndicesIndex(171),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -8597,7 +8621,7 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(50),
- /* return_matcher_indices */ MatcherIndicesIndex(167),
+ /* return_matcher_indices */ MatcherIndicesIndex(171),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -8608,7 +8632,7 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(119),
- /* return_matcher_indices */ MatcherIndicesIndex(167),
+ /* return_matcher_indices */ MatcherIndicesIndex(171),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -8619,7 +8643,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(9),
/* parameters */ ParameterIndex(56),
- /* return_matcher_indices */ MatcherIndicesIndex(167),
+ /* return_matcher_indices */ MatcherIndicesIndex(171),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -8630,7 +8654,7 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(89),
- /* return_matcher_indices */ MatcherIndicesIndex(167),
+ /* return_matcher_indices */ MatcherIndicesIndex(171),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -8641,7 +8665,7 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(89),
- /* return_matcher_indices */ MatcherIndicesIndex(167),
+ /* return_matcher_indices */ MatcherIndicesIndex(171),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -8652,7 +8676,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(9),
/* parameters */ ParameterIndex(32),
- /* return_matcher_indices */ MatcherIndicesIndex(167),
+ /* return_matcher_indices */ MatcherIndicesIndex(171),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -8663,7 +8687,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(9),
/* parameters */ ParameterIndex(32),
- /* return_matcher_indices */ MatcherIndicesIndex(167),
+ /* return_matcher_indices */ MatcherIndicesIndex(171),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -8674,7 +8698,7 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(166),
- /* return_matcher_indices */ MatcherIndicesIndex(167),
+ /* return_matcher_indices */ MatcherIndicesIndex(171),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -8685,7 +8709,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(9),
/* parameters */ ParameterIndex(94),
- /* return_matcher_indices */ MatcherIndicesIndex(167),
+ /* return_matcher_indices */ MatcherIndicesIndex(171),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -8696,7 +8720,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(19),
/* parameters */ ParameterIndex(27),
- /* return_matcher_indices */ MatcherIndicesIndex(109),
+ /* return_matcher_indices */ MatcherIndicesIndex(115),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -8707,7 +8731,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(19),
/* parameters */ ParameterIndex(80),
- /* return_matcher_indices */ MatcherIndicesIndex(109),
+ /* return_matcher_indices */ MatcherIndicesIndex(115),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -8718,7 +8742,7 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(32),
- /* return_matcher_indices */ MatcherIndicesIndex(109),
+ /* return_matcher_indices */ MatcherIndicesIndex(115),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -8729,7 +8753,7 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(94),
- /* return_matcher_indices */ MatcherIndicesIndex(109),
+ /* return_matcher_indices */ MatcherIndicesIndex(115),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -8739,8 +8763,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(104),
- /* parameters */ ParameterIndex(389),
- /* return_matcher_indices */ MatcherIndicesIndex(109),
+ /* parameters */ ParameterIndex(393),
+ /* return_matcher_indices */ MatcherIndicesIndex(115),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -8750,8 +8774,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(106),
- /* parameters */ ParameterIndex(389),
- /* return_matcher_indices */ MatcherIndicesIndex(109),
+ /* parameters */ ParameterIndex(393),
+ /* return_matcher_indices */ MatcherIndicesIndex(115),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -8762,7 +8786,7 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(89),
- /* return_matcher_indices */ MatcherIndicesIndex(115),
+ /* return_matcher_indices */ MatcherIndicesIndex(121),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -8773,7 +8797,7 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(89),
- /* return_matcher_indices */ MatcherIndicesIndex(115),
+ /* return_matcher_indices */ MatcherIndicesIndex(121),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -8784,7 +8808,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(9),
/* parameters */ ParameterIndex(32),
- /* return_matcher_indices */ MatcherIndicesIndex(115),
+ /* return_matcher_indices */ MatcherIndicesIndex(121),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -8795,7 +8819,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(9),
/* parameters */ ParameterIndex(32),
- /* return_matcher_indices */ MatcherIndicesIndex(115),
+ /* return_matcher_indices */ MatcherIndicesIndex(121),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -8806,7 +8830,7 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(166),
- /* return_matcher_indices */ MatcherIndicesIndex(115),
+ /* return_matcher_indices */ MatcherIndicesIndex(121),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -8817,7 +8841,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(9),
/* parameters */ ParameterIndex(94),
- /* return_matcher_indices */ MatcherIndicesIndex(115),
+ /* return_matcher_indices */ MatcherIndicesIndex(121),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -8828,7 +8852,7 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(89),
- /* return_matcher_indices */ MatcherIndicesIndex(115),
+ /* return_matcher_indices */ MatcherIndicesIndex(121),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -8839,7 +8863,7 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(89),
- /* return_matcher_indices */ MatcherIndicesIndex(115),
+ /* return_matcher_indices */ MatcherIndicesIndex(121),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -8850,7 +8874,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(9),
/* parameters */ ParameterIndex(32),
- /* return_matcher_indices */ MatcherIndicesIndex(115),
+ /* return_matcher_indices */ MatcherIndicesIndex(121),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -8861,7 +8885,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(9),
/* parameters */ ParameterIndex(32),
- /* return_matcher_indices */ MatcherIndicesIndex(115),
+ /* return_matcher_indices */ MatcherIndicesIndex(121),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -8872,7 +8896,7 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(166),
- /* return_matcher_indices */ MatcherIndicesIndex(115),
+ /* return_matcher_indices */ MatcherIndicesIndex(121),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -8883,7 +8907,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(9),
/* parameters */ ParameterIndex(94),
- /* return_matcher_indices */ MatcherIndicesIndex(115),
+ /* return_matcher_indices */ MatcherIndicesIndex(121),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -8904,8 +8928,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(79),
- /* parameters */ ParameterIndex(230),
- /* return_matcher_indices */ MatcherIndicesIndex(95),
+ /* parameters */ ParameterIndex(234),
+ /* return_matcher_indices */ MatcherIndicesIndex(101),
/* const_eval_fn */ ConstEvalFunctionIndex(86),
},
{
@@ -8915,8 +8939,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(79),
- /* parameters */ ParameterIndex(350),
- /* return_matcher_indices */ MatcherIndicesIndex(95),
+ /* parameters */ ParameterIndex(354),
+ /* return_matcher_indices */ MatcherIndicesIndex(101),
/* const_eval_fn */ ConstEvalFunctionIndex(86),
},
{
@@ -8926,8 +8950,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(79),
- /* parameters */ ParameterIndex(351),
- /* return_matcher_indices */ MatcherIndicesIndex(95),
+ /* parameters */ ParameterIndex(355),
+ /* return_matcher_indices */ MatcherIndicesIndex(101),
/* const_eval_fn */ ConstEvalFunctionIndex(86),
},
{
@@ -8937,8 +8961,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 3,
/* templates */ TemplateIndex(63),
- /* parameters */ ParameterIndex(354),
- /* return_matcher_indices */ MatcherIndicesIndex(73),
+ /* parameters */ ParameterIndex(358),
+ /* return_matcher_indices */ MatcherIndicesIndex(79),
/* const_eval_fn */ ConstEvalFunctionIndex(86),
},
{
@@ -8959,8 +8983,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(79),
- /* parameters */ ParameterIndex(230),
- /* return_matcher_indices */ MatcherIndicesIndex(95),
+ /* parameters */ ParameterIndex(234),
+ /* return_matcher_indices */ MatcherIndicesIndex(101),
/* const_eval_fn */ ConstEvalFunctionIndex(87),
},
{
@@ -8970,8 +8994,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(79),
- /* parameters */ ParameterIndex(350),
- /* return_matcher_indices */ MatcherIndicesIndex(95),
+ /* parameters */ ParameterIndex(354),
+ /* return_matcher_indices */ MatcherIndicesIndex(101),
/* const_eval_fn */ ConstEvalFunctionIndex(87),
},
{
@@ -8981,8 +9005,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(79),
- /* parameters */ ParameterIndex(351),
- /* return_matcher_indices */ MatcherIndicesIndex(95),
+ /* parameters */ ParameterIndex(355),
+ /* return_matcher_indices */ MatcherIndicesIndex(101),
/* const_eval_fn */ ConstEvalFunctionIndex(87),
},
{
@@ -8992,8 +9016,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 3,
/* templates */ TemplateIndex(63),
- /* parameters */ ParameterIndex(354),
- /* return_matcher_indices */ MatcherIndicesIndex(73),
+ /* parameters */ ParameterIndex(358),
+ /* return_matcher_indices */ MatcherIndicesIndex(79),
/* const_eval_fn */ ConstEvalFunctionIndex(87),
},
{
@@ -9014,8 +9038,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(79),
- /* parameters */ ParameterIndex(230),
- /* return_matcher_indices */ MatcherIndicesIndex(95),
+ /* parameters */ ParameterIndex(234),
+ /* return_matcher_indices */ MatcherIndicesIndex(101),
/* const_eval_fn */ ConstEvalFunctionIndex(92),
},
{
@@ -9025,8 +9049,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(79),
- /* parameters */ ParameterIndex(350),
- /* return_matcher_indices */ MatcherIndicesIndex(95),
+ /* parameters */ ParameterIndex(354),
+ /* return_matcher_indices */ MatcherIndicesIndex(101),
/* const_eval_fn */ ConstEvalFunctionIndex(92),
},
{
@@ -9036,8 +9060,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(79),
- /* parameters */ ParameterIndex(351),
- /* return_matcher_indices */ MatcherIndicesIndex(95),
+ /* parameters */ ParameterIndex(355),
+ /* return_matcher_indices */ MatcherIndicesIndex(101),
/* const_eval_fn */ ConstEvalFunctionIndex(92),
},
{
@@ -9058,8 +9082,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(79),
- /* parameters */ ParameterIndex(230),
- /* return_matcher_indices */ MatcherIndicesIndex(95),
+ /* parameters */ ParameterIndex(234),
+ /* return_matcher_indices */ MatcherIndicesIndex(101),
/* const_eval_fn */ ConstEvalFunctionIndex(93),
},
{
@@ -9069,8 +9093,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(79),
- /* parameters */ ParameterIndex(350),
- /* return_matcher_indices */ MatcherIndicesIndex(95),
+ /* parameters */ ParameterIndex(354),
+ /* return_matcher_indices */ MatcherIndicesIndex(101),
/* const_eval_fn */ ConstEvalFunctionIndex(93),
},
{
@@ -9080,8 +9104,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(79),
- /* parameters */ ParameterIndex(351),
- /* return_matcher_indices */ MatcherIndicesIndex(95),
+ /* parameters */ ParameterIndex(355),
+ /* return_matcher_indices */ MatcherIndicesIndex(101),
/* const_eval_fn */ ConstEvalFunctionIndex(93),
},
{
@@ -9091,8 +9115,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
- /* parameters */ ParameterIndex(233),
- /* return_matcher_indices */ MatcherIndicesIndex(40),
+ /* parameters */ ParameterIndex(237),
+ /* return_matcher_indices */ MatcherIndicesIndex(46),
/* const_eval_fn */ ConstEvalFunctionIndex(95),
},
{
@@ -9102,8 +9126,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(56),
- /* parameters */ ParameterIndex(244),
- /* return_matcher_indices */ MatcherIndicesIndex(92),
+ /* parameters */ ParameterIndex(248),
+ /* return_matcher_indices */ MatcherIndicesIndex(98),
/* const_eval_fn */ ConstEvalFunctionIndex(95),
},
{
@@ -9124,8 +9148,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(108),
- /* parameters */ ParameterIndex(230),
- /* return_matcher_indices */ MatcherIndicesIndex(95),
+ /* parameters */ ParameterIndex(234),
+ /* return_matcher_indices */ MatcherIndicesIndex(101),
/* const_eval_fn */ ConstEvalFunctionIndex(95),
},
{
@@ -9135,8 +9159,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
- /* parameters */ ParameterIndex(233),
- /* return_matcher_indices */ MatcherIndicesIndex(40),
+ /* parameters */ ParameterIndex(237),
+ /* return_matcher_indices */ MatcherIndicesIndex(46),
/* const_eval_fn */ ConstEvalFunctionIndex(96),
},
{
@@ -9146,8 +9170,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(56),
- /* parameters */ ParameterIndex(244),
- /* return_matcher_indices */ MatcherIndicesIndex(92),
+ /* parameters */ ParameterIndex(248),
+ /* return_matcher_indices */ MatcherIndicesIndex(98),
/* const_eval_fn */ ConstEvalFunctionIndex(96),
},
{
@@ -9168,8 +9192,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(108),
- /* parameters */ ParameterIndex(230),
- /* return_matcher_indices */ MatcherIndicesIndex(95),
+ /* parameters */ ParameterIndex(234),
+ /* return_matcher_indices */ MatcherIndicesIndex(101),
/* const_eval_fn */ ConstEvalFunctionIndex(96),
},
{
@@ -9190,8 +9214,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(58),
- /* parameters */ ParameterIndex(235),
- /* return_matcher_indices */ MatcherIndicesIndex(89),
+ /* parameters */ ParameterIndex(239),
+ /* return_matcher_indices */ MatcherIndicesIndex(95),
/* const_eval_fn */ ConstEvalFunctionIndex(43),
},
{
@@ -9201,8 +9225,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(58),
- /* parameters */ ParameterIndex(236),
- /* return_matcher_indices */ MatcherIndicesIndex(89),
+ /* parameters */ ParameterIndex(240),
+ /* return_matcher_indices */ MatcherIndicesIndex(95),
/* const_eval_fn */ ConstEvalFunctionIndex(43),
},
{
@@ -9212,7 +9236,7 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(91),
- /* parameters */ ParameterIndex(239),
+ /* parameters */ ParameterIndex(243),
/* return_matcher_indices */ MatcherIndicesIndex(13),
/* const_eval_fn */ ConstEvalFunctionIndex(63),
},
@@ -9223,8 +9247,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(91),
- /* parameters */ ParameterIndex(231),
- /* return_matcher_indices */ MatcherIndicesIndex(95),
+ /* parameters */ ParameterIndex(235),
+ /* return_matcher_indices */ MatcherIndicesIndex(101),
/* const_eval_fn */ ConstEvalFunctionIndex(63),
},
{
@@ -9234,8 +9258,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(90),
- /* parameters */ ParameterIndex(242),
- /* return_matcher_indices */ MatcherIndicesIndex(89),
+ /* parameters */ ParameterIndex(246),
+ /* return_matcher_indices */ MatcherIndicesIndex(95),
/* const_eval_fn */ ConstEvalFunctionIndex(64),
},
{
@@ -9246,7 +9270,7 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(/* invalid */),
- /* return_matcher_indices */ MatcherIndicesIndex(170),
+ /* return_matcher_indices */ MatcherIndicesIndex(174),
/* const_eval_fn */ ConstEvalFunctionIndex(107),
},
{
@@ -9256,8 +9280,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
- /* parameters */ ParameterIndex(394),
- /* return_matcher_indices */ MatcherIndicesIndex(170),
+ /* parameters */ ParameterIndex(398),
+ /* return_matcher_indices */ MatcherIndicesIndex(174),
/* const_eval_fn */ ConstEvalFunctionIndex(82),
},
{
@@ -9268,7 +9292,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(121),
/* parameters */ ParameterIndex(1),
- /* return_matcher_indices */ MatcherIndicesIndex(170),
+ /* return_matcher_indices */ MatcherIndicesIndex(174),
/* const_eval_fn */ ConstEvalFunctionIndex(108),
},
{
@@ -9279,7 +9303,7 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(/* invalid */),
- /* return_matcher_indices */ MatcherIndicesIndex(109),
+ /* return_matcher_indices */ MatcherIndicesIndex(115),
/* const_eval_fn */ ConstEvalFunctionIndex(107),
},
{
@@ -9290,7 +9314,7 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(17),
- /* return_matcher_indices */ MatcherIndicesIndex(109),
+ /* return_matcher_indices */ MatcherIndicesIndex(115),
/* const_eval_fn */ ConstEvalFunctionIndex(82),
},
{
@@ -9301,7 +9325,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(122),
/* parameters */ ParameterIndex(1),
- /* return_matcher_indices */ MatcherIndicesIndex(109),
+ /* return_matcher_indices */ MatcherIndicesIndex(115),
/* const_eval_fn */ ConstEvalFunctionIndex(108),
},
{
@@ -9312,7 +9336,7 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(/* invalid */),
- /* return_matcher_indices */ MatcherIndicesIndex(115),
+ /* return_matcher_indices */ MatcherIndicesIndex(121),
/* const_eval_fn */ ConstEvalFunctionIndex(107),
},
{
@@ -9322,8 +9346,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
- /* parameters */ ParameterIndex(379),
- /* return_matcher_indices */ MatcherIndicesIndex(115),
+ /* parameters */ ParameterIndex(383),
+ /* return_matcher_indices */ MatcherIndicesIndex(121),
/* const_eval_fn */ ConstEvalFunctionIndex(82),
},
{
@@ -9334,7 +9358,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(123),
/* parameters */ ParameterIndex(1),
- /* return_matcher_indices */ MatcherIndicesIndex(115),
+ /* return_matcher_indices */ MatcherIndicesIndex(121),
/* const_eval_fn */ ConstEvalFunctionIndex(108),
},
{
@@ -9355,7 +9379,7 @@
/* num_explicit_templates */ 0,
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
- /* parameters */ ParameterIndex(370),
+ /* parameters */ ParameterIndex(374),
/* return_matcher_indices */ MatcherIndicesIndex(6),
/* const_eval_fn */ ConstEvalFunctionIndex(82),
},
@@ -9378,7 +9402,7 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(/* invalid */),
- /* return_matcher_indices */ MatcherIndicesIndex(40),
+ /* return_matcher_indices */ MatcherIndicesIndex(46),
/* const_eval_fn */ ConstEvalFunctionIndex(107),
},
{
@@ -9389,7 +9413,7 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(152),
- /* return_matcher_indices */ MatcherIndicesIndex(40),
+ /* return_matcher_indices */ MatcherIndicesIndex(46),
/* const_eval_fn */ ConstEvalFunctionIndex(82),
},
{
@@ -9400,7 +9424,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(125),
/* parameters */ ParameterIndex(1),
- /* return_matcher_indices */ MatcherIndicesIndex(40),
+ /* return_matcher_indices */ MatcherIndicesIndex(46),
/* const_eval_fn */ ConstEvalFunctionIndex(108),
},
{
@@ -9422,7 +9446,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(78),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(89),
+ /* return_matcher_indices */ MatcherIndicesIndex(95),
/* const_eval_fn */ ConstEvalFunctionIndex(0),
},
{
@@ -9444,7 +9468,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(58),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(89),
+ /* return_matcher_indices */ MatcherIndicesIndex(95),
/* const_eval_fn */ ConstEvalFunctionIndex(1),
},
{
@@ -9466,7 +9490,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(58),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(89),
+ /* return_matcher_indices */ MatcherIndicesIndex(95),
/* const_eval_fn */ ConstEvalFunctionIndex(2),
},
{
@@ -9477,7 +9501,7 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(152),
- /* return_matcher_indices */ MatcherIndicesIndex(40),
+ /* return_matcher_indices */ MatcherIndicesIndex(46),
/* const_eval_fn */ ConstEvalFunctionIndex(3),
},
{
@@ -9487,8 +9511,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(56),
- /* parameters */ ParameterIndex(244),
- /* return_matcher_indices */ MatcherIndicesIndex(40),
+ /* parameters */ ParameterIndex(248),
+ /* return_matcher_indices */ MatcherIndicesIndex(46),
/* const_eval_fn */ ConstEvalFunctionIndex(3),
},
{
@@ -9499,7 +9523,7 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(152),
- /* return_matcher_indices */ MatcherIndicesIndex(40),
+ /* return_matcher_indices */ MatcherIndicesIndex(46),
/* const_eval_fn */ ConstEvalFunctionIndex(4),
},
{
@@ -9509,8 +9533,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(56),
- /* parameters */ ParameterIndex(244),
- /* return_matcher_indices */ MatcherIndicesIndex(40),
+ /* parameters */ ParameterIndex(248),
+ /* return_matcher_indices */ MatcherIndicesIndex(46),
/* const_eval_fn */ ConstEvalFunctionIndex(4),
},
{
@@ -9520,8 +9544,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(83),
- /* parameters */ ParameterIndex(369),
- /* return_matcher_indices */ MatcherIndicesIndex(109),
+ /* parameters */ ParameterIndex(373),
+ /* return_matcher_indices */ MatcherIndicesIndex(115),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -9531,8 +9555,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(85),
- /* parameters */ ParameterIndex(369),
- /* return_matcher_indices */ MatcherIndicesIndex(109),
+ /* parameters */ ParameterIndex(373),
+ /* return_matcher_indices */ MatcherIndicesIndex(115),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -9554,7 +9578,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(58),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(89),
+ /* return_matcher_indices */ MatcherIndicesIndex(95),
/* const_eval_fn */ ConstEvalFunctionIndex(5),
},
{
@@ -9576,7 +9600,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(58),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(89),
+ /* return_matcher_indices */ MatcherIndicesIndex(95),
/* const_eval_fn */ ConstEvalFunctionIndex(6),
},
{
@@ -9598,7 +9622,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(58),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(89),
+ /* return_matcher_indices */ MatcherIndicesIndex(95),
/* const_eval_fn */ ConstEvalFunctionIndex(7),
},
{
@@ -9619,8 +9643,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(63),
- /* parameters */ ParameterIndex(230),
- /* return_matcher_indices */ MatcherIndicesIndex(95),
+ /* parameters */ ParameterIndex(234),
+ /* return_matcher_indices */ MatcherIndicesIndex(101),
/* const_eval_fn */ ConstEvalFunctionIndex(8),
},
{
@@ -9642,7 +9666,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(58),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(89),
+ /* return_matcher_indices */ MatcherIndicesIndex(95),
/* const_eval_fn */ ConstEvalFunctionIndex(9),
},
{
@@ -9664,7 +9688,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(58),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(89),
+ /* return_matcher_indices */ MatcherIndicesIndex(95),
/* const_eval_fn */ ConstEvalFunctionIndex(11),
},
{
@@ -9685,8 +9709,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(79),
- /* parameters */ ParameterIndex(230),
- /* return_matcher_indices */ MatcherIndicesIndex(95),
+ /* parameters */ ParameterIndex(234),
+ /* return_matcher_indices */ MatcherIndicesIndex(101),
/* const_eval_fn */ ConstEvalFunctionIndex(12),
},
{
@@ -9708,7 +9732,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(58),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(89),
+ /* return_matcher_indices */ MatcherIndicesIndex(95),
/* const_eval_fn */ ConstEvalFunctionIndex(13),
},
{
@@ -9730,7 +9754,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(58),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(89),
+ /* return_matcher_indices */ MatcherIndicesIndex(95),
/* const_eval_fn */ ConstEvalFunctionIndex(14),
},
{
@@ -9752,7 +9776,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(80),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(89),
+ /* return_matcher_indices */ MatcherIndicesIndex(95),
/* const_eval_fn */ ConstEvalFunctionIndex(15),
},
{
@@ -9774,7 +9798,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(80),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(89),
+ /* return_matcher_indices */ MatcherIndicesIndex(95),
/* const_eval_fn */ ConstEvalFunctionIndex(16),
},
{
@@ -9796,7 +9820,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(80),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(89),
+ /* return_matcher_indices */ MatcherIndicesIndex(95),
/* const_eval_fn */ ConstEvalFunctionIndex(17),
},
{
@@ -9818,7 +9842,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(58),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(89),
+ /* return_matcher_indices */ MatcherIndicesIndex(95),
/* const_eval_fn */ ConstEvalFunctionIndex(19),
},
{
@@ -9850,8 +9874,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
- /* parameters */ ParameterIndex(379),
- /* return_matcher_indices */ MatcherIndicesIndex(115),
+ /* parameters */ ParameterIndex(383),
+ /* return_matcher_indices */ MatcherIndicesIndex(121),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -9861,8 +9885,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(56),
- /* parameters */ ParameterIndex(380),
- /* return_matcher_indices */ MatcherIndicesIndex(113),
+ /* parameters */ ParameterIndex(384),
+ /* return_matcher_indices */ MatcherIndicesIndex(119),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -9884,7 +9908,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(58),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(89),
+ /* return_matcher_indices */ MatcherIndicesIndex(95),
/* const_eval_fn */ ConstEvalFunctionIndex(25),
},
{
@@ -9906,7 +9930,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(58),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(89),
+ /* return_matcher_indices */ MatcherIndicesIndex(95),
/* const_eval_fn */ ConstEvalFunctionIndex(26),
},
{
@@ -9928,7 +9952,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(80),
/* parameters */ ParameterIndex(155),
- /* return_matcher_indices */ MatcherIndicesIndex(89),
+ /* return_matcher_indices */ MatcherIndicesIndex(95),
/* const_eval_fn */ ConstEvalFunctionIndex(27),
},
{
@@ -9950,7 +9974,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(80),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(89),
+ /* return_matcher_indices */ MatcherIndicesIndex(95),
/* const_eval_fn */ ConstEvalFunctionIndex(29),
},
{
@@ -9972,7 +9996,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(80),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(89),
+ /* return_matcher_indices */ MatcherIndicesIndex(95),
/* const_eval_fn */ ConstEvalFunctionIndex(30),
},
{
@@ -9994,7 +10018,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(58),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(89),
+ /* return_matcher_indices */ MatcherIndicesIndex(95),
/* const_eval_fn */ ConstEvalFunctionIndex(31),
},
{
@@ -10015,8 +10039,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(58),
- /* parameters */ ParameterIndex(235),
- /* return_matcher_indices */ MatcherIndicesIndex(89),
+ /* parameters */ ParameterIndex(239),
+ /* return_matcher_indices */ MatcherIndicesIndex(95),
/* const_eval_fn */ ConstEvalFunctionIndex(32),
},
{
@@ -10038,7 +10062,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(58),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(89),
+ /* return_matcher_indices */ MatcherIndicesIndex(95),
/* const_eval_fn */ ConstEvalFunctionIndex(33),
},
{
@@ -10049,7 +10073,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(51),
/* parameters */ ParameterIndex(1),
- /* return_matcher_indices */ MatcherIndicesIndex(161),
+ /* return_matcher_indices */ MatcherIndicesIndex(165),
/* const_eval_fn */ ConstEvalFunctionIndex(34),
},
{
@@ -10060,7 +10084,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(58),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(116),
+ /* return_matcher_indices */ MatcherIndicesIndex(122),
/* const_eval_fn */ ConstEvalFunctionIndex(34),
},
{
@@ -10082,7 +10106,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(80),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(89),
+ /* return_matcher_indices */ MatcherIndicesIndex(95),
/* const_eval_fn */ ConstEvalFunctionIndex(35),
},
{
@@ -10104,7 +10128,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(58),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(89),
+ /* return_matcher_indices */ MatcherIndicesIndex(95),
/* const_eval_fn */ ConstEvalFunctionIndex(36),
},
{
@@ -10114,7 +10138,7 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(59),
- /* parameters */ ParameterIndex(306),
+ /* parameters */ ParameterIndex(310),
/* return_matcher_indices */ MatcherIndicesIndex(13),
/* const_eval_fn */ ConstEvalFunctionIndex(37),
},
@@ -10125,8 +10149,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 3,
/* templates */ TemplateIndex(58),
- /* parameters */ ParameterIndex(308),
- /* return_matcher_indices */ MatcherIndicesIndex(89),
+ /* parameters */ ParameterIndex(312),
+ /* return_matcher_indices */ MatcherIndicesIndex(95),
/* const_eval_fn */ ConstEvalFunctionIndex(37),
},
{
@@ -10170,7 +10194,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(58),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(89),
+ /* return_matcher_indices */ MatcherIndicesIndex(95),
/* const_eval_fn */ ConstEvalFunctionIndex(39),
},
{
@@ -10192,7 +10216,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(58),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(89),
+ /* return_matcher_indices */ MatcherIndicesIndex(95),
/* const_eval_fn */ ConstEvalFunctionIndex(40),
},
{
@@ -10214,7 +10238,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(78),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(89),
+ /* return_matcher_indices */ MatcherIndicesIndex(95),
/* const_eval_fn */ ConstEvalFunctionIndex(41),
},
{
@@ -10236,7 +10260,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(78),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(89),
+ /* return_matcher_indices */ MatcherIndicesIndex(95),
/* const_eval_fn */ ConstEvalFunctionIndex(42),
},
{
@@ -10247,7 +10271,7 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(51),
/* parameters */ ParameterIndex(1),
- /* return_matcher_indices */ MatcherIndicesIndex(163),
+ /* return_matcher_indices */ MatcherIndicesIndex(167),
/* const_eval_fn */ ConstEvalFunctionIndex(44),
},
{
@@ -10258,7 +10282,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(58),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(122),
+ /* return_matcher_indices */ MatcherIndicesIndex(128),
/* const_eval_fn */ ConstEvalFunctionIndex(44),
},
{
@@ -10280,7 +10304,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(58),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(89),
+ /* return_matcher_indices */ MatcherIndicesIndex(95),
/* const_eval_fn */ ConstEvalFunctionIndex(55),
},
{
@@ -10290,8 +10314,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
- /* parameters */ ParameterIndex(379),
- /* return_matcher_indices */ MatcherIndicesIndex(115),
+ /* parameters */ ParameterIndex(383),
+ /* return_matcher_indices */ MatcherIndicesIndex(121),
/* const_eval_fn */ ConstEvalFunctionIndex(56),
},
{
@@ -10301,8 +10325,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(56),
- /* parameters */ ParameterIndex(380),
- /* return_matcher_indices */ MatcherIndicesIndex(113),
+ /* parameters */ ParameterIndex(384),
+ /* return_matcher_indices */ MatcherIndicesIndex(119),
/* const_eval_fn */ ConstEvalFunctionIndex(56),
},
{
@@ -10324,7 +10348,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(58),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(89),
+ /* return_matcher_indices */ MatcherIndicesIndex(95),
/* const_eval_fn */ ConstEvalFunctionIndex(57),
},
{
@@ -10346,7 +10370,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(80),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(89),
+ /* return_matcher_indices */ MatcherIndicesIndex(95),
/* const_eval_fn */ ConstEvalFunctionIndex(60),
},
{
@@ -10368,7 +10392,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(58),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(89),
+ /* return_matcher_indices */ MatcherIndicesIndex(95),
/* const_eval_fn */ ConstEvalFunctionIndex(61),
},
{
@@ -10389,8 +10413,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(63),
- /* parameters */ ParameterIndex(230),
- /* return_matcher_indices */ MatcherIndicesIndex(95),
+ /* parameters */ ParameterIndex(234),
+ /* return_matcher_indices */ MatcherIndicesIndex(101),
/* const_eval_fn */ ConstEvalFunctionIndex(62),
},
{
@@ -10412,7 +10436,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(92),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(89),
+ /* return_matcher_indices */ MatcherIndicesIndex(95),
/* const_eval_fn */ ConstEvalFunctionIndex(65),
},
{
@@ -10434,7 +10458,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(58),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(89),
+ /* return_matcher_indices */ MatcherIndicesIndex(95),
/* const_eval_fn */ ConstEvalFunctionIndex(66),
},
{
@@ -10456,7 +10480,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(58),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(89),
+ /* return_matcher_indices */ MatcherIndicesIndex(95),
/* const_eval_fn */ ConstEvalFunctionIndex(67),
},
{
@@ -10477,8 +10501,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(58),
- /* parameters */ ParameterIndex(235),
- /* return_matcher_indices */ MatcherIndicesIndex(89),
+ /* parameters */ ParameterIndex(239),
+ /* return_matcher_indices */ MatcherIndicesIndex(95),
/* const_eval_fn */ ConstEvalFunctionIndex(68),
},
{
@@ -10500,7 +10524,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(58),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(89),
+ /* return_matcher_indices */ MatcherIndicesIndex(95),
/* const_eval_fn */ ConstEvalFunctionIndex(69),
},
{
@@ -10522,7 +10546,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(58),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(89),
+ /* return_matcher_indices */ MatcherIndicesIndex(95),
/* const_eval_fn */ ConstEvalFunctionIndex(70),
},
{
@@ -10544,7 +10568,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(58),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(89),
+ /* return_matcher_indices */ MatcherIndicesIndex(95),
/* const_eval_fn */ ConstEvalFunctionIndex(71),
},
{
@@ -10566,7 +10590,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(58),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(89),
+ /* return_matcher_indices */ MatcherIndicesIndex(95),
/* const_eval_fn */ ConstEvalFunctionIndex(72),
},
{
@@ -10588,7 +10612,7 @@
/* num_templates */ 2,
/* templates */ TemplateIndex(58),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(89),
+ /* return_matcher_indices */ MatcherIndicesIndex(95),
/* const_eval_fn */ ConstEvalFunctionIndex(74),
},
{
@@ -10598,8 +10622,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(19),
- /* parameters */ ParameterIndex(288),
- /* return_matcher_indices */ MatcherIndicesIndex(109),
+ /* parameters */ ParameterIndex(292),
+ /* return_matcher_indices */ MatcherIndicesIndex(115),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -10609,8 +10633,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
- /* parameters */ ParameterIndex(294),
- /* return_matcher_indices */ MatcherIndicesIndex(109),
+ /* parameters */ ParameterIndex(298),
+ /* return_matcher_indices */ MatcherIndicesIndex(115),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -10621,7 +10645,7 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(44),
- /* return_matcher_indices */ MatcherIndicesIndex(167),
+ /* return_matcher_indices */ MatcherIndicesIndex(171),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -10631,8 +10655,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
- /* parameters */ ParameterIndex(249),
- /* return_matcher_indices */ MatcherIndicesIndex(167),
+ /* parameters */ ParameterIndex(253),
+ /* return_matcher_indices */ MatcherIndicesIndex(171),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -10642,67 +10666,45 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(95),
- /* parameters */ ParameterIndex(332),
- /* return_matcher_indices */ MatcherIndicesIndex(13),
- /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
- },
- {
- /* [482] */
- /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 2,
- /* num_explicit_templates */ 0,
- /* num_templates */ 2,
- /* templates */ TemplateIndex(94),
- /* parameters */ ParameterIndex(334),
- /* return_matcher_indices */ MatcherIndicesIndex(89),
- /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
- },
- {
- /* [483] */
- /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 1,
- /* num_explicit_templates */ 0,
- /* num_templates */ 1,
- /* templates */ TemplateIndex(95),
- /* parameters */ ParameterIndex(332),
- /* return_matcher_indices */ MatcherIndicesIndex(13),
- /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
- },
- {
- /* [484] */
- /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 1,
- /* num_explicit_templates */ 0,
- /* num_templates */ 2,
- /* templates */ TemplateIndex(94),
- /* parameters */ ParameterIndex(334),
- /* return_matcher_indices */ MatcherIndicesIndex(89),
- /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
- },
- {
- /* [485] */
- /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 2,
- /* num_explicit_templates */ 0,
- /* num_templates */ 1,
- /* templates */ TemplateIndex(95),
/* parameters */ ParameterIndex(336),
/* return_matcher_indices */ MatcherIndicesIndex(13),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [486] */
+ /* [482] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(94),
/* parameters */ ParameterIndex(338),
- /* return_matcher_indices */ MatcherIndicesIndex(89),
+ /* return_matcher_indices */ MatcherIndicesIndex(95),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [487] */
+ /* [483] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 1,
+ /* num_explicit_templates */ 0,
+ /* num_templates */ 1,
+ /* templates */ TemplateIndex(95),
+ /* parameters */ ParameterIndex(336),
+ /* return_matcher_indices */ MatcherIndicesIndex(13),
+ /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+ },
+ {
+ /* [484] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 1,
+ /* num_explicit_templates */ 0,
+ /* num_templates */ 2,
+ /* templates */ TemplateIndex(94),
+ /* parameters */ ParameterIndex(338),
+ /* return_matcher_indices */ MatcherIndicesIndex(95),
+ /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+ },
+ {
+ /* [485] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
/* num_explicit_templates */ 0,
@@ -10713,14 +10715,36 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [488] */
+ /* [486] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(94),
/* parameters */ ParameterIndex(342),
- /* return_matcher_indices */ MatcherIndicesIndex(89),
+ /* return_matcher_indices */ MatcherIndicesIndex(95),
+ /* 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(95),
+ /* parameters */ ParameterIndex(344),
+ /* 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(94),
+ /* parameters */ ParameterIndex(346),
+ /* return_matcher_indices */ MatcherIndicesIndex(95),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -10730,7 +10754,7 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(81),
- /* parameters */ ParameterIndex(332),
+ /* parameters */ ParameterIndex(336),
/* return_matcher_indices */ MatcherIndicesIndex(13),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -10741,8 +10765,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(80),
- /* parameters */ ParameterIndex(334),
- /* return_matcher_indices */ MatcherIndicesIndex(89),
+ /* parameters */ ParameterIndex(338),
+ /* return_matcher_indices */ MatcherIndicesIndex(95),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -10752,7 +10776,7 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(95),
- /* parameters */ ParameterIndex(344),
+ /* parameters */ ParameterIndex(348),
/* return_matcher_indices */ MatcherIndicesIndex(13),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -10763,8 +10787,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(94),
- /* parameters */ ParameterIndex(346),
- /* return_matcher_indices */ MatcherIndicesIndex(89),
+ /* parameters */ ParameterIndex(350),
+ /* return_matcher_indices */ MatcherIndicesIndex(95),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -10774,7 +10798,7 @@
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(95),
- /* parameters */ ParameterIndex(344),
+ /* parameters */ ParameterIndex(348),
/* return_matcher_indices */ MatcherIndicesIndex(13),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -10785,53 +10809,53 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(94),
- /* parameters */ ParameterIndex(346),
- /* return_matcher_indices */ MatcherIndicesIndex(89),
+ /* parameters */ ParameterIndex(350),
+ /* return_matcher_indices */ MatcherIndicesIndex(95),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
/* [495] */
- /* 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(40),
- /* const_eval_fn */ ConstEvalFunctionIndex(83),
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 4,
+ /* num_explicit_templates */ 1,
+ /* num_templates */ 5,
+ /* templates */ TemplateIndex(0),
+ /* parameters */ ParameterIndex(210),
+ /* return_matcher_indices */ MatcherIndicesIndex(13),
+ /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
/* [496] */
- /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 1,
- /* num_explicit_templates */ 0,
- /* num_templates */ 1,
- /* templates */ TemplateIndex(56),
- /* parameters */ ParameterIndex(244),
- /* return_matcher_indices */ MatcherIndicesIndex(92),
- /* const_eval_fn */ ConstEvalFunctionIndex(83),
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 4,
+ /* num_explicit_templates */ 1,
+ /* num_templates */ 6,
+ /* templates */ TemplateIndex(0),
+ /* parameters */ ParameterIndex(214),
+ /* return_matcher_indices */ MatcherIndicesIndex(13),
+ /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
/* [497] */
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_explicit_templates */ 0,
- /* num_templates */ 1,
- /* templates */ TemplateIndex(108),
- /* parameters */ ParameterIndex(1),
- /* return_matcher_indices */ MatcherIndicesIndex(13),
- /* const_eval_fn */ ConstEvalFunctionIndex(84),
+ /* num_templates */ 0,
+ /* templates */ TemplateIndex(/* invalid */),
+ /* parameters */ ParameterIndex(152),
+ /* return_matcher_indices */ MatcherIndicesIndex(46),
+ /* const_eval_fn */ ConstEvalFunctionIndex(83),
},
{
/* [498] */
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_explicit_templates */ 0,
- /* num_templates */ 2,
- /* templates */ TemplateIndex(108),
- /* parameters */ ParameterIndex(230),
- /* return_matcher_indices */ MatcherIndicesIndex(95),
- /* const_eval_fn */ ConstEvalFunctionIndex(84),
+ /* num_templates */ 1,
+ /* templates */ TemplateIndex(56),
+ /* parameters */ ParameterIndex(248),
+ /* return_matcher_indices */ MatcherIndicesIndex(98),
+ /* const_eval_fn */ ConstEvalFunctionIndex(83),
},
{
/* [499] */
@@ -10839,10 +10863,10 @@
/* num_parameters */ 1,
/* num_explicit_templates */ 0,
/* num_templates */ 1,
- /* templates */ TemplateIndex(93),
+ /* templates */ TemplateIndex(108),
/* parameters */ ParameterIndex(1),
/* return_matcher_indices */ MatcherIndicesIndex(13),
- /* const_eval_fn */ ConstEvalFunctionIndex(85),
+ /* const_eval_fn */ ConstEvalFunctionIndex(84),
},
{
/* [500] */
@@ -10850,14 +10874,36 @@
/* num_parameters */ 1,
/* num_explicit_templates */ 0,
/* num_templates */ 2,
- /* templates */ TemplateIndex(93),
- /* parameters */ ParameterIndex(230),
- /* return_matcher_indices */ MatcherIndicesIndex(95),
- /* const_eval_fn */ ConstEvalFunctionIndex(85),
+ /* templates */ TemplateIndex(108),
+ /* parameters */ ParameterIndex(234),
+ /* return_matcher_indices */ MatcherIndicesIndex(101),
+ /* const_eval_fn */ ConstEvalFunctionIndex(84),
},
{
/* [501] */
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 1,
+ /* num_explicit_templates */ 0,
+ /* num_templates */ 1,
+ /* templates */ TemplateIndex(93),
+ /* parameters */ ParameterIndex(1),
+ /* return_matcher_indices */ MatcherIndicesIndex(13),
+ /* const_eval_fn */ ConstEvalFunctionIndex(85),
+ },
+ {
+ /* [502] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 1,
+ /* num_explicit_templates */ 0,
+ /* num_templates */ 2,
+ /* templates */ TemplateIndex(93),
+ /* parameters */ ParameterIndex(234),
+ /* return_matcher_indices */ MatcherIndicesIndex(101),
+ /* const_eval_fn */ ConstEvalFunctionIndex(85),
+ },
+ {
+ /* [503] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
/* num_explicit_templates */ 0,
/* num_templates */ 1,
@@ -10867,37 +10913,15 @@
/* const_eval_fn */ ConstEvalFunctionIndex(94),
},
{
- /* [502] */
- /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 2,
- /* num_explicit_templates */ 0,
- /* num_templates */ 2,
- /* templates */ TemplateIndex(108),
- /* parameters */ ParameterIndex(230),
- /* return_matcher_indices */ MatcherIndicesIndex(95),
- /* const_eval_fn */ ConstEvalFunctionIndex(94),
- },
- {
- /* [503] */
- /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 2,
- /* num_explicit_templates */ 0,
- /* num_templates */ 1,
- /* templates */ TemplateIndex(91),
- /* parameters */ ParameterIndex(1),
- /* return_matcher_indices */ MatcherIndicesIndex(40),
- /* const_eval_fn */ ConstEvalFunctionIndex(99),
- },
- {
/* [504] */
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
/* num_explicit_templates */ 0,
/* num_templates */ 2,
- /* templates */ TemplateIndex(91),
- /* parameters */ ParameterIndex(230),
- /* return_matcher_indices */ MatcherIndicesIndex(152),
- /* const_eval_fn */ ConstEvalFunctionIndex(99),
+ /* templates */ TemplateIndex(108),
+ /* parameters */ ParameterIndex(234),
+ /* return_matcher_indices */ MatcherIndicesIndex(101),
+ /* const_eval_fn */ ConstEvalFunctionIndex(94),
},
{
/* [505] */
@@ -10907,8 +10931,8 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(91),
/* parameters */ ParameterIndex(1),
- /* return_matcher_indices */ MatcherIndicesIndex(40),
- /* const_eval_fn */ ConstEvalFunctionIndex(100),
+ /* return_matcher_indices */ MatcherIndicesIndex(46),
+ /* const_eval_fn */ ConstEvalFunctionIndex(99),
},
{
/* [506] */
@@ -10917,9 +10941,9 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(91),
- /* parameters */ ParameterIndex(230),
- /* return_matcher_indices */ MatcherIndicesIndex(152),
- /* const_eval_fn */ ConstEvalFunctionIndex(100),
+ /* parameters */ ParameterIndex(234),
+ /* return_matcher_indices */ MatcherIndicesIndex(158),
+ /* const_eval_fn */ ConstEvalFunctionIndex(99),
},
{
/* [507] */
@@ -10927,10 +10951,10 @@
/* num_parameters */ 2,
/* num_explicit_templates */ 0,
/* num_templates */ 1,
- /* templates */ TemplateIndex(79),
+ /* templates */ TemplateIndex(91),
/* parameters */ ParameterIndex(1),
- /* return_matcher_indices */ MatcherIndicesIndex(40),
- /* const_eval_fn */ ConstEvalFunctionIndex(101),
+ /* return_matcher_indices */ MatcherIndicesIndex(46),
+ /* const_eval_fn */ ConstEvalFunctionIndex(100),
},
{
/* [508] */
@@ -10938,10 +10962,10 @@
/* num_parameters */ 2,
/* num_explicit_templates */ 0,
/* num_templates */ 2,
- /* templates */ TemplateIndex(79),
- /* parameters */ ParameterIndex(230),
- /* return_matcher_indices */ MatcherIndicesIndex(152),
- /* const_eval_fn */ ConstEvalFunctionIndex(101),
+ /* templates */ TemplateIndex(91),
+ /* parameters */ ParameterIndex(234),
+ /* return_matcher_indices */ MatcherIndicesIndex(158),
+ /* const_eval_fn */ ConstEvalFunctionIndex(100),
},
{
/* [509] */
@@ -10951,8 +10975,8 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(79),
/* parameters */ ParameterIndex(1),
- /* return_matcher_indices */ MatcherIndicesIndex(40),
- /* const_eval_fn */ ConstEvalFunctionIndex(102),
+ /* return_matcher_indices */ MatcherIndicesIndex(46),
+ /* const_eval_fn */ ConstEvalFunctionIndex(101),
},
{
/* [510] */
@@ -10961,9 +10985,9 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(79),
- /* parameters */ ParameterIndex(230),
- /* return_matcher_indices */ MatcherIndicesIndex(152),
- /* const_eval_fn */ ConstEvalFunctionIndex(102),
+ /* parameters */ ParameterIndex(234),
+ /* return_matcher_indices */ MatcherIndicesIndex(158),
+ /* const_eval_fn */ ConstEvalFunctionIndex(101),
},
{
/* [511] */
@@ -10973,8 +10997,8 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(79),
/* parameters */ ParameterIndex(1),
- /* return_matcher_indices */ MatcherIndicesIndex(40),
- /* const_eval_fn */ ConstEvalFunctionIndex(103),
+ /* return_matcher_indices */ MatcherIndicesIndex(46),
+ /* const_eval_fn */ ConstEvalFunctionIndex(102),
},
{
/* [512] */
@@ -10983,9 +11007,9 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(79),
- /* parameters */ ParameterIndex(230),
- /* return_matcher_indices */ MatcherIndicesIndex(152),
- /* const_eval_fn */ ConstEvalFunctionIndex(103),
+ /* parameters */ ParameterIndex(234),
+ /* return_matcher_indices */ MatcherIndicesIndex(158),
+ /* const_eval_fn */ ConstEvalFunctionIndex(102),
},
{
/* [513] */
@@ -10995,8 +11019,8 @@
/* num_templates */ 1,
/* templates */ TemplateIndex(79),
/* parameters */ ParameterIndex(1),
- /* return_matcher_indices */ MatcherIndicesIndex(40),
- /* const_eval_fn */ ConstEvalFunctionIndex(104),
+ /* return_matcher_indices */ MatcherIndicesIndex(46),
+ /* const_eval_fn */ ConstEvalFunctionIndex(103),
},
{
/* [514] */
@@ -11005,9 +11029,9 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(79),
- /* parameters */ ParameterIndex(230),
- /* return_matcher_indices */ MatcherIndicesIndex(152),
- /* const_eval_fn */ ConstEvalFunctionIndex(104),
+ /* parameters */ ParameterIndex(234),
+ /* return_matcher_indices */ MatcherIndicesIndex(158),
+ /* const_eval_fn */ ConstEvalFunctionIndex(103),
},
{
/* [515] */
@@ -11015,10 +11039,10 @@
/* num_parameters */ 2,
/* num_explicit_templates */ 0,
/* num_templates */ 1,
- /* templates */ TemplateIndex(108),
- /* parameters */ ParameterIndex(16),
- /* return_matcher_indices */ MatcherIndicesIndex(13),
- /* const_eval_fn */ ConstEvalFunctionIndex(105),
+ /* templates */ TemplateIndex(79),
+ /* parameters */ ParameterIndex(1),
+ /* return_matcher_indices */ MatcherIndicesIndex(46),
+ /* const_eval_fn */ ConstEvalFunctionIndex(104),
},
{
/* [516] */
@@ -11026,10 +11050,10 @@
/* num_parameters */ 2,
/* num_explicit_templates */ 0,
/* num_templates */ 2,
- /* templates */ TemplateIndex(108),
- /* parameters */ ParameterIndex(352),
- /* return_matcher_indices */ MatcherIndicesIndex(95),
- /* const_eval_fn */ ConstEvalFunctionIndex(105),
+ /* templates */ TemplateIndex(79),
+ /* parameters */ ParameterIndex(234),
+ /* return_matcher_indices */ MatcherIndicesIndex(158),
+ /* const_eval_fn */ ConstEvalFunctionIndex(104),
},
{
/* [517] */
@@ -11040,7 +11064,7 @@
/* templates */ TemplateIndex(108),
/* parameters */ ParameterIndex(16),
/* return_matcher_indices */ MatcherIndicesIndex(13),
- /* const_eval_fn */ ConstEvalFunctionIndex(106),
+ /* const_eval_fn */ ConstEvalFunctionIndex(105),
},
{
/* [518] */
@@ -11049,34 +11073,56 @@
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(108),
- /* parameters */ ParameterIndex(352),
- /* return_matcher_indices */ MatcherIndicesIndex(95),
- /* const_eval_fn */ ConstEvalFunctionIndex(106),
+ /* parameters */ ParameterIndex(356),
+ /* return_matcher_indices */ MatcherIndicesIndex(101),
+ /* const_eval_fn */ ConstEvalFunctionIndex(105),
},
{
/* [519] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 2,
+ /* num_explicit_templates */ 0,
+ /* num_templates */ 1,
+ /* templates */ TemplateIndex(108),
+ /* parameters */ ParameterIndex(16),
+ /* return_matcher_indices */ MatcherIndicesIndex(13),
+ /* const_eval_fn */ ConstEvalFunctionIndex(106),
+ },
+ {
+ /* [520] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 2,
+ /* num_explicit_templates */ 0,
+ /* num_templates */ 2,
+ /* templates */ TemplateIndex(108),
+ /* parameters */ ParameterIndex(356),
+ /* return_matcher_indices */ MatcherIndicesIndex(101),
+ /* const_eval_fn */ ConstEvalFunctionIndex(106),
+ },
+ {
+ /* [521] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(51),
- /* parameters */ ParameterIndex(222),
+ /* parameters */ ParameterIndex(226),
/* return_matcher_indices */ MatcherIndicesIndex(12),
/* const_eval_fn */ ConstEvalFunctionIndex(18),
},
{
- /* [520] */
+ /* [522] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(58),
- /* parameters */ ParameterIndex(378),
+ /* parameters */ ParameterIndex(382),
/* return_matcher_indices */ MatcherIndicesIndex(10),
/* const_eval_fn */ ConstEvalFunctionIndex(20),
},
{
- /* [521] */
+ /* [523] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
/* num_explicit_templates */ 0,
@@ -11087,70 +11133,48 @@
/* const_eval_fn */ ConstEvalFunctionIndex(22),
},
{
- /* [522] */
+ /* [524] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, 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(170),
+ /* return_matcher_indices */ MatcherIndicesIndex(174),
/* const_eval_fn */ ConstEvalFunctionIndex(23),
},
{
- /* [523] */
+ /* [525] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, 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(109),
+ /* return_matcher_indices */ MatcherIndicesIndex(115),
/* const_eval_fn */ ConstEvalFunctionIndex(24),
},
{
- /* [524] */
+ /* [526] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 3,
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(58),
- /* parameters */ ParameterIndex(235),
- /* return_matcher_indices */ MatcherIndicesIndex(89),
+ /* parameters */ ParameterIndex(239),
+ /* return_matcher_indices */ MatcherIndicesIndex(95),
/* const_eval_fn */ ConstEvalFunctionIndex(28),
},
{
- /* [525] */
- /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 1,
- /* num_explicit_templates */ 0,
- /* num_templates */ 2,
- /* templates */ TemplateIndex(58),
- /* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(89),
- /* const_eval_fn */ ConstEvalFunctionIndex(45),
- },
- {
- /* [526] */
- /* 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(381),
- /* return_matcher_indices */ MatcherIndicesIndex(109),
- /* const_eval_fn */ ConstEvalFunctionIndex(46),
- },
- {
/* [527] */
/* 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(381),
- /* return_matcher_indices */ MatcherIndicesIndex(109),
- /* const_eval_fn */ ConstEvalFunctionIndex(47),
+ /* num_templates */ 2,
+ /* templates */ TemplateIndex(58),
+ /* parameters */ ParameterIndex(154),
+ /* return_matcher_indices */ MatcherIndicesIndex(95),
+ /* const_eval_fn */ ConstEvalFunctionIndex(45),
},
{
/* [528] */
@@ -11159,9 +11183,9 @@
/* num_explicit_templates */ 0,
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
- /* parameters */ ParameterIndex(381),
- /* return_matcher_indices */ MatcherIndicesIndex(109),
- /* const_eval_fn */ ConstEvalFunctionIndex(48),
+ /* parameters */ ParameterIndex(385),
+ /* return_matcher_indices */ MatcherIndicesIndex(115),
+ /* const_eval_fn */ ConstEvalFunctionIndex(46),
},
{
/* [529] */
@@ -11170,9 +11194,9 @@
/* num_explicit_templates */ 0,
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
- /* parameters */ ParameterIndex(382),
- /* return_matcher_indices */ MatcherIndicesIndex(109),
- /* const_eval_fn */ ConstEvalFunctionIndex(49),
+ /* parameters */ ParameterIndex(385),
+ /* return_matcher_indices */ MatcherIndicesIndex(115),
+ /* const_eval_fn */ ConstEvalFunctionIndex(47),
},
{
/* [530] */
@@ -11181,9 +11205,9 @@
/* num_explicit_templates */ 0,
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
- /* parameters */ ParameterIndex(382),
- /* return_matcher_indices */ MatcherIndicesIndex(109),
- /* const_eval_fn */ ConstEvalFunctionIndex(50),
+ /* parameters */ ParameterIndex(385),
+ /* return_matcher_indices */ MatcherIndicesIndex(115),
+ /* const_eval_fn */ ConstEvalFunctionIndex(48),
},
{
/* [531] */
@@ -11192,9 +11216,9 @@
/* num_explicit_templates */ 0,
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
- /* parameters */ ParameterIndex(383),
- /* return_matcher_indices */ MatcherIndicesIndex(109),
- /* const_eval_fn */ ConstEvalFunctionIndex(51),
+ /* parameters */ ParameterIndex(386),
+ /* return_matcher_indices */ MatcherIndicesIndex(115),
+ /* const_eval_fn */ ConstEvalFunctionIndex(49),
},
{
/* [532] */
@@ -11203,9 +11227,9 @@
/* num_explicit_templates */ 0,
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
- /* parameters */ ParameterIndex(384),
- /* return_matcher_indices */ MatcherIndicesIndex(109),
- /* const_eval_fn */ ConstEvalFunctionIndex(52),
+ /* parameters */ ParameterIndex(386),
+ /* return_matcher_indices */ MatcherIndicesIndex(115),
+ /* const_eval_fn */ ConstEvalFunctionIndex(50),
},
{
/* [533] */
@@ -11214,9 +11238,9 @@
/* num_explicit_templates */ 0,
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
- /* parameters */ ParameterIndex(383),
- /* return_matcher_indices */ MatcherIndicesIndex(109),
- /* const_eval_fn */ ConstEvalFunctionIndex(53),
+ /* parameters */ ParameterIndex(387),
+ /* return_matcher_indices */ MatcherIndicesIndex(115),
+ /* const_eval_fn */ ConstEvalFunctionIndex(51),
},
{
/* [534] */
@@ -11225,34 +11249,56 @@
/* num_explicit_templates */ 0,
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
- /* parameters */ ParameterIndex(384),
- /* return_matcher_indices */ MatcherIndicesIndex(109),
- /* const_eval_fn */ ConstEvalFunctionIndex(54),
+ /* parameters */ ParameterIndex(388),
+ /* return_matcher_indices */ MatcherIndicesIndex(115),
+ /* const_eval_fn */ ConstEvalFunctionIndex(52),
},
{
/* [535] */
/* 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(387),
+ /* return_matcher_indices */ MatcherIndicesIndex(115),
+ /* const_eval_fn */ ConstEvalFunctionIndex(53),
+ },
+ {
+ /* [536] */
+ /* 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(388),
+ /* return_matcher_indices */ MatcherIndicesIndex(115),
+ /* const_eval_fn */ ConstEvalFunctionIndex(54),
+ },
+ {
+ /* [537] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(58),
/* parameters */ ParameterIndex(154),
- /* return_matcher_indices */ MatcherIndicesIndex(89),
+ /* return_matcher_indices */ MatcherIndicesIndex(95),
/* const_eval_fn */ ConstEvalFunctionIndex(58),
},
{
- /* [536] */
+ /* [538] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 3,
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(58),
- /* parameters */ ParameterIndex(236),
- /* return_matcher_indices */ MatcherIndicesIndex(89),
+ /* parameters */ ParameterIndex(240),
+ /* return_matcher_indices */ MatcherIndicesIndex(95),
/* const_eval_fn */ ConstEvalFunctionIndex(59),
},
{
- /* [537] */
+ /* [539] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline),
/* num_parameters */ 0,
/* num_explicit_templates */ 0,
@@ -11263,39 +11309,17 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [538] */
+ /* [540] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_explicit_templates */ 0,
/* num_templates */ 3,
/* templates */ TemplateIndex(61),
- /* parameters */ ParameterIndex(385),
- /* return_matcher_indices */ MatcherIndicesIndex(53),
+ /* parameters */ ParameterIndex(389),
+ /* return_matcher_indices */ MatcherIndicesIndex(59),
/* const_eval_fn */ ConstEvalFunctionIndex(73),
},
{
- /* [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(17),
- /* return_matcher_indices */ MatcherIndicesIndex(165),
- /* const_eval_fn */ ConstEvalFunctionIndex(75),
- },
- {
- /* [540] */
- /* 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(165),
- /* const_eval_fn */ ConstEvalFunctionIndex(76),
- },
- {
/* [541] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
@@ -11303,8 +11327,8 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(17),
- /* return_matcher_indices */ MatcherIndicesIndex(165),
- /* const_eval_fn */ ConstEvalFunctionIndex(77),
+ /* return_matcher_indices */ MatcherIndicesIndex(169),
+ /* const_eval_fn */ ConstEvalFunctionIndex(75),
},
{
/* [542] */
@@ -11314,8 +11338,8 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(17),
- /* return_matcher_indices */ MatcherIndicesIndex(167),
- /* const_eval_fn */ ConstEvalFunctionIndex(78),
+ /* return_matcher_indices */ MatcherIndicesIndex(169),
+ /* const_eval_fn */ ConstEvalFunctionIndex(76),
},
{
/* [543] */
@@ -11325,8 +11349,8 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(17),
- /* return_matcher_indices */ MatcherIndicesIndex(167),
- /* const_eval_fn */ ConstEvalFunctionIndex(79),
+ /* return_matcher_indices */ MatcherIndicesIndex(169),
+ /* const_eval_fn */ ConstEvalFunctionIndex(77),
},
{
/* [544] */
@@ -11336,8 +11360,8 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(17),
- /* return_matcher_indices */ MatcherIndicesIndex(169),
- /* const_eval_fn */ ConstEvalFunctionIndex(80),
+ /* return_matcher_indices */ MatcherIndicesIndex(171),
+ /* const_eval_fn */ ConstEvalFunctionIndex(78),
},
{
/* [545] */
@@ -11348,56 +11372,56 @@
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(17),
/* return_matcher_indices */ MatcherIndicesIndex(171),
- /* const_eval_fn */ ConstEvalFunctionIndex(81),
+ /* const_eval_fn */ ConstEvalFunctionIndex(79),
},
{
/* [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(17),
+ /* return_matcher_indices */ MatcherIndicesIndex(173),
+ /* const_eval_fn */ ConstEvalFunctionIndex(80),
+ },
+ {
+ /* [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(17),
+ /* return_matcher_indices */ MatcherIndicesIndex(175),
+ /* const_eval_fn */ ConstEvalFunctionIndex(81),
+ },
+ {
+ /* [548] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(73),
- /* parameters */ ParameterIndex(386),
- /* return_matcher_indices */ MatcherIndicesIndex(13),
- /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
- },
- {
- /* [547] */
- /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline),
- /* num_parameters */ 1,
- /* num_explicit_templates */ 0,
- /* num_templates */ 1,
- /* templates */ TemplateIndex(19),
- /* parameters */ ParameterIndex(391),
- /* return_matcher_indices */ MatcherIndicesIndex(191),
- /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
- },
- {
- /* [548] */
- /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
- /* num_parameters */ 1,
- /* num_explicit_templates */ 0,
- /* num_templates */ 2,
- /* templates */ TemplateIndex(81),
- /* parameters */ ParameterIndex(0),
+ /* parameters */ ParameterIndex(390),
/* return_matcher_indices */ MatcherIndicesIndex(13),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
/* [549] */
- /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
- /* num_parameters */ 2,
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline),
+ /* num_parameters */ 1,
/* num_explicit_templates */ 0,
- /* num_templates */ 2,
- /* templates */ TemplateIndex(81),
- /* parameters */ ParameterIndex(0),
- /* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
+ /* num_templates */ 1,
+ /* templates */ TemplateIndex(19),
+ /* parameters */ ParameterIndex(395),
+ /* return_matcher_indices */ MatcherIndicesIndex(195),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
/* [550] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
- /* num_parameters */ 2,
+ /* num_parameters */ 1,
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(81),
@@ -11408,34 +11432,34 @@
{
/* [551] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
+ /* num_parameters */ 2,
+ /* num_explicit_templates */ 0,
+ /* num_templates */ 2,
+ /* templates */ TemplateIndex(81),
+ /* parameters */ ParameterIndex(0),
+ /* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+ },
+ {
+ /* [552] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
+ /* num_parameters */ 2,
+ /* num_explicit_templates */ 0,
+ /* num_templates */ 2,
+ /* templates */ TemplateIndex(81),
+ /* parameters */ ParameterIndex(0),
+ /* return_matcher_indices */ MatcherIndicesIndex(13),
+ /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+ },
+ {
+ /* [553] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* num_parameters */ 3,
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(81),
/* parameters */ ParameterIndex(0),
- /* return_matcher_indices */ MatcherIndicesIndex(217),
- /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
- },
- {
- /* [552] */
- /* 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(171),
- /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
- },
- {
- /* [553] */
- /* 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(40),
+ /* return_matcher_indices */ MatcherIndicesIndex(221),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -11446,22 +11470,33 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(152),
- /* return_matcher_indices */ MatcherIndicesIndex(40),
+ /* return_matcher_indices */ MatcherIndicesIndex(175),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
/* [555] */
- /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 4,
- /* num_explicit_templates */ 1,
- /* num_templates */ 6,
- /* templates */ TemplateIndex(0),
- /* parameters */ ParameterIndex(210),
- /* return_matcher_indices */ MatcherIndicesIndex(13),
+ /* 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(46),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
/* [556] */
+ /* 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(46),
+ /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+ },
+ {
+ /* [557] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline),
/* num_parameters */ 5,
/* num_explicit_templates */ 0,
@@ -11472,18 +11507,18 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [557] */
+ /* [558] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
/* num_explicit_templates */ 0,
/* num_templates */ 4,
/* templates */ TemplateIndex(47),
- /* parameters */ ParameterIndex(348),
- /* return_matcher_indices */ MatcherIndicesIndex(34),
+ /* parameters */ ParameterIndex(352),
+ /* return_matcher_indices */ MatcherIndicesIndex(40),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [558] */
+ /* [559] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* num_parameters */ 1,
/* num_explicit_templates */ 0,
@@ -11494,37 +11529,26 @@
/* const_eval_fn */ ConstEvalFunctionIndex(82),
},
{
- /* [559] */
- /* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 1,
- /* num_explicit_templates */ 0,
- /* num_templates */ 3,
- /* templates */ TemplateIndex(72),
- /* parameters */ ParameterIndex(392),
- /* return_matcher_indices */ MatcherIndicesIndex(65),
- /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
- },
- {
/* [560] */
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_explicit_templates */ 0,
/* num_templates */ 3,
/* templates */ TemplateIndex(72),
- /* parameters */ ParameterIndex(393),
- /* return_matcher_indices */ MatcherIndicesIndex(69),
+ /* parameters */ ParameterIndex(396),
+ /* return_matcher_indices */ MatcherIndicesIndex(71),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
/* [561] */
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
- /* num_parameters */ 2,
+ /* num_parameters */ 1,
/* num_explicit_templates */ 0,
- /* num_templates */ 0,
- /* templates */ TemplateIndex(/* invalid */),
- /* parameters */ ParameterIndex(233),
- /* return_matcher_indices */ MatcherIndicesIndex(40),
- /* const_eval_fn */ ConstEvalFunctionIndex(97),
+ /* num_templates */ 3,
+ /* templates */ TemplateIndex(72),
+ /* parameters */ ParameterIndex(397),
+ /* return_matcher_indices */ MatcherIndicesIndex(75),
+ /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
/* [562] */
@@ -11533,8 +11557,19 @@
/* num_explicit_templates */ 0,
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
- /* parameters */ ParameterIndex(233),
- /* return_matcher_indices */ MatcherIndicesIndex(40),
+ /* parameters */ ParameterIndex(237),
+ /* return_matcher_indices */ MatcherIndicesIndex(46),
+ /* const_eval_fn */ ConstEvalFunctionIndex(97),
+ },
+ {
+ /* [563] */
+ /* 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(237),
+ /* return_matcher_indices */ MatcherIndicesIndex(46),
/* const_eval_fn */ ConstEvalFunctionIndex(98),
},
};
@@ -11688,7 +11723,7 @@
/* [19] */
/* fn cross[T : fa_f32_f16](vec3<T>, vec3<T>) -> vec3<T> */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(519),
+ /* overloads */ OverloadIndex(521),
},
{
/* [20] */
@@ -11701,7 +11736,7 @@
/* [21] */
/* fn determinant[N : num, T : fa_f32_f16](mat<N, N, T>) -> T */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(520),
+ /* overloads */ OverloadIndex(522),
},
{
/* [22] */
@@ -11714,19 +11749,19 @@
/* [23] */
/* fn dot[N : num, T : fia_fiu32_f16](vec<N, T>, vec<N, T>) -> T */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(521),
+ /* overloads */ OverloadIndex(523),
},
{
/* [24] */
/* fn dot4I8Packed(u32, u32) -> i32 */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(522),
+ /* overloads */ OverloadIndex(524),
},
{
/* [25] */
/* fn dot4U8Packed(u32, u32) -> u32 */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(523),
+ /* overloads */ OverloadIndex(525),
},
{
/* [26] */
@@ -11795,7 +11830,7 @@
/* [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(524),
+ /* overloads */ OverloadIndex(526),
},
{
/* [36] */
@@ -11935,61 +11970,61 @@
/* [55] */
/* fn normalize[N : num, T : fa_f32_f16](vec<N, T>) -> vec<N, T> */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(525),
+ /* overloads */ OverloadIndex(527),
},
{
/* [56] */
/* fn pack2x16float(vec2<f32>) -> u32 */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(526),
+ /* overloads */ OverloadIndex(528),
},
{
/* [57] */
/* fn pack2x16snorm(vec2<f32>) -> u32 */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(527),
+ /* overloads */ OverloadIndex(529),
},
{
/* [58] */
/* fn pack2x16unorm(vec2<f32>) -> u32 */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(528),
+ /* overloads */ OverloadIndex(530),
},
{
/* [59] */
/* fn pack4x8snorm(vec4<f32>) -> u32 */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(529),
+ /* overloads */ OverloadIndex(531),
},
{
/* [60] */
/* fn pack4x8unorm(vec4<f32>) -> u32 */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(530),
+ /* overloads */ OverloadIndex(532),
},
{
/* [61] */
/* fn pack4xI8(vec4<i32>) -> u32 */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(531),
+ /* overloads */ OverloadIndex(533),
},
{
/* [62] */
/* fn pack4xU8(vec4<u32>) -> u32 */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(532),
+ /* overloads */ OverloadIndex(534),
},
{
/* [63] */
/* fn pack4xI8Clamp(vec4<i32>) -> u32 */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(533),
+ /* overloads */ OverloadIndex(535),
},
{
/* [64] */
/* fn pack4xU8Clamp(vec4<u32>) -> u32 */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(534),
+ /* overloads */ OverloadIndex(536),
},
{
/* [65] */
@@ -12016,13 +12051,13 @@
/* [68] */
/* fn reflect[N : num, T : fa_f32_f16](vec<N, T>, vec<N, T>) -> vec<N, T> */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(535),
+ /* overloads */ OverloadIndex(537),
},
{
/* [69] */
/* fn refract[N : num, T : fa_f32_f16](vec<N, T>, vec<N, T>, T) -> vec<N, T> */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(536),
+ /* overloads */ OverloadIndex(538),
},
{
/* [70] */
@@ -12099,7 +12134,7 @@
/* [80] */
/* fn storageBarrier() */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(537),
+ /* overloads */ OverloadIndex(539),
},
{
/* [81] */
@@ -12119,7 +12154,7 @@
/* [83] */
/* fn transpose[M : num, N : num, T : fa_f32_f16](mat<M, N, T>) -> mat<N, M, T> */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(538),
+ /* overloads */ OverloadIndex(540),
},
{
/* [84] */
@@ -12132,61 +12167,61 @@
/* [85] */
/* fn unpack2x16float(u32) -> vec2<f32> */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(539),
+ /* overloads */ OverloadIndex(541),
},
{
/* [86] */
/* fn unpack2x16snorm(u32) -> vec2<f32> */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(540),
+ /* overloads */ OverloadIndex(542),
},
{
/* [87] */
/* fn unpack2x16unorm(u32) -> vec2<f32> */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(541),
+ /* overloads */ OverloadIndex(543),
},
{
/* [88] */
/* fn unpack4x8snorm(u32) -> vec4<f32> */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(542),
+ /* overloads */ OverloadIndex(544),
},
{
/* [89] */
/* fn unpack4x8unorm(u32) -> vec4<f32> */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(543),
+ /* overloads */ OverloadIndex(545),
},
{
/* [90] */
/* fn unpack4xI8(u32) -> vec4<i32> */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(544),
+ /* overloads */ OverloadIndex(546),
},
{
/* [91] */
/* fn unpack4xU8(u32) -> vec4<u32> */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(545),
+ /* overloads */ OverloadIndex(547),
},
{
/* [92] */
/* fn workgroupBarrier() */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(537),
+ /* overloads */ OverloadIndex(539),
},
{
/* [93] */
/* fn workgroupUniformLoad[T](ptr<workgroup, T, read_write>) -> T */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(546),
+ /* overloads */ OverloadIndex(548),
},
{
/* [94] */
/* fn textureBarrier() */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(537),
+ /* overloads */ OverloadIndex(539),
},
{
/* [95] */
@@ -12438,85 +12473,85 @@
/* [110] */
/* fn inputAttachmentLoad[T : fiu32](input_attachment: input_attachment<T>) -> vec4<T> */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(547),
+ /* overloads */ OverloadIndex(549),
},
{
/* [111] */
/* fn atomicLoad[T : iu32, S : workgroup_or_storage](ptr<S, atomic<T>, read_write>) -> T */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(548),
+ /* overloads */ OverloadIndex(550),
},
{
/* [112] */
/* fn atomicStore[T : iu32, S : workgroup_or_storage](ptr<S, atomic<T>, read_write>, T) */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(549),
+ /* overloads */ OverloadIndex(551),
},
{
/* [113] */
/* fn atomicAdd[T : iu32, S : workgroup_or_storage](ptr<S, atomic<T>, read_write>, T) -> T */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(550),
+ /* overloads */ OverloadIndex(552),
},
{
/* [114] */
/* fn atomicSub[T : iu32, S : workgroup_or_storage](ptr<S, atomic<T>, read_write>, T) -> T */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(550),
+ /* overloads */ OverloadIndex(552),
},
{
/* [115] */
/* fn atomicMax[T : iu32, S : workgroup_or_storage](ptr<S, atomic<T>, read_write>, T) -> T */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(550),
+ /* overloads */ OverloadIndex(552),
},
{
/* [116] */
/* fn atomicMin[T : iu32, S : workgroup_or_storage](ptr<S, atomic<T>, read_write>, T) -> T */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(550),
+ /* overloads */ OverloadIndex(552),
},
{
/* [117] */
/* fn atomicAnd[T : iu32, S : workgroup_or_storage](ptr<S, atomic<T>, read_write>, T) -> T */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(550),
+ /* overloads */ OverloadIndex(552),
},
{
/* [118] */
/* fn atomicOr[T : iu32, S : workgroup_or_storage](ptr<S, atomic<T>, read_write>, T) -> T */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(550),
+ /* overloads */ OverloadIndex(552),
},
{
/* [119] */
/* fn atomicXor[T : iu32, S : workgroup_or_storage](ptr<S, atomic<T>, read_write>, T) -> T */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(550),
+ /* overloads */ OverloadIndex(552),
},
{
/* [120] */
/* fn atomicExchange[T : iu32, S : workgroup_or_storage](ptr<S, atomic<T>, read_write>, T) -> T */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(550),
+ /* overloads */ OverloadIndex(552),
},
{
/* [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(551),
+ /* overloads */ OverloadIndex(553),
},
{
/* [122] */
/* fn subgroupBallot(bool) -> vec4<u32> */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(552),
+ /* overloads */ OverloadIndex(554),
},
{
/* [123] */
/* fn subgroupElect() -> bool */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(553),
+ /* overloads */ OverloadIndex(555),
},
{
/* [124] */
@@ -12641,13 +12676,13 @@
/* [141] */
/* fn subgroupAll(bool) -> bool */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(554),
+ /* overloads */ OverloadIndex(556),
},
{
/* [142] */
/* fn subgroupAny(bool) -> bool */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(554),
+ /* overloads */ OverloadIndex(556),
},
{
/* [143] */
@@ -12679,27 +12714,28 @@
},
{
/* [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, 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 */ 1,
- /* overloads */ OverloadIndex(555),
+ /* num overloads */ 2,
+ /* overloads */ OverloadIndex(495),
},
{
/* [148] */
/* 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 */ 1,
- /* overloads */ OverloadIndex(556),
+ /* overloads */ OverloadIndex(557),
},
{
/* [149] */
/* fn subgroupMatrixMultiply[S : subgroup_matrix_elements, C : num, R : num, K : num](subgroup_matrix<subgroup_matrix_kind_left, S, K, R>, subgroup_matrix<subgroup_matrix_kind_right, S, C, K>) -> subgroup_matrix<subgroup_matrix_kind_result, S, C, R> */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(557),
+ /* overloads */ OverloadIndex(558),
},
{
/* [150] */
/* fn __tint_materialize[T](T) -> T */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(558),
+ /* overloads */ OverloadIndex(559),
},
};
@@ -12708,34 +12744,34 @@
/* [0] */
/* op &[S : address_space, T, A : access](ref<S, T, A>) -> ptr<S, T, A> */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(559),
+ /* overloads */ OverloadIndex(560),
},
{
/* [1] */
/* op *[S : address_space, T, A : access](ptr<S, T, A>) -> ref<S, T, A> */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(560),
+ /* overloads */ OverloadIndex(561),
},
{
/* [2] */
/* op !(bool) -> bool */
/* op  -> vec<N, bool> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(495),
+ /* overloads */ OverloadIndex(497),
},
{
/* [3] */
/* op ~[T : ia_iu32](T) -> T */
/* op ~[T : ia_iu32, N : num](vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(497),
+ /* overloads */ OverloadIndex(499),
},
{
/* [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(499),
+ /* overloads */ OverloadIndex(501),
},
};
constexpr uint8_t kUnaryOperatorAnd = 0;
@@ -12802,7 +12838,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 */ 2,
- /* overloads */ OverloadIndex(501),
+ /* overloads */ OverloadIndex(503),
},
{
/* [6] */
@@ -12826,69 +12862,69 @@
/* [8] */
/* op &&(bool, bool) -> bool */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(561),
+ /* overloads */ OverloadIndex(562),
},
{
/* [9] */
/* op ||(bool, bool) -> bool */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(562),
+ /* overloads */ OverloadIndex(563),
},
{
/* [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(503),
+ /* overloads */ OverloadIndex(505),
},
{
/* [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(505),
+ /* overloads */ OverloadIndex(507),
},
{
/* [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(507),
+ /* overloads */ OverloadIndex(509),
},
{
/* [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(509),
+ /* overloads */ OverloadIndex(511),
},
{
/* [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(511),
+ /* overloads */ OverloadIndex(513),
},
{
/* [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(513),
+ /* overloads */ OverloadIndex(515),
},
{
/* [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(515),
+ /* overloads */ OverloadIndex(517),
},
{
/* [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(517),
+ /* overloads */ OverloadIndex(519),
},
};
constexpr uint8_t kBinaryOperatorPlus = 0;
diff --git a/src/tint/lang/wgsl/wgsl.def b/src/tint/lang/wgsl/wgsl.def
index fae6c4b..6e1a982 100644
--- a/src/tint/lang/wgsl/wgsl.def
+++ b/src/tint/lang/wgsl/wgsl.def
@@ -680,6 +680,7 @@
@must_use @stage("fragment", "compute") implicit(T: fiu32_f16) fn quadSwapDiagonal(e: T) -> T
@must_use @stage("fragment", "compute") implicit(N: num, T: fiu32_f16) fn quadSwapDiagonal(e: vec<N, T>) -> vec<N, T>
+@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, 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, u32) -> T
@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)
@must_use @stage("compute") implicit(S: subgroup_matrix_elements, C: num, R: num, K: num) fn subgroupMatrixMultiply(
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0cc7b0.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0cc7b0.wgsl
new file mode 100644
index 0000000..bf9be6f
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0cc7b0.wgsl
@@ -0,0 +1,59 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+// test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// flags: --hlsl-shader-model 62
+
+
+enable chromium_experimental_subgroup_matrix;
+
+enable f16;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
+
+struct SB_RW {
+ arg_0: array<f16>,
+};
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<left, f16, 8, 8>>(ptr<storage, runtime_array<f16>, read_write>, u32, @const bool, u32) -> subgroup_matrix<left, f16, 8, 8>
+fn subgroupMatrixLoad_0cc7b0() -> subgroup_matrix_left<f16, 8, 8>{
+ var res: subgroup_matrix_left<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<f16, 8, 8>>(&sb_rw.arg_0, 1u, true, 1u);
+ return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_0cc7b0(), false, 64);
+}
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
new file mode 100644
index 0000000..3cd8b8c
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0cc7b0.wgsl.expected.dxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: FAILED
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0cc7b0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0cc7b0.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..48f5b71
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0cc7b0.wgsl.expected.fxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: INVALID
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0cc7b0.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0cc7b0.wgsl.expected.glsl
new file mode 100644
index 0000000..cc19bf0
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0cc7b0.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the GLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0cc7b0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0cc7b0.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..dda740a
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0cc7b0.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0cc7b0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0cc7b0.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..4709805
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0cc7b0.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0cc7b0.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0cc7b0.wgsl.expected.msl
new file mode 100644
index 0000000..b2bb410
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0cc7b0.wgsl.expected.msl
@@ -0,0 +1,35 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+ const constant T& operator[](size_t i) const constant { return elements[i]; }
+ device T& operator[](size_t i) device { return elements[i]; }
+ const device T& operator[](size_t i) const device { return elements[i]; }
+ thread T& operator[](size_t i) thread { return elements[i]; }
+ const thread T& operator[](size_t i) const thread { return elements[i]; }
+ threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+ const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+ T elements[N];
+};
+
+struct SB_RW {
+ /* 0x0000 */ tint_array<half, 1> arg_0;
+};
+
+struct tint_module_vars_struct {
+ device tint_array<half, 1024>* prevent_dce;
+ device SB_RW* sb_rw;
+};
+
+simdgroup_half8x8 subgroupMatrixLoad_0cc7b0(tint_module_vars_struct tint_module_vars) {
+ simdgroup_half8x8 v = make_filled_simdgroup_matrix<half, 8, 8>(0.0h);
+ simdgroup_load(v, (&(*tint_module_vars.sb_rw).arg_0[1u]), ulong(1u), ulong2(0ul), true);
+ simdgroup_half8x8 res = v;
+ return res;
+}
+
+kernel void compute_main(device tint_array<half, 1024>* prevent_dce [[buffer(0)]], device SB_RW* sb_rw [[buffer(1)]]) {
+ tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_rw=sb_rw};
+ simdgroup_store(subgroupMatrixLoad_0cc7b0(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0cc7b0.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0cc7b0.wgsl.expected.spvasm
new file mode 100644
index 0000000..556298c
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0cc7b0.wgsl.expected.spvasm
@@ -0,0 +1,77 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 38
+; Schema: 0
+ OpCapability Shader
+ OpCapability VulkanMemoryModel
+ OpCapability VulkanMemoryModelDeviceScope
+ OpCapability Float16
+ OpCapability UniformAndStorageBuffer16BitAccess
+ OpCapability StorageBuffer16BitAccess
+ OpCapability CooperativeMatrixKHR
+ OpExtension "SPV_KHR_vulkan_memory_model"
+ OpExtension "SPV_KHR_cooperative_matrix"
+ OpMemoryModel Logical Vulkan
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpMemberName %prevent_dce_block 0 "inner"
+ OpName %prevent_dce_block "prevent_dce_block"
+ OpMemberName %SB_RW 0 "arg_0"
+ OpName %SB_RW "SB_RW"
+ OpName %sb_rw "sb_rw"
+ OpName %subgroupMatrixLoad_0cc7b0 "subgroupMatrixLoad_0cc7b0"
+ OpName %res "res"
+ OpName %compute_main "compute_main"
+ OpDecorate %_arr_half_uint_1024 ArrayStride 2
+ OpMemberDecorate %prevent_dce_block 0 Offset 0
+ OpDecorate %prevent_dce_block Block
+ OpDecorate %1 DescriptorSet 0
+ OpDecorate %1 Binding 0
+ OpDecorate %_runtimearr_half ArrayStride 2
+ OpMemberDecorate %SB_RW 0 Offset 0
+ OpDecorate %SB_RW Block
+ OpDecorate %sb_rw DescriptorSet 0
+ OpDecorate %sb_rw Binding 1
+ %half = OpTypeFloat 16
+ %uint = OpTypeInt 32 0
+ %uint_1024 = OpConstant %uint 1024
+%_arr_half_uint_1024 = OpTypeArray %half %uint_1024
+%prevent_dce_block = OpTypeStruct %_arr_half_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+ %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_runtimearr_half = OpTypeRuntimeArray %half
+ %SB_RW = OpTypeStruct %_runtimearr_half
+%_ptr_StorageBuffer_SB_RW = OpTypePointer StorageBuffer %SB_RW
+ %sb_rw = OpVariable %_ptr_StorageBuffer_SB_RW StorageBuffer
+ %uint_3 = OpConstant %uint 3
+ %uint_8 = OpConstant %uint 8
+ %uint_0 = OpConstant %uint 0
+ %13 = OpTypeCooperativeMatrixKHR %half %uint_3 %uint_8 %uint_8 %uint_0
+ %17 = OpTypeFunction %13
+%_ptr_StorageBuffer__runtimearr_half = OpTypePointer StorageBuffer %_runtimearr_half
+%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half
+ %uint_1 = OpConstant %uint 1
+%_ptr_Function_13 = OpTypePointer Function %13
+ %void = OpTypeVoid
+ %30 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_half_uint_1024 = OpTypePointer StorageBuffer %_arr_half_uint_1024
+ %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_0cc7b0 = OpFunction %13 None %17
+ %18 = OpLabel
+ %res = OpVariable %_ptr_Function_13 Function
+ %19 = OpAccessChain %_ptr_StorageBuffer__runtimearr_half %sb_rw %uint_0
+ %21 = OpAccessChain %_ptr_StorageBuffer_half %19 %uint_1
+ %24 = OpCooperativeMatrixLoadKHR %13 %21 %uint_1 %uint_1 NonPrivatePointer
+ OpStore %res %24
+ %27 = OpLoad %13 %res None
+ OpReturnValue %27
+ OpFunctionEnd
+%compute_main = OpFunction %void None %30
+ %31 = OpLabel
+ %32 = OpFunctionCall %13 %subgroupMatrixLoad_0cc7b0
+ %33 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_1024 %1 %uint_0
+ %35 = OpAccessChain %_ptr_StorageBuffer_half %33 %uint_0
+ OpCooperativeMatrixStoreKHR %35 %32 %uint_0 %uint_64 NonPrivatePointer
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/0cc7b0.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0cc7b0.wgsl.expected.wgsl
new file mode 100644
index 0000000..e425d8a
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/0cc7b0.wgsl.expected.wgsl
@@ -0,0 +1,20 @@
+enable chromium_experimental_subgroup_matrix;
+enable f16;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
+
+struct SB_RW {
+ arg_0 : array<f16>,
+}
+
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixLoad_0cc7b0() -> subgroup_matrix_left<f16, 8, 8> {
+ var res : subgroup_matrix_left<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<f16, 8, 8>>(&(sb_rw.arg_0), 1u, true, 1u);
+ return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_0cc7b0(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/128bf4.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/128bf4.wgsl
new file mode 100644
index 0000000..c711b5e
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/128bf4.wgsl
@@ -0,0 +1,59 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+// test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// flags: --hlsl-shader-model 62
+
+
+enable chromium_experimental_subgroup_matrix;
+
+enable f16;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
+
+struct SB_RW {
+ arg_0: array<f16>,
+};
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<result, f16, 8, 8>>(ptr<storage, runtime_array<f16>, read_write>, u32, @const bool, u32) -> subgroup_matrix<result, f16, 8, 8>
+fn subgroupMatrixLoad_128bf4() -> subgroup_matrix_result<f16, 8, 8>{
+ var res: subgroup_matrix_result<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<f16, 8, 8>>(&sb_rw.arg_0, 1u, true, 1u);
+ return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_128bf4(), false, 64);
+}
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
new file mode 100644
index 0000000..3cd8b8c
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/128bf4.wgsl.expected.dxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: FAILED
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/128bf4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/128bf4.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..48f5b71
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/128bf4.wgsl.expected.fxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: INVALID
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/128bf4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/128bf4.wgsl.expected.glsl
new file mode 100644
index 0000000..cc19bf0
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/128bf4.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the GLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/128bf4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/128bf4.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..dda740a
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/128bf4.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/128bf4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/128bf4.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..4709805
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/128bf4.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/128bf4.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/128bf4.wgsl.expected.msl
new file mode 100644
index 0000000..0839aff
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/128bf4.wgsl.expected.msl
@@ -0,0 +1,35 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+ const constant T& operator[](size_t i) const constant { return elements[i]; }
+ device T& operator[](size_t i) device { return elements[i]; }
+ const device T& operator[](size_t i) const device { return elements[i]; }
+ thread T& operator[](size_t i) thread { return elements[i]; }
+ const thread T& operator[](size_t i) const thread { return elements[i]; }
+ threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+ const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+ T elements[N];
+};
+
+struct SB_RW {
+ /* 0x0000 */ tint_array<half, 1> arg_0;
+};
+
+struct tint_module_vars_struct {
+ device tint_array<half, 1024>* prevent_dce;
+ device SB_RW* sb_rw;
+};
+
+simdgroup_half8x8 subgroupMatrixLoad_128bf4(tint_module_vars_struct tint_module_vars) {
+ simdgroup_half8x8 v = make_filled_simdgroup_matrix<half, 8, 8>(0.0h);
+ simdgroup_load(v, (&(*tint_module_vars.sb_rw).arg_0[1u]), ulong(1u), ulong2(0ul), true);
+ simdgroup_half8x8 res = v;
+ return res;
+}
+
+kernel void compute_main(device tint_array<half, 1024>* prevent_dce [[buffer(0)]], device SB_RW* sb_rw [[buffer(1)]]) {
+ tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_rw=sb_rw};
+ simdgroup_store(subgroupMatrixLoad_128bf4(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/128bf4.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/128bf4.wgsl.expected.spvasm
new file mode 100644
index 0000000..5dd48bb
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/128bf4.wgsl.expected.spvasm
@@ -0,0 +1,78 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 39
+; Schema: 0
+ OpCapability Shader
+ OpCapability VulkanMemoryModel
+ OpCapability VulkanMemoryModelDeviceScope
+ OpCapability Float16
+ OpCapability UniformAndStorageBuffer16BitAccess
+ OpCapability StorageBuffer16BitAccess
+ OpCapability CooperativeMatrixKHR
+ OpExtension "SPV_KHR_vulkan_memory_model"
+ OpExtension "SPV_KHR_cooperative_matrix"
+ OpMemoryModel Logical Vulkan
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpMemberName %prevent_dce_block 0 "inner"
+ OpName %prevent_dce_block "prevent_dce_block"
+ OpMemberName %SB_RW 0 "arg_0"
+ OpName %SB_RW "SB_RW"
+ OpName %sb_rw "sb_rw"
+ OpName %subgroupMatrixLoad_128bf4 "subgroupMatrixLoad_128bf4"
+ OpName %res "res"
+ OpName %compute_main "compute_main"
+ OpDecorate %_arr_half_uint_1024 ArrayStride 2
+ OpMemberDecorate %prevent_dce_block 0 Offset 0
+ OpDecorate %prevent_dce_block Block
+ OpDecorate %1 DescriptorSet 0
+ OpDecorate %1 Binding 0
+ OpDecorate %_runtimearr_half ArrayStride 2
+ OpMemberDecorate %SB_RW 0 Offset 0
+ OpDecorate %SB_RW Block
+ OpDecorate %sb_rw DescriptorSet 0
+ OpDecorate %sb_rw Binding 1
+ %half = OpTypeFloat 16
+ %uint = OpTypeInt 32 0
+ %uint_1024 = OpConstant %uint 1024
+%_arr_half_uint_1024 = OpTypeArray %half %uint_1024
+%prevent_dce_block = OpTypeStruct %_arr_half_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+ %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_runtimearr_half = OpTypeRuntimeArray %half
+ %SB_RW = OpTypeStruct %_runtimearr_half
+%_ptr_StorageBuffer_SB_RW = OpTypePointer StorageBuffer %SB_RW
+ %sb_rw = OpVariable %_ptr_StorageBuffer_SB_RW StorageBuffer
+ %uint_3 = OpConstant %uint 3
+ %uint_8 = OpConstant %uint 8
+ %uint_2 = OpConstant %uint 2
+ %13 = OpTypeCooperativeMatrixKHR %half %uint_3 %uint_8 %uint_8 %uint_2
+ %17 = OpTypeFunction %13
+%_ptr_StorageBuffer__runtimearr_half = OpTypePointer StorageBuffer %_runtimearr_half
+ %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half
+ %uint_1 = OpConstant %uint 1
+%_ptr_Function_13 = OpTypePointer Function %13
+ %void = OpTypeVoid
+ %31 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_half_uint_1024 = OpTypePointer StorageBuffer %_arr_half_uint_1024
+ %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_128bf4 = OpFunction %13 None %17
+ %18 = OpLabel
+ %res = OpVariable %_ptr_Function_13 Function
+ %19 = OpAccessChain %_ptr_StorageBuffer__runtimearr_half %sb_rw %uint_0
+ %22 = OpAccessChain %_ptr_StorageBuffer_half %19 %uint_1
+ %25 = OpCooperativeMatrixLoadKHR %13 %22 %uint_1 %uint_1 NonPrivatePointer
+ OpStore %res %25
+ %28 = OpLoad %13 %res None
+ OpReturnValue %28
+ OpFunctionEnd
+%compute_main = OpFunction %void None %31
+ %32 = OpLabel
+ %33 = OpFunctionCall %13 %subgroupMatrixLoad_128bf4
+ %34 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_1024 %1 %uint_0
+ %36 = OpAccessChain %_ptr_StorageBuffer_half %34 %uint_0
+ OpCooperativeMatrixStoreKHR %36 %33 %uint_0 %uint_64 NonPrivatePointer
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/128bf4.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/128bf4.wgsl.expected.wgsl
new file mode 100644
index 0000000..3ab61aa
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/128bf4.wgsl.expected.wgsl
@@ -0,0 +1,20 @@
+enable chromium_experimental_subgroup_matrix;
+enable f16;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
+
+struct SB_RW {
+ arg_0 : array<f16>,
+}
+
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixLoad_128bf4() -> subgroup_matrix_result<f16, 8, 8> {
+ var res : subgroup_matrix_result<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<f16, 8, 8>>(&(sb_rw.arg_0), 1u, true, 1u);
+ return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_128bf4(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/12ca82.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/12ca82.wgsl
new file mode 100644
index 0000000..8698bf8
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/12ca82.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, u32, 8, 8>>(ptr<storage, runtime_array<u32>, read_write>, u32, @const bool, u32) -> subgroup_matrix<result, u32, 8, 8>
+fn subgroupMatrixLoad_12ca82() -> subgroup_matrix_result<u32, 8, 8>{
+ var res: subgroup_matrix_result<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<u32, 8, 8>>(&sb_rw.arg_0, 1u, true, 1u);
+ return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_12ca82(), false, 64);
+}
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
new file mode 100644
index 0000000..3cd8b8c
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/12ca82.wgsl.expected.dxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: FAILED
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/12ca82.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/12ca82.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..48f5b71
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/12ca82.wgsl.expected.fxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: INVALID
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/12ca82.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/12ca82.wgsl.expected.glsl
new file mode 100644
index 0000000..cc19bf0
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/12ca82.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the GLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/12ca82.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/12ca82.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..dda740a
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/12ca82.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/12ca82.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/12ca82.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..4709805
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/12ca82.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/12ca82.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/12ca82.wgsl.expected.msl
new file mode 100644
index 0000000..5dba48c
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/12ca82.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: non-float subgroup matrices are not supported by the MSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/12ca82.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/12ca82.wgsl.expected.spvasm
new file mode 100644
index 0000000..455d5eb
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/12ca82.wgsl.expected.spvasm
@@ -0,0 +1,74 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 38
+; Schema: 0
+ OpCapability Shader
+ OpCapability VulkanMemoryModel
+ OpCapability VulkanMemoryModelDeviceScope
+ OpCapability CooperativeMatrixKHR
+ OpExtension "SPV_KHR_vulkan_memory_model"
+ OpExtension "SPV_KHR_cooperative_matrix"
+ OpMemoryModel Logical Vulkan
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpMemberName %prevent_dce_block 0 "inner"
+ OpName %prevent_dce_block "prevent_dce_block"
+ OpMemberName %SB_RW 0 "arg_0"
+ OpName %SB_RW "SB_RW"
+ OpName %sb_rw "sb_rw"
+ OpName %subgroupMatrixLoad_12ca82 "subgroupMatrixLoad_12ca82"
+ OpName %res "res"
+ OpName %compute_main "compute_main"
+ OpDecorate %_arr_uint_uint_1024 ArrayStride 4
+ OpMemberDecorate %prevent_dce_block 0 Offset 0
+ OpDecorate %prevent_dce_block Block
+ OpDecorate %1 DescriptorSet 0
+ OpDecorate %1 Binding 0
+ OpDecorate %_runtimearr_uint ArrayStride 4
+ OpMemberDecorate %SB_RW 0 Offset 0
+ OpDecorate %SB_RW Block
+ OpDecorate %sb_rw DescriptorSet 0
+ OpDecorate %sb_rw Binding 1
+ %uint = OpTypeInt 32 0
+ %uint_1024 = OpConstant %uint 1024
+%_arr_uint_uint_1024 = OpTypeArray %uint %uint_1024
+%prevent_dce_block = OpTypeStruct %_arr_uint_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+ %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_runtimearr_uint = OpTypeRuntimeArray %uint
+ %SB_RW = OpTypeStruct %_runtimearr_uint
+%_ptr_StorageBuffer_SB_RW = OpTypePointer StorageBuffer %SB_RW
+ %sb_rw = OpVariable %_ptr_StorageBuffer_SB_RW StorageBuffer
+ %uint_3 = OpConstant %uint 3
+ %uint_8 = OpConstant %uint 8
+ %uint_2 = OpConstant %uint 2
+ %12 = OpTypeCooperativeMatrixKHR %uint %uint_3 %uint_8 %uint_8 %uint_2
+ %16 = OpTypeFunction %12
+%_ptr_StorageBuffer__runtimearr_uint = OpTypePointer StorageBuffer %_runtimearr_uint
+ %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
+ %uint_1 = OpConstant %uint 1
+%_ptr_Function_12 = OpTypePointer Function %12
+ %void = OpTypeVoid
+ %30 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_uint_uint_1024 = OpTypePointer StorageBuffer %_arr_uint_uint_1024
+ %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_12ca82 = OpFunction %12 None %16
+ %17 = OpLabel
+ %res = OpVariable %_ptr_Function_12 Function
+ %18 = OpAccessChain %_ptr_StorageBuffer__runtimearr_uint %sb_rw %uint_0
+ %21 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_1
+ %24 = OpCooperativeMatrixLoadKHR %12 %21 %uint_1 %uint_1 NonPrivatePointer
+ OpStore %res %24
+ %27 = OpLoad %12 %res None
+ OpReturnValue %27
+ OpFunctionEnd
+%compute_main = OpFunction %void None %30
+ %31 = OpLabel
+ %32 = OpFunctionCall %12 %subgroupMatrixLoad_12ca82
+ %33 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_1024 %1 %uint_0
+ %35 = OpAccessChain %_ptr_StorageBuffer_uint %33 %uint_0
+ OpCooperativeMatrixStoreKHR %35 %32 %uint_0 %uint_64 NonPrivatePointer
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/12ca82.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/12ca82.wgsl.expected.wgsl
new file mode 100644
index 0000000..dadc0f8
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/12ca82.wgsl.expected.wgsl
@@ -0,0 +1,19 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
+
+struct SB_RW {
+ arg_0 : array<u32>,
+}
+
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixLoad_12ca82() -> subgroup_matrix_result<u32, 8, 8> {
+ var res : subgroup_matrix_result<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<u32, 8, 8>>(&(sb_rw.arg_0), 1u, true, 1u);
+ return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_12ca82(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/15689c.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/15689c.wgsl
new file mode 100644
index 0000000..d30fdbc
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/15689c.wgsl
@@ -0,0 +1,57 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+// test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
+
+struct SB_RW {
+ arg_0: array<f32>,
+};
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<right, f32, 8, 8>>(ptr<storage, runtime_array<f32>, read_write>, u32, @const bool, u32) -> subgroup_matrix<right, f32, 8, 8>
+fn subgroupMatrixLoad_15689c() -> subgroup_matrix_right<f32, 8, 8>{
+ var res: subgroup_matrix_right<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<f32, 8, 8>>(&sb_rw.arg_0, 1u, true, 1u);
+ return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_15689c(), false, 64);
+}
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
new file mode 100644
index 0000000..3cd8b8c
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/15689c.wgsl.expected.dxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: FAILED
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/15689c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/15689c.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..48f5b71
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/15689c.wgsl.expected.fxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: INVALID
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/15689c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/15689c.wgsl.expected.glsl
new file mode 100644
index 0000000..cc19bf0
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/15689c.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the GLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/15689c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/15689c.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..dda740a
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/15689c.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/15689c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/15689c.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..4709805
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/15689c.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/15689c.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/15689c.wgsl.expected.msl
new file mode 100644
index 0000000..9b6009f
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/15689c.wgsl.expected.msl
@@ -0,0 +1,35 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+ const constant T& operator[](size_t i) const constant { return elements[i]; }
+ device T& operator[](size_t i) device { return elements[i]; }
+ const device T& operator[](size_t i) const device { return elements[i]; }
+ thread T& operator[](size_t i) thread { return elements[i]; }
+ const thread T& operator[](size_t i) const thread { return elements[i]; }
+ threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+ const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+ T elements[N];
+};
+
+struct SB_RW {
+ /* 0x0000 */ tint_array<float, 1> arg_0;
+};
+
+struct tint_module_vars_struct {
+ device tint_array<float, 1024>* prevent_dce;
+ device SB_RW* sb_rw;
+};
+
+simdgroup_float8x8 subgroupMatrixLoad_15689c(tint_module_vars_struct tint_module_vars) {
+ simdgroup_float8x8 v = make_filled_simdgroup_matrix<float, 8, 8>(0.0f);
+ simdgroup_load(v, (&(*tint_module_vars.sb_rw).arg_0[1u]), ulong(1u), ulong2(0ul), true);
+ simdgroup_float8x8 res = v;
+ return res;
+}
+
+kernel void compute_main(device tint_array<float, 1024>* prevent_dce [[buffer(0)]], device SB_RW* sb_rw [[buffer(1)]]) {
+ tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_rw=sb_rw};
+ simdgroup_store(subgroupMatrixLoad_15689c(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/15689c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/15689c.wgsl.expected.spvasm
new file mode 100644
index 0000000..ccd85c1
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/15689c.wgsl.expected.spvasm
@@ -0,0 +1,74 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 38
+; Schema: 0
+ OpCapability Shader
+ OpCapability VulkanMemoryModel
+ OpCapability VulkanMemoryModelDeviceScope
+ OpCapability CooperativeMatrixKHR
+ OpExtension "SPV_KHR_vulkan_memory_model"
+ OpExtension "SPV_KHR_cooperative_matrix"
+ OpMemoryModel Logical Vulkan
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpMemberName %prevent_dce_block 0 "inner"
+ OpName %prevent_dce_block "prevent_dce_block"
+ OpMemberName %SB_RW 0 "arg_0"
+ OpName %SB_RW "SB_RW"
+ OpName %sb_rw "sb_rw"
+ OpName %subgroupMatrixLoad_15689c "subgroupMatrixLoad_15689c"
+ OpName %res "res"
+ OpName %compute_main "compute_main"
+ OpDecorate %_arr_float_uint_1024 ArrayStride 4
+ OpMemberDecorate %prevent_dce_block 0 Offset 0
+ OpDecorate %prevent_dce_block Block
+ OpDecorate %1 DescriptorSet 0
+ OpDecorate %1 Binding 0
+ OpDecorate %_runtimearr_float ArrayStride 4
+ OpMemberDecorate %SB_RW 0 Offset 0
+ OpDecorate %SB_RW Block
+ OpDecorate %sb_rw DescriptorSet 0
+ OpDecorate %sb_rw Binding 1
+ %float = OpTypeFloat 32
+ %uint = OpTypeInt 32 0
+ %uint_1024 = OpConstant %uint 1024
+%_arr_float_uint_1024 = OpTypeArray %float %uint_1024
+%prevent_dce_block = OpTypeStruct %_arr_float_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+ %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_runtimearr_float = OpTypeRuntimeArray %float
+ %SB_RW = OpTypeStruct %_runtimearr_float
+%_ptr_StorageBuffer_SB_RW = OpTypePointer StorageBuffer %SB_RW
+ %sb_rw = OpVariable %_ptr_StorageBuffer_SB_RW StorageBuffer
+ %uint_3 = OpConstant %uint 3
+ %uint_8 = OpConstant %uint 8
+ %uint_1 = OpConstant %uint 1
+ %13 = OpTypeCooperativeMatrixKHR %float %uint_3 %uint_8 %uint_8 %uint_1
+ %17 = OpTypeFunction %13
+%_ptr_StorageBuffer__runtimearr_float = OpTypePointer StorageBuffer %_runtimearr_float
+ %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
+%_ptr_Function_13 = OpTypePointer Function %13
+ %void = OpTypeVoid
+ %30 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_float_uint_1024 = OpTypePointer StorageBuffer %_arr_float_uint_1024
+ %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_15689c = OpFunction %13 None %17
+ %18 = OpLabel
+ %res = OpVariable %_ptr_Function_13 Function
+ %19 = OpAccessChain %_ptr_StorageBuffer__runtimearr_float %sb_rw %uint_0
+ %22 = OpAccessChain %_ptr_StorageBuffer_float %19 %uint_1
+ %24 = OpCooperativeMatrixLoadKHR %13 %22 %uint_1 %uint_1 NonPrivatePointer
+ OpStore %res %24
+ %27 = OpLoad %13 %res None
+ OpReturnValue %27
+ OpFunctionEnd
+%compute_main = OpFunction %void None %30
+ %31 = OpLabel
+ %32 = OpFunctionCall %13 %subgroupMatrixLoad_15689c
+ %33 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_1024 %1 %uint_0
+ %35 = OpAccessChain %_ptr_StorageBuffer_float %33 %uint_0
+ OpCooperativeMatrixStoreKHR %35 %32 %uint_0 %uint_64 NonPrivatePointer
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/15689c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/15689c.wgsl.expected.wgsl
new file mode 100644
index 0000000..d16c98a
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/15689c.wgsl.expected.wgsl
@@ -0,0 +1,19 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
+
+struct SB_RW {
+ arg_0 : array<f32>,
+}
+
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixLoad_15689c() -> subgroup_matrix_right<f32, 8, 8> {
+ var res : subgroup_matrix_right<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<f32, 8, 8>>(&(sb_rw.arg_0), 1u, true, 1u);
+ return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_15689c(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/21f2c7.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/21f2c7.wgsl
new file mode 100644
index 0000000..45179e5
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/21f2c7.wgsl
@@ -0,0 +1,59 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+// test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// flags: --hlsl-shader-model 62
+
+
+enable chromium_experimental_subgroup_matrix;
+
+enable f16;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
+
+struct SB_RO {
+ arg_0: array<f16>,
+};
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<result, f16, 8, 8>>(ptr<storage, runtime_array<f16>, read>, u32, @const bool, u32) -> subgroup_matrix<result, f16, 8, 8>
+fn subgroupMatrixLoad_21f2c7() -> subgroup_matrix_result<f16, 8, 8>{
+ var res: subgroup_matrix_result<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<f16, 8, 8>>(&sb_ro.arg_0, 1u, true, 1u);
+ return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_21f2c7(), false, 64);
+}
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
new file mode 100644
index 0000000..3cd8b8c
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/21f2c7.wgsl.expected.dxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: FAILED
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/21f2c7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/21f2c7.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..48f5b71
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/21f2c7.wgsl.expected.fxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: INVALID
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/21f2c7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/21f2c7.wgsl.expected.glsl
new file mode 100644
index 0000000..cc19bf0
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/21f2c7.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the GLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/21f2c7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/21f2c7.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..dda740a
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/21f2c7.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/21f2c7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/21f2c7.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..4709805
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/21f2c7.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/21f2c7.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/21f2c7.wgsl.expected.msl
new file mode 100644
index 0000000..f80d9d4
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/21f2c7.wgsl.expected.msl
@@ -0,0 +1,35 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+ const constant T& operator[](size_t i) const constant { return elements[i]; }
+ device T& operator[](size_t i) device { return elements[i]; }
+ const device T& operator[](size_t i) const device { return elements[i]; }
+ thread T& operator[](size_t i) thread { return elements[i]; }
+ const thread T& operator[](size_t i) const thread { return elements[i]; }
+ threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+ const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+ T elements[N];
+};
+
+struct SB_RO {
+ /* 0x0000 */ tint_array<half, 1> arg_0;
+};
+
+struct tint_module_vars_struct {
+ device tint_array<half, 1024>* prevent_dce;
+ const device SB_RO* sb_ro;
+};
+
+simdgroup_half8x8 subgroupMatrixLoad_21f2c7(tint_module_vars_struct tint_module_vars) {
+ simdgroup_half8x8 v = make_filled_simdgroup_matrix<half, 8, 8>(0.0h);
+ simdgroup_load(v, (&(*tint_module_vars.sb_ro).arg_0[1u]), ulong(1u), ulong2(0ul), true);
+ simdgroup_half8x8 res = v;
+ return res;
+}
+
+kernel void compute_main(device tint_array<half, 1024>* prevent_dce [[buffer(0)]], const device SB_RO* sb_ro [[buffer(1)]]) {
+ tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_ro=sb_ro};
+ simdgroup_store(subgroupMatrixLoad_21f2c7(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/21f2c7.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/21f2c7.wgsl.expected.spvasm
new file mode 100644
index 0000000..5eb0d00
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/21f2c7.wgsl.expected.spvasm
@@ -0,0 +1,80 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 40
+; Schema: 0
+ OpCapability Shader
+ OpCapability VulkanMemoryModel
+ OpCapability VulkanMemoryModelDeviceScope
+ OpCapability Float16
+ OpCapability UniformAndStorageBuffer16BitAccess
+ OpCapability StorageBuffer16BitAccess
+ OpCapability CooperativeMatrixKHR
+ OpExtension "SPV_KHR_vulkan_memory_model"
+ OpExtension "SPV_KHR_cooperative_matrix"
+ OpMemoryModel Logical Vulkan
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpMemberName %prevent_dce_block 0 "inner"
+ OpName %prevent_dce_block "prevent_dce_block"
+ OpMemberName %SB_RO 0 "arg_0"
+ OpName %SB_RO "SB_RO"
+ OpName %sb_ro "sb_ro"
+ OpName %subgroupMatrixLoad_21f2c7 "subgroupMatrixLoad_21f2c7"
+ OpName %res "res"
+ OpName %compute_main "compute_main"
+ OpDecorate %_arr_half_uint_1024 ArrayStride 2
+ OpMemberDecorate %prevent_dce_block 0 Offset 0
+ OpDecorate %prevent_dce_block Block
+ OpDecorate %1 DescriptorSet 0
+ OpDecorate %1 Binding 0
+ OpDecorate %_runtimearr_half ArrayStride 2
+ OpMemberDecorate %SB_RO 0 Offset 0
+ OpDecorate %SB_RO Block
+ OpDecorate %sb_ro DescriptorSet 0
+ OpDecorate %sb_ro Binding 1
+ OpDecorate %sb_ro NonWritable
+ %half = OpTypeFloat 16
+ %uint = OpTypeInt 32 0
+ %uint_1024 = OpConstant %uint 1024
+%_arr_half_uint_1024 = OpTypeArray %half %uint_1024
+%prevent_dce_block = OpTypeStruct %_arr_half_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+ %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_runtimearr_half = OpTypeRuntimeArray %half
+ %SB_RO = OpTypeStruct %_runtimearr_half
+%_ptr_StorageBuffer_SB_RO = OpTypePointer StorageBuffer %SB_RO
+ %sb_ro = OpVariable %_ptr_StorageBuffer_SB_RO StorageBuffer
+ %uint_3 = OpConstant %uint 3
+ %uint_8 = OpConstant %uint 8
+ %uint_2 = OpConstant %uint 2
+ %13 = OpTypeCooperativeMatrixKHR %half %uint_3 %uint_8 %uint_8 %uint_2
+ %17 = OpTypeFunction %13
+%_ptr_StorageBuffer__runtimearr_half = OpTypePointer StorageBuffer %_runtimearr_half
+ %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half
+ %uint_1 = OpConstant %uint 1
+%_ptr_Function_13 = OpTypePointer Function %13
+ %void = OpTypeVoid
+ %31 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_half_uint_1024 = OpTypePointer StorageBuffer %_arr_half_uint_1024
+%_ptr_StorageBuffer_half_0 = OpTypePointer StorageBuffer %half
+ %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_21f2c7 = OpFunction %13 None %17
+ %18 = OpLabel
+ %res = OpVariable %_ptr_Function_13 Function
+ %19 = OpAccessChain %_ptr_StorageBuffer__runtimearr_half %sb_ro %uint_0
+ %22 = OpAccessChain %_ptr_StorageBuffer_half %19 %uint_1
+ %25 = OpCooperativeMatrixLoadKHR %13 %22 %uint_1 %uint_1 NonPrivatePointer
+ OpStore %res %25
+ %28 = OpLoad %13 %res None
+ OpReturnValue %28
+ OpFunctionEnd
+%compute_main = OpFunction %void None %31
+ %32 = OpLabel
+ %33 = OpFunctionCall %13 %subgroupMatrixLoad_21f2c7
+ %34 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_1024 %1 %uint_0
+ %36 = OpAccessChain %_ptr_StorageBuffer_half_0 %34 %uint_0
+ OpCooperativeMatrixStoreKHR %36 %33 %uint_0 %uint_64 NonPrivatePointer
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/21f2c7.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/21f2c7.wgsl.expected.wgsl
new file mode 100644
index 0000000..5650b8a
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/21f2c7.wgsl.expected.wgsl
@@ -0,0 +1,20 @@
+enable chromium_experimental_subgroup_matrix;
+enable f16;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
+
+struct SB_RO {
+ arg_0 : array<f16>,
+}
+
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+fn subgroupMatrixLoad_21f2c7() -> subgroup_matrix_result<f16, 8, 8> {
+ var res : subgroup_matrix_result<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<f16, 8, 8>>(&(sb_ro.arg_0), 1u, true, 1u);
+ return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_21f2c7(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/30634b.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/30634b.wgsl
new file mode 100644
index 0000000..8230794
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/30634b.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, i32, 8, 8>>(ptr<storage, runtime_array<i32>, read_write>, u32, @const bool, u32) -> subgroup_matrix<left, i32, 8, 8>
+fn subgroupMatrixLoad_30634b() -> subgroup_matrix_left<i32, 8, 8>{
+ var res: subgroup_matrix_left<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<i32, 8, 8>>(&sb_rw.arg_0, 1u, true, 1u);
+ return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_30634b(), false, 64);
+}
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
new file mode 100644
index 0000000..3cd8b8c
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/30634b.wgsl.expected.dxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: FAILED
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/30634b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/30634b.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..48f5b71
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/30634b.wgsl.expected.fxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: INVALID
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/30634b.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/30634b.wgsl.expected.glsl
new file mode 100644
index 0000000..cc19bf0
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/30634b.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the GLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/30634b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/30634b.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..dda740a
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/30634b.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/30634b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/30634b.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..4709805
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/30634b.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/30634b.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/30634b.wgsl.expected.msl
new file mode 100644
index 0000000..5dba48c
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/30634b.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: non-float subgroup matrices are not supported by the MSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/30634b.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/30634b.wgsl.expected.spvasm
new file mode 100644
index 0000000..44e031d
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/30634b.wgsl.expected.spvasm
@@ -0,0 +1,74 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 38
+; Schema: 0
+ OpCapability Shader
+ OpCapability VulkanMemoryModel
+ OpCapability VulkanMemoryModelDeviceScope
+ OpCapability CooperativeMatrixKHR
+ OpExtension "SPV_KHR_vulkan_memory_model"
+ OpExtension "SPV_KHR_cooperative_matrix"
+ OpMemoryModel Logical Vulkan
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpMemberName %prevent_dce_block 0 "inner"
+ OpName %prevent_dce_block "prevent_dce_block"
+ OpMemberName %SB_RW 0 "arg_0"
+ OpName %SB_RW "SB_RW"
+ OpName %sb_rw "sb_rw"
+ OpName %subgroupMatrixLoad_30634b "subgroupMatrixLoad_30634b"
+ OpName %res "res"
+ OpName %compute_main "compute_main"
+ OpDecorate %_arr_int_uint_1024 ArrayStride 4
+ OpMemberDecorate %prevent_dce_block 0 Offset 0
+ OpDecorate %prevent_dce_block Block
+ OpDecorate %1 DescriptorSet 0
+ OpDecorate %1 Binding 0
+ OpDecorate %_runtimearr_int ArrayStride 4
+ OpMemberDecorate %SB_RW 0 Offset 0
+ OpDecorate %SB_RW Block
+ OpDecorate %sb_rw DescriptorSet 0
+ OpDecorate %sb_rw Binding 1
+ %int = OpTypeInt 32 1
+ %uint = OpTypeInt 32 0
+ %uint_1024 = OpConstant %uint 1024
+%_arr_int_uint_1024 = OpTypeArray %int %uint_1024
+%prevent_dce_block = OpTypeStruct %_arr_int_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+ %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_runtimearr_int = OpTypeRuntimeArray %int
+ %SB_RW = OpTypeStruct %_runtimearr_int
+%_ptr_StorageBuffer_SB_RW = OpTypePointer StorageBuffer %SB_RW
+ %sb_rw = OpVariable %_ptr_StorageBuffer_SB_RW StorageBuffer
+ %uint_3 = OpConstant %uint 3
+ %uint_8 = OpConstant %uint 8
+ %uint_0 = OpConstant %uint 0
+ %13 = OpTypeCooperativeMatrixKHR %int %uint_3 %uint_8 %uint_8 %uint_0
+ %17 = OpTypeFunction %13
+%_ptr_StorageBuffer__runtimearr_int = OpTypePointer StorageBuffer %_runtimearr_int
+%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
+ %uint_1 = OpConstant %uint 1
+%_ptr_Function_13 = OpTypePointer Function %13
+ %void = OpTypeVoid
+ %30 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_int_uint_1024 = OpTypePointer StorageBuffer %_arr_int_uint_1024
+ %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_30634b = OpFunction %13 None %17
+ %18 = OpLabel
+ %res = OpVariable %_ptr_Function_13 Function
+ %19 = OpAccessChain %_ptr_StorageBuffer__runtimearr_int %sb_rw %uint_0
+ %21 = OpAccessChain %_ptr_StorageBuffer_int %19 %uint_1
+ %24 = OpCooperativeMatrixLoadKHR %13 %21 %uint_1 %uint_1 NonPrivatePointer
+ OpStore %res %24
+ %27 = OpLoad %13 %res None
+ OpReturnValue %27
+ OpFunctionEnd
+%compute_main = OpFunction %void None %30
+ %31 = OpLabel
+ %32 = OpFunctionCall %13 %subgroupMatrixLoad_30634b
+ %33 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_1024 %1 %uint_0
+ %35 = OpAccessChain %_ptr_StorageBuffer_int %33 %uint_0
+ OpCooperativeMatrixStoreKHR %35 %32 %uint_0 %uint_64 NonPrivatePointer
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/30634b.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/30634b.wgsl.expected.wgsl
new file mode 100644
index 0000000..0624830
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/30634b.wgsl.expected.wgsl
@@ -0,0 +1,19 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
+
+struct SB_RW {
+ arg_0 : array<i32>,
+}
+
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixLoad_30634b() -> subgroup_matrix_left<i32, 8, 8> {
+ var res : subgroup_matrix_left<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<i32, 8, 8>>(&(sb_rw.arg_0), 1u, true, 1u);
+ return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_30634b(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/457d20.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/457d20.wgsl
new file mode 100644
index 0000000..886583b
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/457d20.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, u32, 8, 8>>(ptr<storage, runtime_array<u32>, read>, u32, @const bool, u32) -> subgroup_matrix<left, u32, 8, 8>
+fn subgroupMatrixLoad_457d20() -> subgroup_matrix_left<u32, 8, 8>{
+ var res: subgroup_matrix_left<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<u32, 8, 8>>(&sb_ro.arg_0, 1u, true, 1u);
+ return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_457d20(), false, 64);
+}
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
new file mode 100644
index 0000000..3cd8b8c
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/457d20.wgsl.expected.dxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: FAILED
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/457d20.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/457d20.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..48f5b71
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/457d20.wgsl.expected.fxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: INVALID
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/457d20.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/457d20.wgsl.expected.glsl
new file mode 100644
index 0000000..cc19bf0
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/457d20.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the GLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/457d20.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/457d20.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..dda740a
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/457d20.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/457d20.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/457d20.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..4709805
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/457d20.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/457d20.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/457d20.wgsl.expected.msl
new file mode 100644
index 0000000..5dba48c
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/457d20.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: non-float subgroup matrices are not supported by the MSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/457d20.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/457d20.wgsl.expected.spvasm
new file mode 100644
index 0000000..ed40306
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/457d20.wgsl.expected.spvasm
@@ -0,0 +1,75 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 38
+; Schema: 0
+ OpCapability Shader
+ OpCapability VulkanMemoryModel
+ OpCapability VulkanMemoryModelDeviceScope
+ OpCapability CooperativeMatrixKHR
+ OpExtension "SPV_KHR_vulkan_memory_model"
+ OpExtension "SPV_KHR_cooperative_matrix"
+ OpMemoryModel Logical Vulkan
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpMemberName %prevent_dce_block 0 "inner"
+ OpName %prevent_dce_block "prevent_dce_block"
+ OpMemberName %SB_RO 0 "arg_0"
+ OpName %SB_RO "SB_RO"
+ OpName %sb_ro "sb_ro"
+ OpName %subgroupMatrixLoad_457d20 "subgroupMatrixLoad_457d20"
+ OpName %res "res"
+ OpName %compute_main "compute_main"
+ OpDecorate %_arr_uint_uint_1024 ArrayStride 4
+ OpMemberDecorate %prevent_dce_block 0 Offset 0
+ OpDecorate %prevent_dce_block Block
+ OpDecorate %1 DescriptorSet 0
+ OpDecorate %1 Binding 0
+ OpDecorate %_runtimearr_uint ArrayStride 4
+ OpMemberDecorate %SB_RO 0 Offset 0
+ OpDecorate %SB_RO Block
+ OpDecorate %sb_ro DescriptorSet 0
+ OpDecorate %sb_ro Binding 1
+ OpDecorate %sb_ro NonWritable
+ %uint = OpTypeInt 32 0
+ %uint_1024 = OpConstant %uint 1024
+%_arr_uint_uint_1024 = OpTypeArray %uint %uint_1024
+%prevent_dce_block = OpTypeStruct %_arr_uint_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+ %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_runtimearr_uint = OpTypeRuntimeArray %uint
+ %SB_RO = OpTypeStruct %_runtimearr_uint
+%_ptr_StorageBuffer_SB_RO = OpTypePointer StorageBuffer %SB_RO
+ %sb_ro = OpVariable %_ptr_StorageBuffer_SB_RO StorageBuffer
+ %uint_3 = OpConstant %uint 3
+ %uint_8 = OpConstant %uint 8
+ %uint_0 = OpConstant %uint 0
+ %12 = OpTypeCooperativeMatrixKHR %uint %uint_3 %uint_8 %uint_8 %uint_0
+ %16 = OpTypeFunction %12
+%_ptr_StorageBuffer__runtimearr_uint = OpTypePointer StorageBuffer %_runtimearr_uint
+%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
+ %uint_1 = OpConstant %uint 1
+%_ptr_Function_12 = OpTypePointer Function %12
+ %void = OpTypeVoid
+ %29 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_uint_uint_1024 = OpTypePointer StorageBuffer %_arr_uint_uint_1024
+%_ptr_StorageBuffer_uint_0 = OpTypePointer StorageBuffer %uint
+ %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_457d20 = OpFunction %12 None %16
+ %17 = OpLabel
+ %res = OpVariable %_ptr_Function_12 Function
+ %18 = OpAccessChain %_ptr_StorageBuffer__runtimearr_uint %sb_ro %uint_0
+ %20 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_1
+ %23 = OpCooperativeMatrixLoadKHR %12 %20 %uint_1 %uint_1 NonPrivatePointer
+ OpStore %res %23
+ %26 = OpLoad %12 %res None
+ OpReturnValue %26
+ OpFunctionEnd
+%compute_main = OpFunction %void None %29
+ %30 = OpLabel
+ %31 = OpFunctionCall %12 %subgroupMatrixLoad_457d20
+ %32 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_1024 %1 %uint_0
+ %34 = OpAccessChain %_ptr_StorageBuffer_uint_0 %32 %uint_0
+ OpCooperativeMatrixStoreKHR %34 %31 %uint_0 %uint_64 NonPrivatePointer
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/457d20.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/457d20.wgsl.expected.wgsl
new file mode 100644
index 0000000..4407119
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/457d20.wgsl.expected.wgsl
@@ -0,0 +1,19 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
+
+struct SB_RO {
+ arg_0 : array<u32>,
+}
+
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+fn subgroupMatrixLoad_457d20() -> subgroup_matrix_left<u32, 8, 8> {
+ var res : subgroup_matrix_left<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<u32, 8, 8>>(&(sb_ro.arg_0), 1u, true, 1u);
+ return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_457d20(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/5155ed.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5155ed.wgsl
new file mode 100644
index 0000000..e36228f
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5155ed.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, u32, 8, 8>>(ptr<storage, runtime_array<u32>, read_write>, u32, @const bool, u32) -> subgroup_matrix<left, u32, 8, 8>
+fn subgroupMatrixLoad_5155ed() -> subgroup_matrix_left<u32, 8, 8>{
+ var res: subgroup_matrix_left<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<u32, 8, 8>>(&sb_rw.arg_0, 1u, true, 1u);
+ return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_5155ed(), false, 64);
+}
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
new file mode 100644
index 0000000..3cd8b8c
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5155ed.wgsl.expected.dxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: FAILED
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/5155ed.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5155ed.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..48f5b71
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5155ed.wgsl.expected.fxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: INVALID
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/5155ed.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5155ed.wgsl.expected.glsl
new file mode 100644
index 0000000..cc19bf0
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5155ed.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the GLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/5155ed.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5155ed.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..dda740a
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5155ed.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/5155ed.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5155ed.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..4709805
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5155ed.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/5155ed.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5155ed.wgsl.expected.msl
new file mode 100644
index 0000000..5dba48c
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5155ed.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: non-float subgroup matrices are not supported by the MSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/5155ed.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5155ed.wgsl.expected.spvasm
new file mode 100644
index 0000000..ef87521
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5155ed.wgsl.expected.spvasm
@@ -0,0 +1,73 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 37
+; Schema: 0
+ OpCapability Shader
+ OpCapability VulkanMemoryModel
+ OpCapability VulkanMemoryModelDeviceScope
+ OpCapability CooperativeMatrixKHR
+ OpExtension "SPV_KHR_vulkan_memory_model"
+ OpExtension "SPV_KHR_cooperative_matrix"
+ OpMemoryModel Logical Vulkan
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpMemberName %prevent_dce_block 0 "inner"
+ OpName %prevent_dce_block "prevent_dce_block"
+ OpMemberName %SB_RW 0 "arg_0"
+ OpName %SB_RW "SB_RW"
+ OpName %sb_rw "sb_rw"
+ OpName %subgroupMatrixLoad_5155ed "subgroupMatrixLoad_5155ed"
+ OpName %res "res"
+ OpName %compute_main "compute_main"
+ OpDecorate %_arr_uint_uint_1024 ArrayStride 4
+ OpMemberDecorate %prevent_dce_block 0 Offset 0
+ OpDecorate %prevent_dce_block Block
+ OpDecorate %1 DescriptorSet 0
+ OpDecorate %1 Binding 0
+ OpDecorate %_runtimearr_uint ArrayStride 4
+ OpMemberDecorate %SB_RW 0 Offset 0
+ OpDecorate %SB_RW Block
+ OpDecorate %sb_rw DescriptorSet 0
+ OpDecorate %sb_rw Binding 1
+ %uint = OpTypeInt 32 0
+ %uint_1024 = OpConstant %uint 1024
+%_arr_uint_uint_1024 = OpTypeArray %uint %uint_1024
+%prevent_dce_block = OpTypeStruct %_arr_uint_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+ %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_runtimearr_uint = OpTypeRuntimeArray %uint
+ %SB_RW = OpTypeStruct %_runtimearr_uint
+%_ptr_StorageBuffer_SB_RW = OpTypePointer StorageBuffer %SB_RW
+ %sb_rw = OpVariable %_ptr_StorageBuffer_SB_RW StorageBuffer
+ %uint_3 = OpConstant %uint 3
+ %uint_8 = OpConstant %uint 8
+ %uint_0 = OpConstant %uint 0
+ %12 = OpTypeCooperativeMatrixKHR %uint %uint_3 %uint_8 %uint_8 %uint_0
+ %16 = OpTypeFunction %12
+%_ptr_StorageBuffer__runtimearr_uint = OpTypePointer StorageBuffer %_runtimearr_uint
+%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
+ %uint_1 = OpConstant %uint 1
+%_ptr_Function_12 = OpTypePointer Function %12
+ %void = OpTypeVoid
+ %29 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_uint_uint_1024 = OpTypePointer StorageBuffer %_arr_uint_uint_1024
+ %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_5155ed = OpFunction %12 None %16
+ %17 = OpLabel
+ %res = OpVariable %_ptr_Function_12 Function
+ %18 = OpAccessChain %_ptr_StorageBuffer__runtimearr_uint %sb_rw %uint_0
+ %20 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_1
+ %23 = OpCooperativeMatrixLoadKHR %12 %20 %uint_1 %uint_1 NonPrivatePointer
+ OpStore %res %23
+ %26 = OpLoad %12 %res None
+ OpReturnValue %26
+ OpFunctionEnd
+%compute_main = OpFunction %void None %29
+ %30 = OpLabel
+ %31 = OpFunctionCall %12 %subgroupMatrixLoad_5155ed
+ %32 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_1024 %1 %uint_0
+ %34 = OpAccessChain %_ptr_StorageBuffer_uint %32 %uint_0
+ OpCooperativeMatrixStoreKHR %34 %31 %uint_0 %uint_64 NonPrivatePointer
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/5155ed.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5155ed.wgsl.expected.wgsl
new file mode 100644
index 0000000..3b6e2bb
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5155ed.wgsl.expected.wgsl
@@ -0,0 +1,19 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
+
+struct SB_RW {
+ arg_0 : array<u32>,
+}
+
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixLoad_5155ed() -> subgroup_matrix_left<u32, 8, 8> {
+ var res : subgroup_matrix_left<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<u32, 8, 8>>(&(sb_rw.arg_0), 1u, true, 1u);
+ return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_5155ed(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/5de410.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5de410.wgsl
new file mode 100644
index 0000000..e0a1c94
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5de410.wgsl
@@ -0,0 +1,59 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+// test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// flags: --hlsl-shader-model 62
+
+
+enable chromium_experimental_subgroup_matrix;
+
+enable f16;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
+
+struct SB_RO {
+ arg_0: array<f16>,
+};
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<left, f16, 8, 8>>(ptr<storage, runtime_array<f16>, read>, u32, @const bool, u32) -> subgroup_matrix<left, f16, 8, 8>
+fn subgroupMatrixLoad_5de410() -> subgroup_matrix_left<f16, 8, 8>{
+ var res: subgroup_matrix_left<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<f16, 8, 8>>(&sb_ro.arg_0, 1u, true, 1u);
+ return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_5de410(), false, 64);
+}
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
new file mode 100644
index 0000000..3cd8b8c
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5de410.wgsl.expected.dxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: FAILED
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/5de410.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5de410.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..48f5b71
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5de410.wgsl.expected.fxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: INVALID
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/5de410.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5de410.wgsl.expected.glsl
new file mode 100644
index 0000000..cc19bf0
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5de410.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the GLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/5de410.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5de410.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..dda740a
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5de410.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/5de410.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5de410.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..4709805
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5de410.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/5de410.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5de410.wgsl.expected.msl
new file mode 100644
index 0000000..52f27d2
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5de410.wgsl.expected.msl
@@ -0,0 +1,35 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+ const constant T& operator[](size_t i) const constant { return elements[i]; }
+ device T& operator[](size_t i) device { return elements[i]; }
+ const device T& operator[](size_t i) const device { return elements[i]; }
+ thread T& operator[](size_t i) thread { return elements[i]; }
+ const thread T& operator[](size_t i) const thread { return elements[i]; }
+ threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+ const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+ T elements[N];
+};
+
+struct SB_RO {
+ /* 0x0000 */ tint_array<half, 1> arg_0;
+};
+
+struct tint_module_vars_struct {
+ device tint_array<half, 1024>* prevent_dce;
+ const device SB_RO* sb_ro;
+};
+
+simdgroup_half8x8 subgroupMatrixLoad_5de410(tint_module_vars_struct tint_module_vars) {
+ simdgroup_half8x8 v = make_filled_simdgroup_matrix<half, 8, 8>(0.0h);
+ simdgroup_load(v, (&(*tint_module_vars.sb_ro).arg_0[1u]), ulong(1u), ulong2(0ul), true);
+ simdgroup_half8x8 res = v;
+ return res;
+}
+
+kernel void compute_main(device tint_array<half, 1024>* prevent_dce [[buffer(0)]], const device SB_RO* sb_ro [[buffer(1)]]) {
+ tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_ro=sb_ro};
+ simdgroup_store(subgroupMatrixLoad_5de410(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/5de410.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5de410.wgsl.expected.spvasm
new file mode 100644
index 0000000..3d7bb05
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5de410.wgsl.expected.spvasm
@@ -0,0 +1,79 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 39
+; Schema: 0
+ OpCapability Shader
+ OpCapability VulkanMemoryModel
+ OpCapability VulkanMemoryModelDeviceScope
+ OpCapability Float16
+ OpCapability UniformAndStorageBuffer16BitAccess
+ OpCapability StorageBuffer16BitAccess
+ OpCapability CooperativeMatrixKHR
+ OpExtension "SPV_KHR_vulkan_memory_model"
+ OpExtension "SPV_KHR_cooperative_matrix"
+ OpMemoryModel Logical Vulkan
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpMemberName %prevent_dce_block 0 "inner"
+ OpName %prevent_dce_block "prevent_dce_block"
+ OpMemberName %SB_RO 0 "arg_0"
+ OpName %SB_RO "SB_RO"
+ OpName %sb_ro "sb_ro"
+ OpName %subgroupMatrixLoad_5de410 "subgroupMatrixLoad_5de410"
+ OpName %res "res"
+ OpName %compute_main "compute_main"
+ OpDecorate %_arr_half_uint_1024 ArrayStride 2
+ OpMemberDecorate %prevent_dce_block 0 Offset 0
+ OpDecorate %prevent_dce_block Block
+ OpDecorate %1 DescriptorSet 0
+ OpDecorate %1 Binding 0
+ OpDecorate %_runtimearr_half ArrayStride 2
+ OpMemberDecorate %SB_RO 0 Offset 0
+ OpDecorate %SB_RO Block
+ OpDecorate %sb_ro DescriptorSet 0
+ OpDecorate %sb_ro Binding 1
+ OpDecorate %sb_ro NonWritable
+ %half = OpTypeFloat 16
+ %uint = OpTypeInt 32 0
+ %uint_1024 = OpConstant %uint 1024
+%_arr_half_uint_1024 = OpTypeArray %half %uint_1024
+%prevent_dce_block = OpTypeStruct %_arr_half_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+ %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_runtimearr_half = OpTypeRuntimeArray %half
+ %SB_RO = OpTypeStruct %_runtimearr_half
+%_ptr_StorageBuffer_SB_RO = OpTypePointer StorageBuffer %SB_RO
+ %sb_ro = OpVariable %_ptr_StorageBuffer_SB_RO StorageBuffer
+ %uint_3 = OpConstant %uint 3
+ %uint_8 = OpConstant %uint 8
+ %uint_0 = OpConstant %uint 0
+ %13 = OpTypeCooperativeMatrixKHR %half %uint_3 %uint_8 %uint_8 %uint_0
+ %17 = OpTypeFunction %13
+%_ptr_StorageBuffer__runtimearr_half = OpTypePointer StorageBuffer %_runtimearr_half
+%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half
+ %uint_1 = OpConstant %uint 1
+%_ptr_Function_13 = OpTypePointer Function %13
+ %void = OpTypeVoid
+ %30 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_half_uint_1024 = OpTypePointer StorageBuffer %_arr_half_uint_1024
+%_ptr_StorageBuffer_half_0 = OpTypePointer StorageBuffer %half
+ %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_5de410 = OpFunction %13 None %17
+ %18 = OpLabel
+ %res = OpVariable %_ptr_Function_13 Function
+ %19 = OpAccessChain %_ptr_StorageBuffer__runtimearr_half %sb_ro %uint_0
+ %21 = OpAccessChain %_ptr_StorageBuffer_half %19 %uint_1
+ %24 = OpCooperativeMatrixLoadKHR %13 %21 %uint_1 %uint_1 NonPrivatePointer
+ OpStore %res %24
+ %27 = OpLoad %13 %res None
+ OpReturnValue %27
+ OpFunctionEnd
+%compute_main = OpFunction %void None %30
+ %31 = OpLabel
+ %32 = OpFunctionCall %13 %subgroupMatrixLoad_5de410
+ %33 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_1024 %1 %uint_0
+ %35 = OpAccessChain %_ptr_StorageBuffer_half_0 %33 %uint_0
+ OpCooperativeMatrixStoreKHR %35 %32 %uint_0 %uint_64 NonPrivatePointer
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/5de410.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5de410.wgsl.expected.wgsl
new file mode 100644
index 0000000..940dc5f
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/5de410.wgsl.expected.wgsl
@@ -0,0 +1,20 @@
+enable chromium_experimental_subgroup_matrix;
+enable f16;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
+
+struct SB_RO {
+ arg_0 : array<f16>,
+}
+
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+fn subgroupMatrixLoad_5de410() -> subgroup_matrix_left<f16, 8, 8> {
+ var res : subgroup_matrix_left<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<f16, 8, 8>>(&(sb_ro.arg_0), 1u, true, 1u);
+ return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_5de410(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/6c1e00.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6c1e00.wgsl
new file mode 100644
index 0000000..7d15914
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6c1e00.wgsl
@@ -0,0 +1,57 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+// test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
+
+struct SB_RO {
+ arg_0: array<f32>,
+};
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<right, f32, 8, 8>>(ptr<storage, runtime_array<f32>, read>, u32, @const bool, u32) -> subgroup_matrix<right, f32, 8, 8>
+fn subgroupMatrixLoad_6c1e00() -> subgroup_matrix_right<f32, 8, 8>{
+ var res: subgroup_matrix_right<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<f32, 8, 8>>(&sb_ro.arg_0, 1u, true, 1u);
+ return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_6c1e00(), false, 64);
+}
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
new file mode 100644
index 0000000..3cd8b8c
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6c1e00.wgsl.expected.dxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: FAILED
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/6c1e00.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6c1e00.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..48f5b71
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6c1e00.wgsl.expected.fxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: INVALID
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/6c1e00.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6c1e00.wgsl.expected.glsl
new file mode 100644
index 0000000..cc19bf0
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6c1e00.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the GLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/6c1e00.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6c1e00.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..dda740a
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6c1e00.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/6c1e00.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6c1e00.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..4709805
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6c1e00.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/6c1e00.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6c1e00.wgsl.expected.msl
new file mode 100644
index 0000000..3611dec
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6c1e00.wgsl.expected.msl
@@ -0,0 +1,35 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+ const constant T& operator[](size_t i) const constant { return elements[i]; }
+ device T& operator[](size_t i) device { return elements[i]; }
+ const device T& operator[](size_t i) const device { return elements[i]; }
+ thread T& operator[](size_t i) thread { return elements[i]; }
+ const thread T& operator[](size_t i) const thread { return elements[i]; }
+ threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+ const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+ T elements[N];
+};
+
+struct SB_RO {
+ /* 0x0000 */ tint_array<float, 1> arg_0;
+};
+
+struct tint_module_vars_struct {
+ device tint_array<float, 1024>* prevent_dce;
+ const device SB_RO* sb_ro;
+};
+
+simdgroup_float8x8 subgroupMatrixLoad_6c1e00(tint_module_vars_struct tint_module_vars) {
+ simdgroup_float8x8 v = make_filled_simdgroup_matrix<float, 8, 8>(0.0f);
+ simdgroup_load(v, (&(*tint_module_vars.sb_ro).arg_0[1u]), ulong(1u), ulong2(0ul), true);
+ simdgroup_float8x8 res = v;
+ return res;
+}
+
+kernel void compute_main(device tint_array<float, 1024>* prevent_dce [[buffer(0)]], const device SB_RO* sb_ro [[buffer(1)]]) {
+ tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_ro=sb_ro};
+ simdgroup_store(subgroupMatrixLoad_6c1e00(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/6c1e00.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6c1e00.wgsl.expected.spvasm
new file mode 100644
index 0000000..df1a7a1
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6c1e00.wgsl.expected.spvasm
@@ -0,0 +1,76 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 39
+; Schema: 0
+ OpCapability Shader
+ OpCapability VulkanMemoryModel
+ OpCapability VulkanMemoryModelDeviceScope
+ OpCapability CooperativeMatrixKHR
+ OpExtension "SPV_KHR_vulkan_memory_model"
+ OpExtension "SPV_KHR_cooperative_matrix"
+ OpMemoryModel Logical Vulkan
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpMemberName %prevent_dce_block 0 "inner"
+ OpName %prevent_dce_block "prevent_dce_block"
+ OpMemberName %SB_RO 0 "arg_0"
+ OpName %SB_RO "SB_RO"
+ OpName %sb_ro "sb_ro"
+ OpName %subgroupMatrixLoad_6c1e00 "subgroupMatrixLoad_6c1e00"
+ OpName %res "res"
+ OpName %compute_main "compute_main"
+ OpDecorate %_arr_float_uint_1024 ArrayStride 4
+ OpMemberDecorate %prevent_dce_block 0 Offset 0
+ OpDecorate %prevent_dce_block Block
+ OpDecorate %1 DescriptorSet 0
+ OpDecorate %1 Binding 0
+ OpDecorate %_runtimearr_float ArrayStride 4
+ OpMemberDecorate %SB_RO 0 Offset 0
+ OpDecorate %SB_RO Block
+ OpDecorate %sb_ro DescriptorSet 0
+ OpDecorate %sb_ro Binding 1
+ OpDecorate %sb_ro NonWritable
+ %float = OpTypeFloat 32
+ %uint = OpTypeInt 32 0
+ %uint_1024 = OpConstant %uint 1024
+%_arr_float_uint_1024 = OpTypeArray %float %uint_1024
+%prevent_dce_block = OpTypeStruct %_arr_float_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+ %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_runtimearr_float = OpTypeRuntimeArray %float
+ %SB_RO = OpTypeStruct %_runtimearr_float
+%_ptr_StorageBuffer_SB_RO = OpTypePointer StorageBuffer %SB_RO
+ %sb_ro = OpVariable %_ptr_StorageBuffer_SB_RO StorageBuffer
+ %uint_3 = OpConstant %uint 3
+ %uint_8 = OpConstant %uint 8
+ %uint_1 = OpConstant %uint 1
+ %13 = OpTypeCooperativeMatrixKHR %float %uint_3 %uint_8 %uint_8 %uint_1
+ %17 = OpTypeFunction %13
+%_ptr_StorageBuffer__runtimearr_float = OpTypePointer StorageBuffer %_runtimearr_float
+ %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
+%_ptr_Function_13 = OpTypePointer Function %13
+ %void = OpTypeVoid
+ %30 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_float_uint_1024 = OpTypePointer StorageBuffer %_arr_float_uint_1024
+%_ptr_StorageBuffer_float_0 = OpTypePointer StorageBuffer %float
+ %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_6c1e00 = OpFunction %13 None %17
+ %18 = OpLabel
+ %res = OpVariable %_ptr_Function_13 Function
+ %19 = OpAccessChain %_ptr_StorageBuffer__runtimearr_float %sb_ro %uint_0
+ %22 = OpAccessChain %_ptr_StorageBuffer_float %19 %uint_1
+ %24 = OpCooperativeMatrixLoadKHR %13 %22 %uint_1 %uint_1 NonPrivatePointer
+ OpStore %res %24
+ %27 = OpLoad %13 %res None
+ OpReturnValue %27
+ OpFunctionEnd
+%compute_main = OpFunction %void None %30
+ %31 = OpLabel
+ %32 = OpFunctionCall %13 %subgroupMatrixLoad_6c1e00
+ %33 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_1024 %1 %uint_0
+ %35 = OpAccessChain %_ptr_StorageBuffer_float_0 %33 %uint_0
+ OpCooperativeMatrixStoreKHR %35 %32 %uint_0 %uint_64 NonPrivatePointer
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/6c1e00.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6c1e00.wgsl.expected.wgsl
new file mode 100644
index 0000000..5b4883a
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6c1e00.wgsl.expected.wgsl
@@ -0,0 +1,19 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
+
+struct SB_RO {
+ arg_0 : array<f32>,
+}
+
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+fn subgroupMatrixLoad_6c1e00() -> subgroup_matrix_right<f32, 8, 8> {
+ var res : subgroup_matrix_right<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<f32, 8, 8>>(&(sb_ro.arg_0), 1u, true, 1u);
+ return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_6c1e00(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/6e2773.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6e2773.wgsl
new file mode 100644
index 0000000..f4336ba
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6e2773.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, i32, 8, 8>>(ptr<storage, runtime_array<i32>, read_write>, u32, @const bool, u32) -> subgroup_matrix<result, i32, 8, 8>
+fn subgroupMatrixLoad_6e2773() -> subgroup_matrix_result<i32, 8, 8>{
+ var res: subgroup_matrix_result<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<i32, 8, 8>>(&sb_rw.arg_0, 1u, true, 1u);
+ return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_6e2773(), false, 64);
+}
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
new file mode 100644
index 0000000..3cd8b8c
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6e2773.wgsl.expected.dxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: FAILED
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/6e2773.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6e2773.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..48f5b71
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6e2773.wgsl.expected.fxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: INVALID
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/6e2773.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6e2773.wgsl.expected.glsl
new file mode 100644
index 0000000..cc19bf0
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6e2773.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the GLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/6e2773.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6e2773.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..dda740a
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6e2773.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/6e2773.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6e2773.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..4709805
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6e2773.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/6e2773.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6e2773.wgsl.expected.msl
new file mode 100644
index 0000000..5dba48c
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6e2773.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: non-float subgroup matrices are not supported by the MSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/6e2773.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6e2773.wgsl.expected.spvasm
new file mode 100644
index 0000000..23bda16
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6e2773.wgsl.expected.spvasm
@@ -0,0 +1,75 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 39
+; Schema: 0
+ OpCapability Shader
+ OpCapability VulkanMemoryModel
+ OpCapability VulkanMemoryModelDeviceScope
+ OpCapability CooperativeMatrixKHR
+ OpExtension "SPV_KHR_vulkan_memory_model"
+ OpExtension "SPV_KHR_cooperative_matrix"
+ OpMemoryModel Logical Vulkan
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpMemberName %prevent_dce_block 0 "inner"
+ OpName %prevent_dce_block "prevent_dce_block"
+ OpMemberName %SB_RW 0 "arg_0"
+ OpName %SB_RW "SB_RW"
+ OpName %sb_rw "sb_rw"
+ OpName %subgroupMatrixLoad_6e2773 "subgroupMatrixLoad_6e2773"
+ OpName %res "res"
+ OpName %compute_main "compute_main"
+ OpDecorate %_arr_int_uint_1024 ArrayStride 4
+ OpMemberDecorate %prevent_dce_block 0 Offset 0
+ OpDecorate %prevent_dce_block Block
+ OpDecorate %1 DescriptorSet 0
+ OpDecorate %1 Binding 0
+ OpDecorate %_runtimearr_int ArrayStride 4
+ OpMemberDecorate %SB_RW 0 Offset 0
+ OpDecorate %SB_RW Block
+ OpDecorate %sb_rw DescriptorSet 0
+ OpDecorate %sb_rw Binding 1
+ %int = OpTypeInt 32 1
+ %uint = OpTypeInt 32 0
+ %uint_1024 = OpConstant %uint 1024
+%_arr_int_uint_1024 = OpTypeArray %int %uint_1024
+%prevent_dce_block = OpTypeStruct %_arr_int_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+ %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_runtimearr_int = OpTypeRuntimeArray %int
+ %SB_RW = OpTypeStruct %_runtimearr_int
+%_ptr_StorageBuffer_SB_RW = OpTypePointer StorageBuffer %SB_RW
+ %sb_rw = OpVariable %_ptr_StorageBuffer_SB_RW StorageBuffer
+ %uint_3 = OpConstant %uint 3
+ %uint_8 = OpConstant %uint 8
+ %uint_2 = OpConstant %uint 2
+ %13 = OpTypeCooperativeMatrixKHR %int %uint_3 %uint_8 %uint_8 %uint_2
+ %17 = OpTypeFunction %13
+%_ptr_StorageBuffer__runtimearr_int = OpTypePointer StorageBuffer %_runtimearr_int
+ %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
+ %uint_1 = OpConstant %uint 1
+%_ptr_Function_13 = OpTypePointer Function %13
+ %void = OpTypeVoid
+ %31 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_int_uint_1024 = OpTypePointer StorageBuffer %_arr_int_uint_1024
+ %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_6e2773 = OpFunction %13 None %17
+ %18 = OpLabel
+ %res = OpVariable %_ptr_Function_13 Function
+ %19 = OpAccessChain %_ptr_StorageBuffer__runtimearr_int %sb_rw %uint_0
+ %22 = OpAccessChain %_ptr_StorageBuffer_int %19 %uint_1
+ %25 = OpCooperativeMatrixLoadKHR %13 %22 %uint_1 %uint_1 NonPrivatePointer
+ OpStore %res %25
+ %28 = OpLoad %13 %res None
+ OpReturnValue %28
+ OpFunctionEnd
+%compute_main = OpFunction %void None %31
+ %32 = OpLabel
+ %33 = OpFunctionCall %13 %subgroupMatrixLoad_6e2773
+ %34 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_1024 %1 %uint_0
+ %36 = OpAccessChain %_ptr_StorageBuffer_int %34 %uint_0
+ OpCooperativeMatrixStoreKHR %36 %33 %uint_0 %uint_64 NonPrivatePointer
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/6e2773.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6e2773.wgsl.expected.wgsl
new file mode 100644
index 0000000..cc71b06
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/6e2773.wgsl.expected.wgsl
@@ -0,0 +1,19 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
+
+struct SB_RW {
+ arg_0 : array<i32>,
+}
+
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixLoad_6e2773() -> subgroup_matrix_result<i32, 8, 8> {
+ var res : subgroup_matrix_result<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<i32, 8, 8>>(&(sb_rw.arg_0), 1u, true, 1u);
+ return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_6e2773(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/80b778.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/80b778.wgsl
new file mode 100644
index 0000000..3d0ab88
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/80b778.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, u32, 8, 8>>(ptr<storage, runtime_array<u32>, read_write>, u32, @const bool, u32) -> subgroup_matrix<right, u32, 8, 8>
+fn subgroupMatrixLoad_80b778() -> subgroup_matrix_right<u32, 8, 8>{
+ var res: subgroup_matrix_right<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<u32, 8, 8>>(&sb_rw.arg_0, 1u, true, 1u);
+ return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_80b778(), false, 64);
+}
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
new file mode 100644
index 0000000..3cd8b8c
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/80b778.wgsl.expected.dxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: FAILED
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/80b778.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/80b778.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..48f5b71
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/80b778.wgsl.expected.fxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: INVALID
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/80b778.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/80b778.wgsl.expected.glsl
new file mode 100644
index 0000000..cc19bf0
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/80b778.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the GLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/80b778.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/80b778.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..dda740a
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/80b778.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/80b778.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/80b778.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..4709805
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/80b778.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/80b778.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/80b778.wgsl.expected.msl
new file mode 100644
index 0000000..5dba48c
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/80b778.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: non-float subgroup matrices are not supported by the MSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/80b778.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/80b778.wgsl.expected.spvasm
new file mode 100644
index 0000000..2744bd7
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/80b778.wgsl.expected.spvasm
@@ -0,0 +1,73 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 37
+; Schema: 0
+ OpCapability Shader
+ OpCapability VulkanMemoryModel
+ OpCapability VulkanMemoryModelDeviceScope
+ OpCapability CooperativeMatrixKHR
+ OpExtension "SPV_KHR_vulkan_memory_model"
+ OpExtension "SPV_KHR_cooperative_matrix"
+ OpMemoryModel Logical Vulkan
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpMemberName %prevent_dce_block 0 "inner"
+ OpName %prevent_dce_block "prevent_dce_block"
+ OpMemberName %SB_RW 0 "arg_0"
+ OpName %SB_RW "SB_RW"
+ OpName %sb_rw "sb_rw"
+ OpName %subgroupMatrixLoad_80b778 "subgroupMatrixLoad_80b778"
+ OpName %res "res"
+ OpName %compute_main "compute_main"
+ OpDecorate %_arr_uint_uint_1024 ArrayStride 4
+ OpMemberDecorate %prevent_dce_block 0 Offset 0
+ OpDecorate %prevent_dce_block Block
+ OpDecorate %1 DescriptorSet 0
+ OpDecorate %1 Binding 0
+ OpDecorate %_runtimearr_uint ArrayStride 4
+ OpMemberDecorate %SB_RW 0 Offset 0
+ OpDecorate %SB_RW Block
+ OpDecorate %sb_rw DescriptorSet 0
+ OpDecorate %sb_rw Binding 1
+ %uint = OpTypeInt 32 0
+ %uint_1024 = OpConstant %uint 1024
+%_arr_uint_uint_1024 = OpTypeArray %uint %uint_1024
+%prevent_dce_block = OpTypeStruct %_arr_uint_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+ %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_runtimearr_uint = OpTypeRuntimeArray %uint
+ %SB_RW = OpTypeStruct %_runtimearr_uint
+%_ptr_StorageBuffer_SB_RW = OpTypePointer StorageBuffer %SB_RW
+ %sb_rw = OpVariable %_ptr_StorageBuffer_SB_RW StorageBuffer
+ %uint_3 = OpConstant %uint 3
+ %uint_8 = OpConstant %uint 8
+ %uint_1 = OpConstant %uint 1
+ %12 = OpTypeCooperativeMatrixKHR %uint %uint_3 %uint_8 %uint_8 %uint_1
+ %16 = OpTypeFunction %12
+%_ptr_StorageBuffer__runtimearr_uint = OpTypePointer StorageBuffer %_runtimearr_uint
+ %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
+%_ptr_Function_12 = OpTypePointer Function %12
+ %void = OpTypeVoid
+ %29 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_uint_uint_1024 = OpTypePointer StorageBuffer %_arr_uint_uint_1024
+ %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_80b778 = OpFunction %12 None %16
+ %17 = OpLabel
+ %res = OpVariable %_ptr_Function_12 Function
+ %18 = OpAccessChain %_ptr_StorageBuffer__runtimearr_uint %sb_rw %uint_0
+ %21 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_1
+ %23 = OpCooperativeMatrixLoadKHR %12 %21 %uint_1 %uint_1 NonPrivatePointer
+ OpStore %res %23
+ %26 = OpLoad %12 %res None
+ OpReturnValue %26
+ OpFunctionEnd
+%compute_main = OpFunction %void None %29
+ %30 = OpLabel
+ %31 = OpFunctionCall %12 %subgroupMatrixLoad_80b778
+ %32 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_1024 %1 %uint_0
+ %34 = OpAccessChain %_ptr_StorageBuffer_uint %32 %uint_0
+ OpCooperativeMatrixStoreKHR %34 %31 %uint_0 %uint_64 NonPrivatePointer
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/80b778.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/80b778.wgsl.expected.wgsl
new file mode 100644
index 0000000..a45d8c6
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/80b778.wgsl.expected.wgsl
@@ -0,0 +1,19 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
+
+struct SB_RW {
+ arg_0 : array<u32>,
+}
+
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixLoad_80b778() -> subgroup_matrix_right<u32, 8, 8> {
+ var res : subgroup_matrix_right<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<u32, 8, 8>>(&(sb_rw.arg_0), 1u, true, 1u);
+ return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_80b778(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/a798ae.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a798ae.wgsl
new file mode 100644
index 0000000..c536685
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a798ae.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, i32, 8, 8>>(ptr<storage, runtime_array<i32>, read>, u32, @const bool, u32) -> subgroup_matrix<result, i32, 8, 8>
+fn subgroupMatrixLoad_a798ae() -> subgroup_matrix_result<i32, 8, 8>{
+ var res: subgroup_matrix_result<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<i32, 8, 8>>(&sb_ro.arg_0, 1u, true, 1u);
+ return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_a798ae(), false, 64);
+}
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
new file mode 100644
index 0000000..3cd8b8c
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a798ae.wgsl.expected.dxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: FAILED
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/a798ae.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a798ae.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..48f5b71
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a798ae.wgsl.expected.fxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: INVALID
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/a798ae.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a798ae.wgsl.expected.glsl
new file mode 100644
index 0000000..cc19bf0
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a798ae.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the GLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/a798ae.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a798ae.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..dda740a
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a798ae.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/a798ae.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a798ae.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..4709805
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a798ae.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/a798ae.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a798ae.wgsl.expected.msl
new file mode 100644
index 0000000..5dba48c
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a798ae.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: non-float subgroup matrices are not supported by the MSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/a798ae.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a798ae.wgsl.expected.spvasm
new file mode 100644
index 0000000..fcb96c9
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a798ae.wgsl.expected.spvasm
@@ -0,0 +1,77 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 40
+; Schema: 0
+ OpCapability Shader
+ OpCapability VulkanMemoryModel
+ OpCapability VulkanMemoryModelDeviceScope
+ OpCapability CooperativeMatrixKHR
+ OpExtension "SPV_KHR_vulkan_memory_model"
+ OpExtension "SPV_KHR_cooperative_matrix"
+ OpMemoryModel Logical Vulkan
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpMemberName %prevent_dce_block 0 "inner"
+ OpName %prevent_dce_block "prevent_dce_block"
+ OpMemberName %SB_RO 0 "arg_0"
+ OpName %SB_RO "SB_RO"
+ OpName %sb_ro "sb_ro"
+ OpName %subgroupMatrixLoad_a798ae "subgroupMatrixLoad_a798ae"
+ OpName %res "res"
+ OpName %compute_main "compute_main"
+ OpDecorate %_arr_int_uint_1024 ArrayStride 4
+ OpMemberDecorate %prevent_dce_block 0 Offset 0
+ OpDecorate %prevent_dce_block Block
+ OpDecorate %1 DescriptorSet 0
+ OpDecorate %1 Binding 0
+ OpDecorate %_runtimearr_int ArrayStride 4
+ OpMemberDecorate %SB_RO 0 Offset 0
+ OpDecorate %SB_RO Block
+ OpDecorate %sb_ro DescriptorSet 0
+ OpDecorate %sb_ro Binding 1
+ OpDecorate %sb_ro NonWritable
+ %int = OpTypeInt 32 1
+ %uint = OpTypeInt 32 0
+ %uint_1024 = OpConstant %uint 1024
+%_arr_int_uint_1024 = OpTypeArray %int %uint_1024
+%prevent_dce_block = OpTypeStruct %_arr_int_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+ %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_runtimearr_int = OpTypeRuntimeArray %int
+ %SB_RO = OpTypeStruct %_runtimearr_int
+%_ptr_StorageBuffer_SB_RO = OpTypePointer StorageBuffer %SB_RO
+ %sb_ro = OpVariable %_ptr_StorageBuffer_SB_RO StorageBuffer
+ %uint_3 = OpConstant %uint 3
+ %uint_8 = OpConstant %uint 8
+ %uint_2 = OpConstant %uint 2
+ %13 = OpTypeCooperativeMatrixKHR %int %uint_3 %uint_8 %uint_8 %uint_2
+ %17 = OpTypeFunction %13
+%_ptr_StorageBuffer__runtimearr_int = OpTypePointer StorageBuffer %_runtimearr_int
+ %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
+ %uint_1 = OpConstant %uint 1
+%_ptr_Function_13 = OpTypePointer Function %13
+ %void = OpTypeVoid
+ %31 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_int_uint_1024 = OpTypePointer StorageBuffer %_arr_int_uint_1024
+%_ptr_StorageBuffer_int_0 = OpTypePointer StorageBuffer %int
+ %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_a798ae = OpFunction %13 None %17
+ %18 = OpLabel
+ %res = OpVariable %_ptr_Function_13 Function
+ %19 = OpAccessChain %_ptr_StorageBuffer__runtimearr_int %sb_ro %uint_0
+ %22 = OpAccessChain %_ptr_StorageBuffer_int %19 %uint_1
+ %25 = OpCooperativeMatrixLoadKHR %13 %22 %uint_1 %uint_1 NonPrivatePointer
+ OpStore %res %25
+ %28 = OpLoad %13 %res None
+ OpReturnValue %28
+ OpFunctionEnd
+%compute_main = OpFunction %void None %31
+ %32 = OpLabel
+ %33 = OpFunctionCall %13 %subgroupMatrixLoad_a798ae
+ %34 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_1024 %1 %uint_0
+ %36 = OpAccessChain %_ptr_StorageBuffer_int_0 %34 %uint_0
+ OpCooperativeMatrixStoreKHR %36 %33 %uint_0 %uint_64 NonPrivatePointer
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/a798ae.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a798ae.wgsl.expected.wgsl
new file mode 100644
index 0000000..17f9f7a
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a798ae.wgsl.expected.wgsl
@@ -0,0 +1,19 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
+
+struct SB_RO {
+ arg_0 : array<i32>,
+}
+
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+fn subgroupMatrixLoad_a798ae() -> subgroup_matrix_result<i32, 8, 8> {
+ var res : subgroup_matrix_result<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<i32, 8, 8>>(&(sb_ro.arg_0), 1u, true, 1u);
+ return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_a798ae(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/a95397.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a95397.wgsl
new file mode 100644
index 0000000..fdb58f2
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a95397.wgsl
@@ -0,0 +1,59 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+// test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// flags: --hlsl-shader-model 62
+
+
+enable chromium_experimental_subgroup_matrix;
+
+enable f16;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
+
+struct SB_RO {
+ arg_0: array<f16>,
+};
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<right, f16, 8, 8>>(ptr<storage, runtime_array<f16>, read>, u32, @const bool, u32) -> subgroup_matrix<right, f16, 8, 8>
+fn subgroupMatrixLoad_a95397() -> subgroup_matrix_right<f16, 8, 8>{
+ var res: subgroup_matrix_right<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<f16, 8, 8>>(&sb_ro.arg_0, 1u, true, 1u);
+ return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_a95397(), false, 64);
+}
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
new file mode 100644
index 0000000..3cd8b8c
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a95397.wgsl.expected.dxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: FAILED
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/a95397.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a95397.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..48f5b71
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a95397.wgsl.expected.fxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: INVALID
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/a95397.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a95397.wgsl.expected.glsl
new file mode 100644
index 0000000..cc19bf0
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a95397.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the GLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/a95397.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a95397.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..dda740a
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a95397.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/a95397.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a95397.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..4709805
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a95397.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/a95397.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a95397.wgsl.expected.msl
new file mode 100644
index 0000000..1989b14
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a95397.wgsl.expected.msl
@@ -0,0 +1,35 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+ const constant T& operator[](size_t i) const constant { return elements[i]; }
+ device T& operator[](size_t i) device { return elements[i]; }
+ const device T& operator[](size_t i) const device { return elements[i]; }
+ thread T& operator[](size_t i) thread { return elements[i]; }
+ const thread T& operator[](size_t i) const thread { return elements[i]; }
+ threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+ const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+ T elements[N];
+};
+
+struct SB_RO {
+ /* 0x0000 */ tint_array<half, 1> arg_0;
+};
+
+struct tint_module_vars_struct {
+ device tint_array<half, 1024>* prevent_dce;
+ const device SB_RO* sb_ro;
+};
+
+simdgroup_half8x8 subgroupMatrixLoad_a95397(tint_module_vars_struct tint_module_vars) {
+ simdgroup_half8x8 v = make_filled_simdgroup_matrix<half, 8, 8>(0.0h);
+ simdgroup_load(v, (&(*tint_module_vars.sb_ro).arg_0[1u]), ulong(1u), ulong2(0ul), true);
+ simdgroup_half8x8 res = v;
+ return res;
+}
+
+kernel void compute_main(device tint_array<half, 1024>* prevent_dce [[buffer(0)]], const device SB_RO* sb_ro [[buffer(1)]]) {
+ tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_ro=sb_ro};
+ simdgroup_store(subgroupMatrixLoad_a95397(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/a95397.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a95397.wgsl.expected.spvasm
new file mode 100644
index 0000000..8101077
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a95397.wgsl.expected.spvasm
@@ -0,0 +1,79 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 39
+; Schema: 0
+ OpCapability Shader
+ OpCapability VulkanMemoryModel
+ OpCapability VulkanMemoryModelDeviceScope
+ OpCapability Float16
+ OpCapability UniformAndStorageBuffer16BitAccess
+ OpCapability StorageBuffer16BitAccess
+ OpCapability CooperativeMatrixKHR
+ OpExtension "SPV_KHR_vulkan_memory_model"
+ OpExtension "SPV_KHR_cooperative_matrix"
+ OpMemoryModel Logical Vulkan
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpMemberName %prevent_dce_block 0 "inner"
+ OpName %prevent_dce_block "prevent_dce_block"
+ OpMemberName %SB_RO 0 "arg_0"
+ OpName %SB_RO "SB_RO"
+ OpName %sb_ro "sb_ro"
+ OpName %subgroupMatrixLoad_a95397 "subgroupMatrixLoad_a95397"
+ OpName %res "res"
+ OpName %compute_main "compute_main"
+ OpDecorate %_arr_half_uint_1024 ArrayStride 2
+ OpMemberDecorate %prevent_dce_block 0 Offset 0
+ OpDecorate %prevent_dce_block Block
+ OpDecorate %1 DescriptorSet 0
+ OpDecorate %1 Binding 0
+ OpDecorate %_runtimearr_half ArrayStride 2
+ OpMemberDecorate %SB_RO 0 Offset 0
+ OpDecorate %SB_RO Block
+ OpDecorate %sb_ro DescriptorSet 0
+ OpDecorate %sb_ro Binding 1
+ OpDecorate %sb_ro NonWritable
+ %half = OpTypeFloat 16
+ %uint = OpTypeInt 32 0
+ %uint_1024 = OpConstant %uint 1024
+%_arr_half_uint_1024 = OpTypeArray %half %uint_1024
+%prevent_dce_block = OpTypeStruct %_arr_half_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+ %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_runtimearr_half = OpTypeRuntimeArray %half
+ %SB_RO = OpTypeStruct %_runtimearr_half
+%_ptr_StorageBuffer_SB_RO = OpTypePointer StorageBuffer %SB_RO
+ %sb_ro = OpVariable %_ptr_StorageBuffer_SB_RO StorageBuffer
+ %uint_3 = OpConstant %uint 3
+ %uint_8 = OpConstant %uint 8
+ %uint_1 = OpConstant %uint 1
+ %13 = OpTypeCooperativeMatrixKHR %half %uint_3 %uint_8 %uint_8 %uint_1
+ %17 = OpTypeFunction %13
+%_ptr_StorageBuffer__runtimearr_half = OpTypePointer StorageBuffer %_runtimearr_half
+ %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half
+%_ptr_Function_13 = OpTypePointer Function %13
+ %void = OpTypeVoid
+ %30 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_half_uint_1024 = OpTypePointer StorageBuffer %_arr_half_uint_1024
+%_ptr_StorageBuffer_half_0 = OpTypePointer StorageBuffer %half
+ %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_a95397 = OpFunction %13 None %17
+ %18 = OpLabel
+ %res = OpVariable %_ptr_Function_13 Function
+ %19 = OpAccessChain %_ptr_StorageBuffer__runtimearr_half %sb_ro %uint_0
+ %22 = OpAccessChain %_ptr_StorageBuffer_half %19 %uint_1
+ %24 = OpCooperativeMatrixLoadKHR %13 %22 %uint_1 %uint_1 NonPrivatePointer
+ OpStore %res %24
+ %27 = OpLoad %13 %res None
+ OpReturnValue %27
+ OpFunctionEnd
+%compute_main = OpFunction %void None %30
+ %31 = OpLabel
+ %32 = OpFunctionCall %13 %subgroupMatrixLoad_a95397
+ %33 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_1024 %1 %uint_0
+ %35 = OpAccessChain %_ptr_StorageBuffer_half_0 %33 %uint_0
+ OpCooperativeMatrixStoreKHR %35 %32 %uint_0 %uint_64 NonPrivatePointer
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/a95397.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a95397.wgsl.expected.wgsl
new file mode 100644
index 0000000..11db653
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/a95397.wgsl.expected.wgsl
@@ -0,0 +1,20 @@
+enable chromium_experimental_subgroup_matrix;
+enable f16;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
+
+struct SB_RO {
+ arg_0 : array<f16>,
+}
+
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+fn subgroupMatrixLoad_a95397() -> subgroup_matrix_right<f16, 8, 8> {
+ var res : subgroup_matrix_right<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<f16, 8, 8>>(&(sb_ro.arg_0), 1u, true, 1u);
+ return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_a95397(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/aadc6f.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/aadc6f.wgsl
new file mode 100644
index 0000000..8b95735
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/aadc6f.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, i32, 8, 8>>(ptr<storage, runtime_array<i32>, read_write>, u32, @const bool, u32) -> subgroup_matrix<right, i32, 8, 8>
+fn subgroupMatrixLoad_aadc6f() -> subgroup_matrix_right<i32, 8, 8>{
+ var res: subgroup_matrix_right<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<i32, 8, 8>>(&sb_rw.arg_0, 1u, true, 1u);
+ return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_aadc6f(), false, 64);
+}
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
new file mode 100644
index 0000000..3cd8b8c
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/aadc6f.wgsl.expected.dxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: FAILED
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/aadc6f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/aadc6f.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..48f5b71
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/aadc6f.wgsl.expected.fxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: INVALID
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/aadc6f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/aadc6f.wgsl.expected.glsl
new file mode 100644
index 0000000..cc19bf0
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/aadc6f.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the GLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/aadc6f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/aadc6f.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..dda740a
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/aadc6f.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/aadc6f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/aadc6f.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..4709805
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/aadc6f.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/aadc6f.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/aadc6f.wgsl.expected.msl
new file mode 100644
index 0000000..5dba48c
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/aadc6f.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: non-float subgroup matrices are not supported by the MSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/aadc6f.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/aadc6f.wgsl.expected.spvasm
new file mode 100644
index 0000000..940ce1a
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/aadc6f.wgsl.expected.spvasm
@@ -0,0 +1,74 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 38
+; Schema: 0
+ OpCapability Shader
+ OpCapability VulkanMemoryModel
+ OpCapability VulkanMemoryModelDeviceScope
+ OpCapability CooperativeMatrixKHR
+ OpExtension "SPV_KHR_vulkan_memory_model"
+ OpExtension "SPV_KHR_cooperative_matrix"
+ OpMemoryModel Logical Vulkan
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpMemberName %prevent_dce_block 0 "inner"
+ OpName %prevent_dce_block "prevent_dce_block"
+ OpMemberName %SB_RW 0 "arg_0"
+ OpName %SB_RW "SB_RW"
+ OpName %sb_rw "sb_rw"
+ OpName %subgroupMatrixLoad_aadc6f "subgroupMatrixLoad_aadc6f"
+ OpName %res "res"
+ OpName %compute_main "compute_main"
+ OpDecorate %_arr_int_uint_1024 ArrayStride 4
+ OpMemberDecorate %prevent_dce_block 0 Offset 0
+ OpDecorate %prevent_dce_block Block
+ OpDecorate %1 DescriptorSet 0
+ OpDecorate %1 Binding 0
+ OpDecorate %_runtimearr_int ArrayStride 4
+ OpMemberDecorate %SB_RW 0 Offset 0
+ OpDecorate %SB_RW Block
+ OpDecorate %sb_rw DescriptorSet 0
+ OpDecorate %sb_rw Binding 1
+ %int = OpTypeInt 32 1
+ %uint = OpTypeInt 32 0
+ %uint_1024 = OpConstant %uint 1024
+%_arr_int_uint_1024 = OpTypeArray %int %uint_1024
+%prevent_dce_block = OpTypeStruct %_arr_int_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+ %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_runtimearr_int = OpTypeRuntimeArray %int
+ %SB_RW = OpTypeStruct %_runtimearr_int
+%_ptr_StorageBuffer_SB_RW = OpTypePointer StorageBuffer %SB_RW
+ %sb_rw = OpVariable %_ptr_StorageBuffer_SB_RW StorageBuffer
+ %uint_3 = OpConstant %uint 3
+ %uint_8 = OpConstant %uint 8
+ %uint_1 = OpConstant %uint 1
+ %13 = OpTypeCooperativeMatrixKHR %int %uint_3 %uint_8 %uint_8 %uint_1
+ %17 = OpTypeFunction %13
+%_ptr_StorageBuffer__runtimearr_int = OpTypePointer StorageBuffer %_runtimearr_int
+ %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
+%_ptr_Function_13 = OpTypePointer Function %13
+ %void = OpTypeVoid
+ %30 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_int_uint_1024 = OpTypePointer StorageBuffer %_arr_int_uint_1024
+ %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_aadc6f = OpFunction %13 None %17
+ %18 = OpLabel
+ %res = OpVariable %_ptr_Function_13 Function
+ %19 = OpAccessChain %_ptr_StorageBuffer__runtimearr_int %sb_rw %uint_0
+ %22 = OpAccessChain %_ptr_StorageBuffer_int %19 %uint_1
+ %24 = OpCooperativeMatrixLoadKHR %13 %22 %uint_1 %uint_1 NonPrivatePointer
+ OpStore %res %24
+ %27 = OpLoad %13 %res None
+ OpReturnValue %27
+ OpFunctionEnd
+%compute_main = OpFunction %void None %30
+ %31 = OpLabel
+ %32 = OpFunctionCall %13 %subgroupMatrixLoad_aadc6f
+ %33 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_1024 %1 %uint_0
+ %35 = OpAccessChain %_ptr_StorageBuffer_int %33 %uint_0
+ OpCooperativeMatrixStoreKHR %35 %32 %uint_0 %uint_64 NonPrivatePointer
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/aadc6f.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/aadc6f.wgsl.expected.wgsl
new file mode 100644
index 0000000..2d5488d
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/aadc6f.wgsl.expected.wgsl
@@ -0,0 +1,19 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
+
+struct SB_RW {
+ arg_0 : array<i32>,
+}
+
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixLoad_aadc6f() -> subgroup_matrix_right<i32, 8, 8> {
+ var res : subgroup_matrix_right<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<i32, 8, 8>>(&(sb_rw.arg_0), 1u, true, 1u);
+ return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_aadc6f(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/c71ce4.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/c71ce4.wgsl
new file mode 100644
index 0000000..0dd3f87
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/c71ce4.wgsl
@@ -0,0 +1,59 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+// test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// flags: --hlsl-shader-model 62
+
+
+enable chromium_experimental_subgroup_matrix;
+
+enable f16;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
+
+struct SB_RW {
+ arg_0: array<f16>,
+};
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<right, f16, 8, 8>>(ptr<storage, runtime_array<f16>, read_write>, u32, @const bool, u32) -> subgroup_matrix<right, f16, 8, 8>
+fn subgroupMatrixLoad_c71ce4() -> subgroup_matrix_right<f16, 8, 8>{
+ var res: subgroup_matrix_right<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<f16, 8, 8>>(&sb_rw.arg_0, 1u, true, 1u);
+ return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_c71ce4(), false, 64);
+}
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
new file mode 100644
index 0000000..3cd8b8c
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/c71ce4.wgsl.expected.dxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: FAILED
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/c71ce4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/c71ce4.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..48f5b71
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/c71ce4.wgsl.expected.fxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: INVALID
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/c71ce4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/c71ce4.wgsl.expected.glsl
new file mode 100644
index 0000000..cc19bf0
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/c71ce4.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the GLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/c71ce4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/c71ce4.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..dda740a
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/c71ce4.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/c71ce4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/c71ce4.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..4709805
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/c71ce4.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/c71ce4.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/c71ce4.wgsl.expected.msl
new file mode 100644
index 0000000..8ef983f
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/c71ce4.wgsl.expected.msl
@@ -0,0 +1,35 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+ const constant T& operator[](size_t i) const constant { return elements[i]; }
+ device T& operator[](size_t i) device { return elements[i]; }
+ const device T& operator[](size_t i) const device { return elements[i]; }
+ thread T& operator[](size_t i) thread { return elements[i]; }
+ const thread T& operator[](size_t i) const thread { return elements[i]; }
+ threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+ const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+ T elements[N];
+};
+
+struct SB_RW {
+ /* 0x0000 */ tint_array<half, 1> arg_0;
+};
+
+struct tint_module_vars_struct {
+ device tint_array<half, 1024>* prevent_dce;
+ device SB_RW* sb_rw;
+};
+
+simdgroup_half8x8 subgroupMatrixLoad_c71ce4(tint_module_vars_struct tint_module_vars) {
+ simdgroup_half8x8 v = make_filled_simdgroup_matrix<half, 8, 8>(0.0h);
+ simdgroup_load(v, (&(*tint_module_vars.sb_rw).arg_0[1u]), ulong(1u), ulong2(0ul), true);
+ simdgroup_half8x8 res = v;
+ return res;
+}
+
+kernel void compute_main(device tint_array<half, 1024>* prevent_dce [[buffer(0)]], device SB_RW* sb_rw [[buffer(1)]]) {
+ tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_rw=sb_rw};
+ simdgroup_store(subgroupMatrixLoad_c71ce4(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/c71ce4.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/c71ce4.wgsl.expected.spvasm
new file mode 100644
index 0000000..2588b9a
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/c71ce4.wgsl.expected.spvasm
@@ -0,0 +1,77 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 38
+; Schema: 0
+ OpCapability Shader
+ OpCapability VulkanMemoryModel
+ OpCapability VulkanMemoryModelDeviceScope
+ OpCapability Float16
+ OpCapability UniformAndStorageBuffer16BitAccess
+ OpCapability StorageBuffer16BitAccess
+ OpCapability CooperativeMatrixKHR
+ OpExtension "SPV_KHR_vulkan_memory_model"
+ OpExtension "SPV_KHR_cooperative_matrix"
+ OpMemoryModel Logical Vulkan
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpMemberName %prevent_dce_block 0 "inner"
+ OpName %prevent_dce_block "prevent_dce_block"
+ OpMemberName %SB_RW 0 "arg_0"
+ OpName %SB_RW "SB_RW"
+ OpName %sb_rw "sb_rw"
+ OpName %subgroupMatrixLoad_c71ce4 "subgroupMatrixLoad_c71ce4"
+ OpName %res "res"
+ OpName %compute_main "compute_main"
+ OpDecorate %_arr_half_uint_1024 ArrayStride 2
+ OpMemberDecorate %prevent_dce_block 0 Offset 0
+ OpDecorate %prevent_dce_block Block
+ OpDecorate %1 DescriptorSet 0
+ OpDecorate %1 Binding 0
+ OpDecorate %_runtimearr_half ArrayStride 2
+ OpMemberDecorate %SB_RW 0 Offset 0
+ OpDecorate %SB_RW Block
+ OpDecorate %sb_rw DescriptorSet 0
+ OpDecorate %sb_rw Binding 1
+ %half = OpTypeFloat 16
+ %uint = OpTypeInt 32 0
+ %uint_1024 = OpConstant %uint 1024
+%_arr_half_uint_1024 = OpTypeArray %half %uint_1024
+%prevent_dce_block = OpTypeStruct %_arr_half_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+ %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_runtimearr_half = OpTypeRuntimeArray %half
+ %SB_RW = OpTypeStruct %_runtimearr_half
+%_ptr_StorageBuffer_SB_RW = OpTypePointer StorageBuffer %SB_RW
+ %sb_rw = OpVariable %_ptr_StorageBuffer_SB_RW StorageBuffer
+ %uint_3 = OpConstant %uint 3
+ %uint_8 = OpConstant %uint 8
+ %uint_1 = OpConstant %uint 1
+ %13 = OpTypeCooperativeMatrixKHR %half %uint_3 %uint_8 %uint_8 %uint_1
+ %17 = OpTypeFunction %13
+%_ptr_StorageBuffer__runtimearr_half = OpTypePointer StorageBuffer %_runtimearr_half
+ %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half
+%_ptr_Function_13 = OpTypePointer Function %13
+ %void = OpTypeVoid
+ %30 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_half_uint_1024 = OpTypePointer StorageBuffer %_arr_half_uint_1024
+ %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_c71ce4 = OpFunction %13 None %17
+ %18 = OpLabel
+ %res = OpVariable %_ptr_Function_13 Function
+ %19 = OpAccessChain %_ptr_StorageBuffer__runtimearr_half %sb_rw %uint_0
+ %22 = OpAccessChain %_ptr_StorageBuffer_half %19 %uint_1
+ %24 = OpCooperativeMatrixLoadKHR %13 %22 %uint_1 %uint_1 NonPrivatePointer
+ OpStore %res %24
+ %27 = OpLoad %13 %res None
+ OpReturnValue %27
+ OpFunctionEnd
+%compute_main = OpFunction %void None %30
+ %31 = OpLabel
+ %32 = OpFunctionCall %13 %subgroupMatrixLoad_c71ce4
+ %33 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_1024 %1 %uint_0
+ %35 = OpAccessChain %_ptr_StorageBuffer_half %33 %uint_0
+ OpCooperativeMatrixStoreKHR %35 %32 %uint_0 %uint_64 NonPrivatePointer
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/c71ce4.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/c71ce4.wgsl.expected.wgsl
new file mode 100644
index 0000000..54fada3
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/c71ce4.wgsl.expected.wgsl
@@ -0,0 +1,20 @@
+enable chromium_experimental_subgroup_matrix;
+enable f16;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
+
+struct SB_RW {
+ arg_0 : array<f16>,
+}
+
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixLoad_c71ce4() -> subgroup_matrix_right<f16, 8, 8> {
+ var res : subgroup_matrix_right<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<f16, 8, 8>>(&(sb_rw.arg_0), 1u, true, 1u);
+ return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_c71ce4(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4539.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4539.wgsl
new file mode 100644
index 0000000..3d4e5ff
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4539.wgsl
@@ -0,0 +1,57 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+// test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
+
+struct SB_RO {
+ arg_0: array<f32>,
+};
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<result, f32, 8, 8>>(ptr<storage, runtime_array<f32>, read>, u32, @const bool, u32) -> subgroup_matrix<result, f32, 8, 8>
+fn subgroupMatrixLoad_ca4539() -> subgroup_matrix_result<f32, 8, 8>{
+ var res: subgroup_matrix_result<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<f32, 8, 8>>(&sb_ro.arg_0, 1u, true, 1u);
+ return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_ca4539(), false, 64);
+}
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
new file mode 100644
index 0000000..3cd8b8c
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4539.wgsl.expected.dxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: FAILED
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4539.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4539.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..48f5b71
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4539.wgsl.expected.fxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: INVALID
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4539.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4539.wgsl.expected.glsl
new file mode 100644
index 0000000..cc19bf0
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4539.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the GLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4539.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4539.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..dda740a
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4539.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4539.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4539.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..4709805
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4539.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4539.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4539.wgsl.expected.msl
new file mode 100644
index 0000000..e38777b
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4539.wgsl.expected.msl
@@ -0,0 +1,35 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+ const constant T& operator[](size_t i) const constant { return elements[i]; }
+ device T& operator[](size_t i) device { return elements[i]; }
+ const device T& operator[](size_t i) const device { return elements[i]; }
+ thread T& operator[](size_t i) thread { return elements[i]; }
+ const thread T& operator[](size_t i) const thread { return elements[i]; }
+ threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+ const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+ T elements[N];
+};
+
+struct SB_RO {
+ /* 0x0000 */ tint_array<float, 1> arg_0;
+};
+
+struct tint_module_vars_struct {
+ device tint_array<float, 1024>* prevent_dce;
+ const device SB_RO* sb_ro;
+};
+
+simdgroup_float8x8 subgroupMatrixLoad_ca4539(tint_module_vars_struct tint_module_vars) {
+ simdgroup_float8x8 v = make_filled_simdgroup_matrix<float, 8, 8>(0.0f);
+ simdgroup_load(v, (&(*tint_module_vars.sb_ro).arg_0[1u]), ulong(1u), ulong2(0ul), true);
+ simdgroup_float8x8 res = v;
+ return res;
+}
+
+kernel void compute_main(device tint_array<float, 1024>* prevent_dce [[buffer(0)]], const device SB_RO* sb_ro [[buffer(1)]]) {
+ tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_ro=sb_ro};
+ simdgroup_store(subgroupMatrixLoad_ca4539(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4539.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4539.wgsl.expected.spvasm
new file mode 100644
index 0000000..ff95f27a
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4539.wgsl.expected.spvasm
@@ -0,0 +1,77 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 40
+; Schema: 0
+ OpCapability Shader
+ OpCapability VulkanMemoryModel
+ OpCapability VulkanMemoryModelDeviceScope
+ OpCapability CooperativeMatrixKHR
+ OpExtension "SPV_KHR_vulkan_memory_model"
+ OpExtension "SPV_KHR_cooperative_matrix"
+ OpMemoryModel Logical Vulkan
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpMemberName %prevent_dce_block 0 "inner"
+ OpName %prevent_dce_block "prevent_dce_block"
+ OpMemberName %SB_RO 0 "arg_0"
+ OpName %SB_RO "SB_RO"
+ OpName %sb_ro "sb_ro"
+ OpName %subgroupMatrixLoad_ca4539 "subgroupMatrixLoad_ca4539"
+ OpName %res "res"
+ OpName %compute_main "compute_main"
+ OpDecorate %_arr_float_uint_1024 ArrayStride 4
+ OpMemberDecorate %prevent_dce_block 0 Offset 0
+ OpDecorate %prevent_dce_block Block
+ OpDecorate %1 DescriptorSet 0
+ OpDecorate %1 Binding 0
+ OpDecorate %_runtimearr_float ArrayStride 4
+ OpMemberDecorate %SB_RO 0 Offset 0
+ OpDecorate %SB_RO Block
+ OpDecorate %sb_ro DescriptorSet 0
+ OpDecorate %sb_ro Binding 1
+ OpDecorate %sb_ro NonWritable
+ %float = OpTypeFloat 32
+ %uint = OpTypeInt 32 0
+ %uint_1024 = OpConstant %uint 1024
+%_arr_float_uint_1024 = OpTypeArray %float %uint_1024
+%prevent_dce_block = OpTypeStruct %_arr_float_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+ %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_runtimearr_float = OpTypeRuntimeArray %float
+ %SB_RO = OpTypeStruct %_runtimearr_float
+%_ptr_StorageBuffer_SB_RO = OpTypePointer StorageBuffer %SB_RO
+ %sb_ro = OpVariable %_ptr_StorageBuffer_SB_RO StorageBuffer
+ %uint_3 = OpConstant %uint 3
+ %uint_8 = OpConstant %uint 8
+ %uint_2 = OpConstant %uint 2
+ %13 = OpTypeCooperativeMatrixKHR %float %uint_3 %uint_8 %uint_8 %uint_2
+ %17 = OpTypeFunction %13
+%_ptr_StorageBuffer__runtimearr_float = OpTypePointer StorageBuffer %_runtimearr_float
+ %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
+ %uint_1 = OpConstant %uint 1
+%_ptr_Function_13 = OpTypePointer Function %13
+ %void = OpTypeVoid
+ %31 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_float_uint_1024 = OpTypePointer StorageBuffer %_arr_float_uint_1024
+%_ptr_StorageBuffer_float_0 = OpTypePointer StorageBuffer %float
+ %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_ca4539 = OpFunction %13 None %17
+ %18 = OpLabel
+ %res = OpVariable %_ptr_Function_13 Function
+ %19 = OpAccessChain %_ptr_StorageBuffer__runtimearr_float %sb_ro %uint_0
+ %22 = OpAccessChain %_ptr_StorageBuffer_float %19 %uint_1
+ %25 = OpCooperativeMatrixLoadKHR %13 %22 %uint_1 %uint_1 NonPrivatePointer
+ OpStore %res %25
+ %28 = OpLoad %13 %res None
+ OpReturnValue %28
+ OpFunctionEnd
+%compute_main = OpFunction %void None %31
+ %32 = OpLabel
+ %33 = OpFunctionCall %13 %subgroupMatrixLoad_ca4539
+ %34 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_1024 %1 %uint_0
+ %36 = OpAccessChain %_ptr_StorageBuffer_float_0 %34 %uint_0
+ OpCooperativeMatrixStoreKHR %36 %33 %uint_0 %uint_64 NonPrivatePointer
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4539.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4539.wgsl.expected.wgsl
new file mode 100644
index 0000000..3f2cc37
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/ca4539.wgsl.expected.wgsl
@@ -0,0 +1,19 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
+
+struct SB_RO {
+ arg_0 : array<f32>,
+}
+
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+fn subgroupMatrixLoad_ca4539() -> subgroup_matrix_result<f32, 8, 8> {
+ var res : subgroup_matrix_result<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<f32, 8, 8>>(&(sb_ro.arg_0), 1u, true, 1u);
+ return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_ca4539(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/d80c87.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d80c87.wgsl
new file mode 100644
index 0000000..1da34d5
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d80c87.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, u32, 8, 8>>(ptr<storage, runtime_array<u32>, read>, u32, @const bool, u32) -> subgroup_matrix<result, u32, 8, 8>
+fn subgroupMatrixLoad_d80c87() -> subgroup_matrix_result<u32, 8, 8>{
+ var res: subgroup_matrix_result<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<u32, 8, 8>>(&sb_ro.arg_0, 1u, true, 1u);
+ return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_d80c87(), false, 64);
+}
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
new file mode 100644
index 0000000..3cd8b8c
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d80c87.wgsl.expected.dxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: FAILED
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/d80c87.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d80c87.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..48f5b71
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d80c87.wgsl.expected.fxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: INVALID
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/d80c87.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d80c87.wgsl.expected.glsl
new file mode 100644
index 0000000..cc19bf0
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d80c87.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the GLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/d80c87.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d80c87.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..dda740a
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d80c87.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/d80c87.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d80c87.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..4709805
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d80c87.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/d80c87.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d80c87.wgsl.expected.msl
new file mode 100644
index 0000000..5dba48c
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d80c87.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: non-float subgroup matrices are not supported by the MSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/d80c87.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d80c87.wgsl.expected.spvasm
new file mode 100644
index 0000000..5429b7f
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d80c87.wgsl.expected.spvasm
@@ -0,0 +1,76 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 39
+; Schema: 0
+ OpCapability Shader
+ OpCapability VulkanMemoryModel
+ OpCapability VulkanMemoryModelDeviceScope
+ OpCapability CooperativeMatrixKHR
+ OpExtension "SPV_KHR_vulkan_memory_model"
+ OpExtension "SPV_KHR_cooperative_matrix"
+ OpMemoryModel Logical Vulkan
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpMemberName %prevent_dce_block 0 "inner"
+ OpName %prevent_dce_block "prevent_dce_block"
+ OpMemberName %SB_RO 0 "arg_0"
+ OpName %SB_RO "SB_RO"
+ OpName %sb_ro "sb_ro"
+ OpName %subgroupMatrixLoad_d80c87 "subgroupMatrixLoad_d80c87"
+ OpName %res "res"
+ OpName %compute_main "compute_main"
+ OpDecorate %_arr_uint_uint_1024 ArrayStride 4
+ OpMemberDecorate %prevent_dce_block 0 Offset 0
+ OpDecorate %prevent_dce_block Block
+ OpDecorate %1 DescriptorSet 0
+ OpDecorate %1 Binding 0
+ OpDecorate %_runtimearr_uint ArrayStride 4
+ OpMemberDecorate %SB_RO 0 Offset 0
+ OpDecorate %SB_RO Block
+ OpDecorate %sb_ro DescriptorSet 0
+ OpDecorate %sb_ro Binding 1
+ OpDecorate %sb_ro NonWritable
+ %uint = OpTypeInt 32 0
+ %uint_1024 = OpConstant %uint 1024
+%_arr_uint_uint_1024 = OpTypeArray %uint %uint_1024
+%prevent_dce_block = OpTypeStruct %_arr_uint_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+ %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_runtimearr_uint = OpTypeRuntimeArray %uint
+ %SB_RO = OpTypeStruct %_runtimearr_uint
+%_ptr_StorageBuffer_SB_RO = OpTypePointer StorageBuffer %SB_RO
+ %sb_ro = OpVariable %_ptr_StorageBuffer_SB_RO StorageBuffer
+ %uint_3 = OpConstant %uint 3
+ %uint_8 = OpConstant %uint 8
+ %uint_2 = OpConstant %uint 2
+ %12 = OpTypeCooperativeMatrixKHR %uint %uint_3 %uint_8 %uint_8 %uint_2
+ %16 = OpTypeFunction %12
+%_ptr_StorageBuffer__runtimearr_uint = OpTypePointer StorageBuffer %_runtimearr_uint
+ %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
+ %uint_1 = OpConstant %uint 1
+%_ptr_Function_12 = OpTypePointer Function %12
+ %void = OpTypeVoid
+ %30 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_uint_uint_1024 = OpTypePointer StorageBuffer %_arr_uint_uint_1024
+%_ptr_StorageBuffer_uint_0 = OpTypePointer StorageBuffer %uint
+ %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_d80c87 = OpFunction %12 None %16
+ %17 = OpLabel
+ %res = OpVariable %_ptr_Function_12 Function
+ %18 = OpAccessChain %_ptr_StorageBuffer__runtimearr_uint %sb_ro %uint_0
+ %21 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_1
+ %24 = OpCooperativeMatrixLoadKHR %12 %21 %uint_1 %uint_1 NonPrivatePointer
+ OpStore %res %24
+ %27 = OpLoad %12 %res None
+ OpReturnValue %27
+ OpFunctionEnd
+%compute_main = OpFunction %void None %30
+ %31 = OpLabel
+ %32 = OpFunctionCall %12 %subgroupMatrixLoad_d80c87
+ %33 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_1024 %1 %uint_0
+ %35 = OpAccessChain %_ptr_StorageBuffer_uint_0 %33 %uint_0
+ OpCooperativeMatrixStoreKHR %35 %32 %uint_0 %uint_64 NonPrivatePointer
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/d80c87.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d80c87.wgsl.expected.wgsl
new file mode 100644
index 0000000..e98015a
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/d80c87.wgsl.expected.wgsl
@@ -0,0 +1,19 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
+
+struct SB_RO {
+ arg_0 : array<u32>,
+}
+
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+fn subgroupMatrixLoad_d80c87() -> subgroup_matrix_result<u32, 8, 8> {
+ var res : subgroup_matrix_result<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<u32, 8, 8>>(&(sb_ro.arg_0), 1u, true, 1u);
+ return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_d80c87(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/da5d2c.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/da5d2c.wgsl
new file mode 100644
index 0000000..0f7bce9
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/da5d2c.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, i32, 8, 8>>(ptr<storage, runtime_array<i32>, read>, u32, @const bool, u32) -> subgroup_matrix<right, i32, 8, 8>
+fn subgroupMatrixLoad_da5d2c() -> subgroup_matrix_right<i32, 8, 8>{
+ var res: subgroup_matrix_right<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<i32, 8, 8>>(&sb_ro.arg_0, 1u, true, 1u);
+ return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_da5d2c(), false, 64);
+}
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
new file mode 100644
index 0000000..3cd8b8c
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/da5d2c.wgsl.expected.dxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: FAILED
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/da5d2c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/da5d2c.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..48f5b71
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/da5d2c.wgsl.expected.fxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: INVALID
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/da5d2c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/da5d2c.wgsl.expected.glsl
new file mode 100644
index 0000000..cc19bf0
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/da5d2c.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the GLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/da5d2c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/da5d2c.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..dda740a
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/da5d2c.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/da5d2c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/da5d2c.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..4709805
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/da5d2c.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/da5d2c.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/da5d2c.wgsl.expected.msl
new file mode 100644
index 0000000..5dba48c
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/da5d2c.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: non-float subgroup matrices are not supported by the MSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/da5d2c.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/da5d2c.wgsl.expected.spvasm
new file mode 100644
index 0000000..d79b3c1
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/da5d2c.wgsl.expected.spvasm
@@ -0,0 +1,76 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 39
+; Schema: 0
+ OpCapability Shader
+ OpCapability VulkanMemoryModel
+ OpCapability VulkanMemoryModelDeviceScope
+ OpCapability CooperativeMatrixKHR
+ OpExtension "SPV_KHR_vulkan_memory_model"
+ OpExtension "SPV_KHR_cooperative_matrix"
+ OpMemoryModel Logical Vulkan
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpMemberName %prevent_dce_block 0 "inner"
+ OpName %prevent_dce_block "prevent_dce_block"
+ OpMemberName %SB_RO 0 "arg_0"
+ OpName %SB_RO "SB_RO"
+ OpName %sb_ro "sb_ro"
+ OpName %subgroupMatrixLoad_da5d2c "subgroupMatrixLoad_da5d2c"
+ OpName %res "res"
+ OpName %compute_main "compute_main"
+ OpDecorate %_arr_int_uint_1024 ArrayStride 4
+ OpMemberDecorate %prevent_dce_block 0 Offset 0
+ OpDecorate %prevent_dce_block Block
+ OpDecorate %1 DescriptorSet 0
+ OpDecorate %1 Binding 0
+ OpDecorate %_runtimearr_int ArrayStride 4
+ OpMemberDecorate %SB_RO 0 Offset 0
+ OpDecorate %SB_RO Block
+ OpDecorate %sb_ro DescriptorSet 0
+ OpDecorate %sb_ro Binding 1
+ OpDecorate %sb_ro NonWritable
+ %int = OpTypeInt 32 1
+ %uint = OpTypeInt 32 0
+ %uint_1024 = OpConstant %uint 1024
+%_arr_int_uint_1024 = OpTypeArray %int %uint_1024
+%prevent_dce_block = OpTypeStruct %_arr_int_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+ %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_runtimearr_int = OpTypeRuntimeArray %int
+ %SB_RO = OpTypeStruct %_runtimearr_int
+%_ptr_StorageBuffer_SB_RO = OpTypePointer StorageBuffer %SB_RO
+ %sb_ro = OpVariable %_ptr_StorageBuffer_SB_RO StorageBuffer
+ %uint_3 = OpConstant %uint 3
+ %uint_8 = OpConstant %uint 8
+ %uint_1 = OpConstant %uint 1
+ %13 = OpTypeCooperativeMatrixKHR %int %uint_3 %uint_8 %uint_8 %uint_1
+ %17 = OpTypeFunction %13
+%_ptr_StorageBuffer__runtimearr_int = OpTypePointer StorageBuffer %_runtimearr_int
+ %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
+%_ptr_Function_13 = OpTypePointer Function %13
+ %void = OpTypeVoid
+ %30 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_int_uint_1024 = OpTypePointer StorageBuffer %_arr_int_uint_1024
+%_ptr_StorageBuffer_int_0 = OpTypePointer StorageBuffer %int
+ %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_da5d2c = OpFunction %13 None %17
+ %18 = OpLabel
+ %res = OpVariable %_ptr_Function_13 Function
+ %19 = OpAccessChain %_ptr_StorageBuffer__runtimearr_int %sb_ro %uint_0
+ %22 = OpAccessChain %_ptr_StorageBuffer_int %19 %uint_1
+ %24 = OpCooperativeMatrixLoadKHR %13 %22 %uint_1 %uint_1 NonPrivatePointer
+ OpStore %res %24
+ %27 = OpLoad %13 %res None
+ OpReturnValue %27
+ OpFunctionEnd
+%compute_main = OpFunction %void None %30
+ %31 = OpLabel
+ %32 = OpFunctionCall %13 %subgroupMatrixLoad_da5d2c
+ %33 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_1024 %1 %uint_0
+ %35 = OpAccessChain %_ptr_StorageBuffer_int_0 %33 %uint_0
+ OpCooperativeMatrixStoreKHR %35 %32 %uint_0 %uint_64 NonPrivatePointer
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/da5d2c.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/da5d2c.wgsl.expected.wgsl
new file mode 100644
index 0000000..ae45088
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/da5d2c.wgsl.expected.wgsl
@@ -0,0 +1,19 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
+
+struct SB_RO {
+ arg_0 : array<i32>,
+}
+
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+fn subgroupMatrixLoad_da5d2c() -> subgroup_matrix_right<i32, 8, 8> {
+ var res : subgroup_matrix_right<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<i32, 8, 8>>(&(sb_ro.arg_0), 1u, true, 1u);
+ return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_da5d2c(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/df98ff.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/df98ff.wgsl
new file mode 100644
index 0000000..4bcbf2c
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/df98ff.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, u32, 8, 8>>(ptr<storage, runtime_array<u32>, read>, u32, @const bool, u32) -> subgroup_matrix<right, u32, 8, 8>
+fn subgroupMatrixLoad_df98ff() -> subgroup_matrix_right<u32, 8, 8>{
+ var res: subgroup_matrix_right<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<u32, 8, 8>>(&sb_ro.arg_0, 1u, true, 1u);
+ return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_df98ff(), false, 64);
+}
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
new file mode 100644
index 0000000..3cd8b8c
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/df98ff.wgsl.expected.dxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: FAILED
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/df98ff.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/df98ff.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..48f5b71
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/df98ff.wgsl.expected.fxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: INVALID
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/df98ff.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/df98ff.wgsl.expected.glsl
new file mode 100644
index 0000000..cc19bf0
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/df98ff.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the GLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/df98ff.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/df98ff.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..dda740a
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/df98ff.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/df98ff.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/df98ff.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..4709805
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/df98ff.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/df98ff.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/df98ff.wgsl.expected.msl
new file mode 100644
index 0000000..5dba48c
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/df98ff.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: non-float subgroup matrices are not supported by the MSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/df98ff.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/df98ff.wgsl.expected.spvasm
new file mode 100644
index 0000000..87a6a19
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/df98ff.wgsl.expected.spvasm
@@ -0,0 +1,75 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 38
+; Schema: 0
+ OpCapability Shader
+ OpCapability VulkanMemoryModel
+ OpCapability VulkanMemoryModelDeviceScope
+ OpCapability CooperativeMatrixKHR
+ OpExtension "SPV_KHR_vulkan_memory_model"
+ OpExtension "SPV_KHR_cooperative_matrix"
+ OpMemoryModel Logical Vulkan
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpMemberName %prevent_dce_block 0 "inner"
+ OpName %prevent_dce_block "prevent_dce_block"
+ OpMemberName %SB_RO 0 "arg_0"
+ OpName %SB_RO "SB_RO"
+ OpName %sb_ro "sb_ro"
+ OpName %subgroupMatrixLoad_df98ff "subgroupMatrixLoad_df98ff"
+ OpName %res "res"
+ OpName %compute_main "compute_main"
+ OpDecorate %_arr_uint_uint_1024 ArrayStride 4
+ OpMemberDecorate %prevent_dce_block 0 Offset 0
+ OpDecorate %prevent_dce_block Block
+ OpDecorate %1 DescriptorSet 0
+ OpDecorate %1 Binding 0
+ OpDecorate %_runtimearr_uint ArrayStride 4
+ OpMemberDecorate %SB_RO 0 Offset 0
+ OpDecorate %SB_RO Block
+ OpDecorate %sb_ro DescriptorSet 0
+ OpDecorate %sb_ro Binding 1
+ OpDecorate %sb_ro NonWritable
+ %uint = OpTypeInt 32 0
+ %uint_1024 = OpConstant %uint 1024
+%_arr_uint_uint_1024 = OpTypeArray %uint %uint_1024
+%prevent_dce_block = OpTypeStruct %_arr_uint_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+ %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_runtimearr_uint = OpTypeRuntimeArray %uint
+ %SB_RO = OpTypeStruct %_runtimearr_uint
+%_ptr_StorageBuffer_SB_RO = OpTypePointer StorageBuffer %SB_RO
+ %sb_ro = OpVariable %_ptr_StorageBuffer_SB_RO StorageBuffer
+ %uint_3 = OpConstant %uint 3
+ %uint_8 = OpConstant %uint 8
+ %uint_1 = OpConstant %uint 1
+ %12 = OpTypeCooperativeMatrixKHR %uint %uint_3 %uint_8 %uint_8 %uint_1
+ %16 = OpTypeFunction %12
+%_ptr_StorageBuffer__runtimearr_uint = OpTypePointer StorageBuffer %_runtimearr_uint
+ %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
+%_ptr_Function_12 = OpTypePointer Function %12
+ %void = OpTypeVoid
+ %29 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_uint_uint_1024 = OpTypePointer StorageBuffer %_arr_uint_uint_1024
+%_ptr_StorageBuffer_uint_0 = OpTypePointer StorageBuffer %uint
+ %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_df98ff = OpFunction %12 None %16
+ %17 = OpLabel
+ %res = OpVariable %_ptr_Function_12 Function
+ %18 = OpAccessChain %_ptr_StorageBuffer__runtimearr_uint %sb_ro %uint_0
+ %21 = OpAccessChain %_ptr_StorageBuffer_uint %18 %uint_1
+ %23 = OpCooperativeMatrixLoadKHR %12 %21 %uint_1 %uint_1 NonPrivatePointer
+ OpStore %res %23
+ %26 = OpLoad %12 %res None
+ OpReturnValue %26
+ OpFunctionEnd
+%compute_main = OpFunction %void None %29
+ %30 = OpLabel
+ %31 = OpFunctionCall %12 %subgroupMatrixLoad_df98ff
+ %32 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_1024 %1 %uint_0
+ %34 = OpAccessChain %_ptr_StorageBuffer_uint_0 %32 %uint_0
+ OpCooperativeMatrixStoreKHR %34 %31 %uint_0 %uint_64 NonPrivatePointer
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/df98ff.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/df98ff.wgsl.expected.wgsl
new file mode 100644
index 0000000..a4d6d95
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/df98ff.wgsl.expected.wgsl
@@ -0,0 +1,19 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
+
+struct SB_RO {
+ arg_0 : array<u32>,
+}
+
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+fn subgroupMatrixLoad_df98ff() -> subgroup_matrix_right<u32, 8, 8> {
+ var res : subgroup_matrix_right<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<u32, 8, 8>>(&(sb_ro.arg_0), 1u, true, 1u);
+ return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_df98ff(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/e5caba.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e5caba.wgsl
new file mode 100644
index 0000000..fb787ee
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e5caba.wgsl
@@ -0,0 +1,57 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+// test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
+
+struct SB_RW {
+ arg_0: array<f32>,
+};
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<result, f32, 8, 8>>(ptr<storage, runtime_array<f32>, read_write>, u32, @const bool, u32) -> subgroup_matrix<result, f32, 8, 8>
+fn subgroupMatrixLoad_e5caba() -> subgroup_matrix_result<f32, 8, 8>{
+ var res: subgroup_matrix_result<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<f32, 8, 8>>(&sb_rw.arg_0, 1u, true, 1u);
+ return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_e5caba(), false, 64);
+}
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
new file mode 100644
index 0000000..3cd8b8c
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e5caba.wgsl.expected.dxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: FAILED
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/e5caba.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e5caba.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..48f5b71
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e5caba.wgsl.expected.fxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: INVALID
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/e5caba.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e5caba.wgsl.expected.glsl
new file mode 100644
index 0000000..cc19bf0
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e5caba.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the GLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/e5caba.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e5caba.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..dda740a
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e5caba.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/e5caba.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e5caba.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..4709805
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e5caba.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/e5caba.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e5caba.wgsl.expected.msl
new file mode 100644
index 0000000..f01d3c6
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e5caba.wgsl.expected.msl
@@ -0,0 +1,35 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+ const constant T& operator[](size_t i) const constant { return elements[i]; }
+ device T& operator[](size_t i) device { return elements[i]; }
+ const device T& operator[](size_t i) const device { return elements[i]; }
+ thread T& operator[](size_t i) thread { return elements[i]; }
+ const thread T& operator[](size_t i) const thread { return elements[i]; }
+ threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+ const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+ T elements[N];
+};
+
+struct SB_RW {
+ /* 0x0000 */ tint_array<float, 1> arg_0;
+};
+
+struct tint_module_vars_struct {
+ device tint_array<float, 1024>* prevent_dce;
+ device SB_RW* sb_rw;
+};
+
+simdgroup_float8x8 subgroupMatrixLoad_e5caba(tint_module_vars_struct tint_module_vars) {
+ simdgroup_float8x8 v = make_filled_simdgroup_matrix<float, 8, 8>(0.0f);
+ simdgroup_load(v, (&(*tint_module_vars.sb_rw).arg_0[1u]), ulong(1u), ulong2(0ul), true);
+ simdgroup_float8x8 res = v;
+ return res;
+}
+
+kernel void compute_main(device tint_array<float, 1024>* prevent_dce [[buffer(0)]], device SB_RW* sb_rw [[buffer(1)]]) {
+ tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_rw=sb_rw};
+ simdgroup_store(subgroupMatrixLoad_e5caba(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/e5caba.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e5caba.wgsl.expected.spvasm
new file mode 100644
index 0000000..f757205
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e5caba.wgsl.expected.spvasm
@@ -0,0 +1,75 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 39
+; Schema: 0
+ OpCapability Shader
+ OpCapability VulkanMemoryModel
+ OpCapability VulkanMemoryModelDeviceScope
+ OpCapability CooperativeMatrixKHR
+ OpExtension "SPV_KHR_vulkan_memory_model"
+ OpExtension "SPV_KHR_cooperative_matrix"
+ OpMemoryModel Logical Vulkan
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpMemberName %prevent_dce_block 0 "inner"
+ OpName %prevent_dce_block "prevent_dce_block"
+ OpMemberName %SB_RW 0 "arg_0"
+ OpName %SB_RW "SB_RW"
+ OpName %sb_rw "sb_rw"
+ OpName %subgroupMatrixLoad_e5caba "subgroupMatrixLoad_e5caba"
+ OpName %res "res"
+ OpName %compute_main "compute_main"
+ OpDecorate %_arr_float_uint_1024 ArrayStride 4
+ OpMemberDecorate %prevent_dce_block 0 Offset 0
+ OpDecorate %prevent_dce_block Block
+ OpDecorate %1 DescriptorSet 0
+ OpDecorate %1 Binding 0
+ OpDecorate %_runtimearr_float ArrayStride 4
+ OpMemberDecorate %SB_RW 0 Offset 0
+ OpDecorate %SB_RW Block
+ OpDecorate %sb_rw DescriptorSet 0
+ OpDecorate %sb_rw Binding 1
+ %float = OpTypeFloat 32
+ %uint = OpTypeInt 32 0
+ %uint_1024 = OpConstant %uint 1024
+%_arr_float_uint_1024 = OpTypeArray %float %uint_1024
+%prevent_dce_block = OpTypeStruct %_arr_float_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+ %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_runtimearr_float = OpTypeRuntimeArray %float
+ %SB_RW = OpTypeStruct %_runtimearr_float
+%_ptr_StorageBuffer_SB_RW = OpTypePointer StorageBuffer %SB_RW
+ %sb_rw = OpVariable %_ptr_StorageBuffer_SB_RW StorageBuffer
+ %uint_3 = OpConstant %uint 3
+ %uint_8 = OpConstant %uint 8
+ %uint_2 = OpConstant %uint 2
+ %13 = OpTypeCooperativeMatrixKHR %float %uint_3 %uint_8 %uint_8 %uint_2
+ %17 = OpTypeFunction %13
+%_ptr_StorageBuffer__runtimearr_float = OpTypePointer StorageBuffer %_runtimearr_float
+ %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
+ %uint_1 = OpConstant %uint 1
+%_ptr_Function_13 = OpTypePointer Function %13
+ %void = OpTypeVoid
+ %31 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_float_uint_1024 = OpTypePointer StorageBuffer %_arr_float_uint_1024
+ %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_e5caba = OpFunction %13 None %17
+ %18 = OpLabel
+ %res = OpVariable %_ptr_Function_13 Function
+ %19 = OpAccessChain %_ptr_StorageBuffer__runtimearr_float %sb_rw %uint_0
+ %22 = OpAccessChain %_ptr_StorageBuffer_float %19 %uint_1
+ %25 = OpCooperativeMatrixLoadKHR %13 %22 %uint_1 %uint_1 NonPrivatePointer
+ OpStore %res %25
+ %28 = OpLoad %13 %res None
+ OpReturnValue %28
+ OpFunctionEnd
+%compute_main = OpFunction %void None %31
+ %32 = OpLabel
+ %33 = OpFunctionCall %13 %subgroupMatrixLoad_e5caba
+ %34 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_1024 %1 %uint_0
+ %36 = OpAccessChain %_ptr_StorageBuffer_float %34 %uint_0
+ OpCooperativeMatrixStoreKHR %36 %33 %uint_0 %uint_64 NonPrivatePointer
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/e5caba.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e5caba.wgsl.expected.wgsl
new file mode 100644
index 0000000..15b0b9a
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/e5caba.wgsl.expected.wgsl
@@ -0,0 +1,19 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
+
+struct SB_RW {
+ arg_0 : array<f32>,
+}
+
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixLoad_e5caba() -> subgroup_matrix_result<f32, 8, 8> {
+ var res : subgroup_matrix_result<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<f32, 8, 8>>(&(sb_rw.arg_0), 1u, true, 1u);
+ return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_e5caba(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f58623.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f58623.wgsl
new file mode 100644
index 0000000..0234a4c
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f58623.wgsl
@@ -0,0 +1,57 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+// test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
+
+struct SB_RO {
+ arg_0: array<f32>,
+};
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<left, f32, 8, 8>>(ptr<storage, runtime_array<f32>, read>, u32, @const bool, u32) -> subgroup_matrix<left, f32, 8, 8>
+fn subgroupMatrixLoad_f58623() -> subgroup_matrix_left<f32, 8, 8>{
+ var res: subgroup_matrix_left<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<f32, 8, 8>>(&sb_ro.arg_0, 1u, true, 1u);
+ return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_f58623(), false, 64);
+}
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
new file mode 100644
index 0000000..3cd8b8c
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f58623.wgsl.expected.dxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: FAILED
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f58623.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f58623.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..48f5b71
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f58623.wgsl.expected.fxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: INVALID
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f58623.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f58623.wgsl.expected.glsl
new file mode 100644
index 0000000..cc19bf0
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f58623.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the GLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f58623.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f58623.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..dda740a
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f58623.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f58623.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f58623.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..4709805
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f58623.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f58623.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f58623.wgsl.expected.msl
new file mode 100644
index 0000000..ce9ea0a
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f58623.wgsl.expected.msl
@@ -0,0 +1,35 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+ const constant T& operator[](size_t i) const constant { return elements[i]; }
+ device T& operator[](size_t i) device { return elements[i]; }
+ const device T& operator[](size_t i) const device { return elements[i]; }
+ thread T& operator[](size_t i) thread { return elements[i]; }
+ const thread T& operator[](size_t i) const thread { return elements[i]; }
+ threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+ const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+ T elements[N];
+};
+
+struct SB_RO {
+ /* 0x0000 */ tint_array<float, 1> arg_0;
+};
+
+struct tint_module_vars_struct {
+ device tint_array<float, 1024>* prevent_dce;
+ const device SB_RO* sb_ro;
+};
+
+simdgroup_float8x8 subgroupMatrixLoad_f58623(tint_module_vars_struct tint_module_vars) {
+ simdgroup_float8x8 v = make_filled_simdgroup_matrix<float, 8, 8>(0.0f);
+ simdgroup_load(v, (&(*tint_module_vars.sb_ro).arg_0[1u]), ulong(1u), ulong2(0ul), true);
+ simdgroup_float8x8 res = v;
+ return res;
+}
+
+kernel void compute_main(device tint_array<float, 1024>* prevent_dce [[buffer(0)]], const device SB_RO* sb_ro [[buffer(1)]]) {
+ tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_ro=sb_ro};
+ simdgroup_store(subgroupMatrixLoad_f58623(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f58623.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f58623.wgsl.expected.spvasm
new file mode 100644
index 0000000..88ba9c6
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f58623.wgsl.expected.spvasm
@@ -0,0 +1,76 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 39
+; Schema: 0
+ OpCapability Shader
+ OpCapability VulkanMemoryModel
+ OpCapability VulkanMemoryModelDeviceScope
+ OpCapability CooperativeMatrixKHR
+ OpExtension "SPV_KHR_vulkan_memory_model"
+ OpExtension "SPV_KHR_cooperative_matrix"
+ OpMemoryModel Logical Vulkan
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpMemberName %prevent_dce_block 0 "inner"
+ OpName %prevent_dce_block "prevent_dce_block"
+ OpMemberName %SB_RO 0 "arg_0"
+ OpName %SB_RO "SB_RO"
+ OpName %sb_ro "sb_ro"
+ OpName %subgroupMatrixLoad_f58623 "subgroupMatrixLoad_f58623"
+ OpName %res "res"
+ OpName %compute_main "compute_main"
+ OpDecorate %_arr_float_uint_1024 ArrayStride 4
+ OpMemberDecorate %prevent_dce_block 0 Offset 0
+ OpDecorate %prevent_dce_block Block
+ OpDecorate %1 DescriptorSet 0
+ OpDecorate %1 Binding 0
+ OpDecorate %_runtimearr_float ArrayStride 4
+ OpMemberDecorate %SB_RO 0 Offset 0
+ OpDecorate %SB_RO Block
+ OpDecorate %sb_ro DescriptorSet 0
+ OpDecorate %sb_ro Binding 1
+ OpDecorate %sb_ro NonWritable
+ %float = OpTypeFloat 32
+ %uint = OpTypeInt 32 0
+ %uint_1024 = OpConstant %uint 1024
+%_arr_float_uint_1024 = OpTypeArray %float %uint_1024
+%prevent_dce_block = OpTypeStruct %_arr_float_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+ %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_runtimearr_float = OpTypeRuntimeArray %float
+ %SB_RO = OpTypeStruct %_runtimearr_float
+%_ptr_StorageBuffer_SB_RO = OpTypePointer StorageBuffer %SB_RO
+ %sb_ro = OpVariable %_ptr_StorageBuffer_SB_RO StorageBuffer
+ %uint_3 = OpConstant %uint 3
+ %uint_8 = OpConstant %uint 8
+ %uint_0 = OpConstant %uint 0
+ %13 = OpTypeCooperativeMatrixKHR %float %uint_3 %uint_8 %uint_8 %uint_0
+ %17 = OpTypeFunction %13
+%_ptr_StorageBuffer__runtimearr_float = OpTypePointer StorageBuffer %_runtimearr_float
+%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
+ %uint_1 = OpConstant %uint 1
+%_ptr_Function_13 = OpTypePointer Function %13
+ %void = OpTypeVoid
+ %30 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_float_uint_1024 = OpTypePointer StorageBuffer %_arr_float_uint_1024
+%_ptr_StorageBuffer_float_0 = OpTypePointer StorageBuffer %float
+ %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_f58623 = OpFunction %13 None %17
+ %18 = OpLabel
+ %res = OpVariable %_ptr_Function_13 Function
+ %19 = OpAccessChain %_ptr_StorageBuffer__runtimearr_float %sb_ro %uint_0
+ %21 = OpAccessChain %_ptr_StorageBuffer_float %19 %uint_1
+ %24 = OpCooperativeMatrixLoadKHR %13 %21 %uint_1 %uint_1 NonPrivatePointer
+ OpStore %res %24
+ %27 = OpLoad %13 %res None
+ OpReturnValue %27
+ OpFunctionEnd
+%compute_main = OpFunction %void None %30
+ %31 = OpLabel
+ %32 = OpFunctionCall %13 %subgroupMatrixLoad_f58623
+ %33 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_1024 %1 %uint_0
+ %35 = OpAccessChain %_ptr_StorageBuffer_float_0 %33 %uint_0
+ OpCooperativeMatrixStoreKHR %35 %32 %uint_0 %uint_64 NonPrivatePointer
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f58623.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f58623.wgsl.expected.wgsl
new file mode 100644
index 0000000..e693e49
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f58623.wgsl.expected.wgsl
@@ -0,0 +1,19 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
+
+struct SB_RO {
+ arg_0 : array<f32>,
+}
+
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+fn subgroupMatrixLoad_f58623() -> subgroup_matrix_left<f32, 8, 8> {
+ var res : subgroup_matrix_left<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<f32, 8, 8>>(&(sb_ro.arg_0), 1u, true, 1u);
+ return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_f58623(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f9b989.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f9b989.wgsl
new file mode 100644
index 0000000..8de6bde
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f9b989.wgsl
@@ -0,0 +1,57 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+// test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
+
+struct SB_RW {
+ arg_0: array<f32>,
+};
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<left, f32, 8, 8>>(ptr<storage, runtime_array<f32>, read_write>, u32, @const bool, u32) -> subgroup_matrix<left, f32, 8, 8>
+fn subgroupMatrixLoad_f9b989() -> subgroup_matrix_left<f32, 8, 8>{
+ var res: subgroup_matrix_left<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<f32, 8, 8>>(&sb_rw.arg_0, 1u, true, 1u);
+ return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_f9b989(), false, 64);
+}
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
new file mode 100644
index 0000000..3cd8b8c
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f9b989.wgsl.expected.dxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: FAILED
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f9b989.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f9b989.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..48f5b71
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f9b989.wgsl.expected.fxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: INVALID
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f9b989.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f9b989.wgsl.expected.glsl
new file mode 100644
index 0000000..cc19bf0
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f9b989.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the GLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f9b989.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f9b989.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..dda740a
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f9b989.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f9b989.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f9b989.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..4709805
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f9b989.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f9b989.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f9b989.wgsl.expected.msl
new file mode 100644
index 0000000..4464970
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f9b989.wgsl.expected.msl
@@ -0,0 +1,35 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+ const constant T& operator[](size_t i) const constant { return elements[i]; }
+ device T& operator[](size_t i) device { return elements[i]; }
+ const device T& operator[](size_t i) const device { return elements[i]; }
+ thread T& operator[](size_t i) thread { return elements[i]; }
+ const thread T& operator[](size_t i) const thread { return elements[i]; }
+ threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+ const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+ T elements[N];
+};
+
+struct SB_RW {
+ /* 0x0000 */ tint_array<float, 1> arg_0;
+};
+
+struct tint_module_vars_struct {
+ device tint_array<float, 1024>* prevent_dce;
+ device SB_RW* sb_rw;
+};
+
+simdgroup_float8x8 subgroupMatrixLoad_f9b989(tint_module_vars_struct tint_module_vars) {
+ simdgroup_float8x8 v = make_filled_simdgroup_matrix<float, 8, 8>(0.0f);
+ simdgroup_load(v, (&(*tint_module_vars.sb_rw).arg_0[1u]), ulong(1u), ulong2(0ul), true);
+ simdgroup_float8x8 res = v;
+ return res;
+}
+
+kernel void compute_main(device tint_array<float, 1024>* prevent_dce [[buffer(0)]], device SB_RW* sb_rw [[buffer(1)]]) {
+ tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_rw=sb_rw};
+ simdgroup_store(subgroupMatrixLoad_f9b989(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f9b989.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f9b989.wgsl.expected.spvasm
new file mode 100644
index 0000000..59d7952
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f9b989.wgsl.expected.spvasm
@@ -0,0 +1,74 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 38
+; Schema: 0
+ OpCapability Shader
+ OpCapability VulkanMemoryModel
+ OpCapability VulkanMemoryModelDeviceScope
+ OpCapability CooperativeMatrixKHR
+ OpExtension "SPV_KHR_vulkan_memory_model"
+ OpExtension "SPV_KHR_cooperative_matrix"
+ OpMemoryModel Logical Vulkan
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpMemberName %prevent_dce_block 0 "inner"
+ OpName %prevent_dce_block "prevent_dce_block"
+ OpMemberName %SB_RW 0 "arg_0"
+ OpName %SB_RW "SB_RW"
+ OpName %sb_rw "sb_rw"
+ OpName %subgroupMatrixLoad_f9b989 "subgroupMatrixLoad_f9b989"
+ OpName %res "res"
+ OpName %compute_main "compute_main"
+ OpDecorate %_arr_float_uint_1024 ArrayStride 4
+ OpMemberDecorate %prevent_dce_block 0 Offset 0
+ OpDecorate %prevent_dce_block Block
+ OpDecorate %1 DescriptorSet 0
+ OpDecorate %1 Binding 0
+ OpDecorate %_runtimearr_float ArrayStride 4
+ OpMemberDecorate %SB_RW 0 Offset 0
+ OpDecorate %SB_RW Block
+ OpDecorate %sb_rw DescriptorSet 0
+ OpDecorate %sb_rw Binding 1
+ %float = OpTypeFloat 32
+ %uint = OpTypeInt 32 0
+ %uint_1024 = OpConstant %uint 1024
+%_arr_float_uint_1024 = OpTypeArray %float %uint_1024
+%prevent_dce_block = OpTypeStruct %_arr_float_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+ %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_runtimearr_float = OpTypeRuntimeArray %float
+ %SB_RW = OpTypeStruct %_runtimearr_float
+%_ptr_StorageBuffer_SB_RW = OpTypePointer StorageBuffer %SB_RW
+ %sb_rw = OpVariable %_ptr_StorageBuffer_SB_RW StorageBuffer
+ %uint_3 = OpConstant %uint 3
+ %uint_8 = OpConstant %uint 8
+ %uint_0 = OpConstant %uint 0
+ %13 = OpTypeCooperativeMatrixKHR %float %uint_3 %uint_8 %uint_8 %uint_0
+ %17 = OpTypeFunction %13
+%_ptr_StorageBuffer__runtimearr_float = OpTypePointer StorageBuffer %_runtimearr_float
+%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
+ %uint_1 = OpConstant %uint 1
+%_ptr_Function_13 = OpTypePointer Function %13
+ %void = OpTypeVoid
+ %30 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_float_uint_1024 = OpTypePointer StorageBuffer %_arr_float_uint_1024
+ %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_f9b989 = OpFunction %13 None %17
+ %18 = OpLabel
+ %res = OpVariable %_ptr_Function_13 Function
+ %19 = OpAccessChain %_ptr_StorageBuffer__runtimearr_float %sb_rw %uint_0
+ %21 = OpAccessChain %_ptr_StorageBuffer_float %19 %uint_1
+ %24 = OpCooperativeMatrixLoadKHR %13 %21 %uint_1 %uint_1 NonPrivatePointer
+ OpStore %res %24
+ %27 = OpLoad %13 %res None
+ OpReturnValue %27
+ OpFunctionEnd
+%compute_main = OpFunction %void None %30
+ %31 = OpLabel
+ %32 = OpFunctionCall %13 %subgroupMatrixLoad_f9b989
+ %33 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_1024 %1 %uint_0
+ %35 = OpAccessChain %_ptr_StorageBuffer_float %33 %uint_0
+ OpCooperativeMatrixStoreKHR %35 %32 %uint_0 %uint_64 NonPrivatePointer
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/f9b989.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f9b989.wgsl.expected.wgsl
new file mode 100644
index 0000000..08cd542
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/f9b989.wgsl.expected.wgsl
@@ -0,0 +1,19 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
+
+struct SB_RW {
+ arg_0 : array<f32>,
+}
+
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixLoad_f9b989() -> subgroup_matrix_left<f32, 8, 8> {
+ var res : subgroup_matrix_left<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<f32, 8, 8>>(&(sb_rw.arg_0), 1u, true, 1u);
+ return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_f9b989(), false, 64);
+}
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/fa3c74.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/fa3c74.wgsl
new file mode 100644
index 0000000..5e0fc73
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/fa3c74.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, i32, 8, 8>>(ptr<storage, runtime_array<i32>, read>, u32, @const bool, u32) -> subgroup_matrix<left, i32, 8, 8>
+fn subgroupMatrixLoad_fa3c74() -> subgroup_matrix_left<i32, 8, 8>{
+ var res: subgroup_matrix_left<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<i32, 8, 8>>(&sb_ro.arg_0, 1u, true, 1u);
+ return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_fa3c74(), false, 64);
+}
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
new file mode 100644
index 0000000..3cd8b8c
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/fa3c74.wgsl.expected.dxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: FAILED
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/fa3c74.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/fa3c74.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..48f5b71
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/fa3c74.wgsl.expected.fxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: INVALID
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/fa3c74.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/fa3c74.wgsl.expected.glsl
new file mode 100644
index 0000000..cc19bf0
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/fa3c74.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the GLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/fa3c74.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/fa3c74.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..dda740a
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/fa3c74.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/fa3c74.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/fa3c74.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..4709805
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/fa3c74.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/fa3c74.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/fa3c74.wgsl.expected.msl
new file mode 100644
index 0000000..5dba48c
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/fa3c74.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: non-float subgroup matrices are not supported by the MSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/fa3c74.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupMatrixLoad/fa3c74.wgsl.expected.spvasm
new file mode 100644
index 0000000..ef3b478
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/fa3c74.wgsl.expected.spvasm
@@ -0,0 +1,76 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 39
+; Schema: 0
+ OpCapability Shader
+ OpCapability VulkanMemoryModel
+ OpCapability VulkanMemoryModelDeviceScope
+ OpCapability CooperativeMatrixKHR
+ OpExtension "SPV_KHR_vulkan_memory_model"
+ OpExtension "SPV_KHR_cooperative_matrix"
+ OpMemoryModel Logical Vulkan
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpMemberName %prevent_dce_block 0 "inner"
+ OpName %prevent_dce_block "prevent_dce_block"
+ OpMemberName %SB_RO 0 "arg_0"
+ OpName %SB_RO "SB_RO"
+ OpName %sb_ro "sb_ro"
+ OpName %subgroupMatrixLoad_fa3c74 "subgroupMatrixLoad_fa3c74"
+ OpName %res "res"
+ OpName %compute_main "compute_main"
+ OpDecorate %_arr_int_uint_1024 ArrayStride 4
+ OpMemberDecorate %prevent_dce_block 0 Offset 0
+ OpDecorate %prevent_dce_block Block
+ OpDecorate %1 DescriptorSet 0
+ OpDecorate %1 Binding 0
+ OpDecorate %_runtimearr_int ArrayStride 4
+ OpMemberDecorate %SB_RO 0 Offset 0
+ OpDecorate %SB_RO Block
+ OpDecorate %sb_ro DescriptorSet 0
+ OpDecorate %sb_ro Binding 1
+ OpDecorate %sb_ro NonWritable
+ %int = OpTypeInt 32 1
+ %uint = OpTypeInt 32 0
+ %uint_1024 = OpConstant %uint 1024
+%_arr_int_uint_1024 = OpTypeArray %int %uint_1024
+%prevent_dce_block = OpTypeStruct %_arr_int_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+ %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_runtimearr_int = OpTypeRuntimeArray %int
+ %SB_RO = OpTypeStruct %_runtimearr_int
+%_ptr_StorageBuffer_SB_RO = OpTypePointer StorageBuffer %SB_RO
+ %sb_ro = OpVariable %_ptr_StorageBuffer_SB_RO StorageBuffer
+ %uint_3 = OpConstant %uint 3
+ %uint_8 = OpConstant %uint 8
+ %uint_0 = OpConstant %uint 0
+ %13 = OpTypeCooperativeMatrixKHR %int %uint_3 %uint_8 %uint_8 %uint_0
+ %17 = OpTypeFunction %13
+%_ptr_StorageBuffer__runtimearr_int = OpTypePointer StorageBuffer %_runtimearr_int
+%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
+ %uint_1 = OpConstant %uint 1
+%_ptr_Function_13 = OpTypePointer Function %13
+ %void = OpTypeVoid
+ %30 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_int_uint_1024 = OpTypePointer StorageBuffer %_arr_int_uint_1024
+%_ptr_StorageBuffer_int_0 = OpTypePointer StorageBuffer %int
+ %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_fa3c74 = OpFunction %13 None %17
+ %18 = OpLabel
+ %res = OpVariable %_ptr_Function_13 Function
+ %19 = OpAccessChain %_ptr_StorageBuffer__runtimearr_int %sb_ro %uint_0
+ %21 = OpAccessChain %_ptr_StorageBuffer_int %19 %uint_1
+ %24 = OpCooperativeMatrixLoadKHR %13 %21 %uint_1 %uint_1 NonPrivatePointer
+ OpStore %res %24
+ %27 = OpLoad %13 %res None
+ OpReturnValue %27
+ OpFunctionEnd
+%compute_main = OpFunction %void None %30
+ %31 = OpLabel
+ %32 = OpFunctionCall %13 %subgroupMatrixLoad_fa3c74
+ %33 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_1024 %1 %uint_0
+ %35 = OpAccessChain %_ptr_StorageBuffer_int_0 %33 %uint_0
+ OpCooperativeMatrixStoreKHR %35 %32 %uint_0 %uint_64 NonPrivatePointer
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/subgroupMatrixLoad/fa3c74.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupMatrixLoad/fa3c74.wgsl.expected.wgsl
new file mode 100644
index 0000000..eaa8388
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupMatrixLoad/fa3c74.wgsl.expected.wgsl
@@ -0,0 +1,19 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
+
+struct SB_RO {
+ arg_0 : array<i32>,
+}
+
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+fn subgroupMatrixLoad_fa3c74() -> subgroup_matrix_left<i32, 8, 8> {
+ var res : subgroup_matrix_left<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<i32, 8, 8>>(&(sb_ro.arg_0), 1u, true, 1u);
+ return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_fa3c74(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/0cc7b0.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/0cc7b0.wgsl
new file mode 100644
index 0000000..87071db
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/0cc7b0.wgsl
@@ -0,0 +1,62 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+// test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// flags: --hlsl-shader-model 62
+
+
+enable chromium_experimental_subgroup_matrix;
+
+enable f16;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
+
+struct SB_RW {
+ arg_0: array<f16>,
+};
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<left, f16, 8, 8>>(ptr<storage, runtime_array<f16>, read_write>, u32, @const bool, u32) -> subgroup_matrix<left, f16, 8, 8>
+fn subgroupMatrixLoad_0cc7b0() -> subgroup_matrix_left<f16, 8, 8>{
+ var arg_1 = 1u;
+ const arg_2 = true;
+ var arg_3 = 1u;
+ var res: subgroup_matrix_left<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<f16, 8, 8>>(&sb_rw.arg_0, arg_1, arg_2, arg_3);
+ return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_0cc7b0(), false, 64);
+}
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
new file mode 100644
index 0000000..3cd8b8c
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/0cc7b0.wgsl.expected.dxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: FAILED
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/0cc7b0.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/0cc7b0.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..48f5b71
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/0cc7b0.wgsl.expected.fxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: INVALID
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/0cc7b0.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/0cc7b0.wgsl.expected.glsl
new file mode 100644
index 0000000..cc19bf0
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/0cc7b0.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the GLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/0cc7b0.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/0cc7b0.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..dda740a
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/0cc7b0.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/0cc7b0.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/0cc7b0.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..4709805
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/0cc7b0.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/0cc7b0.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/0cc7b0.wgsl.expected.msl
new file mode 100644
index 0000000..6292ab4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/0cc7b0.wgsl.expected.msl
@@ -0,0 +1,37 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+ const constant T& operator[](size_t i) const constant { return elements[i]; }
+ device T& operator[](size_t i) device { return elements[i]; }
+ const device T& operator[](size_t i) const device { return elements[i]; }
+ thread T& operator[](size_t i) thread { return elements[i]; }
+ const thread T& operator[](size_t i) const thread { return elements[i]; }
+ threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+ const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+ T elements[N];
+};
+
+struct SB_RW {
+ /* 0x0000 */ tint_array<half, 1> arg_0;
+};
+
+struct tint_module_vars_struct {
+ device tint_array<half, 1024>* prevent_dce;
+ device SB_RW* sb_rw;
+};
+
+simdgroup_half8x8 subgroupMatrixLoad_0cc7b0(tint_module_vars_struct tint_module_vars) {
+ uint arg_1 = 1u;
+ uint arg_3 = 1u;
+ simdgroup_half8x8 v = make_filled_simdgroup_matrix<half, 8, 8>(0.0h);
+ simdgroup_load(v, (&(*tint_module_vars.sb_rw).arg_0[arg_1]), ulong(arg_3), ulong2(0ul), true);
+ simdgroup_half8x8 res = v;
+ return res;
+}
+
+kernel void compute_main(device tint_array<half, 1024>* prevent_dce [[buffer(0)]], device SB_RW* sb_rw [[buffer(1)]]) {
+ tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_rw=sb_rw};
+ simdgroup_store(subgroupMatrixLoad_0cc7b0(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/0cc7b0.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/0cc7b0.wgsl.expected.spvasm
new file mode 100644
index 0000000..e032c8a
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/0cc7b0.wgsl.expected.spvasm
@@ -0,0 +1,86 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 43
+; Schema: 0
+ OpCapability Shader
+ OpCapability VulkanMemoryModel
+ OpCapability VulkanMemoryModelDeviceScope
+ OpCapability Float16
+ OpCapability UniformAndStorageBuffer16BitAccess
+ OpCapability StorageBuffer16BitAccess
+ OpCapability CooperativeMatrixKHR
+ OpExtension "SPV_KHR_vulkan_memory_model"
+ OpExtension "SPV_KHR_cooperative_matrix"
+ OpMemoryModel Logical Vulkan
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpMemberName %prevent_dce_block 0 "inner"
+ OpName %prevent_dce_block "prevent_dce_block"
+ OpMemberName %SB_RW 0 "arg_0"
+ OpName %SB_RW "SB_RW"
+ OpName %sb_rw "sb_rw"
+ OpName %subgroupMatrixLoad_0cc7b0 "subgroupMatrixLoad_0cc7b0"
+ OpName %arg_1 "arg_1"
+ OpName %arg_3 "arg_3"
+ OpName %res "res"
+ OpName %compute_main "compute_main"
+ OpDecorate %_arr_half_uint_1024 ArrayStride 2
+ OpMemberDecorate %prevent_dce_block 0 Offset 0
+ OpDecorate %prevent_dce_block Block
+ OpDecorate %1 DescriptorSet 0
+ OpDecorate %1 Binding 0
+ OpDecorate %_runtimearr_half ArrayStride 2
+ OpMemberDecorate %SB_RW 0 Offset 0
+ OpDecorate %SB_RW Block
+ OpDecorate %sb_rw DescriptorSet 0
+ OpDecorate %sb_rw Binding 1
+ %half = OpTypeFloat 16
+ %uint = OpTypeInt 32 0
+ %uint_1024 = OpConstant %uint 1024
+%_arr_half_uint_1024 = OpTypeArray %half %uint_1024
+%prevent_dce_block = OpTypeStruct %_arr_half_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+ %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_runtimearr_half = OpTypeRuntimeArray %half
+ %SB_RW = OpTypeStruct %_runtimearr_half
+%_ptr_StorageBuffer_SB_RW = OpTypePointer StorageBuffer %SB_RW
+ %sb_rw = OpVariable %_ptr_StorageBuffer_SB_RW StorageBuffer
+ %uint_3 = OpConstant %uint 3
+ %uint_8 = OpConstant %uint 8
+ %uint_0 = OpConstant %uint 0
+ %13 = OpTypeCooperativeMatrixKHR %half %uint_3 %uint_8 %uint_8 %uint_0
+ %17 = OpTypeFunction %13
+%_ptr_Function_uint = OpTypePointer Function %uint
+ %uint_1 = OpConstant %uint 1
+%_ptr_StorageBuffer__runtimearr_half = OpTypePointer StorageBuffer %_runtimearr_half
+%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half
+%_ptr_Function_13 = OpTypePointer Function %13
+ %void = OpTypeVoid
+ %35 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_half_uint_1024 = OpTypePointer StorageBuffer %_arr_half_uint_1024
+ %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_0cc7b0 = OpFunction %13 None %17
+ %18 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_uint Function
+ %arg_3 = OpVariable %_ptr_Function_uint Function
+ %res = OpVariable %_ptr_Function_13 Function
+ OpStore %arg_1 %uint_1
+ OpStore %arg_3 %uint_1
+ %23 = OpAccessChain %_ptr_StorageBuffer__runtimearr_half %sb_rw %uint_0
+ %25 = OpLoad %uint %arg_1 None
+ %26 = OpLoad %uint %arg_3 None
+ %27 = OpAccessChain %_ptr_StorageBuffer_half %23 %25
+ %29 = OpCooperativeMatrixLoadKHR %13 %27 %uint_1 %26 NonPrivatePointer
+ OpStore %res %29
+ %32 = OpLoad %13 %res None
+ OpReturnValue %32
+ OpFunctionEnd
+%compute_main = OpFunction %void None %35
+ %36 = OpLabel
+ %37 = OpFunctionCall %13 %subgroupMatrixLoad_0cc7b0
+ %38 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_1024 %1 %uint_0
+ %40 = OpAccessChain %_ptr_StorageBuffer_half %38 %uint_0
+ OpCooperativeMatrixStoreKHR %40 %37 %uint_0 %uint_64 NonPrivatePointer
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/0cc7b0.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/0cc7b0.wgsl.expected.wgsl
new file mode 100644
index 0000000..9b9c2cc
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/0cc7b0.wgsl.expected.wgsl
@@ -0,0 +1,23 @@
+enable chromium_experimental_subgroup_matrix;
+enable f16;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
+
+struct SB_RW {
+ arg_0 : array<f16>,
+}
+
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixLoad_0cc7b0() -> subgroup_matrix_left<f16, 8, 8> {
+ var arg_1 = 1u;
+ const arg_2 = true;
+ var arg_3 = 1u;
+ var res : subgroup_matrix_left<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<f16, 8, 8>>(&(sb_rw.arg_0), arg_1, arg_2, arg_3);
+ return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_0cc7b0(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/128bf4.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/128bf4.wgsl
new file mode 100644
index 0000000..650bf00
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/128bf4.wgsl
@@ -0,0 +1,62 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+// test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// flags: --hlsl-shader-model 62
+
+
+enable chromium_experimental_subgroup_matrix;
+
+enable f16;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
+
+struct SB_RW {
+ arg_0: array<f16>,
+};
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<result, f16, 8, 8>>(ptr<storage, runtime_array<f16>, read_write>, u32, @const bool, u32) -> subgroup_matrix<result, f16, 8, 8>
+fn subgroupMatrixLoad_128bf4() -> subgroup_matrix_result<f16, 8, 8>{
+ var arg_1 = 1u;
+ const arg_2 = true;
+ var arg_3 = 1u;
+ var res: subgroup_matrix_result<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<f16, 8, 8>>(&sb_rw.arg_0, arg_1, arg_2, arg_3);
+ return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_128bf4(), false, 64);
+}
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
new file mode 100644
index 0000000..3cd8b8c
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/128bf4.wgsl.expected.dxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: FAILED
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/128bf4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/128bf4.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..48f5b71
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/128bf4.wgsl.expected.fxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: INVALID
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/128bf4.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/128bf4.wgsl.expected.glsl
new file mode 100644
index 0000000..cc19bf0
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/128bf4.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the GLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/128bf4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/128bf4.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..dda740a
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/128bf4.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/128bf4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/128bf4.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..4709805
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/128bf4.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/128bf4.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/128bf4.wgsl.expected.msl
new file mode 100644
index 0000000..36ae213
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/128bf4.wgsl.expected.msl
@@ -0,0 +1,37 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+ const constant T& operator[](size_t i) const constant { return elements[i]; }
+ device T& operator[](size_t i) device { return elements[i]; }
+ const device T& operator[](size_t i) const device { return elements[i]; }
+ thread T& operator[](size_t i) thread { return elements[i]; }
+ const thread T& operator[](size_t i) const thread { return elements[i]; }
+ threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+ const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+ T elements[N];
+};
+
+struct SB_RW {
+ /* 0x0000 */ tint_array<half, 1> arg_0;
+};
+
+struct tint_module_vars_struct {
+ device tint_array<half, 1024>* prevent_dce;
+ device SB_RW* sb_rw;
+};
+
+simdgroup_half8x8 subgroupMatrixLoad_128bf4(tint_module_vars_struct tint_module_vars) {
+ uint arg_1 = 1u;
+ uint arg_3 = 1u;
+ simdgroup_half8x8 v = make_filled_simdgroup_matrix<half, 8, 8>(0.0h);
+ simdgroup_load(v, (&(*tint_module_vars.sb_rw).arg_0[arg_1]), ulong(arg_3), ulong2(0ul), true);
+ simdgroup_half8x8 res = v;
+ return res;
+}
+
+kernel void compute_main(device tint_array<half, 1024>* prevent_dce [[buffer(0)]], device SB_RW* sb_rw [[buffer(1)]]) {
+ tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_rw=sb_rw};
+ simdgroup_store(subgroupMatrixLoad_128bf4(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/128bf4.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/128bf4.wgsl.expected.spvasm
new file mode 100644
index 0000000..de8a87a
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/128bf4.wgsl.expected.spvasm
@@ -0,0 +1,87 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 44
+; Schema: 0
+ OpCapability Shader
+ OpCapability VulkanMemoryModel
+ OpCapability VulkanMemoryModelDeviceScope
+ OpCapability Float16
+ OpCapability UniformAndStorageBuffer16BitAccess
+ OpCapability StorageBuffer16BitAccess
+ OpCapability CooperativeMatrixKHR
+ OpExtension "SPV_KHR_vulkan_memory_model"
+ OpExtension "SPV_KHR_cooperative_matrix"
+ OpMemoryModel Logical Vulkan
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpMemberName %prevent_dce_block 0 "inner"
+ OpName %prevent_dce_block "prevent_dce_block"
+ OpMemberName %SB_RW 0 "arg_0"
+ OpName %SB_RW "SB_RW"
+ OpName %sb_rw "sb_rw"
+ OpName %subgroupMatrixLoad_128bf4 "subgroupMatrixLoad_128bf4"
+ OpName %arg_1 "arg_1"
+ OpName %arg_3 "arg_3"
+ OpName %res "res"
+ OpName %compute_main "compute_main"
+ OpDecorate %_arr_half_uint_1024 ArrayStride 2
+ OpMemberDecorate %prevent_dce_block 0 Offset 0
+ OpDecorate %prevent_dce_block Block
+ OpDecorate %1 DescriptorSet 0
+ OpDecorate %1 Binding 0
+ OpDecorate %_runtimearr_half ArrayStride 2
+ OpMemberDecorate %SB_RW 0 Offset 0
+ OpDecorate %SB_RW Block
+ OpDecorate %sb_rw DescriptorSet 0
+ OpDecorate %sb_rw Binding 1
+ %half = OpTypeFloat 16
+ %uint = OpTypeInt 32 0
+ %uint_1024 = OpConstant %uint 1024
+%_arr_half_uint_1024 = OpTypeArray %half %uint_1024
+%prevent_dce_block = OpTypeStruct %_arr_half_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+ %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_runtimearr_half = OpTypeRuntimeArray %half
+ %SB_RW = OpTypeStruct %_runtimearr_half
+%_ptr_StorageBuffer_SB_RW = OpTypePointer StorageBuffer %SB_RW
+ %sb_rw = OpVariable %_ptr_StorageBuffer_SB_RW StorageBuffer
+ %uint_3 = OpConstant %uint 3
+ %uint_8 = OpConstant %uint 8
+ %uint_2 = OpConstant %uint 2
+ %13 = OpTypeCooperativeMatrixKHR %half %uint_3 %uint_8 %uint_8 %uint_2
+ %17 = OpTypeFunction %13
+%_ptr_Function_uint = OpTypePointer Function %uint
+ %uint_1 = OpConstant %uint 1
+%_ptr_StorageBuffer__runtimearr_half = OpTypePointer StorageBuffer %_runtimearr_half
+ %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half
+%_ptr_Function_13 = OpTypePointer Function %13
+ %void = OpTypeVoid
+ %36 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_half_uint_1024 = OpTypePointer StorageBuffer %_arr_half_uint_1024
+ %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_128bf4 = OpFunction %13 None %17
+ %18 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_uint Function
+ %arg_3 = OpVariable %_ptr_Function_uint Function
+ %res = OpVariable %_ptr_Function_13 Function
+ OpStore %arg_1 %uint_1
+ OpStore %arg_3 %uint_1
+ %23 = OpAccessChain %_ptr_StorageBuffer__runtimearr_half %sb_rw %uint_0
+ %26 = OpLoad %uint %arg_1 None
+ %27 = OpLoad %uint %arg_3 None
+ %28 = OpAccessChain %_ptr_StorageBuffer_half %23 %26
+ %30 = OpCooperativeMatrixLoadKHR %13 %28 %uint_1 %27 NonPrivatePointer
+ OpStore %res %30
+ %33 = OpLoad %13 %res None
+ OpReturnValue %33
+ OpFunctionEnd
+%compute_main = OpFunction %void None %36
+ %37 = OpLabel
+ %38 = OpFunctionCall %13 %subgroupMatrixLoad_128bf4
+ %39 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_1024 %1 %uint_0
+ %41 = OpAccessChain %_ptr_StorageBuffer_half %39 %uint_0
+ OpCooperativeMatrixStoreKHR %41 %38 %uint_0 %uint_64 NonPrivatePointer
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/128bf4.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/128bf4.wgsl.expected.wgsl
new file mode 100644
index 0000000..987333f
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/128bf4.wgsl.expected.wgsl
@@ -0,0 +1,23 @@
+enable chromium_experimental_subgroup_matrix;
+enable f16;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
+
+struct SB_RW {
+ arg_0 : array<f16>,
+}
+
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixLoad_128bf4() -> subgroup_matrix_result<f16, 8, 8> {
+ var arg_1 = 1u;
+ const arg_2 = true;
+ var arg_3 = 1u;
+ var res : subgroup_matrix_result<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<f16, 8, 8>>(&(sb_rw.arg_0), arg_1, arg_2, arg_3);
+ return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_128bf4(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/12ca82.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/12ca82.wgsl
new file mode 100644
index 0000000..5b94a88
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/12ca82.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, u32, 8, 8>>(ptr<storage, runtime_array<u32>, read_write>, u32, @const bool, u32) -> subgroup_matrix<result, u32, 8, 8>
+fn subgroupMatrixLoad_12ca82() -> subgroup_matrix_result<u32, 8, 8>{
+ var arg_1 = 1u;
+ const arg_2 = true;
+ var arg_3 = 1u;
+ var res: subgroup_matrix_result<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<u32, 8, 8>>(&sb_rw.arg_0, arg_1, arg_2, arg_3);
+ return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_12ca82(), false, 64);
+}
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
new file mode 100644
index 0000000..3cd8b8c
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/12ca82.wgsl.expected.dxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: FAILED
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/12ca82.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/12ca82.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..48f5b71
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/12ca82.wgsl.expected.fxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: INVALID
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/12ca82.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/12ca82.wgsl.expected.glsl
new file mode 100644
index 0000000..cc19bf0
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/12ca82.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the GLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/12ca82.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/12ca82.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..dda740a
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/12ca82.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/12ca82.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/12ca82.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..4709805
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/12ca82.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/12ca82.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/12ca82.wgsl.expected.msl
new file mode 100644
index 0000000..5dba48c
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/12ca82.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: non-float subgroup matrices are not supported by the MSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/12ca82.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/12ca82.wgsl.expected.spvasm
new file mode 100644
index 0000000..868e919
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/12ca82.wgsl.expected.spvasm
@@ -0,0 +1,83 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 43
+; Schema: 0
+ OpCapability Shader
+ OpCapability VulkanMemoryModel
+ OpCapability VulkanMemoryModelDeviceScope
+ OpCapability CooperativeMatrixKHR
+ OpExtension "SPV_KHR_vulkan_memory_model"
+ OpExtension "SPV_KHR_cooperative_matrix"
+ OpMemoryModel Logical Vulkan
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpMemberName %prevent_dce_block 0 "inner"
+ OpName %prevent_dce_block "prevent_dce_block"
+ OpMemberName %SB_RW 0 "arg_0"
+ OpName %SB_RW "SB_RW"
+ OpName %sb_rw "sb_rw"
+ OpName %subgroupMatrixLoad_12ca82 "subgroupMatrixLoad_12ca82"
+ OpName %arg_1 "arg_1"
+ OpName %arg_3 "arg_3"
+ OpName %res "res"
+ OpName %compute_main "compute_main"
+ OpDecorate %_arr_uint_uint_1024 ArrayStride 4
+ OpMemberDecorate %prevent_dce_block 0 Offset 0
+ OpDecorate %prevent_dce_block Block
+ OpDecorate %1 DescriptorSet 0
+ OpDecorate %1 Binding 0
+ OpDecorate %_runtimearr_uint ArrayStride 4
+ OpMemberDecorate %SB_RW 0 Offset 0
+ OpDecorate %SB_RW Block
+ OpDecorate %sb_rw DescriptorSet 0
+ OpDecorate %sb_rw Binding 1
+ %uint = OpTypeInt 32 0
+ %uint_1024 = OpConstant %uint 1024
+%_arr_uint_uint_1024 = OpTypeArray %uint %uint_1024
+%prevent_dce_block = OpTypeStruct %_arr_uint_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+ %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_runtimearr_uint = OpTypeRuntimeArray %uint
+ %SB_RW = OpTypeStruct %_runtimearr_uint
+%_ptr_StorageBuffer_SB_RW = OpTypePointer StorageBuffer %SB_RW
+ %sb_rw = OpVariable %_ptr_StorageBuffer_SB_RW StorageBuffer
+ %uint_3 = OpConstant %uint 3
+ %uint_8 = OpConstant %uint 8
+ %uint_2 = OpConstant %uint 2
+ %12 = OpTypeCooperativeMatrixKHR %uint %uint_3 %uint_8 %uint_8 %uint_2
+ %16 = OpTypeFunction %12
+%_ptr_Function_uint = OpTypePointer Function %uint
+ %uint_1 = OpConstant %uint 1
+%_ptr_StorageBuffer__runtimearr_uint = OpTypePointer StorageBuffer %_runtimearr_uint
+ %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
+%_ptr_Function_12 = OpTypePointer Function %12
+ %void = OpTypeVoid
+ %35 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_uint_uint_1024 = OpTypePointer StorageBuffer %_arr_uint_uint_1024
+ %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_12ca82 = OpFunction %12 None %16
+ %17 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_uint Function
+ %arg_3 = OpVariable %_ptr_Function_uint Function
+ %res = OpVariable %_ptr_Function_12 Function
+ OpStore %arg_1 %uint_1
+ OpStore %arg_3 %uint_1
+ %22 = OpAccessChain %_ptr_StorageBuffer__runtimearr_uint %sb_rw %uint_0
+ %25 = OpLoad %uint %arg_1 None
+ %26 = OpLoad %uint %arg_3 None
+ %27 = OpAccessChain %_ptr_StorageBuffer_uint %22 %25
+ %29 = OpCooperativeMatrixLoadKHR %12 %27 %uint_1 %26 NonPrivatePointer
+ OpStore %res %29
+ %32 = OpLoad %12 %res None
+ OpReturnValue %32
+ OpFunctionEnd
+%compute_main = OpFunction %void None %35
+ %36 = OpLabel
+ %37 = OpFunctionCall %12 %subgroupMatrixLoad_12ca82
+ %38 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_1024 %1 %uint_0
+ %40 = OpAccessChain %_ptr_StorageBuffer_uint %38 %uint_0
+ OpCooperativeMatrixStoreKHR %40 %37 %uint_0 %uint_64 NonPrivatePointer
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/12ca82.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/12ca82.wgsl.expected.wgsl
new file mode 100644
index 0000000..dc87f44
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/12ca82.wgsl.expected.wgsl
@@ -0,0 +1,22 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
+
+struct SB_RW {
+ arg_0 : array<u32>,
+}
+
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixLoad_12ca82() -> subgroup_matrix_result<u32, 8, 8> {
+ var arg_1 = 1u;
+ const arg_2 = true;
+ var arg_3 = 1u;
+ var res : subgroup_matrix_result<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<u32, 8, 8>>(&(sb_rw.arg_0), arg_1, arg_2, arg_3);
+ return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_12ca82(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/15689c.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/15689c.wgsl
new file mode 100644
index 0000000..01363e1
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/15689c.wgsl
@@ -0,0 +1,60 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+// test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
+
+struct SB_RW {
+ arg_0: array<f32>,
+};
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<right, f32, 8, 8>>(ptr<storage, runtime_array<f32>, read_write>, u32, @const bool, u32) -> subgroup_matrix<right, f32, 8, 8>
+fn subgroupMatrixLoad_15689c() -> subgroup_matrix_right<f32, 8, 8>{
+ var arg_1 = 1u;
+ const arg_2 = true;
+ var arg_3 = 1u;
+ var res: subgroup_matrix_right<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<f32, 8, 8>>(&sb_rw.arg_0, arg_1, arg_2, arg_3);
+ return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_15689c(), false, 64);
+}
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
new file mode 100644
index 0000000..3cd8b8c
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/15689c.wgsl.expected.dxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: FAILED
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/15689c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/15689c.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..48f5b71
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/15689c.wgsl.expected.fxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: INVALID
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/15689c.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/15689c.wgsl.expected.glsl
new file mode 100644
index 0000000..cc19bf0
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/15689c.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the GLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/15689c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/15689c.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..dda740a
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/15689c.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/15689c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/15689c.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..4709805
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/15689c.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/15689c.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/15689c.wgsl.expected.msl
new file mode 100644
index 0000000..0554a41
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/15689c.wgsl.expected.msl
@@ -0,0 +1,37 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+ const constant T& operator[](size_t i) const constant { return elements[i]; }
+ device T& operator[](size_t i) device { return elements[i]; }
+ const device T& operator[](size_t i) const device { return elements[i]; }
+ thread T& operator[](size_t i) thread { return elements[i]; }
+ const thread T& operator[](size_t i) const thread { return elements[i]; }
+ threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+ const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+ T elements[N];
+};
+
+struct SB_RW {
+ /* 0x0000 */ tint_array<float, 1> arg_0;
+};
+
+struct tint_module_vars_struct {
+ device tint_array<float, 1024>* prevent_dce;
+ device SB_RW* sb_rw;
+};
+
+simdgroup_float8x8 subgroupMatrixLoad_15689c(tint_module_vars_struct tint_module_vars) {
+ uint arg_1 = 1u;
+ uint arg_3 = 1u;
+ simdgroup_float8x8 v = make_filled_simdgroup_matrix<float, 8, 8>(0.0f);
+ simdgroup_load(v, (&(*tint_module_vars.sb_rw).arg_0[arg_1]), ulong(arg_3), ulong2(0ul), true);
+ simdgroup_float8x8 res = v;
+ return res;
+}
+
+kernel void compute_main(device tint_array<float, 1024>* prevent_dce [[buffer(0)]], device SB_RW* sb_rw [[buffer(1)]]) {
+ tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_rw=sb_rw};
+ simdgroup_store(subgroupMatrixLoad_15689c(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/15689c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/15689c.wgsl.expected.spvasm
new file mode 100644
index 0000000..9641a55
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/15689c.wgsl.expected.spvasm
@@ -0,0 +1,83 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 43
+; Schema: 0
+ OpCapability Shader
+ OpCapability VulkanMemoryModel
+ OpCapability VulkanMemoryModelDeviceScope
+ OpCapability CooperativeMatrixKHR
+ OpExtension "SPV_KHR_vulkan_memory_model"
+ OpExtension "SPV_KHR_cooperative_matrix"
+ OpMemoryModel Logical Vulkan
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpMemberName %prevent_dce_block 0 "inner"
+ OpName %prevent_dce_block "prevent_dce_block"
+ OpMemberName %SB_RW 0 "arg_0"
+ OpName %SB_RW "SB_RW"
+ OpName %sb_rw "sb_rw"
+ OpName %subgroupMatrixLoad_15689c "subgroupMatrixLoad_15689c"
+ OpName %arg_1 "arg_1"
+ OpName %arg_3 "arg_3"
+ OpName %res "res"
+ OpName %compute_main "compute_main"
+ OpDecorate %_arr_float_uint_1024 ArrayStride 4
+ OpMemberDecorate %prevent_dce_block 0 Offset 0
+ OpDecorate %prevent_dce_block Block
+ OpDecorate %1 DescriptorSet 0
+ OpDecorate %1 Binding 0
+ OpDecorate %_runtimearr_float ArrayStride 4
+ OpMemberDecorate %SB_RW 0 Offset 0
+ OpDecorate %SB_RW Block
+ OpDecorate %sb_rw DescriptorSet 0
+ OpDecorate %sb_rw Binding 1
+ %float = OpTypeFloat 32
+ %uint = OpTypeInt 32 0
+ %uint_1024 = OpConstant %uint 1024
+%_arr_float_uint_1024 = OpTypeArray %float %uint_1024
+%prevent_dce_block = OpTypeStruct %_arr_float_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+ %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_runtimearr_float = OpTypeRuntimeArray %float
+ %SB_RW = OpTypeStruct %_runtimearr_float
+%_ptr_StorageBuffer_SB_RW = OpTypePointer StorageBuffer %SB_RW
+ %sb_rw = OpVariable %_ptr_StorageBuffer_SB_RW StorageBuffer
+ %uint_3 = OpConstant %uint 3
+ %uint_8 = OpConstant %uint 8
+ %uint_1 = OpConstant %uint 1
+ %13 = OpTypeCooperativeMatrixKHR %float %uint_3 %uint_8 %uint_8 %uint_1
+ %17 = OpTypeFunction %13
+%_ptr_Function_uint = OpTypePointer Function %uint
+%_ptr_StorageBuffer__runtimearr_float = OpTypePointer StorageBuffer %_runtimearr_float
+ %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
+%_ptr_Function_13 = OpTypePointer Function %13
+ %void = OpTypeVoid
+ %35 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_float_uint_1024 = OpTypePointer StorageBuffer %_arr_float_uint_1024
+ %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_15689c = OpFunction %13 None %17
+ %18 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_uint Function
+ %arg_3 = OpVariable %_ptr_Function_uint Function
+ %res = OpVariable %_ptr_Function_13 Function
+ OpStore %arg_1 %uint_1
+ OpStore %arg_3 %uint_1
+ %22 = OpAccessChain %_ptr_StorageBuffer__runtimearr_float %sb_rw %uint_0
+ %25 = OpLoad %uint %arg_1 None
+ %26 = OpLoad %uint %arg_3 None
+ %27 = OpAccessChain %_ptr_StorageBuffer_float %22 %25
+ %29 = OpCooperativeMatrixLoadKHR %13 %27 %uint_1 %26 NonPrivatePointer
+ OpStore %res %29
+ %32 = OpLoad %13 %res None
+ OpReturnValue %32
+ OpFunctionEnd
+%compute_main = OpFunction %void None %35
+ %36 = OpLabel
+ %37 = OpFunctionCall %13 %subgroupMatrixLoad_15689c
+ %38 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_1024 %1 %uint_0
+ %40 = OpAccessChain %_ptr_StorageBuffer_float %38 %uint_0
+ OpCooperativeMatrixStoreKHR %40 %37 %uint_0 %uint_64 NonPrivatePointer
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/15689c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/15689c.wgsl.expected.wgsl
new file mode 100644
index 0000000..c4a42fc
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/15689c.wgsl.expected.wgsl
@@ -0,0 +1,22 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
+
+struct SB_RW {
+ arg_0 : array<f32>,
+}
+
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixLoad_15689c() -> subgroup_matrix_right<f32, 8, 8> {
+ var arg_1 = 1u;
+ const arg_2 = true;
+ var arg_3 = 1u;
+ var res : subgroup_matrix_right<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<f32, 8, 8>>(&(sb_rw.arg_0), arg_1, arg_2, arg_3);
+ return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_15689c(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/21f2c7.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/21f2c7.wgsl
new file mode 100644
index 0000000..7b66ad2
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/21f2c7.wgsl
@@ -0,0 +1,62 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+// test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// flags: --hlsl-shader-model 62
+
+
+enable chromium_experimental_subgroup_matrix;
+
+enable f16;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
+
+struct SB_RO {
+ arg_0: array<f16>,
+};
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<result, f16, 8, 8>>(ptr<storage, runtime_array<f16>, read>, u32, @const bool, u32) -> subgroup_matrix<result, f16, 8, 8>
+fn subgroupMatrixLoad_21f2c7() -> subgroup_matrix_result<f16, 8, 8>{
+ var arg_1 = 1u;
+ const arg_2 = true;
+ var arg_3 = 1u;
+ var res: subgroup_matrix_result<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<f16, 8, 8>>(&sb_ro.arg_0, arg_1, arg_2, arg_3);
+ return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_21f2c7(), false, 64);
+}
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
new file mode 100644
index 0000000..3cd8b8c
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/21f2c7.wgsl.expected.dxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: FAILED
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/21f2c7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/21f2c7.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..48f5b71
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/21f2c7.wgsl.expected.fxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: INVALID
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/21f2c7.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/21f2c7.wgsl.expected.glsl
new file mode 100644
index 0000000..cc19bf0
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/21f2c7.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the GLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/21f2c7.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/21f2c7.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..dda740a
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/21f2c7.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/21f2c7.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/21f2c7.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..4709805
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/21f2c7.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/21f2c7.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/21f2c7.wgsl.expected.msl
new file mode 100644
index 0000000..3c2f6cd
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/21f2c7.wgsl.expected.msl
@@ -0,0 +1,37 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+ const constant T& operator[](size_t i) const constant { return elements[i]; }
+ device T& operator[](size_t i) device { return elements[i]; }
+ const device T& operator[](size_t i) const device { return elements[i]; }
+ thread T& operator[](size_t i) thread { return elements[i]; }
+ const thread T& operator[](size_t i) const thread { return elements[i]; }
+ threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+ const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+ T elements[N];
+};
+
+struct SB_RO {
+ /* 0x0000 */ tint_array<half, 1> arg_0;
+};
+
+struct tint_module_vars_struct {
+ device tint_array<half, 1024>* prevent_dce;
+ const device SB_RO* sb_ro;
+};
+
+simdgroup_half8x8 subgroupMatrixLoad_21f2c7(tint_module_vars_struct tint_module_vars) {
+ uint arg_1 = 1u;
+ uint arg_3 = 1u;
+ simdgroup_half8x8 v = make_filled_simdgroup_matrix<half, 8, 8>(0.0h);
+ simdgroup_load(v, (&(*tint_module_vars.sb_ro).arg_0[arg_1]), ulong(arg_3), ulong2(0ul), true);
+ simdgroup_half8x8 res = v;
+ return res;
+}
+
+kernel void compute_main(device tint_array<half, 1024>* prevent_dce [[buffer(0)]], const device SB_RO* sb_ro [[buffer(1)]]) {
+ tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_ro=sb_ro};
+ simdgroup_store(subgroupMatrixLoad_21f2c7(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/21f2c7.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/21f2c7.wgsl.expected.spvasm
new file mode 100644
index 0000000..d7df07f
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/21f2c7.wgsl.expected.spvasm
@@ -0,0 +1,89 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 45
+; Schema: 0
+ OpCapability Shader
+ OpCapability VulkanMemoryModel
+ OpCapability VulkanMemoryModelDeviceScope
+ OpCapability Float16
+ OpCapability UniformAndStorageBuffer16BitAccess
+ OpCapability StorageBuffer16BitAccess
+ OpCapability CooperativeMatrixKHR
+ OpExtension "SPV_KHR_vulkan_memory_model"
+ OpExtension "SPV_KHR_cooperative_matrix"
+ OpMemoryModel Logical Vulkan
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpMemberName %prevent_dce_block 0 "inner"
+ OpName %prevent_dce_block "prevent_dce_block"
+ OpMemberName %SB_RO 0 "arg_0"
+ OpName %SB_RO "SB_RO"
+ OpName %sb_ro "sb_ro"
+ OpName %subgroupMatrixLoad_21f2c7 "subgroupMatrixLoad_21f2c7"
+ OpName %arg_1 "arg_1"
+ OpName %arg_3 "arg_3"
+ OpName %res "res"
+ OpName %compute_main "compute_main"
+ OpDecorate %_arr_half_uint_1024 ArrayStride 2
+ OpMemberDecorate %prevent_dce_block 0 Offset 0
+ OpDecorate %prevent_dce_block Block
+ OpDecorate %1 DescriptorSet 0
+ OpDecorate %1 Binding 0
+ OpDecorate %_runtimearr_half ArrayStride 2
+ OpMemberDecorate %SB_RO 0 Offset 0
+ OpDecorate %SB_RO Block
+ OpDecorate %sb_ro DescriptorSet 0
+ OpDecorate %sb_ro Binding 1
+ OpDecorate %sb_ro NonWritable
+ %half = OpTypeFloat 16
+ %uint = OpTypeInt 32 0
+ %uint_1024 = OpConstant %uint 1024
+%_arr_half_uint_1024 = OpTypeArray %half %uint_1024
+%prevent_dce_block = OpTypeStruct %_arr_half_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+ %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_runtimearr_half = OpTypeRuntimeArray %half
+ %SB_RO = OpTypeStruct %_runtimearr_half
+%_ptr_StorageBuffer_SB_RO = OpTypePointer StorageBuffer %SB_RO
+ %sb_ro = OpVariable %_ptr_StorageBuffer_SB_RO StorageBuffer
+ %uint_3 = OpConstant %uint 3
+ %uint_8 = OpConstant %uint 8
+ %uint_2 = OpConstant %uint 2
+ %13 = OpTypeCooperativeMatrixKHR %half %uint_3 %uint_8 %uint_8 %uint_2
+ %17 = OpTypeFunction %13
+%_ptr_Function_uint = OpTypePointer Function %uint
+ %uint_1 = OpConstant %uint 1
+%_ptr_StorageBuffer__runtimearr_half = OpTypePointer StorageBuffer %_runtimearr_half
+ %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half
+%_ptr_Function_13 = OpTypePointer Function %13
+ %void = OpTypeVoid
+ %36 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_half_uint_1024 = OpTypePointer StorageBuffer %_arr_half_uint_1024
+%_ptr_StorageBuffer_half_0 = OpTypePointer StorageBuffer %half
+ %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_21f2c7 = OpFunction %13 None %17
+ %18 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_uint Function
+ %arg_3 = OpVariable %_ptr_Function_uint Function
+ %res = OpVariable %_ptr_Function_13 Function
+ OpStore %arg_1 %uint_1
+ OpStore %arg_3 %uint_1
+ %23 = OpAccessChain %_ptr_StorageBuffer__runtimearr_half %sb_ro %uint_0
+ %26 = OpLoad %uint %arg_1 None
+ %27 = OpLoad %uint %arg_3 None
+ %28 = OpAccessChain %_ptr_StorageBuffer_half %23 %26
+ %30 = OpCooperativeMatrixLoadKHR %13 %28 %uint_1 %27 NonPrivatePointer
+ OpStore %res %30
+ %33 = OpLoad %13 %res None
+ OpReturnValue %33
+ OpFunctionEnd
+%compute_main = OpFunction %void None %36
+ %37 = OpLabel
+ %38 = OpFunctionCall %13 %subgroupMatrixLoad_21f2c7
+ %39 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_1024 %1 %uint_0
+ %41 = OpAccessChain %_ptr_StorageBuffer_half_0 %39 %uint_0
+ OpCooperativeMatrixStoreKHR %41 %38 %uint_0 %uint_64 NonPrivatePointer
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/21f2c7.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/21f2c7.wgsl.expected.wgsl
new file mode 100644
index 0000000..4469868
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/21f2c7.wgsl.expected.wgsl
@@ -0,0 +1,23 @@
+enable chromium_experimental_subgroup_matrix;
+enable f16;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
+
+struct SB_RO {
+ arg_0 : array<f16>,
+}
+
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+fn subgroupMatrixLoad_21f2c7() -> subgroup_matrix_result<f16, 8, 8> {
+ var arg_1 = 1u;
+ const arg_2 = true;
+ var arg_3 = 1u;
+ var res : subgroup_matrix_result<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<f16, 8, 8>>(&(sb_ro.arg_0), arg_1, arg_2, arg_3);
+ return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_21f2c7(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/30634b.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/30634b.wgsl
new file mode 100644
index 0000000..a65c4ab
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/30634b.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, i32, 8, 8>>(ptr<storage, runtime_array<i32>, read_write>, u32, @const bool, u32) -> subgroup_matrix<left, i32, 8, 8>
+fn subgroupMatrixLoad_30634b() -> subgroup_matrix_left<i32, 8, 8>{
+ var arg_1 = 1u;
+ const arg_2 = true;
+ var arg_3 = 1u;
+ var res: subgroup_matrix_left<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<i32, 8, 8>>(&sb_rw.arg_0, arg_1, arg_2, arg_3);
+ return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_30634b(), false, 64);
+}
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
new file mode 100644
index 0000000..3cd8b8c
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/30634b.wgsl.expected.dxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: FAILED
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/30634b.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/30634b.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..48f5b71
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/30634b.wgsl.expected.fxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: INVALID
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/30634b.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/30634b.wgsl.expected.glsl
new file mode 100644
index 0000000..cc19bf0
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/30634b.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the GLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/30634b.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/30634b.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..dda740a
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/30634b.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/30634b.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/30634b.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..4709805
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/30634b.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/30634b.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/30634b.wgsl.expected.msl
new file mode 100644
index 0000000..5dba48c
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/30634b.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: non-float subgroup matrices are not supported by the MSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/30634b.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/30634b.wgsl.expected.spvasm
new file mode 100644
index 0000000..aa277af
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/30634b.wgsl.expected.spvasm
@@ -0,0 +1,83 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 43
+; Schema: 0
+ OpCapability Shader
+ OpCapability VulkanMemoryModel
+ OpCapability VulkanMemoryModelDeviceScope
+ OpCapability CooperativeMatrixKHR
+ OpExtension "SPV_KHR_vulkan_memory_model"
+ OpExtension "SPV_KHR_cooperative_matrix"
+ OpMemoryModel Logical Vulkan
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpMemberName %prevent_dce_block 0 "inner"
+ OpName %prevent_dce_block "prevent_dce_block"
+ OpMemberName %SB_RW 0 "arg_0"
+ OpName %SB_RW "SB_RW"
+ OpName %sb_rw "sb_rw"
+ OpName %subgroupMatrixLoad_30634b "subgroupMatrixLoad_30634b"
+ OpName %arg_1 "arg_1"
+ OpName %arg_3 "arg_3"
+ OpName %res "res"
+ OpName %compute_main "compute_main"
+ OpDecorate %_arr_int_uint_1024 ArrayStride 4
+ OpMemberDecorate %prevent_dce_block 0 Offset 0
+ OpDecorate %prevent_dce_block Block
+ OpDecorate %1 DescriptorSet 0
+ OpDecorate %1 Binding 0
+ OpDecorate %_runtimearr_int ArrayStride 4
+ OpMemberDecorate %SB_RW 0 Offset 0
+ OpDecorate %SB_RW Block
+ OpDecorate %sb_rw DescriptorSet 0
+ OpDecorate %sb_rw Binding 1
+ %int = OpTypeInt 32 1
+ %uint = OpTypeInt 32 0
+ %uint_1024 = OpConstant %uint 1024
+%_arr_int_uint_1024 = OpTypeArray %int %uint_1024
+%prevent_dce_block = OpTypeStruct %_arr_int_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+ %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_runtimearr_int = OpTypeRuntimeArray %int
+ %SB_RW = OpTypeStruct %_runtimearr_int
+%_ptr_StorageBuffer_SB_RW = OpTypePointer StorageBuffer %SB_RW
+ %sb_rw = OpVariable %_ptr_StorageBuffer_SB_RW StorageBuffer
+ %uint_3 = OpConstant %uint 3
+ %uint_8 = OpConstant %uint 8
+ %uint_0 = OpConstant %uint 0
+ %13 = OpTypeCooperativeMatrixKHR %int %uint_3 %uint_8 %uint_8 %uint_0
+ %17 = OpTypeFunction %13
+%_ptr_Function_uint = OpTypePointer Function %uint
+ %uint_1 = OpConstant %uint 1
+%_ptr_StorageBuffer__runtimearr_int = OpTypePointer StorageBuffer %_runtimearr_int
+%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
+%_ptr_Function_13 = OpTypePointer Function %13
+ %void = OpTypeVoid
+ %35 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_int_uint_1024 = OpTypePointer StorageBuffer %_arr_int_uint_1024
+ %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_30634b = OpFunction %13 None %17
+ %18 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_uint Function
+ %arg_3 = OpVariable %_ptr_Function_uint Function
+ %res = OpVariable %_ptr_Function_13 Function
+ OpStore %arg_1 %uint_1
+ OpStore %arg_3 %uint_1
+ %23 = OpAccessChain %_ptr_StorageBuffer__runtimearr_int %sb_rw %uint_0
+ %25 = OpLoad %uint %arg_1 None
+ %26 = OpLoad %uint %arg_3 None
+ %27 = OpAccessChain %_ptr_StorageBuffer_int %23 %25
+ %29 = OpCooperativeMatrixLoadKHR %13 %27 %uint_1 %26 NonPrivatePointer
+ OpStore %res %29
+ %32 = OpLoad %13 %res None
+ OpReturnValue %32
+ OpFunctionEnd
+%compute_main = OpFunction %void None %35
+ %36 = OpLabel
+ %37 = OpFunctionCall %13 %subgroupMatrixLoad_30634b
+ %38 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_1024 %1 %uint_0
+ %40 = OpAccessChain %_ptr_StorageBuffer_int %38 %uint_0
+ OpCooperativeMatrixStoreKHR %40 %37 %uint_0 %uint_64 NonPrivatePointer
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/30634b.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/30634b.wgsl.expected.wgsl
new file mode 100644
index 0000000..c2d4fe9
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/30634b.wgsl.expected.wgsl
@@ -0,0 +1,22 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
+
+struct SB_RW {
+ arg_0 : array<i32>,
+}
+
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixLoad_30634b() -> subgroup_matrix_left<i32, 8, 8> {
+ var arg_1 = 1u;
+ const arg_2 = true;
+ var arg_3 = 1u;
+ var res : subgroup_matrix_left<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<i32, 8, 8>>(&(sb_rw.arg_0), arg_1, arg_2, arg_3);
+ return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_30634b(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/457d20.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/457d20.wgsl
new file mode 100644
index 0000000..2dee5a6
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/457d20.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, u32, 8, 8>>(ptr<storage, runtime_array<u32>, read>, u32, @const bool, u32) -> subgroup_matrix<left, u32, 8, 8>
+fn subgroupMatrixLoad_457d20() -> subgroup_matrix_left<u32, 8, 8>{
+ var arg_1 = 1u;
+ const arg_2 = true;
+ var arg_3 = 1u;
+ var res: subgroup_matrix_left<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<u32, 8, 8>>(&sb_ro.arg_0, arg_1, arg_2, arg_3);
+ return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_457d20(), false, 64);
+}
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
new file mode 100644
index 0000000..3cd8b8c
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/457d20.wgsl.expected.dxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: FAILED
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/457d20.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/457d20.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..48f5b71
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/457d20.wgsl.expected.fxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: INVALID
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/457d20.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/457d20.wgsl.expected.glsl
new file mode 100644
index 0000000..cc19bf0
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/457d20.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the GLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/457d20.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/457d20.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..dda740a
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/457d20.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/457d20.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/457d20.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..4709805
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/457d20.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/457d20.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/457d20.wgsl.expected.msl
new file mode 100644
index 0000000..5dba48c
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/457d20.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: non-float subgroup matrices are not supported by the MSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/457d20.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/457d20.wgsl.expected.spvasm
new file mode 100644
index 0000000..9ea40a5
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/457d20.wgsl.expected.spvasm
@@ -0,0 +1,84 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 43
+; Schema: 0
+ OpCapability Shader
+ OpCapability VulkanMemoryModel
+ OpCapability VulkanMemoryModelDeviceScope
+ OpCapability CooperativeMatrixKHR
+ OpExtension "SPV_KHR_vulkan_memory_model"
+ OpExtension "SPV_KHR_cooperative_matrix"
+ OpMemoryModel Logical Vulkan
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpMemberName %prevent_dce_block 0 "inner"
+ OpName %prevent_dce_block "prevent_dce_block"
+ OpMemberName %SB_RO 0 "arg_0"
+ OpName %SB_RO "SB_RO"
+ OpName %sb_ro "sb_ro"
+ OpName %subgroupMatrixLoad_457d20 "subgroupMatrixLoad_457d20"
+ OpName %arg_1 "arg_1"
+ OpName %arg_3 "arg_3"
+ OpName %res "res"
+ OpName %compute_main "compute_main"
+ OpDecorate %_arr_uint_uint_1024 ArrayStride 4
+ OpMemberDecorate %prevent_dce_block 0 Offset 0
+ OpDecorate %prevent_dce_block Block
+ OpDecorate %1 DescriptorSet 0
+ OpDecorate %1 Binding 0
+ OpDecorate %_runtimearr_uint ArrayStride 4
+ OpMemberDecorate %SB_RO 0 Offset 0
+ OpDecorate %SB_RO Block
+ OpDecorate %sb_ro DescriptorSet 0
+ OpDecorate %sb_ro Binding 1
+ OpDecorate %sb_ro NonWritable
+ %uint = OpTypeInt 32 0
+ %uint_1024 = OpConstant %uint 1024
+%_arr_uint_uint_1024 = OpTypeArray %uint %uint_1024
+%prevent_dce_block = OpTypeStruct %_arr_uint_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+ %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_runtimearr_uint = OpTypeRuntimeArray %uint
+ %SB_RO = OpTypeStruct %_runtimearr_uint
+%_ptr_StorageBuffer_SB_RO = OpTypePointer StorageBuffer %SB_RO
+ %sb_ro = OpVariable %_ptr_StorageBuffer_SB_RO StorageBuffer
+ %uint_3 = OpConstant %uint 3
+ %uint_8 = OpConstant %uint 8
+ %uint_0 = OpConstant %uint 0
+ %12 = OpTypeCooperativeMatrixKHR %uint %uint_3 %uint_8 %uint_8 %uint_0
+ %16 = OpTypeFunction %12
+%_ptr_Function_uint = OpTypePointer Function %uint
+ %uint_1 = OpConstant %uint 1
+%_ptr_StorageBuffer__runtimearr_uint = OpTypePointer StorageBuffer %_runtimearr_uint
+%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
+%_ptr_Function_12 = OpTypePointer Function %12
+ %void = OpTypeVoid
+ %34 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_uint_uint_1024 = OpTypePointer StorageBuffer %_arr_uint_uint_1024
+%_ptr_StorageBuffer_uint_0 = OpTypePointer StorageBuffer %uint
+ %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_457d20 = OpFunction %12 None %16
+ %17 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_uint Function
+ %arg_3 = OpVariable %_ptr_Function_uint Function
+ %res = OpVariable %_ptr_Function_12 Function
+ OpStore %arg_1 %uint_1
+ OpStore %arg_3 %uint_1
+ %22 = OpAccessChain %_ptr_StorageBuffer__runtimearr_uint %sb_ro %uint_0
+ %24 = OpLoad %uint %arg_1 None
+ %25 = OpLoad %uint %arg_3 None
+ %26 = OpAccessChain %_ptr_StorageBuffer_uint %22 %24
+ %28 = OpCooperativeMatrixLoadKHR %12 %26 %uint_1 %25 NonPrivatePointer
+ OpStore %res %28
+ %31 = OpLoad %12 %res None
+ OpReturnValue %31
+ OpFunctionEnd
+%compute_main = OpFunction %void None %34
+ %35 = OpLabel
+ %36 = OpFunctionCall %12 %subgroupMatrixLoad_457d20
+ %37 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_1024 %1 %uint_0
+ %39 = OpAccessChain %_ptr_StorageBuffer_uint_0 %37 %uint_0
+ OpCooperativeMatrixStoreKHR %39 %36 %uint_0 %uint_64 NonPrivatePointer
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/457d20.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/457d20.wgsl.expected.wgsl
new file mode 100644
index 0000000..7cb6eaf
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/457d20.wgsl.expected.wgsl
@@ -0,0 +1,22 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
+
+struct SB_RO {
+ arg_0 : array<u32>,
+}
+
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+fn subgroupMatrixLoad_457d20() -> subgroup_matrix_left<u32, 8, 8> {
+ var arg_1 = 1u;
+ const arg_2 = true;
+ var arg_3 = 1u;
+ var res : subgroup_matrix_left<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<u32, 8, 8>>(&(sb_ro.arg_0), arg_1, arg_2, arg_3);
+ return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_457d20(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/5155ed.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/5155ed.wgsl
new file mode 100644
index 0000000..fe89df7
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/5155ed.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, u32, 8, 8>>(ptr<storage, runtime_array<u32>, read_write>, u32, @const bool, u32) -> subgroup_matrix<left, u32, 8, 8>
+fn subgroupMatrixLoad_5155ed() -> subgroup_matrix_left<u32, 8, 8>{
+ var arg_1 = 1u;
+ const arg_2 = true;
+ var arg_3 = 1u;
+ var res: subgroup_matrix_left<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<u32, 8, 8>>(&sb_rw.arg_0, arg_1, arg_2, arg_3);
+ return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_5155ed(), false, 64);
+}
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
new file mode 100644
index 0000000..3cd8b8c
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/5155ed.wgsl.expected.dxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: FAILED
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/5155ed.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/5155ed.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..48f5b71
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/5155ed.wgsl.expected.fxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: INVALID
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/5155ed.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/5155ed.wgsl.expected.glsl
new file mode 100644
index 0000000..cc19bf0
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/5155ed.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the GLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/5155ed.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/5155ed.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..dda740a
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/5155ed.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/5155ed.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/5155ed.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..4709805
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/5155ed.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/5155ed.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/5155ed.wgsl.expected.msl
new file mode 100644
index 0000000..5dba48c
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/5155ed.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: non-float subgroup matrices are not supported by the MSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/5155ed.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/5155ed.wgsl.expected.spvasm
new file mode 100644
index 0000000..df6e434
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/5155ed.wgsl.expected.spvasm
@@ -0,0 +1,82 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 42
+; Schema: 0
+ OpCapability Shader
+ OpCapability VulkanMemoryModel
+ OpCapability VulkanMemoryModelDeviceScope
+ OpCapability CooperativeMatrixKHR
+ OpExtension "SPV_KHR_vulkan_memory_model"
+ OpExtension "SPV_KHR_cooperative_matrix"
+ OpMemoryModel Logical Vulkan
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpMemberName %prevent_dce_block 0 "inner"
+ OpName %prevent_dce_block "prevent_dce_block"
+ OpMemberName %SB_RW 0 "arg_0"
+ OpName %SB_RW "SB_RW"
+ OpName %sb_rw "sb_rw"
+ OpName %subgroupMatrixLoad_5155ed "subgroupMatrixLoad_5155ed"
+ OpName %arg_1 "arg_1"
+ OpName %arg_3 "arg_3"
+ OpName %res "res"
+ OpName %compute_main "compute_main"
+ OpDecorate %_arr_uint_uint_1024 ArrayStride 4
+ OpMemberDecorate %prevent_dce_block 0 Offset 0
+ OpDecorate %prevent_dce_block Block
+ OpDecorate %1 DescriptorSet 0
+ OpDecorate %1 Binding 0
+ OpDecorate %_runtimearr_uint ArrayStride 4
+ OpMemberDecorate %SB_RW 0 Offset 0
+ OpDecorate %SB_RW Block
+ OpDecorate %sb_rw DescriptorSet 0
+ OpDecorate %sb_rw Binding 1
+ %uint = OpTypeInt 32 0
+ %uint_1024 = OpConstant %uint 1024
+%_arr_uint_uint_1024 = OpTypeArray %uint %uint_1024
+%prevent_dce_block = OpTypeStruct %_arr_uint_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+ %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_runtimearr_uint = OpTypeRuntimeArray %uint
+ %SB_RW = OpTypeStruct %_runtimearr_uint
+%_ptr_StorageBuffer_SB_RW = OpTypePointer StorageBuffer %SB_RW
+ %sb_rw = OpVariable %_ptr_StorageBuffer_SB_RW StorageBuffer
+ %uint_3 = OpConstant %uint 3
+ %uint_8 = OpConstant %uint 8
+ %uint_0 = OpConstant %uint 0
+ %12 = OpTypeCooperativeMatrixKHR %uint %uint_3 %uint_8 %uint_8 %uint_0
+ %16 = OpTypeFunction %12
+%_ptr_Function_uint = OpTypePointer Function %uint
+ %uint_1 = OpConstant %uint 1
+%_ptr_StorageBuffer__runtimearr_uint = OpTypePointer StorageBuffer %_runtimearr_uint
+%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
+%_ptr_Function_12 = OpTypePointer Function %12
+ %void = OpTypeVoid
+ %34 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_uint_uint_1024 = OpTypePointer StorageBuffer %_arr_uint_uint_1024
+ %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_5155ed = OpFunction %12 None %16
+ %17 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_uint Function
+ %arg_3 = OpVariable %_ptr_Function_uint Function
+ %res = OpVariable %_ptr_Function_12 Function
+ OpStore %arg_1 %uint_1
+ OpStore %arg_3 %uint_1
+ %22 = OpAccessChain %_ptr_StorageBuffer__runtimearr_uint %sb_rw %uint_0
+ %24 = OpLoad %uint %arg_1 None
+ %25 = OpLoad %uint %arg_3 None
+ %26 = OpAccessChain %_ptr_StorageBuffer_uint %22 %24
+ %28 = OpCooperativeMatrixLoadKHR %12 %26 %uint_1 %25 NonPrivatePointer
+ OpStore %res %28
+ %31 = OpLoad %12 %res None
+ OpReturnValue %31
+ OpFunctionEnd
+%compute_main = OpFunction %void None %34
+ %35 = OpLabel
+ %36 = OpFunctionCall %12 %subgroupMatrixLoad_5155ed
+ %37 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_1024 %1 %uint_0
+ %39 = OpAccessChain %_ptr_StorageBuffer_uint %37 %uint_0
+ OpCooperativeMatrixStoreKHR %39 %36 %uint_0 %uint_64 NonPrivatePointer
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/5155ed.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/5155ed.wgsl.expected.wgsl
new file mode 100644
index 0000000..37a91bf
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/5155ed.wgsl.expected.wgsl
@@ -0,0 +1,22 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
+
+struct SB_RW {
+ arg_0 : array<u32>,
+}
+
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixLoad_5155ed() -> subgroup_matrix_left<u32, 8, 8> {
+ var arg_1 = 1u;
+ const arg_2 = true;
+ var arg_3 = 1u;
+ var res : subgroup_matrix_left<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<u32, 8, 8>>(&(sb_rw.arg_0), arg_1, arg_2, arg_3);
+ return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_5155ed(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/5de410.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/5de410.wgsl
new file mode 100644
index 0000000..1fee861
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/5de410.wgsl
@@ -0,0 +1,62 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+// test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// flags: --hlsl-shader-model 62
+
+
+enable chromium_experimental_subgroup_matrix;
+
+enable f16;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
+
+struct SB_RO {
+ arg_0: array<f16>,
+};
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<left, f16, 8, 8>>(ptr<storage, runtime_array<f16>, read>, u32, @const bool, u32) -> subgroup_matrix<left, f16, 8, 8>
+fn subgroupMatrixLoad_5de410() -> subgroup_matrix_left<f16, 8, 8>{
+ var arg_1 = 1u;
+ const arg_2 = true;
+ var arg_3 = 1u;
+ var res: subgroup_matrix_left<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<f16, 8, 8>>(&sb_ro.arg_0, arg_1, arg_2, arg_3);
+ return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_5de410(), false, 64);
+}
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
new file mode 100644
index 0000000..3cd8b8c
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/5de410.wgsl.expected.dxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: FAILED
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/5de410.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/5de410.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..48f5b71
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/5de410.wgsl.expected.fxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: INVALID
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/5de410.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/5de410.wgsl.expected.glsl
new file mode 100644
index 0000000..cc19bf0
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/5de410.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the GLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/5de410.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/5de410.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..dda740a
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/5de410.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/5de410.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/5de410.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..4709805
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/5de410.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/5de410.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/5de410.wgsl.expected.msl
new file mode 100644
index 0000000..e8cfb63
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/5de410.wgsl.expected.msl
@@ -0,0 +1,37 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+ const constant T& operator[](size_t i) const constant { return elements[i]; }
+ device T& operator[](size_t i) device { return elements[i]; }
+ const device T& operator[](size_t i) const device { return elements[i]; }
+ thread T& operator[](size_t i) thread { return elements[i]; }
+ const thread T& operator[](size_t i) const thread { return elements[i]; }
+ threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+ const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+ T elements[N];
+};
+
+struct SB_RO {
+ /* 0x0000 */ tint_array<half, 1> arg_0;
+};
+
+struct tint_module_vars_struct {
+ device tint_array<half, 1024>* prevent_dce;
+ const device SB_RO* sb_ro;
+};
+
+simdgroup_half8x8 subgroupMatrixLoad_5de410(tint_module_vars_struct tint_module_vars) {
+ uint arg_1 = 1u;
+ uint arg_3 = 1u;
+ simdgroup_half8x8 v = make_filled_simdgroup_matrix<half, 8, 8>(0.0h);
+ simdgroup_load(v, (&(*tint_module_vars.sb_ro).arg_0[arg_1]), ulong(arg_3), ulong2(0ul), true);
+ simdgroup_half8x8 res = v;
+ return res;
+}
+
+kernel void compute_main(device tint_array<half, 1024>* prevent_dce [[buffer(0)]], const device SB_RO* sb_ro [[buffer(1)]]) {
+ tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_ro=sb_ro};
+ simdgroup_store(subgroupMatrixLoad_5de410(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/5de410.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/5de410.wgsl.expected.spvasm
new file mode 100644
index 0000000..7eb3ca0
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/5de410.wgsl.expected.spvasm
@@ -0,0 +1,88 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 44
+; Schema: 0
+ OpCapability Shader
+ OpCapability VulkanMemoryModel
+ OpCapability VulkanMemoryModelDeviceScope
+ OpCapability Float16
+ OpCapability UniformAndStorageBuffer16BitAccess
+ OpCapability StorageBuffer16BitAccess
+ OpCapability CooperativeMatrixKHR
+ OpExtension "SPV_KHR_vulkan_memory_model"
+ OpExtension "SPV_KHR_cooperative_matrix"
+ OpMemoryModel Logical Vulkan
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpMemberName %prevent_dce_block 0 "inner"
+ OpName %prevent_dce_block "prevent_dce_block"
+ OpMemberName %SB_RO 0 "arg_0"
+ OpName %SB_RO "SB_RO"
+ OpName %sb_ro "sb_ro"
+ OpName %subgroupMatrixLoad_5de410 "subgroupMatrixLoad_5de410"
+ OpName %arg_1 "arg_1"
+ OpName %arg_3 "arg_3"
+ OpName %res "res"
+ OpName %compute_main "compute_main"
+ OpDecorate %_arr_half_uint_1024 ArrayStride 2
+ OpMemberDecorate %prevent_dce_block 0 Offset 0
+ OpDecorate %prevent_dce_block Block
+ OpDecorate %1 DescriptorSet 0
+ OpDecorate %1 Binding 0
+ OpDecorate %_runtimearr_half ArrayStride 2
+ OpMemberDecorate %SB_RO 0 Offset 0
+ OpDecorate %SB_RO Block
+ OpDecorate %sb_ro DescriptorSet 0
+ OpDecorate %sb_ro Binding 1
+ OpDecorate %sb_ro NonWritable
+ %half = OpTypeFloat 16
+ %uint = OpTypeInt 32 0
+ %uint_1024 = OpConstant %uint 1024
+%_arr_half_uint_1024 = OpTypeArray %half %uint_1024
+%prevent_dce_block = OpTypeStruct %_arr_half_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+ %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_runtimearr_half = OpTypeRuntimeArray %half
+ %SB_RO = OpTypeStruct %_runtimearr_half
+%_ptr_StorageBuffer_SB_RO = OpTypePointer StorageBuffer %SB_RO
+ %sb_ro = OpVariable %_ptr_StorageBuffer_SB_RO StorageBuffer
+ %uint_3 = OpConstant %uint 3
+ %uint_8 = OpConstant %uint 8
+ %uint_0 = OpConstant %uint 0
+ %13 = OpTypeCooperativeMatrixKHR %half %uint_3 %uint_8 %uint_8 %uint_0
+ %17 = OpTypeFunction %13
+%_ptr_Function_uint = OpTypePointer Function %uint
+ %uint_1 = OpConstant %uint 1
+%_ptr_StorageBuffer__runtimearr_half = OpTypePointer StorageBuffer %_runtimearr_half
+%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half
+%_ptr_Function_13 = OpTypePointer Function %13
+ %void = OpTypeVoid
+ %35 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_half_uint_1024 = OpTypePointer StorageBuffer %_arr_half_uint_1024
+%_ptr_StorageBuffer_half_0 = OpTypePointer StorageBuffer %half
+ %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_5de410 = OpFunction %13 None %17
+ %18 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_uint Function
+ %arg_3 = OpVariable %_ptr_Function_uint Function
+ %res = OpVariable %_ptr_Function_13 Function
+ OpStore %arg_1 %uint_1
+ OpStore %arg_3 %uint_1
+ %23 = OpAccessChain %_ptr_StorageBuffer__runtimearr_half %sb_ro %uint_0
+ %25 = OpLoad %uint %arg_1 None
+ %26 = OpLoad %uint %arg_3 None
+ %27 = OpAccessChain %_ptr_StorageBuffer_half %23 %25
+ %29 = OpCooperativeMatrixLoadKHR %13 %27 %uint_1 %26 NonPrivatePointer
+ OpStore %res %29
+ %32 = OpLoad %13 %res None
+ OpReturnValue %32
+ OpFunctionEnd
+%compute_main = OpFunction %void None %35
+ %36 = OpLabel
+ %37 = OpFunctionCall %13 %subgroupMatrixLoad_5de410
+ %38 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_1024 %1 %uint_0
+ %40 = OpAccessChain %_ptr_StorageBuffer_half_0 %38 %uint_0
+ OpCooperativeMatrixStoreKHR %40 %37 %uint_0 %uint_64 NonPrivatePointer
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/5de410.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/5de410.wgsl.expected.wgsl
new file mode 100644
index 0000000..b456104
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/5de410.wgsl.expected.wgsl
@@ -0,0 +1,23 @@
+enable chromium_experimental_subgroup_matrix;
+enable f16;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
+
+struct SB_RO {
+ arg_0 : array<f16>,
+}
+
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+fn subgroupMatrixLoad_5de410() -> subgroup_matrix_left<f16, 8, 8> {
+ var arg_1 = 1u;
+ const arg_2 = true;
+ var arg_3 = 1u;
+ var res : subgroup_matrix_left<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<f16, 8, 8>>(&(sb_ro.arg_0), arg_1, arg_2, arg_3);
+ return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_5de410(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/6c1e00.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/6c1e00.wgsl
new file mode 100644
index 0000000..efa97e0
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/6c1e00.wgsl
@@ -0,0 +1,60 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+// test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
+
+struct SB_RO {
+ arg_0: array<f32>,
+};
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<right, f32, 8, 8>>(ptr<storage, runtime_array<f32>, read>, u32, @const bool, u32) -> subgroup_matrix<right, f32, 8, 8>
+fn subgroupMatrixLoad_6c1e00() -> subgroup_matrix_right<f32, 8, 8>{
+ var arg_1 = 1u;
+ const arg_2 = true;
+ var arg_3 = 1u;
+ var res: subgroup_matrix_right<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<f32, 8, 8>>(&sb_ro.arg_0, arg_1, arg_2, arg_3);
+ return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_6c1e00(), false, 64);
+}
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
new file mode 100644
index 0000000..3cd8b8c
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/6c1e00.wgsl.expected.dxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: FAILED
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/6c1e00.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/6c1e00.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..48f5b71
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/6c1e00.wgsl.expected.fxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: INVALID
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/6c1e00.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/6c1e00.wgsl.expected.glsl
new file mode 100644
index 0000000..cc19bf0
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/6c1e00.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the GLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/6c1e00.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/6c1e00.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..dda740a
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/6c1e00.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/6c1e00.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/6c1e00.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..4709805
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/6c1e00.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/6c1e00.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/6c1e00.wgsl.expected.msl
new file mode 100644
index 0000000..39bf36f
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/6c1e00.wgsl.expected.msl
@@ -0,0 +1,37 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+ const constant T& operator[](size_t i) const constant { return elements[i]; }
+ device T& operator[](size_t i) device { return elements[i]; }
+ const device T& operator[](size_t i) const device { return elements[i]; }
+ thread T& operator[](size_t i) thread { return elements[i]; }
+ const thread T& operator[](size_t i) const thread { return elements[i]; }
+ threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+ const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+ T elements[N];
+};
+
+struct SB_RO {
+ /* 0x0000 */ tint_array<float, 1> arg_0;
+};
+
+struct tint_module_vars_struct {
+ device tint_array<float, 1024>* prevent_dce;
+ const device SB_RO* sb_ro;
+};
+
+simdgroup_float8x8 subgroupMatrixLoad_6c1e00(tint_module_vars_struct tint_module_vars) {
+ uint arg_1 = 1u;
+ uint arg_3 = 1u;
+ simdgroup_float8x8 v = make_filled_simdgroup_matrix<float, 8, 8>(0.0f);
+ simdgroup_load(v, (&(*tint_module_vars.sb_ro).arg_0[arg_1]), ulong(arg_3), ulong2(0ul), true);
+ simdgroup_float8x8 res = v;
+ return res;
+}
+
+kernel void compute_main(device tint_array<float, 1024>* prevent_dce [[buffer(0)]], const device SB_RO* sb_ro [[buffer(1)]]) {
+ tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_ro=sb_ro};
+ simdgroup_store(subgroupMatrixLoad_6c1e00(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/6c1e00.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/6c1e00.wgsl.expected.spvasm
new file mode 100644
index 0000000..6b0e14d
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/6c1e00.wgsl.expected.spvasm
@@ -0,0 +1,85 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 44
+; Schema: 0
+ OpCapability Shader
+ OpCapability VulkanMemoryModel
+ OpCapability VulkanMemoryModelDeviceScope
+ OpCapability CooperativeMatrixKHR
+ OpExtension "SPV_KHR_vulkan_memory_model"
+ OpExtension "SPV_KHR_cooperative_matrix"
+ OpMemoryModel Logical Vulkan
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpMemberName %prevent_dce_block 0 "inner"
+ OpName %prevent_dce_block "prevent_dce_block"
+ OpMemberName %SB_RO 0 "arg_0"
+ OpName %SB_RO "SB_RO"
+ OpName %sb_ro "sb_ro"
+ OpName %subgroupMatrixLoad_6c1e00 "subgroupMatrixLoad_6c1e00"
+ OpName %arg_1 "arg_1"
+ OpName %arg_3 "arg_3"
+ OpName %res "res"
+ OpName %compute_main "compute_main"
+ OpDecorate %_arr_float_uint_1024 ArrayStride 4
+ OpMemberDecorate %prevent_dce_block 0 Offset 0
+ OpDecorate %prevent_dce_block Block
+ OpDecorate %1 DescriptorSet 0
+ OpDecorate %1 Binding 0
+ OpDecorate %_runtimearr_float ArrayStride 4
+ OpMemberDecorate %SB_RO 0 Offset 0
+ OpDecorate %SB_RO Block
+ OpDecorate %sb_ro DescriptorSet 0
+ OpDecorate %sb_ro Binding 1
+ OpDecorate %sb_ro NonWritable
+ %float = OpTypeFloat 32
+ %uint = OpTypeInt 32 0
+ %uint_1024 = OpConstant %uint 1024
+%_arr_float_uint_1024 = OpTypeArray %float %uint_1024
+%prevent_dce_block = OpTypeStruct %_arr_float_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+ %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_runtimearr_float = OpTypeRuntimeArray %float
+ %SB_RO = OpTypeStruct %_runtimearr_float
+%_ptr_StorageBuffer_SB_RO = OpTypePointer StorageBuffer %SB_RO
+ %sb_ro = OpVariable %_ptr_StorageBuffer_SB_RO StorageBuffer
+ %uint_3 = OpConstant %uint 3
+ %uint_8 = OpConstant %uint 8
+ %uint_1 = OpConstant %uint 1
+ %13 = OpTypeCooperativeMatrixKHR %float %uint_3 %uint_8 %uint_8 %uint_1
+ %17 = OpTypeFunction %13
+%_ptr_Function_uint = OpTypePointer Function %uint
+%_ptr_StorageBuffer__runtimearr_float = OpTypePointer StorageBuffer %_runtimearr_float
+ %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
+%_ptr_Function_13 = OpTypePointer Function %13
+ %void = OpTypeVoid
+ %35 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_float_uint_1024 = OpTypePointer StorageBuffer %_arr_float_uint_1024
+%_ptr_StorageBuffer_float_0 = OpTypePointer StorageBuffer %float
+ %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_6c1e00 = OpFunction %13 None %17
+ %18 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_uint Function
+ %arg_3 = OpVariable %_ptr_Function_uint Function
+ %res = OpVariable %_ptr_Function_13 Function
+ OpStore %arg_1 %uint_1
+ OpStore %arg_3 %uint_1
+ %22 = OpAccessChain %_ptr_StorageBuffer__runtimearr_float %sb_ro %uint_0
+ %25 = OpLoad %uint %arg_1 None
+ %26 = OpLoad %uint %arg_3 None
+ %27 = OpAccessChain %_ptr_StorageBuffer_float %22 %25
+ %29 = OpCooperativeMatrixLoadKHR %13 %27 %uint_1 %26 NonPrivatePointer
+ OpStore %res %29
+ %32 = OpLoad %13 %res None
+ OpReturnValue %32
+ OpFunctionEnd
+%compute_main = OpFunction %void None %35
+ %36 = OpLabel
+ %37 = OpFunctionCall %13 %subgroupMatrixLoad_6c1e00
+ %38 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_1024 %1 %uint_0
+ %40 = OpAccessChain %_ptr_StorageBuffer_float_0 %38 %uint_0
+ OpCooperativeMatrixStoreKHR %40 %37 %uint_0 %uint_64 NonPrivatePointer
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/6c1e00.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/6c1e00.wgsl.expected.wgsl
new file mode 100644
index 0000000..177b457
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/6c1e00.wgsl.expected.wgsl
@@ -0,0 +1,22 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
+
+struct SB_RO {
+ arg_0 : array<f32>,
+}
+
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+fn subgroupMatrixLoad_6c1e00() -> subgroup_matrix_right<f32, 8, 8> {
+ var arg_1 = 1u;
+ const arg_2 = true;
+ var arg_3 = 1u;
+ var res : subgroup_matrix_right<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<f32, 8, 8>>(&(sb_ro.arg_0), arg_1, arg_2, arg_3);
+ return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_6c1e00(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/6e2773.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/6e2773.wgsl
new file mode 100644
index 0000000..d17fa89
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/6e2773.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, i32, 8, 8>>(ptr<storage, runtime_array<i32>, read_write>, u32, @const bool, u32) -> subgroup_matrix<result, i32, 8, 8>
+fn subgroupMatrixLoad_6e2773() -> subgroup_matrix_result<i32, 8, 8>{
+ var arg_1 = 1u;
+ const arg_2 = true;
+ var arg_3 = 1u;
+ var res: subgroup_matrix_result<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<i32, 8, 8>>(&sb_rw.arg_0, arg_1, arg_2, arg_3);
+ return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_6e2773(), false, 64);
+}
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
new file mode 100644
index 0000000..3cd8b8c
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/6e2773.wgsl.expected.dxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: FAILED
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/6e2773.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/6e2773.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..48f5b71
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/6e2773.wgsl.expected.fxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: INVALID
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/6e2773.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/6e2773.wgsl.expected.glsl
new file mode 100644
index 0000000..cc19bf0
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/6e2773.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the GLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/6e2773.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/6e2773.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..dda740a
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/6e2773.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/6e2773.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/6e2773.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..4709805
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/6e2773.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/6e2773.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/6e2773.wgsl.expected.msl
new file mode 100644
index 0000000..5dba48c
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/6e2773.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: non-float subgroup matrices are not supported by the MSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/6e2773.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/6e2773.wgsl.expected.spvasm
new file mode 100644
index 0000000..b3dfc0f
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/6e2773.wgsl.expected.spvasm
@@ -0,0 +1,84 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 44
+; Schema: 0
+ OpCapability Shader
+ OpCapability VulkanMemoryModel
+ OpCapability VulkanMemoryModelDeviceScope
+ OpCapability CooperativeMatrixKHR
+ OpExtension "SPV_KHR_vulkan_memory_model"
+ OpExtension "SPV_KHR_cooperative_matrix"
+ OpMemoryModel Logical Vulkan
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpMemberName %prevent_dce_block 0 "inner"
+ OpName %prevent_dce_block "prevent_dce_block"
+ OpMemberName %SB_RW 0 "arg_0"
+ OpName %SB_RW "SB_RW"
+ OpName %sb_rw "sb_rw"
+ OpName %subgroupMatrixLoad_6e2773 "subgroupMatrixLoad_6e2773"
+ OpName %arg_1 "arg_1"
+ OpName %arg_3 "arg_3"
+ OpName %res "res"
+ OpName %compute_main "compute_main"
+ OpDecorate %_arr_int_uint_1024 ArrayStride 4
+ OpMemberDecorate %prevent_dce_block 0 Offset 0
+ OpDecorate %prevent_dce_block Block
+ OpDecorate %1 DescriptorSet 0
+ OpDecorate %1 Binding 0
+ OpDecorate %_runtimearr_int ArrayStride 4
+ OpMemberDecorate %SB_RW 0 Offset 0
+ OpDecorate %SB_RW Block
+ OpDecorate %sb_rw DescriptorSet 0
+ OpDecorate %sb_rw Binding 1
+ %int = OpTypeInt 32 1
+ %uint = OpTypeInt 32 0
+ %uint_1024 = OpConstant %uint 1024
+%_arr_int_uint_1024 = OpTypeArray %int %uint_1024
+%prevent_dce_block = OpTypeStruct %_arr_int_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+ %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_runtimearr_int = OpTypeRuntimeArray %int
+ %SB_RW = OpTypeStruct %_runtimearr_int
+%_ptr_StorageBuffer_SB_RW = OpTypePointer StorageBuffer %SB_RW
+ %sb_rw = OpVariable %_ptr_StorageBuffer_SB_RW StorageBuffer
+ %uint_3 = OpConstant %uint 3
+ %uint_8 = OpConstant %uint 8
+ %uint_2 = OpConstant %uint 2
+ %13 = OpTypeCooperativeMatrixKHR %int %uint_3 %uint_8 %uint_8 %uint_2
+ %17 = OpTypeFunction %13
+%_ptr_Function_uint = OpTypePointer Function %uint
+ %uint_1 = OpConstant %uint 1
+%_ptr_StorageBuffer__runtimearr_int = OpTypePointer StorageBuffer %_runtimearr_int
+ %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
+%_ptr_Function_13 = OpTypePointer Function %13
+ %void = OpTypeVoid
+ %36 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_int_uint_1024 = OpTypePointer StorageBuffer %_arr_int_uint_1024
+ %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_6e2773 = OpFunction %13 None %17
+ %18 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_uint Function
+ %arg_3 = OpVariable %_ptr_Function_uint Function
+ %res = OpVariable %_ptr_Function_13 Function
+ OpStore %arg_1 %uint_1
+ OpStore %arg_3 %uint_1
+ %23 = OpAccessChain %_ptr_StorageBuffer__runtimearr_int %sb_rw %uint_0
+ %26 = OpLoad %uint %arg_1 None
+ %27 = OpLoad %uint %arg_3 None
+ %28 = OpAccessChain %_ptr_StorageBuffer_int %23 %26
+ %30 = OpCooperativeMatrixLoadKHR %13 %28 %uint_1 %27 NonPrivatePointer
+ OpStore %res %30
+ %33 = OpLoad %13 %res None
+ OpReturnValue %33
+ OpFunctionEnd
+%compute_main = OpFunction %void None %36
+ %37 = OpLabel
+ %38 = OpFunctionCall %13 %subgroupMatrixLoad_6e2773
+ %39 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_1024 %1 %uint_0
+ %41 = OpAccessChain %_ptr_StorageBuffer_int %39 %uint_0
+ OpCooperativeMatrixStoreKHR %41 %38 %uint_0 %uint_64 NonPrivatePointer
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/6e2773.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/6e2773.wgsl.expected.wgsl
new file mode 100644
index 0000000..c9749af
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/6e2773.wgsl.expected.wgsl
@@ -0,0 +1,22 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
+
+struct SB_RW {
+ arg_0 : array<i32>,
+}
+
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixLoad_6e2773() -> subgroup_matrix_result<i32, 8, 8> {
+ var arg_1 = 1u;
+ const arg_2 = true;
+ var arg_3 = 1u;
+ var res : subgroup_matrix_result<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<i32, 8, 8>>(&(sb_rw.arg_0), arg_1, arg_2, arg_3);
+ return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_6e2773(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/80b778.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/80b778.wgsl
new file mode 100644
index 0000000..e97f92f
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/80b778.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, u32, 8, 8>>(ptr<storage, runtime_array<u32>, read_write>, u32, @const bool, u32) -> subgroup_matrix<right, u32, 8, 8>
+fn subgroupMatrixLoad_80b778() -> subgroup_matrix_right<u32, 8, 8>{
+ var arg_1 = 1u;
+ const arg_2 = true;
+ var arg_3 = 1u;
+ var res: subgroup_matrix_right<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<u32, 8, 8>>(&sb_rw.arg_0, arg_1, arg_2, arg_3);
+ return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_80b778(), false, 64);
+}
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
new file mode 100644
index 0000000..3cd8b8c
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/80b778.wgsl.expected.dxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: FAILED
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/80b778.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/80b778.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..48f5b71
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/80b778.wgsl.expected.fxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: INVALID
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/80b778.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/80b778.wgsl.expected.glsl
new file mode 100644
index 0000000..cc19bf0
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/80b778.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the GLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/80b778.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/80b778.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..dda740a
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/80b778.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/80b778.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/80b778.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..4709805
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/80b778.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/80b778.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/80b778.wgsl.expected.msl
new file mode 100644
index 0000000..5dba48c
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/80b778.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: non-float subgroup matrices are not supported by the MSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/80b778.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/80b778.wgsl.expected.spvasm
new file mode 100644
index 0000000..010eccb
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/80b778.wgsl.expected.spvasm
@@ -0,0 +1,82 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 42
+; Schema: 0
+ OpCapability Shader
+ OpCapability VulkanMemoryModel
+ OpCapability VulkanMemoryModelDeviceScope
+ OpCapability CooperativeMatrixKHR
+ OpExtension "SPV_KHR_vulkan_memory_model"
+ OpExtension "SPV_KHR_cooperative_matrix"
+ OpMemoryModel Logical Vulkan
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpMemberName %prevent_dce_block 0 "inner"
+ OpName %prevent_dce_block "prevent_dce_block"
+ OpMemberName %SB_RW 0 "arg_0"
+ OpName %SB_RW "SB_RW"
+ OpName %sb_rw "sb_rw"
+ OpName %subgroupMatrixLoad_80b778 "subgroupMatrixLoad_80b778"
+ OpName %arg_1 "arg_1"
+ OpName %arg_3 "arg_3"
+ OpName %res "res"
+ OpName %compute_main "compute_main"
+ OpDecorate %_arr_uint_uint_1024 ArrayStride 4
+ OpMemberDecorate %prevent_dce_block 0 Offset 0
+ OpDecorate %prevent_dce_block Block
+ OpDecorate %1 DescriptorSet 0
+ OpDecorate %1 Binding 0
+ OpDecorate %_runtimearr_uint ArrayStride 4
+ OpMemberDecorate %SB_RW 0 Offset 0
+ OpDecorate %SB_RW Block
+ OpDecorate %sb_rw DescriptorSet 0
+ OpDecorate %sb_rw Binding 1
+ %uint = OpTypeInt 32 0
+ %uint_1024 = OpConstant %uint 1024
+%_arr_uint_uint_1024 = OpTypeArray %uint %uint_1024
+%prevent_dce_block = OpTypeStruct %_arr_uint_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+ %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_runtimearr_uint = OpTypeRuntimeArray %uint
+ %SB_RW = OpTypeStruct %_runtimearr_uint
+%_ptr_StorageBuffer_SB_RW = OpTypePointer StorageBuffer %SB_RW
+ %sb_rw = OpVariable %_ptr_StorageBuffer_SB_RW StorageBuffer
+ %uint_3 = OpConstant %uint 3
+ %uint_8 = OpConstant %uint 8
+ %uint_1 = OpConstant %uint 1
+ %12 = OpTypeCooperativeMatrixKHR %uint %uint_3 %uint_8 %uint_8 %uint_1
+ %16 = OpTypeFunction %12
+%_ptr_Function_uint = OpTypePointer Function %uint
+%_ptr_StorageBuffer__runtimearr_uint = OpTypePointer StorageBuffer %_runtimearr_uint
+ %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
+%_ptr_Function_12 = OpTypePointer Function %12
+ %void = OpTypeVoid
+ %34 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_uint_uint_1024 = OpTypePointer StorageBuffer %_arr_uint_uint_1024
+ %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_80b778 = OpFunction %12 None %16
+ %17 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_uint Function
+ %arg_3 = OpVariable %_ptr_Function_uint Function
+ %res = OpVariable %_ptr_Function_12 Function
+ OpStore %arg_1 %uint_1
+ OpStore %arg_3 %uint_1
+ %21 = OpAccessChain %_ptr_StorageBuffer__runtimearr_uint %sb_rw %uint_0
+ %24 = OpLoad %uint %arg_1 None
+ %25 = OpLoad %uint %arg_3 None
+ %26 = OpAccessChain %_ptr_StorageBuffer_uint %21 %24
+ %28 = OpCooperativeMatrixLoadKHR %12 %26 %uint_1 %25 NonPrivatePointer
+ OpStore %res %28
+ %31 = OpLoad %12 %res None
+ OpReturnValue %31
+ OpFunctionEnd
+%compute_main = OpFunction %void None %34
+ %35 = OpLabel
+ %36 = OpFunctionCall %12 %subgroupMatrixLoad_80b778
+ %37 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_1024 %1 %uint_0
+ %39 = OpAccessChain %_ptr_StorageBuffer_uint %37 %uint_0
+ OpCooperativeMatrixStoreKHR %39 %36 %uint_0 %uint_64 NonPrivatePointer
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/80b778.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/80b778.wgsl.expected.wgsl
new file mode 100644
index 0000000..e84dcf0
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/80b778.wgsl.expected.wgsl
@@ -0,0 +1,22 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
+
+struct SB_RW {
+ arg_0 : array<u32>,
+}
+
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixLoad_80b778() -> subgroup_matrix_right<u32, 8, 8> {
+ var arg_1 = 1u;
+ const arg_2 = true;
+ var arg_3 = 1u;
+ var res : subgroup_matrix_right<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<u32, 8, 8>>(&(sb_rw.arg_0), arg_1, arg_2, arg_3);
+ return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_80b778(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/a798ae.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/a798ae.wgsl
new file mode 100644
index 0000000..ffcce04
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/a798ae.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, i32, 8, 8>>(ptr<storage, runtime_array<i32>, read>, u32, @const bool, u32) -> subgroup_matrix<result, i32, 8, 8>
+fn subgroupMatrixLoad_a798ae() -> subgroup_matrix_result<i32, 8, 8>{
+ var arg_1 = 1u;
+ const arg_2 = true;
+ var arg_3 = 1u;
+ var res: subgroup_matrix_result<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<i32, 8, 8>>(&sb_ro.arg_0, arg_1, arg_2, arg_3);
+ return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_a798ae(), false, 64);
+}
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
new file mode 100644
index 0000000..3cd8b8c
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/a798ae.wgsl.expected.dxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: FAILED
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/a798ae.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/a798ae.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..48f5b71
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/a798ae.wgsl.expected.fxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: INVALID
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/a798ae.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/a798ae.wgsl.expected.glsl
new file mode 100644
index 0000000..cc19bf0
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/a798ae.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the GLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/a798ae.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/a798ae.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..dda740a
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/a798ae.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/a798ae.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/a798ae.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..4709805
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/a798ae.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/a798ae.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/a798ae.wgsl.expected.msl
new file mode 100644
index 0000000..5dba48c
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/a798ae.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: non-float subgroup matrices are not supported by the MSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/a798ae.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/a798ae.wgsl.expected.spvasm
new file mode 100644
index 0000000..5410ace
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/a798ae.wgsl.expected.spvasm
@@ -0,0 +1,86 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 45
+; Schema: 0
+ OpCapability Shader
+ OpCapability VulkanMemoryModel
+ OpCapability VulkanMemoryModelDeviceScope
+ OpCapability CooperativeMatrixKHR
+ OpExtension "SPV_KHR_vulkan_memory_model"
+ OpExtension "SPV_KHR_cooperative_matrix"
+ OpMemoryModel Logical Vulkan
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpMemberName %prevent_dce_block 0 "inner"
+ OpName %prevent_dce_block "prevent_dce_block"
+ OpMemberName %SB_RO 0 "arg_0"
+ OpName %SB_RO "SB_RO"
+ OpName %sb_ro "sb_ro"
+ OpName %subgroupMatrixLoad_a798ae "subgroupMatrixLoad_a798ae"
+ OpName %arg_1 "arg_1"
+ OpName %arg_3 "arg_3"
+ OpName %res "res"
+ OpName %compute_main "compute_main"
+ OpDecorate %_arr_int_uint_1024 ArrayStride 4
+ OpMemberDecorate %prevent_dce_block 0 Offset 0
+ OpDecorate %prevent_dce_block Block
+ OpDecorate %1 DescriptorSet 0
+ OpDecorate %1 Binding 0
+ OpDecorate %_runtimearr_int ArrayStride 4
+ OpMemberDecorate %SB_RO 0 Offset 0
+ OpDecorate %SB_RO Block
+ OpDecorate %sb_ro DescriptorSet 0
+ OpDecorate %sb_ro Binding 1
+ OpDecorate %sb_ro NonWritable
+ %int = OpTypeInt 32 1
+ %uint = OpTypeInt 32 0
+ %uint_1024 = OpConstant %uint 1024
+%_arr_int_uint_1024 = OpTypeArray %int %uint_1024
+%prevent_dce_block = OpTypeStruct %_arr_int_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+ %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_runtimearr_int = OpTypeRuntimeArray %int
+ %SB_RO = OpTypeStruct %_runtimearr_int
+%_ptr_StorageBuffer_SB_RO = OpTypePointer StorageBuffer %SB_RO
+ %sb_ro = OpVariable %_ptr_StorageBuffer_SB_RO StorageBuffer
+ %uint_3 = OpConstant %uint 3
+ %uint_8 = OpConstant %uint 8
+ %uint_2 = OpConstant %uint 2
+ %13 = OpTypeCooperativeMatrixKHR %int %uint_3 %uint_8 %uint_8 %uint_2
+ %17 = OpTypeFunction %13
+%_ptr_Function_uint = OpTypePointer Function %uint
+ %uint_1 = OpConstant %uint 1
+%_ptr_StorageBuffer__runtimearr_int = OpTypePointer StorageBuffer %_runtimearr_int
+ %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
+%_ptr_Function_13 = OpTypePointer Function %13
+ %void = OpTypeVoid
+ %36 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_int_uint_1024 = OpTypePointer StorageBuffer %_arr_int_uint_1024
+%_ptr_StorageBuffer_int_0 = OpTypePointer StorageBuffer %int
+ %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_a798ae = OpFunction %13 None %17
+ %18 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_uint Function
+ %arg_3 = OpVariable %_ptr_Function_uint Function
+ %res = OpVariable %_ptr_Function_13 Function
+ OpStore %arg_1 %uint_1
+ OpStore %arg_3 %uint_1
+ %23 = OpAccessChain %_ptr_StorageBuffer__runtimearr_int %sb_ro %uint_0
+ %26 = OpLoad %uint %arg_1 None
+ %27 = OpLoad %uint %arg_3 None
+ %28 = OpAccessChain %_ptr_StorageBuffer_int %23 %26
+ %30 = OpCooperativeMatrixLoadKHR %13 %28 %uint_1 %27 NonPrivatePointer
+ OpStore %res %30
+ %33 = OpLoad %13 %res None
+ OpReturnValue %33
+ OpFunctionEnd
+%compute_main = OpFunction %void None %36
+ %37 = OpLabel
+ %38 = OpFunctionCall %13 %subgroupMatrixLoad_a798ae
+ %39 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_1024 %1 %uint_0
+ %41 = OpAccessChain %_ptr_StorageBuffer_int_0 %39 %uint_0
+ OpCooperativeMatrixStoreKHR %41 %38 %uint_0 %uint_64 NonPrivatePointer
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/a798ae.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/a798ae.wgsl.expected.wgsl
new file mode 100644
index 0000000..db08b21
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/a798ae.wgsl.expected.wgsl
@@ -0,0 +1,22 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
+
+struct SB_RO {
+ arg_0 : array<i32>,
+}
+
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+fn subgroupMatrixLoad_a798ae() -> subgroup_matrix_result<i32, 8, 8> {
+ var arg_1 = 1u;
+ const arg_2 = true;
+ var arg_3 = 1u;
+ var res : subgroup_matrix_result<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<i32, 8, 8>>(&(sb_ro.arg_0), arg_1, arg_2, arg_3);
+ return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_a798ae(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/a95397.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/a95397.wgsl
new file mode 100644
index 0000000..c530c9a
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/a95397.wgsl
@@ -0,0 +1,62 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+// test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// flags: --hlsl-shader-model 62
+
+
+enable chromium_experimental_subgroup_matrix;
+
+enable f16;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
+
+struct SB_RO {
+ arg_0: array<f16>,
+};
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<right, f16, 8, 8>>(ptr<storage, runtime_array<f16>, read>, u32, @const bool, u32) -> subgroup_matrix<right, f16, 8, 8>
+fn subgroupMatrixLoad_a95397() -> subgroup_matrix_right<f16, 8, 8>{
+ var arg_1 = 1u;
+ const arg_2 = true;
+ var arg_3 = 1u;
+ var res: subgroup_matrix_right<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<f16, 8, 8>>(&sb_ro.arg_0, arg_1, arg_2, arg_3);
+ return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_a95397(), false, 64);
+}
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
new file mode 100644
index 0000000..3cd8b8c
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/a95397.wgsl.expected.dxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: FAILED
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/a95397.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/a95397.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..48f5b71
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/a95397.wgsl.expected.fxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: INVALID
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/a95397.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/a95397.wgsl.expected.glsl
new file mode 100644
index 0000000..cc19bf0
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/a95397.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the GLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/a95397.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/a95397.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..dda740a
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/a95397.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/a95397.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/a95397.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..4709805
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/a95397.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/a95397.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/a95397.wgsl.expected.msl
new file mode 100644
index 0000000..277ec22
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/a95397.wgsl.expected.msl
@@ -0,0 +1,37 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+ const constant T& operator[](size_t i) const constant { return elements[i]; }
+ device T& operator[](size_t i) device { return elements[i]; }
+ const device T& operator[](size_t i) const device { return elements[i]; }
+ thread T& operator[](size_t i) thread { return elements[i]; }
+ const thread T& operator[](size_t i) const thread { return elements[i]; }
+ threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+ const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+ T elements[N];
+};
+
+struct SB_RO {
+ /* 0x0000 */ tint_array<half, 1> arg_0;
+};
+
+struct tint_module_vars_struct {
+ device tint_array<half, 1024>* prevent_dce;
+ const device SB_RO* sb_ro;
+};
+
+simdgroup_half8x8 subgroupMatrixLoad_a95397(tint_module_vars_struct tint_module_vars) {
+ uint arg_1 = 1u;
+ uint arg_3 = 1u;
+ simdgroup_half8x8 v = make_filled_simdgroup_matrix<half, 8, 8>(0.0h);
+ simdgroup_load(v, (&(*tint_module_vars.sb_ro).arg_0[arg_1]), ulong(arg_3), ulong2(0ul), true);
+ simdgroup_half8x8 res = v;
+ return res;
+}
+
+kernel void compute_main(device tint_array<half, 1024>* prevent_dce [[buffer(0)]], const device SB_RO* sb_ro [[buffer(1)]]) {
+ tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_ro=sb_ro};
+ simdgroup_store(subgroupMatrixLoad_a95397(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/a95397.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/a95397.wgsl.expected.spvasm
new file mode 100644
index 0000000..fb1513f
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/a95397.wgsl.expected.spvasm
@@ -0,0 +1,88 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 44
+; Schema: 0
+ OpCapability Shader
+ OpCapability VulkanMemoryModel
+ OpCapability VulkanMemoryModelDeviceScope
+ OpCapability Float16
+ OpCapability UniformAndStorageBuffer16BitAccess
+ OpCapability StorageBuffer16BitAccess
+ OpCapability CooperativeMatrixKHR
+ OpExtension "SPV_KHR_vulkan_memory_model"
+ OpExtension "SPV_KHR_cooperative_matrix"
+ OpMemoryModel Logical Vulkan
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpMemberName %prevent_dce_block 0 "inner"
+ OpName %prevent_dce_block "prevent_dce_block"
+ OpMemberName %SB_RO 0 "arg_0"
+ OpName %SB_RO "SB_RO"
+ OpName %sb_ro "sb_ro"
+ OpName %subgroupMatrixLoad_a95397 "subgroupMatrixLoad_a95397"
+ OpName %arg_1 "arg_1"
+ OpName %arg_3 "arg_3"
+ OpName %res "res"
+ OpName %compute_main "compute_main"
+ OpDecorate %_arr_half_uint_1024 ArrayStride 2
+ OpMemberDecorate %prevent_dce_block 0 Offset 0
+ OpDecorate %prevent_dce_block Block
+ OpDecorate %1 DescriptorSet 0
+ OpDecorate %1 Binding 0
+ OpDecorate %_runtimearr_half ArrayStride 2
+ OpMemberDecorate %SB_RO 0 Offset 0
+ OpDecorate %SB_RO Block
+ OpDecorate %sb_ro DescriptorSet 0
+ OpDecorate %sb_ro Binding 1
+ OpDecorate %sb_ro NonWritable
+ %half = OpTypeFloat 16
+ %uint = OpTypeInt 32 0
+ %uint_1024 = OpConstant %uint 1024
+%_arr_half_uint_1024 = OpTypeArray %half %uint_1024
+%prevent_dce_block = OpTypeStruct %_arr_half_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+ %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_runtimearr_half = OpTypeRuntimeArray %half
+ %SB_RO = OpTypeStruct %_runtimearr_half
+%_ptr_StorageBuffer_SB_RO = OpTypePointer StorageBuffer %SB_RO
+ %sb_ro = OpVariable %_ptr_StorageBuffer_SB_RO StorageBuffer
+ %uint_3 = OpConstant %uint 3
+ %uint_8 = OpConstant %uint 8
+ %uint_1 = OpConstant %uint 1
+ %13 = OpTypeCooperativeMatrixKHR %half %uint_3 %uint_8 %uint_8 %uint_1
+ %17 = OpTypeFunction %13
+%_ptr_Function_uint = OpTypePointer Function %uint
+%_ptr_StorageBuffer__runtimearr_half = OpTypePointer StorageBuffer %_runtimearr_half
+ %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half
+%_ptr_Function_13 = OpTypePointer Function %13
+ %void = OpTypeVoid
+ %35 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_half_uint_1024 = OpTypePointer StorageBuffer %_arr_half_uint_1024
+%_ptr_StorageBuffer_half_0 = OpTypePointer StorageBuffer %half
+ %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_a95397 = OpFunction %13 None %17
+ %18 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_uint Function
+ %arg_3 = OpVariable %_ptr_Function_uint Function
+ %res = OpVariable %_ptr_Function_13 Function
+ OpStore %arg_1 %uint_1
+ OpStore %arg_3 %uint_1
+ %22 = OpAccessChain %_ptr_StorageBuffer__runtimearr_half %sb_ro %uint_0
+ %25 = OpLoad %uint %arg_1 None
+ %26 = OpLoad %uint %arg_3 None
+ %27 = OpAccessChain %_ptr_StorageBuffer_half %22 %25
+ %29 = OpCooperativeMatrixLoadKHR %13 %27 %uint_1 %26 NonPrivatePointer
+ OpStore %res %29
+ %32 = OpLoad %13 %res None
+ OpReturnValue %32
+ OpFunctionEnd
+%compute_main = OpFunction %void None %35
+ %36 = OpLabel
+ %37 = OpFunctionCall %13 %subgroupMatrixLoad_a95397
+ %38 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_1024 %1 %uint_0
+ %40 = OpAccessChain %_ptr_StorageBuffer_half_0 %38 %uint_0
+ OpCooperativeMatrixStoreKHR %40 %37 %uint_0 %uint_64 NonPrivatePointer
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/a95397.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/a95397.wgsl.expected.wgsl
new file mode 100644
index 0000000..57535b9
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/a95397.wgsl.expected.wgsl
@@ -0,0 +1,23 @@
+enable chromium_experimental_subgroup_matrix;
+enable f16;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
+
+struct SB_RO {
+ arg_0 : array<f16>,
+}
+
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+fn subgroupMatrixLoad_a95397() -> subgroup_matrix_right<f16, 8, 8> {
+ var arg_1 = 1u;
+ const arg_2 = true;
+ var arg_3 = 1u;
+ var res : subgroup_matrix_right<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<f16, 8, 8>>(&(sb_ro.arg_0), arg_1, arg_2, arg_3);
+ return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_a95397(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/aadc6f.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/aadc6f.wgsl
new file mode 100644
index 0000000..30c4b28
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/aadc6f.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, i32, 8, 8>>(ptr<storage, runtime_array<i32>, read_write>, u32, @const bool, u32) -> subgroup_matrix<right, i32, 8, 8>
+fn subgroupMatrixLoad_aadc6f() -> subgroup_matrix_right<i32, 8, 8>{
+ var arg_1 = 1u;
+ const arg_2 = true;
+ var arg_3 = 1u;
+ var res: subgroup_matrix_right<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<i32, 8, 8>>(&sb_rw.arg_0, arg_1, arg_2, arg_3);
+ return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_aadc6f(), false, 64);
+}
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
new file mode 100644
index 0000000..3cd8b8c
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/aadc6f.wgsl.expected.dxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: FAILED
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/aadc6f.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/aadc6f.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..48f5b71
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/aadc6f.wgsl.expected.fxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: INVALID
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/aadc6f.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/aadc6f.wgsl.expected.glsl
new file mode 100644
index 0000000..cc19bf0
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/aadc6f.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the GLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/aadc6f.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/aadc6f.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..dda740a
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/aadc6f.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/aadc6f.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/aadc6f.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..4709805
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/aadc6f.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/aadc6f.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/aadc6f.wgsl.expected.msl
new file mode 100644
index 0000000..5dba48c
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/aadc6f.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: non-float subgroup matrices are not supported by the MSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/aadc6f.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/aadc6f.wgsl.expected.spvasm
new file mode 100644
index 0000000..786b80a
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/aadc6f.wgsl.expected.spvasm
@@ -0,0 +1,83 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 43
+; Schema: 0
+ OpCapability Shader
+ OpCapability VulkanMemoryModel
+ OpCapability VulkanMemoryModelDeviceScope
+ OpCapability CooperativeMatrixKHR
+ OpExtension "SPV_KHR_vulkan_memory_model"
+ OpExtension "SPV_KHR_cooperative_matrix"
+ OpMemoryModel Logical Vulkan
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpMemberName %prevent_dce_block 0 "inner"
+ OpName %prevent_dce_block "prevent_dce_block"
+ OpMemberName %SB_RW 0 "arg_0"
+ OpName %SB_RW "SB_RW"
+ OpName %sb_rw "sb_rw"
+ OpName %subgroupMatrixLoad_aadc6f "subgroupMatrixLoad_aadc6f"
+ OpName %arg_1 "arg_1"
+ OpName %arg_3 "arg_3"
+ OpName %res "res"
+ OpName %compute_main "compute_main"
+ OpDecorate %_arr_int_uint_1024 ArrayStride 4
+ OpMemberDecorate %prevent_dce_block 0 Offset 0
+ OpDecorate %prevent_dce_block Block
+ OpDecorate %1 DescriptorSet 0
+ OpDecorate %1 Binding 0
+ OpDecorate %_runtimearr_int ArrayStride 4
+ OpMemberDecorate %SB_RW 0 Offset 0
+ OpDecorate %SB_RW Block
+ OpDecorate %sb_rw DescriptorSet 0
+ OpDecorate %sb_rw Binding 1
+ %int = OpTypeInt 32 1
+ %uint = OpTypeInt 32 0
+ %uint_1024 = OpConstant %uint 1024
+%_arr_int_uint_1024 = OpTypeArray %int %uint_1024
+%prevent_dce_block = OpTypeStruct %_arr_int_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+ %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_runtimearr_int = OpTypeRuntimeArray %int
+ %SB_RW = OpTypeStruct %_runtimearr_int
+%_ptr_StorageBuffer_SB_RW = OpTypePointer StorageBuffer %SB_RW
+ %sb_rw = OpVariable %_ptr_StorageBuffer_SB_RW StorageBuffer
+ %uint_3 = OpConstant %uint 3
+ %uint_8 = OpConstant %uint 8
+ %uint_1 = OpConstant %uint 1
+ %13 = OpTypeCooperativeMatrixKHR %int %uint_3 %uint_8 %uint_8 %uint_1
+ %17 = OpTypeFunction %13
+%_ptr_Function_uint = OpTypePointer Function %uint
+%_ptr_StorageBuffer__runtimearr_int = OpTypePointer StorageBuffer %_runtimearr_int
+ %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
+%_ptr_Function_13 = OpTypePointer Function %13
+ %void = OpTypeVoid
+ %35 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_int_uint_1024 = OpTypePointer StorageBuffer %_arr_int_uint_1024
+ %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_aadc6f = OpFunction %13 None %17
+ %18 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_uint Function
+ %arg_3 = OpVariable %_ptr_Function_uint Function
+ %res = OpVariable %_ptr_Function_13 Function
+ OpStore %arg_1 %uint_1
+ OpStore %arg_3 %uint_1
+ %22 = OpAccessChain %_ptr_StorageBuffer__runtimearr_int %sb_rw %uint_0
+ %25 = OpLoad %uint %arg_1 None
+ %26 = OpLoad %uint %arg_3 None
+ %27 = OpAccessChain %_ptr_StorageBuffer_int %22 %25
+ %29 = OpCooperativeMatrixLoadKHR %13 %27 %uint_1 %26 NonPrivatePointer
+ OpStore %res %29
+ %32 = OpLoad %13 %res None
+ OpReturnValue %32
+ OpFunctionEnd
+%compute_main = OpFunction %void None %35
+ %36 = OpLabel
+ %37 = OpFunctionCall %13 %subgroupMatrixLoad_aadc6f
+ %38 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_1024 %1 %uint_0
+ %40 = OpAccessChain %_ptr_StorageBuffer_int %38 %uint_0
+ OpCooperativeMatrixStoreKHR %40 %37 %uint_0 %uint_64 NonPrivatePointer
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/aadc6f.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/aadc6f.wgsl.expected.wgsl
new file mode 100644
index 0000000..5ccd7f3
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/aadc6f.wgsl.expected.wgsl
@@ -0,0 +1,22 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
+
+struct SB_RW {
+ arg_0 : array<i32>,
+}
+
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixLoad_aadc6f() -> subgroup_matrix_right<i32, 8, 8> {
+ var arg_1 = 1u;
+ const arg_2 = true;
+ var arg_3 = 1u;
+ var res : subgroup_matrix_right<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<i32, 8, 8>>(&(sb_rw.arg_0), arg_1, arg_2, arg_3);
+ return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_aadc6f(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/c71ce4.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/c71ce4.wgsl
new file mode 100644
index 0000000..ec6ef2a
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/c71ce4.wgsl
@@ -0,0 +1,62 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+// test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// flags: --hlsl-shader-model 62
+
+
+enable chromium_experimental_subgroup_matrix;
+
+enable f16;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
+
+struct SB_RW {
+ arg_0: array<f16>,
+};
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<right, f16, 8, 8>>(ptr<storage, runtime_array<f16>, read_write>, u32, @const bool, u32) -> subgroup_matrix<right, f16, 8, 8>
+fn subgroupMatrixLoad_c71ce4() -> subgroup_matrix_right<f16, 8, 8>{
+ var arg_1 = 1u;
+ const arg_2 = true;
+ var arg_3 = 1u;
+ var res: subgroup_matrix_right<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<f16, 8, 8>>(&sb_rw.arg_0, arg_1, arg_2, arg_3);
+ return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_c71ce4(), false, 64);
+}
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
new file mode 100644
index 0000000..3cd8b8c
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/c71ce4.wgsl.expected.dxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: FAILED
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/c71ce4.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/c71ce4.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..48f5b71
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/c71ce4.wgsl.expected.fxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: INVALID
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/c71ce4.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/c71ce4.wgsl.expected.glsl
new file mode 100644
index 0000000..cc19bf0
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/c71ce4.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the GLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/c71ce4.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/c71ce4.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..dda740a
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/c71ce4.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/c71ce4.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/c71ce4.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..4709805
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/c71ce4.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/c71ce4.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/c71ce4.wgsl.expected.msl
new file mode 100644
index 0000000..1be3775
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/c71ce4.wgsl.expected.msl
@@ -0,0 +1,37 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+ const constant T& operator[](size_t i) const constant { return elements[i]; }
+ device T& operator[](size_t i) device { return elements[i]; }
+ const device T& operator[](size_t i) const device { return elements[i]; }
+ thread T& operator[](size_t i) thread { return elements[i]; }
+ const thread T& operator[](size_t i) const thread { return elements[i]; }
+ threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+ const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+ T elements[N];
+};
+
+struct SB_RW {
+ /* 0x0000 */ tint_array<half, 1> arg_0;
+};
+
+struct tint_module_vars_struct {
+ device tint_array<half, 1024>* prevent_dce;
+ device SB_RW* sb_rw;
+};
+
+simdgroup_half8x8 subgroupMatrixLoad_c71ce4(tint_module_vars_struct tint_module_vars) {
+ uint arg_1 = 1u;
+ uint arg_3 = 1u;
+ simdgroup_half8x8 v = make_filled_simdgroup_matrix<half, 8, 8>(0.0h);
+ simdgroup_load(v, (&(*tint_module_vars.sb_rw).arg_0[arg_1]), ulong(arg_3), ulong2(0ul), true);
+ simdgroup_half8x8 res = v;
+ return res;
+}
+
+kernel void compute_main(device tint_array<half, 1024>* prevent_dce [[buffer(0)]], device SB_RW* sb_rw [[buffer(1)]]) {
+ tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_rw=sb_rw};
+ simdgroup_store(subgroupMatrixLoad_c71ce4(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/c71ce4.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/c71ce4.wgsl.expected.spvasm
new file mode 100644
index 0000000..5d8f098
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/c71ce4.wgsl.expected.spvasm
@@ -0,0 +1,86 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 43
+; Schema: 0
+ OpCapability Shader
+ OpCapability VulkanMemoryModel
+ OpCapability VulkanMemoryModelDeviceScope
+ OpCapability Float16
+ OpCapability UniformAndStorageBuffer16BitAccess
+ OpCapability StorageBuffer16BitAccess
+ OpCapability CooperativeMatrixKHR
+ OpExtension "SPV_KHR_vulkan_memory_model"
+ OpExtension "SPV_KHR_cooperative_matrix"
+ OpMemoryModel Logical Vulkan
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpMemberName %prevent_dce_block 0 "inner"
+ OpName %prevent_dce_block "prevent_dce_block"
+ OpMemberName %SB_RW 0 "arg_0"
+ OpName %SB_RW "SB_RW"
+ OpName %sb_rw "sb_rw"
+ OpName %subgroupMatrixLoad_c71ce4 "subgroupMatrixLoad_c71ce4"
+ OpName %arg_1 "arg_1"
+ OpName %arg_3 "arg_3"
+ OpName %res "res"
+ OpName %compute_main "compute_main"
+ OpDecorate %_arr_half_uint_1024 ArrayStride 2
+ OpMemberDecorate %prevent_dce_block 0 Offset 0
+ OpDecorate %prevent_dce_block Block
+ OpDecorate %1 DescriptorSet 0
+ OpDecorate %1 Binding 0
+ OpDecorate %_runtimearr_half ArrayStride 2
+ OpMemberDecorate %SB_RW 0 Offset 0
+ OpDecorate %SB_RW Block
+ OpDecorate %sb_rw DescriptorSet 0
+ OpDecorate %sb_rw Binding 1
+ %half = OpTypeFloat 16
+ %uint = OpTypeInt 32 0
+ %uint_1024 = OpConstant %uint 1024
+%_arr_half_uint_1024 = OpTypeArray %half %uint_1024
+%prevent_dce_block = OpTypeStruct %_arr_half_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+ %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_runtimearr_half = OpTypeRuntimeArray %half
+ %SB_RW = OpTypeStruct %_runtimearr_half
+%_ptr_StorageBuffer_SB_RW = OpTypePointer StorageBuffer %SB_RW
+ %sb_rw = OpVariable %_ptr_StorageBuffer_SB_RW StorageBuffer
+ %uint_3 = OpConstant %uint 3
+ %uint_8 = OpConstant %uint 8
+ %uint_1 = OpConstant %uint 1
+ %13 = OpTypeCooperativeMatrixKHR %half %uint_3 %uint_8 %uint_8 %uint_1
+ %17 = OpTypeFunction %13
+%_ptr_Function_uint = OpTypePointer Function %uint
+%_ptr_StorageBuffer__runtimearr_half = OpTypePointer StorageBuffer %_runtimearr_half
+ %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_half = OpTypePointer StorageBuffer %half
+%_ptr_Function_13 = OpTypePointer Function %13
+ %void = OpTypeVoid
+ %35 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_half_uint_1024 = OpTypePointer StorageBuffer %_arr_half_uint_1024
+ %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_c71ce4 = OpFunction %13 None %17
+ %18 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_uint Function
+ %arg_3 = OpVariable %_ptr_Function_uint Function
+ %res = OpVariable %_ptr_Function_13 Function
+ OpStore %arg_1 %uint_1
+ OpStore %arg_3 %uint_1
+ %22 = OpAccessChain %_ptr_StorageBuffer__runtimearr_half %sb_rw %uint_0
+ %25 = OpLoad %uint %arg_1 None
+ %26 = OpLoad %uint %arg_3 None
+ %27 = OpAccessChain %_ptr_StorageBuffer_half %22 %25
+ %29 = OpCooperativeMatrixLoadKHR %13 %27 %uint_1 %26 NonPrivatePointer
+ OpStore %res %29
+ %32 = OpLoad %13 %res None
+ OpReturnValue %32
+ OpFunctionEnd
+%compute_main = OpFunction %void None %35
+ %36 = OpLabel
+ %37 = OpFunctionCall %13 %subgroupMatrixLoad_c71ce4
+ %38 = OpAccessChain %_ptr_StorageBuffer__arr_half_uint_1024 %1 %uint_0
+ %40 = OpAccessChain %_ptr_StorageBuffer_half %38 %uint_0
+ OpCooperativeMatrixStoreKHR %40 %37 %uint_0 %uint_64 NonPrivatePointer
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/c71ce4.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/c71ce4.wgsl.expected.wgsl
new file mode 100644
index 0000000..d94de28
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/c71ce4.wgsl.expected.wgsl
@@ -0,0 +1,23 @@
+enable chromium_experimental_subgroup_matrix;
+enable f16;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f16, 1024>;
+
+struct SB_RW {
+ arg_0 : array<f16>,
+}
+
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixLoad_c71ce4() -> subgroup_matrix_right<f16, 8, 8> {
+ var arg_1 = 1u;
+ const arg_2 = true;
+ var arg_3 = 1u;
+ var res : subgroup_matrix_right<f16, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<f16, 8, 8>>(&(sb_rw.arg_0), arg_1, arg_2, arg_3);
+ return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_c71ce4(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/ca4539.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/ca4539.wgsl
new file mode 100644
index 0000000..acf301a
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/ca4539.wgsl
@@ -0,0 +1,60 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+// test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
+
+struct SB_RO {
+ arg_0: array<f32>,
+};
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<result, f32, 8, 8>>(ptr<storage, runtime_array<f32>, read>, u32, @const bool, u32) -> subgroup_matrix<result, f32, 8, 8>
+fn subgroupMatrixLoad_ca4539() -> subgroup_matrix_result<f32, 8, 8>{
+ var arg_1 = 1u;
+ const arg_2 = true;
+ var arg_3 = 1u;
+ var res: subgroup_matrix_result<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<f32, 8, 8>>(&sb_ro.arg_0, arg_1, arg_2, arg_3);
+ return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_ca4539(), false, 64);
+}
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
new file mode 100644
index 0000000..3cd8b8c
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/ca4539.wgsl.expected.dxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: FAILED
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/ca4539.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/ca4539.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..48f5b71
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/ca4539.wgsl.expected.fxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: INVALID
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/ca4539.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/ca4539.wgsl.expected.glsl
new file mode 100644
index 0000000..cc19bf0
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/ca4539.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the GLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/ca4539.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/ca4539.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..dda740a
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/ca4539.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/ca4539.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/ca4539.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..4709805
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/ca4539.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/ca4539.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/ca4539.wgsl.expected.msl
new file mode 100644
index 0000000..8aed5e0
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/ca4539.wgsl.expected.msl
@@ -0,0 +1,37 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+ const constant T& operator[](size_t i) const constant { return elements[i]; }
+ device T& operator[](size_t i) device { return elements[i]; }
+ const device T& operator[](size_t i) const device { return elements[i]; }
+ thread T& operator[](size_t i) thread { return elements[i]; }
+ const thread T& operator[](size_t i) const thread { return elements[i]; }
+ threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+ const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+ T elements[N];
+};
+
+struct SB_RO {
+ /* 0x0000 */ tint_array<float, 1> arg_0;
+};
+
+struct tint_module_vars_struct {
+ device tint_array<float, 1024>* prevent_dce;
+ const device SB_RO* sb_ro;
+};
+
+simdgroup_float8x8 subgroupMatrixLoad_ca4539(tint_module_vars_struct tint_module_vars) {
+ uint arg_1 = 1u;
+ uint arg_3 = 1u;
+ simdgroup_float8x8 v = make_filled_simdgroup_matrix<float, 8, 8>(0.0f);
+ simdgroup_load(v, (&(*tint_module_vars.sb_ro).arg_0[arg_1]), ulong(arg_3), ulong2(0ul), true);
+ simdgroup_float8x8 res = v;
+ return res;
+}
+
+kernel void compute_main(device tint_array<float, 1024>* prevent_dce [[buffer(0)]], const device SB_RO* sb_ro [[buffer(1)]]) {
+ tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_ro=sb_ro};
+ simdgroup_store(subgroupMatrixLoad_ca4539(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/ca4539.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/ca4539.wgsl.expected.spvasm
new file mode 100644
index 0000000..c5f9f19
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/ca4539.wgsl.expected.spvasm
@@ -0,0 +1,86 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 45
+; Schema: 0
+ OpCapability Shader
+ OpCapability VulkanMemoryModel
+ OpCapability VulkanMemoryModelDeviceScope
+ OpCapability CooperativeMatrixKHR
+ OpExtension "SPV_KHR_vulkan_memory_model"
+ OpExtension "SPV_KHR_cooperative_matrix"
+ OpMemoryModel Logical Vulkan
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpMemberName %prevent_dce_block 0 "inner"
+ OpName %prevent_dce_block "prevent_dce_block"
+ OpMemberName %SB_RO 0 "arg_0"
+ OpName %SB_RO "SB_RO"
+ OpName %sb_ro "sb_ro"
+ OpName %subgroupMatrixLoad_ca4539 "subgroupMatrixLoad_ca4539"
+ OpName %arg_1 "arg_1"
+ OpName %arg_3 "arg_3"
+ OpName %res "res"
+ OpName %compute_main "compute_main"
+ OpDecorate %_arr_float_uint_1024 ArrayStride 4
+ OpMemberDecorate %prevent_dce_block 0 Offset 0
+ OpDecorate %prevent_dce_block Block
+ OpDecorate %1 DescriptorSet 0
+ OpDecorate %1 Binding 0
+ OpDecorate %_runtimearr_float ArrayStride 4
+ OpMemberDecorate %SB_RO 0 Offset 0
+ OpDecorate %SB_RO Block
+ OpDecorate %sb_ro DescriptorSet 0
+ OpDecorate %sb_ro Binding 1
+ OpDecorate %sb_ro NonWritable
+ %float = OpTypeFloat 32
+ %uint = OpTypeInt 32 0
+ %uint_1024 = OpConstant %uint 1024
+%_arr_float_uint_1024 = OpTypeArray %float %uint_1024
+%prevent_dce_block = OpTypeStruct %_arr_float_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+ %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_runtimearr_float = OpTypeRuntimeArray %float
+ %SB_RO = OpTypeStruct %_runtimearr_float
+%_ptr_StorageBuffer_SB_RO = OpTypePointer StorageBuffer %SB_RO
+ %sb_ro = OpVariable %_ptr_StorageBuffer_SB_RO StorageBuffer
+ %uint_3 = OpConstant %uint 3
+ %uint_8 = OpConstant %uint 8
+ %uint_2 = OpConstant %uint 2
+ %13 = OpTypeCooperativeMatrixKHR %float %uint_3 %uint_8 %uint_8 %uint_2
+ %17 = OpTypeFunction %13
+%_ptr_Function_uint = OpTypePointer Function %uint
+ %uint_1 = OpConstant %uint 1
+%_ptr_StorageBuffer__runtimearr_float = OpTypePointer StorageBuffer %_runtimearr_float
+ %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
+%_ptr_Function_13 = OpTypePointer Function %13
+ %void = OpTypeVoid
+ %36 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_float_uint_1024 = OpTypePointer StorageBuffer %_arr_float_uint_1024
+%_ptr_StorageBuffer_float_0 = OpTypePointer StorageBuffer %float
+ %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_ca4539 = OpFunction %13 None %17
+ %18 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_uint Function
+ %arg_3 = OpVariable %_ptr_Function_uint Function
+ %res = OpVariable %_ptr_Function_13 Function
+ OpStore %arg_1 %uint_1
+ OpStore %arg_3 %uint_1
+ %23 = OpAccessChain %_ptr_StorageBuffer__runtimearr_float %sb_ro %uint_0
+ %26 = OpLoad %uint %arg_1 None
+ %27 = OpLoad %uint %arg_3 None
+ %28 = OpAccessChain %_ptr_StorageBuffer_float %23 %26
+ %30 = OpCooperativeMatrixLoadKHR %13 %28 %uint_1 %27 NonPrivatePointer
+ OpStore %res %30
+ %33 = OpLoad %13 %res None
+ OpReturnValue %33
+ OpFunctionEnd
+%compute_main = OpFunction %void None %36
+ %37 = OpLabel
+ %38 = OpFunctionCall %13 %subgroupMatrixLoad_ca4539
+ %39 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_1024 %1 %uint_0
+ %41 = OpAccessChain %_ptr_StorageBuffer_float_0 %39 %uint_0
+ OpCooperativeMatrixStoreKHR %41 %38 %uint_0 %uint_64 NonPrivatePointer
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/ca4539.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/ca4539.wgsl.expected.wgsl
new file mode 100644
index 0000000..3590ab0
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/ca4539.wgsl.expected.wgsl
@@ -0,0 +1,22 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
+
+struct SB_RO {
+ arg_0 : array<f32>,
+}
+
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+fn subgroupMatrixLoad_ca4539() -> subgroup_matrix_result<f32, 8, 8> {
+ var arg_1 = 1u;
+ const arg_2 = true;
+ var arg_3 = 1u;
+ var res : subgroup_matrix_result<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<f32, 8, 8>>(&(sb_ro.arg_0), arg_1, arg_2, arg_3);
+ return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_ca4539(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/d80c87.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/d80c87.wgsl
new file mode 100644
index 0000000..f0dfa04
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/d80c87.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, u32, 8, 8>>(ptr<storage, runtime_array<u32>, read>, u32, @const bool, u32) -> subgroup_matrix<result, u32, 8, 8>
+fn subgroupMatrixLoad_d80c87() -> subgroup_matrix_result<u32, 8, 8>{
+ var arg_1 = 1u;
+ const arg_2 = true;
+ var arg_3 = 1u;
+ var res: subgroup_matrix_result<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<u32, 8, 8>>(&sb_ro.arg_0, arg_1, arg_2, arg_3);
+ return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_d80c87(), false, 64);
+}
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
new file mode 100644
index 0000000..3cd8b8c
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/d80c87.wgsl.expected.dxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: FAILED
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/d80c87.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/d80c87.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..48f5b71
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/d80c87.wgsl.expected.fxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: INVALID
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/d80c87.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/d80c87.wgsl.expected.glsl
new file mode 100644
index 0000000..cc19bf0
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/d80c87.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the GLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/d80c87.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/d80c87.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..dda740a
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/d80c87.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/d80c87.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/d80c87.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..4709805
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/d80c87.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/d80c87.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/d80c87.wgsl.expected.msl
new file mode 100644
index 0000000..5dba48c
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/d80c87.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: non-float subgroup matrices are not supported by the MSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/d80c87.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/d80c87.wgsl.expected.spvasm
new file mode 100644
index 0000000..f25e89b
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/d80c87.wgsl.expected.spvasm
@@ -0,0 +1,85 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 44
+; Schema: 0
+ OpCapability Shader
+ OpCapability VulkanMemoryModel
+ OpCapability VulkanMemoryModelDeviceScope
+ OpCapability CooperativeMatrixKHR
+ OpExtension "SPV_KHR_vulkan_memory_model"
+ OpExtension "SPV_KHR_cooperative_matrix"
+ OpMemoryModel Logical Vulkan
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpMemberName %prevent_dce_block 0 "inner"
+ OpName %prevent_dce_block "prevent_dce_block"
+ OpMemberName %SB_RO 0 "arg_0"
+ OpName %SB_RO "SB_RO"
+ OpName %sb_ro "sb_ro"
+ OpName %subgroupMatrixLoad_d80c87 "subgroupMatrixLoad_d80c87"
+ OpName %arg_1 "arg_1"
+ OpName %arg_3 "arg_3"
+ OpName %res "res"
+ OpName %compute_main "compute_main"
+ OpDecorate %_arr_uint_uint_1024 ArrayStride 4
+ OpMemberDecorate %prevent_dce_block 0 Offset 0
+ OpDecorate %prevent_dce_block Block
+ OpDecorate %1 DescriptorSet 0
+ OpDecorate %1 Binding 0
+ OpDecorate %_runtimearr_uint ArrayStride 4
+ OpMemberDecorate %SB_RO 0 Offset 0
+ OpDecorate %SB_RO Block
+ OpDecorate %sb_ro DescriptorSet 0
+ OpDecorate %sb_ro Binding 1
+ OpDecorate %sb_ro NonWritable
+ %uint = OpTypeInt 32 0
+ %uint_1024 = OpConstant %uint 1024
+%_arr_uint_uint_1024 = OpTypeArray %uint %uint_1024
+%prevent_dce_block = OpTypeStruct %_arr_uint_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+ %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_runtimearr_uint = OpTypeRuntimeArray %uint
+ %SB_RO = OpTypeStruct %_runtimearr_uint
+%_ptr_StorageBuffer_SB_RO = OpTypePointer StorageBuffer %SB_RO
+ %sb_ro = OpVariable %_ptr_StorageBuffer_SB_RO StorageBuffer
+ %uint_3 = OpConstant %uint 3
+ %uint_8 = OpConstant %uint 8
+ %uint_2 = OpConstant %uint 2
+ %12 = OpTypeCooperativeMatrixKHR %uint %uint_3 %uint_8 %uint_8 %uint_2
+ %16 = OpTypeFunction %12
+%_ptr_Function_uint = OpTypePointer Function %uint
+ %uint_1 = OpConstant %uint 1
+%_ptr_StorageBuffer__runtimearr_uint = OpTypePointer StorageBuffer %_runtimearr_uint
+ %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
+%_ptr_Function_12 = OpTypePointer Function %12
+ %void = OpTypeVoid
+ %35 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_uint_uint_1024 = OpTypePointer StorageBuffer %_arr_uint_uint_1024
+%_ptr_StorageBuffer_uint_0 = OpTypePointer StorageBuffer %uint
+ %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_d80c87 = OpFunction %12 None %16
+ %17 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_uint Function
+ %arg_3 = OpVariable %_ptr_Function_uint Function
+ %res = OpVariable %_ptr_Function_12 Function
+ OpStore %arg_1 %uint_1
+ OpStore %arg_3 %uint_1
+ %22 = OpAccessChain %_ptr_StorageBuffer__runtimearr_uint %sb_ro %uint_0
+ %25 = OpLoad %uint %arg_1 None
+ %26 = OpLoad %uint %arg_3 None
+ %27 = OpAccessChain %_ptr_StorageBuffer_uint %22 %25
+ %29 = OpCooperativeMatrixLoadKHR %12 %27 %uint_1 %26 NonPrivatePointer
+ OpStore %res %29
+ %32 = OpLoad %12 %res None
+ OpReturnValue %32
+ OpFunctionEnd
+%compute_main = OpFunction %void None %35
+ %36 = OpLabel
+ %37 = OpFunctionCall %12 %subgroupMatrixLoad_d80c87
+ %38 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_1024 %1 %uint_0
+ %40 = OpAccessChain %_ptr_StorageBuffer_uint_0 %38 %uint_0
+ OpCooperativeMatrixStoreKHR %40 %37 %uint_0 %uint_64 NonPrivatePointer
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/d80c87.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/d80c87.wgsl.expected.wgsl
new file mode 100644
index 0000000..2a4cdbe
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/d80c87.wgsl.expected.wgsl
@@ -0,0 +1,22 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
+
+struct SB_RO {
+ arg_0 : array<u32>,
+}
+
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+fn subgroupMatrixLoad_d80c87() -> subgroup_matrix_result<u32, 8, 8> {
+ var arg_1 = 1u;
+ const arg_2 = true;
+ var arg_3 = 1u;
+ var res : subgroup_matrix_result<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<u32, 8, 8>>(&(sb_ro.arg_0), arg_1, arg_2, arg_3);
+ return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_d80c87(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/da5d2c.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/da5d2c.wgsl
new file mode 100644
index 0000000..c31e8c7
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/da5d2c.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, i32, 8, 8>>(ptr<storage, runtime_array<i32>, read>, u32, @const bool, u32) -> subgroup_matrix<right, i32, 8, 8>
+fn subgroupMatrixLoad_da5d2c() -> subgroup_matrix_right<i32, 8, 8>{
+ var arg_1 = 1u;
+ const arg_2 = true;
+ var arg_3 = 1u;
+ var res: subgroup_matrix_right<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<i32, 8, 8>>(&sb_ro.arg_0, arg_1, arg_2, arg_3);
+ return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_da5d2c(), false, 64);
+}
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
new file mode 100644
index 0000000..3cd8b8c
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/da5d2c.wgsl.expected.dxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: FAILED
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/da5d2c.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/da5d2c.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..48f5b71
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/da5d2c.wgsl.expected.fxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: INVALID
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/da5d2c.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/da5d2c.wgsl.expected.glsl
new file mode 100644
index 0000000..cc19bf0
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/da5d2c.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the GLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/da5d2c.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/da5d2c.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..dda740a
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/da5d2c.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/da5d2c.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/da5d2c.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..4709805
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/da5d2c.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/da5d2c.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/da5d2c.wgsl.expected.msl
new file mode 100644
index 0000000..5dba48c
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/da5d2c.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: non-float subgroup matrices are not supported by the MSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/da5d2c.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/da5d2c.wgsl.expected.spvasm
new file mode 100644
index 0000000..1ea14d6
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/da5d2c.wgsl.expected.spvasm
@@ -0,0 +1,85 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 44
+; Schema: 0
+ OpCapability Shader
+ OpCapability VulkanMemoryModel
+ OpCapability VulkanMemoryModelDeviceScope
+ OpCapability CooperativeMatrixKHR
+ OpExtension "SPV_KHR_vulkan_memory_model"
+ OpExtension "SPV_KHR_cooperative_matrix"
+ OpMemoryModel Logical Vulkan
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpMemberName %prevent_dce_block 0 "inner"
+ OpName %prevent_dce_block "prevent_dce_block"
+ OpMemberName %SB_RO 0 "arg_0"
+ OpName %SB_RO "SB_RO"
+ OpName %sb_ro "sb_ro"
+ OpName %subgroupMatrixLoad_da5d2c "subgroupMatrixLoad_da5d2c"
+ OpName %arg_1 "arg_1"
+ OpName %arg_3 "arg_3"
+ OpName %res "res"
+ OpName %compute_main "compute_main"
+ OpDecorate %_arr_int_uint_1024 ArrayStride 4
+ OpMemberDecorate %prevent_dce_block 0 Offset 0
+ OpDecorate %prevent_dce_block Block
+ OpDecorate %1 DescriptorSet 0
+ OpDecorate %1 Binding 0
+ OpDecorate %_runtimearr_int ArrayStride 4
+ OpMemberDecorate %SB_RO 0 Offset 0
+ OpDecorate %SB_RO Block
+ OpDecorate %sb_ro DescriptorSet 0
+ OpDecorate %sb_ro Binding 1
+ OpDecorate %sb_ro NonWritable
+ %int = OpTypeInt 32 1
+ %uint = OpTypeInt 32 0
+ %uint_1024 = OpConstant %uint 1024
+%_arr_int_uint_1024 = OpTypeArray %int %uint_1024
+%prevent_dce_block = OpTypeStruct %_arr_int_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+ %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_runtimearr_int = OpTypeRuntimeArray %int
+ %SB_RO = OpTypeStruct %_runtimearr_int
+%_ptr_StorageBuffer_SB_RO = OpTypePointer StorageBuffer %SB_RO
+ %sb_ro = OpVariable %_ptr_StorageBuffer_SB_RO StorageBuffer
+ %uint_3 = OpConstant %uint 3
+ %uint_8 = OpConstant %uint 8
+ %uint_1 = OpConstant %uint 1
+ %13 = OpTypeCooperativeMatrixKHR %int %uint_3 %uint_8 %uint_8 %uint_1
+ %17 = OpTypeFunction %13
+%_ptr_Function_uint = OpTypePointer Function %uint
+%_ptr_StorageBuffer__runtimearr_int = OpTypePointer StorageBuffer %_runtimearr_int
+ %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
+%_ptr_Function_13 = OpTypePointer Function %13
+ %void = OpTypeVoid
+ %35 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_int_uint_1024 = OpTypePointer StorageBuffer %_arr_int_uint_1024
+%_ptr_StorageBuffer_int_0 = OpTypePointer StorageBuffer %int
+ %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_da5d2c = OpFunction %13 None %17
+ %18 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_uint Function
+ %arg_3 = OpVariable %_ptr_Function_uint Function
+ %res = OpVariable %_ptr_Function_13 Function
+ OpStore %arg_1 %uint_1
+ OpStore %arg_3 %uint_1
+ %22 = OpAccessChain %_ptr_StorageBuffer__runtimearr_int %sb_ro %uint_0
+ %25 = OpLoad %uint %arg_1 None
+ %26 = OpLoad %uint %arg_3 None
+ %27 = OpAccessChain %_ptr_StorageBuffer_int %22 %25
+ %29 = OpCooperativeMatrixLoadKHR %13 %27 %uint_1 %26 NonPrivatePointer
+ OpStore %res %29
+ %32 = OpLoad %13 %res None
+ OpReturnValue %32
+ OpFunctionEnd
+%compute_main = OpFunction %void None %35
+ %36 = OpLabel
+ %37 = OpFunctionCall %13 %subgroupMatrixLoad_da5d2c
+ %38 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_1024 %1 %uint_0
+ %40 = OpAccessChain %_ptr_StorageBuffer_int_0 %38 %uint_0
+ OpCooperativeMatrixStoreKHR %40 %37 %uint_0 %uint_64 NonPrivatePointer
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/da5d2c.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/da5d2c.wgsl.expected.wgsl
new file mode 100644
index 0000000..12db344
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/da5d2c.wgsl.expected.wgsl
@@ -0,0 +1,22 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
+
+struct SB_RO {
+ arg_0 : array<i32>,
+}
+
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+fn subgroupMatrixLoad_da5d2c() -> subgroup_matrix_right<i32, 8, 8> {
+ var arg_1 = 1u;
+ const arg_2 = true;
+ var arg_3 = 1u;
+ var res : subgroup_matrix_right<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<i32, 8, 8>>(&(sb_ro.arg_0), arg_1, arg_2, arg_3);
+ return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_da5d2c(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/df98ff.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/df98ff.wgsl
new file mode 100644
index 0000000..c75adfe
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/df98ff.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, u32, 8, 8>>(ptr<storage, runtime_array<u32>, read>, u32, @const bool, u32) -> subgroup_matrix<right, u32, 8, 8>
+fn subgroupMatrixLoad_df98ff() -> subgroup_matrix_right<u32, 8, 8>{
+ var arg_1 = 1u;
+ const arg_2 = true;
+ var arg_3 = 1u;
+ var res: subgroup_matrix_right<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<u32, 8, 8>>(&sb_ro.arg_0, arg_1, arg_2, arg_3);
+ return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_df98ff(), false, 64);
+}
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
new file mode 100644
index 0000000..3cd8b8c
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/df98ff.wgsl.expected.dxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: FAILED
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/df98ff.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/df98ff.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..48f5b71
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/df98ff.wgsl.expected.fxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: INVALID
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/df98ff.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/df98ff.wgsl.expected.glsl
new file mode 100644
index 0000000..cc19bf0
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/df98ff.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the GLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/df98ff.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/df98ff.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..dda740a
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/df98ff.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/df98ff.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/df98ff.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..4709805
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/df98ff.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/df98ff.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/df98ff.wgsl.expected.msl
new file mode 100644
index 0000000..5dba48c
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/df98ff.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: non-float subgroup matrices are not supported by the MSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/df98ff.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/df98ff.wgsl.expected.spvasm
new file mode 100644
index 0000000..897a2fc
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/df98ff.wgsl.expected.spvasm
@@ -0,0 +1,84 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 43
+; Schema: 0
+ OpCapability Shader
+ OpCapability VulkanMemoryModel
+ OpCapability VulkanMemoryModelDeviceScope
+ OpCapability CooperativeMatrixKHR
+ OpExtension "SPV_KHR_vulkan_memory_model"
+ OpExtension "SPV_KHR_cooperative_matrix"
+ OpMemoryModel Logical Vulkan
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpMemberName %prevent_dce_block 0 "inner"
+ OpName %prevent_dce_block "prevent_dce_block"
+ OpMemberName %SB_RO 0 "arg_0"
+ OpName %SB_RO "SB_RO"
+ OpName %sb_ro "sb_ro"
+ OpName %subgroupMatrixLoad_df98ff "subgroupMatrixLoad_df98ff"
+ OpName %arg_1 "arg_1"
+ OpName %arg_3 "arg_3"
+ OpName %res "res"
+ OpName %compute_main "compute_main"
+ OpDecorate %_arr_uint_uint_1024 ArrayStride 4
+ OpMemberDecorate %prevent_dce_block 0 Offset 0
+ OpDecorate %prevent_dce_block Block
+ OpDecorate %1 DescriptorSet 0
+ OpDecorate %1 Binding 0
+ OpDecorate %_runtimearr_uint ArrayStride 4
+ OpMemberDecorate %SB_RO 0 Offset 0
+ OpDecorate %SB_RO Block
+ OpDecorate %sb_ro DescriptorSet 0
+ OpDecorate %sb_ro Binding 1
+ OpDecorate %sb_ro NonWritable
+ %uint = OpTypeInt 32 0
+ %uint_1024 = OpConstant %uint 1024
+%_arr_uint_uint_1024 = OpTypeArray %uint %uint_1024
+%prevent_dce_block = OpTypeStruct %_arr_uint_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+ %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_runtimearr_uint = OpTypeRuntimeArray %uint
+ %SB_RO = OpTypeStruct %_runtimearr_uint
+%_ptr_StorageBuffer_SB_RO = OpTypePointer StorageBuffer %SB_RO
+ %sb_ro = OpVariable %_ptr_StorageBuffer_SB_RO StorageBuffer
+ %uint_3 = OpConstant %uint 3
+ %uint_8 = OpConstant %uint 8
+ %uint_1 = OpConstant %uint 1
+ %12 = OpTypeCooperativeMatrixKHR %uint %uint_3 %uint_8 %uint_8 %uint_1
+ %16 = OpTypeFunction %12
+%_ptr_Function_uint = OpTypePointer Function %uint
+%_ptr_StorageBuffer__runtimearr_uint = OpTypePointer StorageBuffer %_runtimearr_uint
+ %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
+%_ptr_Function_12 = OpTypePointer Function %12
+ %void = OpTypeVoid
+ %34 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_uint_uint_1024 = OpTypePointer StorageBuffer %_arr_uint_uint_1024
+%_ptr_StorageBuffer_uint_0 = OpTypePointer StorageBuffer %uint
+ %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_df98ff = OpFunction %12 None %16
+ %17 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_uint Function
+ %arg_3 = OpVariable %_ptr_Function_uint Function
+ %res = OpVariable %_ptr_Function_12 Function
+ OpStore %arg_1 %uint_1
+ OpStore %arg_3 %uint_1
+ %21 = OpAccessChain %_ptr_StorageBuffer__runtimearr_uint %sb_ro %uint_0
+ %24 = OpLoad %uint %arg_1 None
+ %25 = OpLoad %uint %arg_3 None
+ %26 = OpAccessChain %_ptr_StorageBuffer_uint %21 %24
+ %28 = OpCooperativeMatrixLoadKHR %12 %26 %uint_1 %25 NonPrivatePointer
+ OpStore %res %28
+ %31 = OpLoad %12 %res None
+ OpReturnValue %31
+ OpFunctionEnd
+%compute_main = OpFunction %void None %34
+ %35 = OpLabel
+ %36 = OpFunctionCall %12 %subgroupMatrixLoad_df98ff
+ %37 = OpAccessChain %_ptr_StorageBuffer__arr_uint_uint_1024 %1 %uint_0
+ %39 = OpAccessChain %_ptr_StorageBuffer_uint_0 %37 %uint_0
+ OpCooperativeMatrixStoreKHR %39 %36 %uint_0 %uint_64 NonPrivatePointer
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/df98ff.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/df98ff.wgsl.expected.wgsl
new file mode 100644
index 0000000..3ba87c4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/df98ff.wgsl.expected.wgsl
@@ -0,0 +1,22 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<u32, 1024>;
+
+struct SB_RO {
+ arg_0 : array<u32>,
+}
+
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+fn subgroupMatrixLoad_df98ff() -> subgroup_matrix_right<u32, 8, 8> {
+ var arg_1 = 1u;
+ const arg_2 = true;
+ var arg_3 = 1u;
+ var res : subgroup_matrix_right<u32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_right<u32, 8, 8>>(&(sb_ro.arg_0), arg_1, arg_2, arg_3);
+ return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_df98ff(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/e5caba.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/e5caba.wgsl
new file mode 100644
index 0000000..0592c27
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/e5caba.wgsl
@@ -0,0 +1,60 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+// test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
+
+struct SB_RW {
+ arg_0: array<f32>,
+};
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<result, f32, 8, 8>>(ptr<storage, runtime_array<f32>, read_write>, u32, @const bool, u32) -> subgroup_matrix<result, f32, 8, 8>
+fn subgroupMatrixLoad_e5caba() -> subgroup_matrix_result<f32, 8, 8>{
+ var arg_1 = 1u;
+ const arg_2 = true;
+ var arg_3 = 1u;
+ var res: subgroup_matrix_result<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<f32, 8, 8>>(&sb_rw.arg_0, arg_1, arg_2, arg_3);
+ return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_e5caba(), false, 64);
+}
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
new file mode 100644
index 0000000..3cd8b8c
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/e5caba.wgsl.expected.dxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: FAILED
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/e5caba.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/e5caba.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..48f5b71
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/e5caba.wgsl.expected.fxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: INVALID
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/e5caba.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/e5caba.wgsl.expected.glsl
new file mode 100644
index 0000000..cc19bf0
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/e5caba.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the GLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/e5caba.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/e5caba.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..dda740a
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/e5caba.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/e5caba.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/e5caba.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..4709805
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/e5caba.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/e5caba.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/e5caba.wgsl.expected.msl
new file mode 100644
index 0000000..90935e8
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/e5caba.wgsl.expected.msl
@@ -0,0 +1,37 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+ const constant T& operator[](size_t i) const constant { return elements[i]; }
+ device T& operator[](size_t i) device { return elements[i]; }
+ const device T& operator[](size_t i) const device { return elements[i]; }
+ thread T& operator[](size_t i) thread { return elements[i]; }
+ const thread T& operator[](size_t i) const thread { return elements[i]; }
+ threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+ const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+ T elements[N];
+};
+
+struct SB_RW {
+ /* 0x0000 */ tint_array<float, 1> arg_0;
+};
+
+struct tint_module_vars_struct {
+ device tint_array<float, 1024>* prevent_dce;
+ device SB_RW* sb_rw;
+};
+
+simdgroup_float8x8 subgroupMatrixLoad_e5caba(tint_module_vars_struct tint_module_vars) {
+ uint arg_1 = 1u;
+ uint arg_3 = 1u;
+ simdgroup_float8x8 v = make_filled_simdgroup_matrix<float, 8, 8>(0.0f);
+ simdgroup_load(v, (&(*tint_module_vars.sb_rw).arg_0[arg_1]), ulong(arg_3), ulong2(0ul), true);
+ simdgroup_float8x8 res = v;
+ return res;
+}
+
+kernel void compute_main(device tint_array<float, 1024>* prevent_dce [[buffer(0)]], device SB_RW* sb_rw [[buffer(1)]]) {
+ tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_rw=sb_rw};
+ simdgroup_store(subgroupMatrixLoad_e5caba(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/e5caba.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/e5caba.wgsl.expected.spvasm
new file mode 100644
index 0000000..a4a208d
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/e5caba.wgsl.expected.spvasm
@@ -0,0 +1,84 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 44
+; Schema: 0
+ OpCapability Shader
+ OpCapability VulkanMemoryModel
+ OpCapability VulkanMemoryModelDeviceScope
+ OpCapability CooperativeMatrixKHR
+ OpExtension "SPV_KHR_vulkan_memory_model"
+ OpExtension "SPV_KHR_cooperative_matrix"
+ OpMemoryModel Logical Vulkan
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpMemberName %prevent_dce_block 0 "inner"
+ OpName %prevent_dce_block "prevent_dce_block"
+ OpMemberName %SB_RW 0 "arg_0"
+ OpName %SB_RW "SB_RW"
+ OpName %sb_rw "sb_rw"
+ OpName %subgroupMatrixLoad_e5caba "subgroupMatrixLoad_e5caba"
+ OpName %arg_1 "arg_1"
+ OpName %arg_3 "arg_3"
+ OpName %res "res"
+ OpName %compute_main "compute_main"
+ OpDecorate %_arr_float_uint_1024 ArrayStride 4
+ OpMemberDecorate %prevent_dce_block 0 Offset 0
+ OpDecorate %prevent_dce_block Block
+ OpDecorate %1 DescriptorSet 0
+ OpDecorate %1 Binding 0
+ OpDecorate %_runtimearr_float ArrayStride 4
+ OpMemberDecorate %SB_RW 0 Offset 0
+ OpDecorate %SB_RW Block
+ OpDecorate %sb_rw DescriptorSet 0
+ OpDecorate %sb_rw Binding 1
+ %float = OpTypeFloat 32
+ %uint = OpTypeInt 32 0
+ %uint_1024 = OpConstant %uint 1024
+%_arr_float_uint_1024 = OpTypeArray %float %uint_1024
+%prevent_dce_block = OpTypeStruct %_arr_float_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+ %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_runtimearr_float = OpTypeRuntimeArray %float
+ %SB_RW = OpTypeStruct %_runtimearr_float
+%_ptr_StorageBuffer_SB_RW = OpTypePointer StorageBuffer %SB_RW
+ %sb_rw = OpVariable %_ptr_StorageBuffer_SB_RW StorageBuffer
+ %uint_3 = OpConstant %uint 3
+ %uint_8 = OpConstant %uint 8
+ %uint_2 = OpConstant %uint 2
+ %13 = OpTypeCooperativeMatrixKHR %float %uint_3 %uint_8 %uint_8 %uint_2
+ %17 = OpTypeFunction %13
+%_ptr_Function_uint = OpTypePointer Function %uint
+ %uint_1 = OpConstant %uint 1
+%_ptr_StorageBuffer__runtimearr_float = OpTypePointer StorageBuffer %_runtimearr_float
+ %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
+%_ptr_Function_13 = OpTypePointer Function %13
+ %void = OpTypeVoid
+ %36 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_float_uint_1024 = OpTypePointer StorageBuffer %_arr_float_uint_1024
+ %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_e5caba = OpFunction %13 None %17
+ %18 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_uint Function
+ %arg_3 = OpVariable %_ptr_Function_uint Function
+ %res = OpVariable %_ptr_Function_13 Function
+ OpStore %arg_1 %uint_1
+ OpStore %arg_3 %uint_1
+ %23 = OpAccessChain %_ptr_StorageBuffer__runtimearr_float %sb_rw %uint_0
+ %26 = OpLoad %uint %arg_1 None
+ %27 = OpLoad %uint %arg_3 None
+ %28 = OpAccessChain %_ptr_StorageBuffer_float %23 %26
+ %30 = OpCooperativeMatrixLoadKHR %13 %28 %uint_1 %27 NonPrivatePointer
+ OpStore %res %30
+ %33 = OpLoad %13 %res None
+ OpReturnValue %33
+ OpFunctionEnd
+%compute_main = OpFunction %void None %36
+ %37 = OpLabel
+ %38 = OpFunctionCall %13 %subgroupMatrixLoad_e5caba
+ %39 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_1024 %1 %uint_0
+ %41 = OpAccessChain %_ptr_StorageBuffer_float %39 %uint_0
+ OpCooperativeMatrixStoreKHR %41 %38 %uint_0 %uint_64 NonPrivatePointer
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/e5caba.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/e5caba.wgsl.expected.wgsl
new file mode 100644
index 0000000..1768b87
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/e5caba.wgsl.expected.wgsl
@@ -0,0 +1,22 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
+
+struct SB_RW {
+ arg_0 : array<f32>,
+}
+
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixLoad_e5caba() -> subgroup_matrix_result<f32, 8, 8> {
+ var arg_1 = 1u;
+ const arg_2 = true;
+ var arg_3 = 1u;
+ var res : subgroup_matrix_result<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_result<f32, 8, 8>>(&(sb_rw.arg_0), arg_1, arg_2, arg_3);
+ return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_e5caba(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/f58623.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/f58623.wgsl
new file mode 100644
index 0000000..cc408f8
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/f58623.wgsl
@@ -0,0 +1,60 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+// test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
+
+struct SB_RO {
+ arg_0: array<f32>,
+};
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<left, f32, 8, 8>>(ptr<storage, runtime_array<f32>, read>, u32, @const bool, u32) -> subgroup_matrix<left, f32, 8, 8>
+fn subgroupMatrixLoad_f58623() -> subgroup_matrix_left<f32, 8, 8>{
+ var arg_1 = 1u;
+ const arg_2 = true;
+ var arg_3 = 1u;
+ var res: subgroup_matrix_left<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<f32, 8, 8>>(&sb_ro.arg_0, arg_1, arg_2, arg_3);
+ return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_f58623(), false, 64);
+}
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
new file mode 100644
index 0000000..3cd8b8c
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/f58623.wgsl.expected.dxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: FAILED
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/f58623.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/f58623.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..48f5b71
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/f58623.wgsl.expected.fxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: INVALID
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/f58623.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/f58623.wgsl.expected.glsl
new file mode 100644
index 0000000..cc19bf0
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/f58623.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the GLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/f58623.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/f58623.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..dda740a
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/f58623.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/f58623.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/f58623.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..4709805
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/f58623.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/f58623.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/f58623.wgsl.expected.msl
new file mode 100644
index 0000000..9740613
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/f58623.wgsl.expected.msl
@@ -0,0 +1,37 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+ const constant T& operator[](size_t i) const constant { return elements[i]; }
+ device T& operator[](size_t i) device { return elements[i]; }
+ const device T& operator[](size_t i) const device { return elements[i]; }
+ thread T& operator[](size_t i) thread { return elements[i]; }
+ const thread T& operator[](size_t i) const thread { return elements[i]; }
+ threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+ const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+ T elements[N];
+};
+
+struct SB_RO {
+ /* 0x0000 */ tint_array<float, 1> arg_0;
+};
+
+struct tint_module_vars_struct {
+ device tint_array<float, 1024>* prevent_dce;
+ const device SB_RO* sb_ro;
+};
+
+simdgroup_float8x8 subgroupMatrixLoad_f58623(tint_module_vars_struct tint_module_vars) {
+ uint arg_1 = 1u;
+ uint arg_3 = 1u;
+ simdgroup_float8x8 v = make_filled_simdgroup_matrix<float, 8, 8>(0.0f);
+ simdgroup_load(v, (&(*tint_module_vars.sb_ro).arg_0[arg_1]), ulong(arg_3), ulong2(0ul), true);
+ simdgroup_float8x8 res = v;
+ return res;
+}
+
+kernel void compute_main(device tint_array<float, 1024>* prevent_dce [[buffer(0)]], const device SB_RO* sb_ro [[buffer(1)]]) {
+ tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_ro=sb_ro};
+ simdgroup_store(subgroupMatrixLoad_f58623(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/f58623.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/f58623.wgsl.expected.spvasm
new file mode 100644
index 0000000..2c059fa
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/f58623.wgsl.expected.spvasm
@@ -0,0 +1,85 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 44
+; Schema: 0
+ OpCapability Shader
+ OpCapability VulkanMemoryModel
+ OpCapability VulkanMemoryModelDeviceScope
+ OpCapability CooperativeMatrixKHR
+ OpExtension "SPV_KHR_vulkan_memory_model"
+ OpExtension "SPV_KHR_cooperative_matrix"
+ OpMemoryModel Logical Vulkan
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpMemberName %prevent_dce_block 0 "inner"
+ OpName %prevent_dce_block "prevent_dce_block"
+ OpMemberName %SB_RO 0 "arg_0"
+ OpName %SB_RO "SB_RO"
+ OpName %sb_ro "sb_ro"
+ OpName %subgroupMatrixLoad_f58623 "subgroupMatrixLoad_f58623"
+ OpName %arg_1 "arg_1"
+ OpName %arg_3 "arg_3"
+ OpName %res "res"
+ OpName %compute_main "compute_main"
+ OpDecorate %_arr_float_uint_1024 ArrayStride 4
+ OpMemberDecorate %prevent_dce_block 0 Offset 0
+ OpDecorate %prevent_dce_block Block
+ OpDecorate %1 DescriptorSet 0
+ OpDecorate %1 Binding 0
+ OpDecorate %_runtimearr_float ArrayStride 4
+ OpMemberDecorate %SB_RO 0 Offset 0
+ OpDecorate %SB_RO Block
+ OpDecorate %sb_ro DescriptorSet 0
+ OpDecorate %sb_ro Binding 1
+ OpDecorate %sb_ro NonWritable
+ %float = OpTypeFloat 32
+ %uint = OpTypeInt 32 0
+ %uint_1024 = OpConstant %uint 1024
+%_arr_float_uint_1024 = OpTypeArray %float %uint_1024
+%prevent_dce_block = OpTypeStruct %_arr_float_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+ %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_runtimearr_float = OpTypeRuntimeArray %float
+ %SB_RO = OpTypeStruct %_runtimearr_float
+%_ptr_StorageBuffer_SB_RO = OpTypePointer StorageBuffer %SB_RO
+ %sb_ro = OpVariable %_ptr_StorageBuffer_SB_RO StorageBuffer
+ %uint_3 = OpConstant %uint 3
+ %uint_8 = OpConstant %uint 8
+ %uint_0 = OpConstant %uint 0
+ %13 = OpTypeCooperativeMatrixKHR %float %uint_3 %uint_8 %uint_8 %uint_0
+ %17 = OpTypeFunction %13
+%_ptr_Function_uint = OpTypePointer Function %uint
+ %uint_1 = OpConstant %uint 1
+%_ptr_StorageBuffer__runtimearr_float = OpTypePointer StorageBuffer %_runtimearr_float
+%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
+%_ptr_Function_13 = OpTypePointer Function %13
+ %void = OpTypeVoid
+ %35 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_float_uint_1024 = OpTypePointer StorageBuffer %_arr_float_uint_1024
+%_ptr_StorageBuffer_float_0 = OpTypePointer StorageBuffer %float
+ %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_f58623 = OpFunction %13 None %17
+ %18 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_uint Function
+ %arg_3 = OpVariable %_ptr_Function_uint Function
+ %res = OpVariable %_ptr_Function_13 Function
+ OpStore %arg_1 %uint_1
+ OpStore %arg_3 %uint_1
+ %23 = OpAccessChain %_ptr_StorageBuffer__runtimearr_float %sb_ro %uint_0
+ %25 = OpLoad %uint %arg_1 None
+ %26 = OpLoad %uint %arg_3 None
+ %27 = OpAccessChain %_ptr_StorageBuffer_float %23 %25
+ %29 = OpCooperativeMatrixLoadKHR %13 %27 %uint_1 %26 NonPrivatePointer
+ OpStore %res %29
+ %32 = OpLoad %13 %res None
+ OpReturnValue %32
+ OpFunctionEnd
+%compute_main = OpFunction %void None %35
+ %36 = OpLabel
+ %37 = OpFunctionCall %13 %subgroupMatrixLoad_f58623
+ %38 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_1024 %1 %uint_0
+ %40 = OpAccessChain %_ptr_StorageBuffer_float_0 %38 %uint_0
+ OpCooperativeMatrixStoreKHR %40 %37 %uint_0 %uint_64 NonPrivatePointer
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/f58623.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/f58623.wgsl.expected.wgsl
new file mode 100644
index 0000000..62ece90
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/f58623.wgsl.expected.wgsl
@@ -0,0 +1,22 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
+
+struct SB_RO {
+ arg_0 : array<f32>,
+}
+
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+fn subgroupMatrixLoad_f58623() -> subgroup_matrix_left<f32, 8, 8> {
+ var arg_1 = 1u;
+ const arg_2 = true;
+ var arg_3 = 1u;
+ var res : subgroup_matrix_left<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<f32, 8, 8>>(&(sb_ro.arg_0), arg_1, arg_2, arg_3);
+ return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_f58623(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/f9b989.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/f9b989.wgsl
new file mode 100644
index 0000000..2330dda
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/f9b989.wgsl
@@ -0,0 +1,60 @@
+// Copyright 2025 The Dawn & Tint Authors
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are met:
+//
+// 1. Redistributions of source code must retain the above copyright notice, this
+// list of conditions and the following disclaimer.
+//
+// 2. Redistributions in binary form must reproduce the above copyright notice,
+// this list of conditions and the following disclaimer in the documentation
+// and/or other materials provided with the distribution.
+//
+// 3. Neither the name of the copyright holder nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
+// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+// test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+// [hlsl-dxc] flags: --hlsl-shader-model 60
+
+
+enable chromium_experimental_subgroup_matrix;
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
+
+struct SB_RW {
+ arg_0: array<f32>,
+};
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+// fn subgroupMatrixLoad<T: subgroup_matrix<left, f32, 8, 8>>(ptr<storage, runtime_array<f32>, read_write>, u32, @const bool, u32) -> subgroup_matrix<left, f32, 8, 8>
+fn subgroupMatrixLoad_f9b989() -> subgroup_matrix_left<f32, 8, 8>{
+ var arg_1 = 1u;
+ const arg_2 = true;
+ var arg_3 = 1u;
+ var res: subgroup_matrix_left<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<f32, 8, 8>>(&sb_rw.arg_0, arg_1, arg_2, arg_3);
+ return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_f9b989(), false, 64);
+}
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
new file mode 100644
index 0000000..3cd8b8c
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/f9b989.wgsl.expected.dxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: FAILED
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/f9b989.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/f9b989.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..48f5b71
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/f9b989.wgsl.expected.fxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: INVALID
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/f9b989.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/f9b989.wgsl.expected.glsl
new file mode 100644
index 0000000..cc19bf0
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/f9b989.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the GLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/f9b989.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/f9b989.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..dda740a
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/f9b989.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/f9b989.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/f9b989.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..4709805
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/f9b989.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/f9b989.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/f9b989.wgsl.expected.msl
new file mode 100644
index 0000000..76689af
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/f9b989.wgsl.expected.msl
@@ -0,0 +1,37 @@
+#include <metal_stdlib>
+using namespace metal;
+
+template<typename T, size_t N>
+struct tint_array {
+ const constant T& operator[](size_t i) const constant { return elements[i]; }
+ device T& operator[](size_t i) device { return elements[i]; }
+ const device T& operator[](size_t i) const device { return elements[i]; }
+ thread T& operator[](size_t i) thread { return elements[i]; }
+ const thread T& operator[](size_t i) const thread { return elements[i]; }
+ threadgroup T& operator[](size_t i) threadgroup { return elements[i]; }
+ const threadgroup T& operator[](size_t i) const threadgroup { return elements[i]; }
+ T elements[N];
+};
+
+struct SB_RW {
+ /* 0x0000 */ tint_array<float, 1> arg_0;
+};
+
+struct tint_module_vars_struct {
+ device tint_array<float, 1024>* prevent_dce;
+ device SB_RW* sb_rw;
+};
+
+simdgroup_float8x8 subgroupMatrixLoad_f9b989(tint_module_vars_struct tint_module_vars) {
+ uint arg_1 = 1u;
+ uint arg_3 = 1u;
+ simdgroup_float8x8 v = make_filled_simdgroup_matrix<float, 8, 8>(0.0f);
+ simdgroup_load(v, (&(*tint_module_vars.sb_rw).arg_0[arg_1]), ulong(arg_3), ulong2(0ul), true);
+ simdgroup_float8x8 res = v;
+ return res;
+}
+
+kernel void compute_main(device tint_array<float, 1024>* prevent_dce [[buffer(0)]], device SB_RW* sb_rw [[buffer(1)]]) {
+ tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.prevent_dce=prevent_dce, .sb_rw=sb_rw};
+ simdgroup_store(subgroupMatrixLoad_f9b989(tint_module_vars), (&(*tint_module_vars.prevent_dce)[0u]), ulong(64u), ulong2(0ul), false);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/f9b989.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/f9b989.wgsl.expected.spvasm
new file mode 100644
index 0000000..5615eb4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/f9b989.wgsl.expected.spvasm
@@ -0,0 +1,83 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 43
+; Schema: 0
+ OpCapability Shader
+ OpCapability VulkanMemoryModel
+ OpCapability VulkanMemoryModelDeviceScope
+ OpCapability CooperativeMatrixKHR
+ OpExtension "SPV_KHR_vulkan_memory_model"
+ OpExtension "SPV_KHR_cooperative_matrix"
+ OpMemoryModel Logical Vulkan
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpMemberName %prevent_dce_block 0 "inner"
+ OpName %prevent_dce_block "prevent_dce_block"
+ OpMemberName %SB_RW 0 "arg_0"
+ OpName %SB_RW "SB_RW"
+ OpName %sb_rw "sb_rw"
+ OpName %subgroupMatrixLoad_f9b989 "subgroupMatrixLoad_f9b989"
+ OpName %arg_1 "arg_1"
+ OpName %arg_3 "arg_3"
+ OpName %res "res"
+ OpName %compute_main "compute_main"
+ OpDecorate %_arr_float_uint_1024 ArrayStride 4
+ OpMemberDecorate %prevent_dce_block 0 Offset 0
+ OpDecorate %prevent_dce_block Block
+ OpDecorate %1 DescriptorSet 0
+ OpDecorate %1 Binding 0
+ OpDecorate %_runtimearr_float ArrayStride 4
+ OpMemberDecorate %SB_RW 0 Offset 0
+ OpDecorate %SB_RW Block
+ OpDecorate %sb_rw DescriptorSet 0
+ OpDecorate %sb_rw Binding 1
+ %float = OpTypeFloat 32
+ %uint = OpTypeInt 32 0
+ %uint_1024 = OpConstant %uint 1024
+%_arr_float_uint_1024 = OpTypeArray %float %uint_1024
+%prevent_dce_block = OpTypeStruct %_arr_float_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+ %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_runtimearr_float = OpTypeRuntimeArray %float
+ %SB_RW = OpTypeStruct %_runtimearr_float
+%_ptr_StorageBuffer_SB_RW = OpTypePointer StorageBuffer %SB_RW
+ %sb_rw = OpVariable %_ptr_StorageBuffer_SB_RW StorageBuffer
+ %uint_3 = OpConstant %uint 3
+ %uint_8 = OpConstant %uint 8
+ %uint_0 = OpConstant %uint 0
+ %13 = OpTypeCooperativeMatrixKHR %float %uint_3 %uint_8 %uint_8 %uint_0
+ %17 = OpTypeFunction %13
+%_ptr_Function_uint = OpTypePointer Function %uint
+ %uint_1 = OpConstant %uint 1
+%_ptr_StorageBuffer__runtimearr_float = OpTypePointer StorageBuffer %_runtimearr_float
+%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
+%_ptr_Function_13 = OpTypePointer Function %13
+ %void = OpTypeVoid
+ %35 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_float_uint_1024 = OpTypePointer StorageBuffer %_arr_float_uint_1024
+ %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_f9b989 = OpFunction %13 None %17
+ %18 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_uint Function
+ %arg_3 = OpVariable %_ptr_Function_uint Function
+ %res = OpVariable %_ptr_Function_13 Function
+ OpStore %arg_1 %uint_1
+ OpStore %arg_3 %uint_1
+ %23 = OpAccessChain %_ptr_StorageBuffer__runtimearr_float %sb_rw %uint_0
+ %25 = OpLoad %uint %arg_1 None
+ %26 = OpLoad %uint %arg_3 None
+ %27 = OpAccessChain %_ptr_StorageBuffer_float %23 %25
+ %29 = OpCooperativeMatrixLoadKHR %13 %27 %uint_1 %26 NonPrivatePointer
+ OpStore %res %29
+ %32 = OpLoad %13 %res None
+ OpReturnValue %32
+ OpFunctionEnd
+%compute_main = OpFunction %void None %35
+ %36 = OpLabel
+ %37 = OpFunctionCall %13 %subgroupMatrixLoad_f9b989
+ %38 = OpAccessChain %_ptr_StorageBuffer__arr_float_uint_1024 %1 %uint_0
+ %40 = OpAccessChain %_ptr_StorageBuffer_float %38 %uint_0
+ OpCooperativeMatrixStoreKHR %40 %37 %uint_0 %uint_64 NonPrivatePointer
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/f9b989.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/f9b989.wgsl.expected.wgsl
new file mode 100644
index 0000000..ad0cf1b
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/f9b989.wgsl.expected.wgsl
@@ -0,0 +1,22 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<f32, 1024>;
+
+struct SB_RW {
+ arg_0 : array<f32>,
+}
+
+@group(0) @binding(1) var<storage, read_write> sb_rw : SB_RW;
+
+fn subgroupMatrixLoad_f9b989() -> subgroup_matrix_left<f32, 8, 8> {
+ var arg_1 = 1u;
+ const arg_2 = true;
+ var arg_3 = 1u;
+ var res : subgroup_matrix_left<f32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<f32, 8, 8>>(&(sb_rw.arg_0), arg_1, arg_2, arg_3);
+ return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_f9b989(), false, 64);
+}
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/fa3c74.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/fa3c74.wgsl
new file mode 100644
index 0000000..f244217
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/fa3c74.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, i32, 8, 8>>(ptr<storage, runtime_array<i32>, read>, u32, @const bool, u32) -> subgroup_matrix<left, i32, 8, 8>
+fn subgroupMatrixLoad_fa3c74() -> subgroup_matrix_left<i32, 8, 8>{
+ var arg_1 = 1u;
+ const arg_2 = true;
+ var arg_3 = 1u;
+ var res: subgroup_matrix_left<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<i32, 8, 8>>(&sb_ro.arg_0, arg_1, arg_2, arg_3);
+ return res;
+}
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&prevent_dce, 0, subgroupMatrixLoad_fa3c74(), false, 64);
+}
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
new file mode 100644
index 0000000..3cd8b8c
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/fa3c74.wgsl.expected.dxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: FAILED
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/fa3c74.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/fa3c74.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..48f5b71
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/fa3c74.wgsl.expected.fxc.hlsl
@@ -0,0 +1,11 @@
+SKIP: INVALID
+
+../../src/tint/lang/wgsl/ast/transform/transform.cc:188 internal compiler error: TINT_UNREACHABLE Unhandled type: tint::core::type::SubgroupMatrix
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
+
+tint executable returned error: signal: trace/BPT trap
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/fa3c74.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/fa3c74.wgsl.expected.glsl
new file mode 100644
index 0000000..cc19bf0
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/fa3c74.wgsl.expected.glsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the GLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/fa3c74.wgsl.expected.ir.dxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/fa3c74.wgsl.expected.ir.dxc.hlsl
new file mode 100644
index 0000000..dda740a
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/fa3c74.wgsl.expected.ir.dxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: FAILED
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/fa3c74.wgsl.expected.ir.fxc.hlsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/fa3c74.wgsl.expected.ir.fxc.hlsl
new file mode 100644
index 0000000..4709805
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/fa3c74.wgsl.expected.ir.fxc.hlsl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: subgroup matrices are not supported by the HLSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/fa3c74.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupMatrixLoad/fa3c74.wgsl.expected.msl
new file mode 100644
index 0000000..5dba48c
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/fa3c74.wgsl.expected.msl
@@ -0,0 +1,5 @@
+SKIP: INVALID
+
+error: non-float subgroup matrices are not supported by the MSL backend
+
+tint executable returned error: exit status 1
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/fa3c74.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupMatrixLoad/fa3c74.wgsl.expected.spvasm
new file mode 100644
index 0000000..4859a73
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/fa3c74.wgsl.expected.spvasm
@@ -0,0 +1,85 @@
+; SPIR-V
+; Version: 1.3
+; Generator: Google Tint Compiler; 1
+; Bound: 44
+; Schema: 0
+ OpCapability Shader
+ OpCapability VulkanMemoryModel
+ OpCapability VulkanMemoryModelDeviceScope
+ OpCapability CooperativeMatrixKHR
+ OpExtension "SPV_KHR_vulkan_memory_model"
+ OpExtension "SPV_KHR_cooperative_matrix"
+ OpMemoryModel Logical Vulkan
+ OpEntryPoint GLCompute %compute_main "compute_main"
+ OpExecutionMode %compute_main LocalSize 1 1 1
+ OpMemberName %prevent_dce_block 0 "inner"
+ OpName %prevent_dce_block "prevent_dce_block"
+ OpMemberName %SB_RO 0 "arg_0"
+ OpName %SB_RO "SB_RO"
+ OpName %sb_ro "sb_ro"
+ OpName %subgroupMatrixLoad_fa3c74 "subgroupMatrixLoad_fa3c74"
+ OpName %arg_1 "arg_1"
+ OpName %arg_3 "arg_3"
+ OpName %res "res"
+ OpName %compute_main "compute_main"
+ OpDecorate %_arr_int_uint_1024 ArrayStride 4
+ OpMemberDecorate %prevent_dce_block 0 Offset 0
+ OpDecorate %prevent_dce_block Block
+ OpDecorate %1 DescriptorSet 0
+ OpDecorate %1 Binding 0
+ OpDecorate %_runtimearr_int ArrayStride 4
+ OpMemberDecorate %SB_RO 0 Offset 0
+ OpDecorate %SB_RO Block
+ OpDecorate %sb_ro DescriptorSet 0
+ OpDecorate %sb_ro Binding 1
+ OpDecorate %sb_ro NonWritable
+ %int = OpTypeInt 32 1
+ %uint = OpTypeInt 32 0
+ %uint_1024 = OpConstant %uint 1024
+%_arr_int_uint_1024 = OpTypeArray %int %uint_1024
+%prevent_dce_block = OpTypeStruct %_arr_int_uint_1024
+%_ptr_StorageBuffer_prevent_dce_block = OpTypePointer StorageBuffer %prevent_dce_block
+ %1 = OpVariable %_ptr_StorageBuffer_prevent_dce_block StorageBuffer
+%_runtimearr_int = OpTypeRuntimeArray %int
+ %SB_RO = OpTypeStruct %_runtimearr_int
+%_ptr_StorageBuffer_SB_RO = OpTypePointer StorageBuffer %SB_RO
+ %sb_ro = OpVariable %_ptr_StorageBuffer_SB_RO StorageBuffer
+ %uint_3 = OpConstant %uint 3
+ %uint_8 = OpConstant %uint 8
+ %uint_0 = OpConstant %uint 0
+ %13 = OpTypeCooperativeMatrixKHR %int %uint_3 %uint_8 %uint_8 %uint_0
+ %17 = OpTypeFunction %13
+%_ptr_Function_uint = OpTypePointer Function %uint
+ %uint_1 = OpConstant %uint 1
+%_ptr_StorageBuffer__runtimearr_int = OpTypePointer StorageBuffer %_runtimearr_int
+%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
+%_ptr_Function_13 = OpTypePointer Function %13
+ %void = OpTypeVoid
+ %35 = OpTypeFunction %void
+%_ptr_StorageBuffer__arr_int_uint_1024 = OpTypePointer StorageBuffer %_arr_int_uint_1024
+%_ptr_StorageBuffer_int_0 = OpTypePointer StorageBuffer %int
+ %uint_64 = OpConstant %uint 64
+%subgroupMatrixLoad_fa3c74 = OpFunction %13 None %17
+ %18 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_uint Function
+ %arg_3 = OpVariable %_ptr_Function_uint Function
+ %res = OpVariable %_ptr_Function_13 Function
+ OpStore %arg_1 %uint_1
+ OpStore %arg_3 %uint_1
+ %23 = OpAccessChain %_ptr_StorageBuffer__runtimearr_int %sb_ro %uint_0
+ %25 = OpLoad %uint %arg_1 None
+ %26 = OpLoad %uint %arg_3 None
+ %27 = OpAccessChain %_ptr_StorageBuffer_int %23 %25
+ %29 = OpCooperativeMatrixLoadKHR %13 %27 %uint_1 %26 NonPrivatePointer
+ OpStore %res %29
+ %32 = OpLoad %13 %res None
+ OpReturnValue %32
+ OpFunctionEnd
+%compute_main = OpFunction %void None %35
+ %36 = OpLabel
+ %37 = OpFunctionCall %13 %subgroupMatrixLoad_fa3c74
+ %38 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_1024 %1 %uint_0
+ %40 = OpAccessChain %_ptr_StorageBuffer_int_0 %38 %uint_0
+ OpCooperativeMatrixStoreKHR %40 %37 %uint_0 %uint_64 NonPrivatePointer
+ OpReturn
+ OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/subgroupMatrixLoad/fa3c74.wgsl.expected.wgsl b/test/tint/builtins/gen/var/subgroupMatrixLoad/fa3c74.wgsl.expected.wgsl
new file mode 100644
index 0000000..791bde2
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupMatrixLoad/fa3c74.wgsl.expected.wgsl
@@ -0,0 +1,22 @@
+enable chromium_experimental_subgroup_matrix;
+
+@group(0) @binding(0) var<storage, read_write> prevent_dce : array<i32, 1024>;
+
+struct SB_RO {
+ arg_0 : array<i32>,
+}
+
+@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
+
+fn subgroupMatrixLoad_fa3c74() -> subgroup_matrix_left<i32, 8, 8> {
+ var arg_1 = 1u;
+ const arg_2 = true;
+ var arg_3 = 1u;
+ var res : subgroup_matrix_left<i32, 8, 8> = subgroupMatrixLoad<subgroup_matrix_left<i32, 8, 8>>(&(sb_ro.arg_0), arg_1, arg_2, arg_3);
+ return res;
+}
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupMatrixStore(&(prevent_dce), 0, subgroupMatrixLoad_fa3c74(), false, 64);
+}