• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// Copyright 2021 The Tint Authors.
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7//     http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15////////////////////////////////////////////////////////////////////////////////
16// File generated by tools/intrinsic-gen
17// using the template:
18//   src/intrinsic_table.inl.tmpl
19// and the intrinsic defintion file:
20//   src/intrinsics.def
21//
22// Do not modify this file directly
23////////////////////////////////////////////////////////////////////////////////
24
25// clang-format off
26
27/// TypeMatcher for 'type bool'
28/// @see src/intrinsics.def:68:6
29class Bool : public TypeMatcher {
30 public:
31  /// Checks whether the given type matches the matcher rules.
32  /// Match may close open types and numbers in state.
33  /// @param state the MatchState
34  /// @param type the type to match
35  /// @returns the canonicalized type on match, otherwise nullptr
36  const sem::Type* Match(MatchState& state,
37                         const sem::Type* type) const override;
38  /// @param state the MatchState
39  /// @return a string representation of the matcher.
40  std::string String(MatchState& state) const override;
41};
42
43const sem::Type* Bool::Match(MatchState& state, const sem::Type* ty) const {
44  if (!match_bool(ty)) {
45    return nullptr;
46  }
47  return build_bool(state);
48}
49
50std::string Bool::String(MatchState&) const {
51  return "bool";
52}
53
54/// TypeMatcher for 'type f32'
55/// @see src/intrinsics.def:69:6
56class F32 : public TypeMatcher {
57 public:
58  /// Checks whether the given type matches the matcher rules.
59  /// Match may close open types and numbers in state.
60  /// @param state the MatchState
61  /// @param type the type to match
62  /// @returns the canonicalized type on match, otherwise nullptr
63  const sem::Type* Match(MatchState& state,
64                         const sem::Type* type) const override;
65  /// @param state the MatchState
66  /// @return a string representation of the matcher.
67  std::string String(MatchState& state) const override;
68};
69
70const sem::Type* F32::Match(MatchState& state, const sem::Type* ty) const {
71  if (!match_f32(ty)) {
72    return nullptr;
73  }
74  return build_f32(state);
75}
76
77std::string F32::String(MatchState&) const {
78  return "f32";
79}
80
81/// TypeMatcher for 'type i32'
82/// @see src/intrinsics.def:70:6
83class I32 : public TypeMatcher {
84 public:
85  /// Checks whether the given type matches the matcher rules.
86  /// Match may close open types and numbers in state.
87  /// @param state the MatchState
88  /// @param type the type to match
89  /// @returns the canonicalized type on match, otherwise nullptr
90  const sem::Type* Match(MatchState& state,
91                         const sem::Type* type) const override;
92  /// @param state the MatchState
93  /// @return a string representation of the matcher.
94  std::string String(MatchState& state) const override;
95};
96
97const sem::Type* I32::Match(MatchState& state, const sem::Type* ty) const {
98  if (!match_i32(ty)) {
99    return nullptr;
100  }
101  return build_i32(state);
102}
103
104std::string I32::String(MatchState&) const {
105  return "i32";
106}
107
108/// TypeMatcher for 'type u32'
109/// @see src/intrinsics.def:71:6
110class U32 : public TypeMatcher {
111 public:
112  /// Checks whether the given type matches the matcher rules.
113  /// Match may close open types and numbers in state.
114  /// @param state the MatchState
115  /// @param type the type to match
116  /// @returns the canonicalized type on match, otherwise nullptr
117  const sem::Type* Match(MatchState& state,
118                         const sem::Type* type) const override;
119  /// @param state the MatchState
120  /// @return a string representation of the matcher.
121  std::string String(MatchState& state) const override;
122};
123
124const sem::Type* U32::Match(MatchState& state, const sem::Type* ty) const {
125  if (!match_u32(ty)) {
126    return nullptr;
127  }
128  return build_u32(state);
129}
130
131std::string U32::String(MatchState&) const {
132  return "u32";
133}
134
135/// TypeMatcher for 'type vec2'
136/// @see src/intrinsics.def:72:6
137class Vec2 : public TypeMatcher {
138 public:
139  /// Checks whether the given type matches the matcher rules.
140  /// Match may close open types and numbers in state.
141  /// @param state the MatchState
142  /// @param type the type to match
143  /// @returns the canonicalized type on match, otherwise nullptr
144  const sem::Type* Match(MatchState& state,
145                         const sem::Type* type) const override;
146  /// @param state the MatchState
147  /// @return a string representation of the matcher.
148  std::string String(MatchState& state) const override;
149};
150
151const sem::Type* Vec2::Match(MatchState& state, const sem::Type* ty) const {
152  const sem::Type* T = nullptr;
153  if (!match_vec2(ty, T)) {
154    return nullptr;
155  }
156  T = state.Type(T);
157  if (T == nullptr) {
158    return nullptr;
159  }
160  return build_vec2(state, T);
161}
162
163std::string Vec2::String(MatchState& state) const {
164  const std::string T = state.TypeName();
165  return "vec2<" + T + ">";
166}
167
168/// TypeMatcher for 'type vec3'
169/// @see src/intrinsics.def:73:6
170class Vec3 : public TypeMatcher {
171 public:
172  /// Checks whether the given type matches the matcher rules.
173  /// Match may close open types and numbers in state.
174  /// @param state the MatchState
175  /// @param type the type to match
176  /// @returns the canonicalized type on match, otherwise nullptr
177  const sem::Type* Match(MatchState& state,
178                         const sem::Type* type) const override;
179  /// @param state the MatchState
180  /// @return a string representation of the matcher.
181  std::string String(MatchState& state) const override;
182};
183
184const sem::Type* Vec3::Match(MatchState& state, const sem::Type* ty) const {
185  const sem::Type* T = nullptr;
186  if (!match_vec3(ty, T)) {
187    return nullptr;
188  }
189  T = state.Type(T);
190  if (T == nullptr) {
191    return nullptr;
192  }
193  return build_vec3(state, T);
194}
195
196std::string Vec3::String(MatchState& state) const {
197  const std::string T = state.TypeName();
198  return "vec3<" + T + ">";
199}
200
201/// TypeMatcher for 'type vec4'
202/// @see src/intrinsics.def:74:6
203class Vec4 : public TypeMatcher {
204 public:
205  /// Checks whether the given type matches the matcher rules.
206  /// Match may close open types and numbers in state.
207  /// @param state the MatchState
208  /// @param type the type to match
209  /// @returns the canonicalized type on match, otherwise nullptr
210  const sem::Type* Match(MatchState& state,
211                         const sem::Type* type) const override;
212  /// @param state the MatchState
213  /// @return a string representation of the matcher.
214  std::string String(MatchState& state) const override;
215};
216
217const sem::Type* Vec4::Match(MatchState& state, const sem::Type* ty) const {
218  const sem::Type* T = nullptr;
219  if (!match_vec4(ty, T)) {
220    return nullptr;
221  }
222  T = state.Type(T);
223  if (T == nullptr) {
224    return nullptr;
225  }
226  return build_vec4(state, T);
227}
228
229std::string Vec4::String(MatchState& state) const {
230  const std::string T = state.TypeName();
231  return "vec4<" + T + ">";
232}
233
234/// TypeMatcher for 'type vec'
235/// @see src/intrinsics.def:75:37
236class Vec : public TypeMatcher {
237 public:
238  /// Checks whether the given type matches the matcher rules.
239  /// Match may close open types and numbers in state.
240  /// @param state the MatchState
241  /// @param type the type to match
242  /// @returns the canonicalized type on match, otherwise nullptr
243  const sem::Type* Match(MatchState& state,
244                         const sem::Type* type) const override;
245  /// @param state the MatchState
246  /// @return a string representation of the matcher.
247  std::string String(MatchState& state) const override;
248};
249
250const sem::Type* Vec::Match(MatchState& state, const sem::Type* ty) const {
251  Number N = Number::invalid;
252  const sem::Type* T = nullptr;
253  if (!match_vec(ty, N, T)) {
254    return nullptr;
255  }
256  N = state.Num(N);
257  if (!N.IsValid()) {
258    return nullptr;
259  }
260  T = state.Type(T);
261  if (T == nullptr) {
262    return nullptr;
263  }
264  return build_vec(state, N, T);
265}
266
267std::string Vec::String(MatchState& state) const {
268  const std::string N = state.NumName();
269  const std::string T = state.TypeName();
270  std::stringstream ss;
271  ss << "vec" << N << "<" << T << ">";
272  return ss.str();
273}
274
275/// TypeMatcher for 'type mat'
276/// @see src/intrinsics.def:76:37
277class Mat : public TypeMatcher {
278 public:
279  /// Checks whether the given type matches the matcher rules.
280  /// Match may close open types and numbers in state.
281  /// @param state the MatchState
282  /// @param type the type to match
283  /// @returns the canonicalized type on match, otherwise nullptr
284  const sem::Type* Match(MatchState& state,
285                         const sem::Type* type) const override;
286  /// @param state the MatchState
287  /// @return a string representation of the matcher.
288  std::string String(MatchState& state) const override;
289};
290
291const sem::Type* Mat::Match(MatchState& state, const sem::Type* ty) const {
292  Number N = Number::invalid;
293  Number M = Number::invalid;
294  const sem::Type* T = nullptr;
295  if (!match_mat(ty, N, M, T)) {
296    return nullptr;
297  }
298  N = state.Num(N);
299  if (!N.IsValid()) {
300    return nullptr;
301  }
302  M = state.Num(M);
303  if (!M.IsValid()) {
304    return nullptr;
305  }
306  T = state.Type(T);
307  if (T == nullptr) {
308    return nullptr;
309  }
310  return build_mat(state, N, M, T);
311}
312
313std::string Mat::String(MatchState& state) const {
314  const std::string N = state.NumName();
315  const std::string M = state.NumName();
316  const std::string T = state.TypeName();
317  std::stringstream ss;
318  ss << "mat" << N << "x" << M << "<" << T << ">";
319  return ss.str();
320}
321
322/// TypeMatcher for 'type ptr'
323/// @see src/intrinsics.def:77:6
324class Ptr : public TypeMatcher {
325 public:
326  /// Checks whether the given type matches the matcher rules.
327  /// Match may close open types and numbers in state.
328  /// @param state the MatchState
329  /// @param type the type to match
330  /// @returns the canonicalized type on match, otherwise nullptr
331  const sem::Type* Match(MatchState& state,
332                         const sem::Type* type) const override;
333  /// @param state the MatchState
334  /// @return a string representation of the matcher.
335  std::string String(MatchState& state) const override;
336};
337
338const sem::Type* Ptr::Match(MatchState& state, const sem::Type* ty) const {
339  Number S = Number::invalid;
340  const sem::Type* T = nullptr;
341  Number A = Number::invalid;
342  if (!match_ptr(ty, S, T, A)) {
343    return nullptr;
344  }
345  S = state.Num(S);
346  if (!S.IsValid()) {
347    return nullptr;
348  }
349  T = state.Type(T);
350  if (T == nullptr) {
351    return nullptr;
352  }
353  A = state.Num(A);
354  if (!A.IsValid()) {
355    return nullptr;
356  }
357  return build_ptr(state, S, T, A);
358}
359
360std::string Ptr::String(MatchState& state) const {
361  const std::string S = state.NumName();
362  const std::string T = state.TypeName();
363  const std::string A = state.NumName();
364  return "ptr<" + S + ", " + T + ", " + A + ">";
365}
366
367/// TypeMatcher for 'type atomic'
368/// @see src/intrinsics.def:78:6
369class Atomic : public TypeMatcher {
370 public:
371  /// Checks whether the given type matches the matcher rules.
372  /// Match may close open types and numbers in state.
373  /// @param state the MatchState
374  /// @param type the type to match
375  /// @returns the canonicalized type on match, otherwise nullptr
376  const sem::Type* Match(MatchState& state,
377                         const sem::Type* type) const override;
378  /// @param state the MatchState
379  /// @return a string representation of the matcher.
380  std::string String(MatchState& state) const override;
381};
382
383const sem::Type* Atomic::Match(MatchState& state, const sem::Type* ty) const {
384  const sem::Type* T = nullptr;
385  if (!match_atomic(ty, T)) {
386    return nullptr;
387  }
388  T = state.Type(T);
389  if (T == nullptr) {
390    return nullptr;
391  }
392  return build_atomic(state, T);
393}
394
395std::string Atomic::String(MatchState& state) const {
396  const std::string T = state.TypeName();
397  return "atomic<" + T + ">";
398}
399
400/// TypeMatcher for 'type array'
401/// @see src/intrinsics.def:79:6
402class Array : public TypeMatcher {
403 public:
404  /// Checks whether the given type matches the matcher rules.
405  /// Match may close open types and numbers in state.
406  /// @param state the MatchState
407  /// @param type the type to match
408  /// @returns the canonicalized type on match, otherwise nullptr
409  const sem::Type* Match(MatchState& state,
410                         const sem::Type* type) const override;
411  /// @param state the MatchState
412  /// @return a string representation of the matcher.
413  std::string String(MatchState& state) const override;
414};
415
416const sem::Type* Array::Match(MatchState& state, const sem::Type* ty) const {
417  const sem::Type* T = nullptr;
418  if (!match_array(ty, T)) {
419    return nullptr;
420  }
421  T = state.Type(T);
422  if (T == nullptr) {
423    return nullptr;
424  }
425  return build_array(state, T);
426}
427
428std::string Array::String(MatchState& state) const {
429  const std::string T = state.TypeName();
430  return "array<" + T + ">";
431}
432
433/// TypeMatcher for 'type sampler'
434/// @see src/intrinsics.def:80:6
435class Sampler : public TypeMatcher {
436 public:
437  /// Checks whether the given type matches the matcher rules.
438  /// Match may close open types and numbers in state.
439  /// @param state the MatchState
440  /// @param type the type to match
441  /// @returns the canonicalized type on match, otherwise nullptr
442  const sem::Type* Match(MatchState& state,
443                         const sem::Type* type) const override;
444  /// @param state the MatchState
445  /// @return a string representation of the matcher.
446  std::string String(MatchState& state) const override;
447};
448
449const sem::Type* Sampler::Match(MatchState& state, const sem::Type* ty) const {
450  if (!match_sampler(ty)) {
451    return nullptr;
452  }
453  return build_sampler(state);
454}
455
456std::string Sampler::String(MatchState&) const {
457  return "sampler";
458}
459
460/// TypeMatcher for 'type sampler_comparison'
461/// @see src/intrinsics.def:81:6
462class SamplerComparison : public TypeMatcher {
463 public:
464  /// Checks whether the given type matches the matcher rules.
465  /// Match may close open types and numbers in state.
466  /// @param state the MatchState
467  /// @param type the type to match
468  /// @returns the canonicalized type on match, otherwise nullptr
469  const sem::Type* Match(MatchState& state,
470                         const sem::Type* type) const override;
471  /// @param state the MatchState
472  /// @return a string representation of the matcher.
473  std::string String(MatchState& state) const override;
474};
475
476const sem::Type* SamplerComparison::Match(MatchState& state, const sem::Type* ty) const {
477  if (!match_sampler_comparison(ty)) {
478    return nullptr;
479  }
480  return build_sampler_comparison(state);
481}
482
483std::string SamplerComparison::String(MatchState&) const {
484  return "sampler_comparison";
485}
486
487/// TypeMatcher for 'type texture_1d'
488/// @see src/intrinsics.def:82:6
489class Texture1D : public TypeMatcher {
490 public:
491  /// Checks whether the given type matches the matcher rules.
492  /// Match may close open types and numbers in state.
493  /// @param state the MatchState
494  /// @param type the type to match
495  /// @returns the canonicalized type on match, otherwise nullptr
496  const sem::Type* Match(MatchState& state,
497                         const sem::Type* type) const override;
498  /// @param state the MatchState
499  /// @return a string representation of the matcher.
500  std::string String(MatchState& state) const override;
501};
502
503const sem::Type* Texture1D::Match(MatchState& state, const sem::Type* ty) const {
504  const sem::Type* T = nullptr;
505  if (!match_texture_1d(ty, T)) {
506    return nullptr;
507  }
508  T = state.Type(T);
509  if (T == nullptr) {
510    return nullptr;
511  }
512  return build_texture_1d(state, T);
513}
514
515std::string Texture1D::String(MatchState& state) const {
516  const std::string T = state.TypeName();
517  return "texture_1d<" + T + ">";
518}
519
520/// TypeMatcher for 'type texture_2d'
521/// @see src/intrinsics.def:83:6
522class Texture2D : public TypeMatcher {
523 public:
524  /// Checks whether the given type matches the matcher rules.
525  /// Match may close open types and numbers in state.
526  /// @param state the MatchState
527  /// @param type the type to match
528  /// @returns the canonicalized type on match, otherwise nullptr
529  const sem::Type* Match(MatchState& state,
530                         const sem::Type* type) const override;
531  /// @param state the MatchState
532  /// @return a string representation of the matcher.
533  std::string String(MatchState& state) const override;
534};
535
536const sem::Type* Texture2D::Match(MatchState& state, const sem::Type* ty) const {
537  const sem::Type* T = nullptr;
538  if (!match_texture_2d(ty, T)) {
539    return nullptr;
540  }
541  T = state.Type(T);
542  if (T == nullptr) {
543    return nullptr;
544  }
545  return build_texture_2d(state, T);
546}
547
548std::string Texture2D::String(MatchState& state) const {
549  const std::string T = state.TypeName();
550  return "texture_2d<" + T + ">";
551}
552
553/// TypeMatcher for 'type texture_2d_array'
554/// @see src/intrinsics.def:84:6
555class Texture2DArray : public TypeMatcher {
556 public:
557  /// Checks whether the given type matches the matcher rules.
558  /// Match may close open types and numbers in state.
559  /// @param state the MatchState
560  /// @param type the type to match
561  /// @returns the canonicalized type on match, otherwise nullptr
562  const sem::Type* Match(MatchState& state,
563                         const sem::Type* type) const override;
564  /// @param state the MatchState
565  /// @return a string representation of the matcher.
566  std::string String(MatchState& state) const override;
567};
568
569const sem::Type* Texture2DArray::Match(MatchState& state, const sem::Type* ty) const {
570  const sem::Type* T = nullptr;
571  if (!match_texture_2d_array(ty, T)) {
572    return nullptr;
573  }
574  T = state.Type(T);
575  if (T == nullptr) {
576    return nullptr;
577  }
578  return build_texture_2d_array(state, T);
579}
580
581std::string Texture2DArray::String(MatchState& state) const {
582  const std::string T = state.TypeName();
583  return "texture_2d_array<" + T + ">";
584}
585
586/// TypeMatcher for 'type texture_3d'
587/// @see src/intrinsics.def:85:6
588class Texture3D : public TypeMatcher {
589 public:
590  /// Checks whether the given type matches the matcher rules.
591  /// Match may close open types and numbers in state.
592  /// @param state the MatchState
593  /// @param type the type to match
594  /// @returns the canonicalized type on match, otherwise nullptr
595  const sem::Type* Match(MatchState& state,
596                         const sem::Type* type) const override;
597  /// @param state the MatchState
598  /// @return a string representation of the matcher.
599  std::string String(MatchState& state) const override;
600};
601
602const sem::Type* Texture3D::Match(MatchState& state, const sem::Type* ty) const {
603  const sem::Type* T = nullptr;
604  if (!match_texture_3d(ty, T)) {
605    return nullptr;
606  }
607  T = state.Type(T);
608  if (T == nullptr) {
609    return nullptr;
610  }
611  return build_texture_3d(state, T);
612}
613
614std::string Texture3D::String(MatchState& state) const {
615  const std::string T = state.TypeName();
616  return "texture_3d<" + T + ">";
617}
618
619/// TypeMatcher for 'type texture_cube'
620/// @see src/intrinsics.def:86:6
621class TextureCube : public TypeMatcher {
622 public:
623  /// Checks whether the given type matches the matcher rules.
624  /// Match may close open types and numbers in state.
625  /// @param state the MatchState
626  /// @param type the type to match
627  /// @returns the canonicalized type on match, otherwise nullptr
628  const sem::Type* Match(MatchState& state,
629                         const sem::Type* type) const override;
630  /// @param state the MatchState
631  /// @return a string representation of the matcher.
632  std::string String(MatchState& state) const override;
633};
634
635const sem::Type* TextureCube::Match(MatchState& state, const sem::Type* ty) const {
636  const sem::Type* T = nullptr;
637  if (!match_texture_cube(ty, T)) {
638    return nullptr;
639  }
640  T = state.Type(T);
641  if (T == nullptr) {
642    return nullptr;
643  }
644  return build_texture_cube(state, T);
645}
646
647std::string TextureCube::String(MatchState& state) const {
648  const std::string T = state.TypeName();
649  return "texture_cube<" + T + ">";
650}
651
652/// TypeMatcher for 'type texture_cube_array'
653/// @see src/intrinsics.def:87:6
654class TextureCubeArray : public TypeMatcher {
655 public:
656  /// Checks whether the given type matches the matcher rules.
657  /// Match may close open types and numbers in state.
658  /// @param state the MatchState
659  /// @param type the type to match
660  /// @returns the canonicalized type on match, otherwise nullptr
661  const sem::Type* Match(MatchState& state,
662                         const sem::Type* type) const override;
663  /// @param state the MatchState
664  /// @return a string representation of the matcher.
665  std::string String(MatchState& state) const override;
666};
667
668const sem::Type* TextureCubeArray::Match(MatchState& state, const sem::Type* ty) const {
669  const sem::Type* T = nullptr;
670  if (!match_texture_cube_array(ty, T)) {
671    return nullptr;
672  }
673  T = state.Type(T);
674  if (T == nullptr) {
675    return nullptr;
676  }
677  return build_texture_cube_array(state, T);
678}
679
680std::string TextureCubeArray::String(MatchState& state) const {
681  const std::string T = state.TypeName();
682  return "texture_cube_array<" + T + ">";
683}
684
685/// TypeMatcher for 'type texture_multisampled_2d'
686/// @see src/intrinsics.def:88:6
687class TextureMultisampled2D : public TypeMatcher {
688 public:
689  /// Checks whether the given type matches the matcher rules.
690  /// Match may close open types and numbers in state.
691  /// @param state the MatchState
692  /// @param type the type to match
693  /// @returns the canonicalized type on match, otherwise nullptr
694  const sem::Type* Match(MatchState& state,
695                         const sem::Type* type) const override;
696  /// @param state the MatchState
697  /// @return a string representation of the matcher.
698  std::string String(MatchState& state) const override;
699};
700
701const sem::Type* TextureMultisampled2D::Match(MatchState& state, const sem::Type* ty) const {
702  const sem::Type* T = nullptr;
703  if (!match_texture_multisampled_2d(ty, T)) {
704    return nullptr;
705  }
706  T = state.Type(T);
707  if (T == nullptr) {
708    return nullptr;
709  }
710  return build_texture_multisampled_2d(state, T);
711}
712
713std::string TextureMultisampled2D::String(MatchState& state) const {
714  const std::string T = state.TypeName();
715  return "texture_multisampled_2d<" + T + ">";
716}
717
718/// TypeMatcher for 'type texture_depth_2d'
719/// @see src/intrinsics.def:89:6
720class TextureDepth2D : public TypeMatcher {
721 public:
722  /// Checks whether the given type matches the matcher rules.
723  /// Match may close open types and numbers in state.
724  /// @param state the MatchState
725  /// @param type the type to match
726  /// @returns the canonicalized type on match, otherwise nullptr
727  const sem::Type* Match(MatchState& state,
728                         const sem::Type* type) const override;
729  /// @param state the MatchState
730  /// @return a string representation of the matcher.
731  std::string String(MatchState& state) const override;
732};
733
734const sem::Type* TextureDepth2D::Match(MatchState& state, const sem::Type* ty) const {
735  if (!match_texture_depth_2d(ty)) {
736    return nullptr;
737  }
738  return build_texture_depth_2d(state);
739}
740
741std::string TextureDepth2D::String(MatchState&) const {
742  return "texture_depth_2d";
743}
744
745/// TypeMatcher for 'type texture_depth_2d_array'
746/// @see src/intrinsics.def:90:6
747class TextureDepth2DArray : public TypeMatcher {
748 public:
749  /// Checks whether the given type matches the matcher rules.
750  /// Match may close open types and numbers in state.
751  /// @param state the MatchState
752  /// @param type the type to match
753  /// @returns the canonicalized type on match, otherwise nullptr
754  const sem::Type* Match(MatchState& state,
755                         const sem::Type* type) const override;
756  /// @param state the MatchState
757  /// @return a string representation of the matcher.
758  std::string String(MatchState& state) const override;
759};
760
761const sem::Type* TextureDepth2DArray::Match(MatchState& state, const sem::Type* ty) const {
762  if (!match_texture_depth_2d_array(ty)) {
763    return nullptr;
764  }
765  return build_texture_depth_2d_array(state);
766}
767
768std::string TextureDepth2DArray::String(MatchState&) const {
769  return "texture_depth_2d_array";
770}
771
772/// TypeMatcher for 'type texture_depth_cube'
773/// @see src/intrinsics.def:91:6
774class TextureDepthCube : public TypeMatcher {
775 public:
776  /// Checks whether the given type matches the matcher rules.
777  /// Match may close open types and numbers in state.
778  /// @param state the MatchState
779  /// @param type the type to match
780  /// @returns the canonicalized type on match, otherwise nullptr
781  const sem::Type* Match(MatchState& state,
782                         const sem::Type* type) const override;
783  /// @param state the MatchState
784  /// @return a string representation of the matcher.
785  std::string String(MatchState& state) const override;
786};
787
788const sem::Type* TextureDepthCube::Match(MatchState& state, const sem::Type* ty) const {
789  if (!match_texture_depth_cube(ty)) {
790    return nullptr;
791  }
792  return build_texture_depth_cube(state);
793}
794
795std::string TextureDepthCube::String(MatchState&) const {
796  return "texture_depth_cube";
797}
798
799/// TypeMatcher for 'type texture_depth_cube_array'
800/// @see src/intrinsics.def:92:6
801class TextureDepthCubeArray : public TypeMatcher {
802 public:
803  /// Checks whether the given type matches the matcher rules.
804  /// Match may close open types and numbers in state.
805  /// @param state the MatchState
806  /// @param type the type to match
807  /// @returns the canonicalized type on match, otherwise nullptr
808  const sem::Type* Match(MatchState& state,
809                         const sem::Type* type) const override;
810  /// @param state the MatchState
811  /// @return a string representation of the matcher.
812  std::string String(MatchState& state) const override;
813};
814
815const sem::Type* TextureDepthCubeArray::Match(MatchState& state, const sem::Type* ty) const {
816  if (!match_texture_depth_cube_array(ty)) {
817    return nullptr;
818  }
819  return build_texture_depth_cube_array(state);
820}
821
822std::string TextureDepthCubeArray::String(MatchState&) const {
823  return "texture_depth_cube_array";
824}
825
826/// TypeMatcher for 'type texture_depth_multisampled_2d'
827/// @see src/intrinsics.def:93:6
828class TextureDepthMultisampled2D : public TypeMatcher {
829 public:
830  /// Checks whether the given type matches the matcher rules.
831  /// Match may close open types and numbers in state.
832  /// @param state the MatchState
833  /// @param type the type to match
834  /// @returns the canonicalized type on match, otherwise nullptr
835  const sem::Type* Match(MatchState& state,
836                         const sem::Type* type) const override;
837  /// @param state the MatchState
838  /// @return a string representation of the matcher.
839  std::string String(MatchState& state) const override;
840};
841
842const sem::Type* TextureDepthMultisampled2D::Match(MatchState& state, const sem::Type* ty) const {
843  if (!match_texture_depth_multisampled_2d(ty)) {
844    return nullptr;
845  }
846  return build_texture_depth_multisampled_2d(state);
847}
848
849std::string TextureDepthMultisampled2D::String(MatchState&) const {
850  return "texture_depth_multisampled_2d";
851}
852
853/// TypeMatcher for 'type texture_storage_1d'
854/// @see src/intrinsics.def:94:6
855class TextureStorage1D : public TypeMatcher {
856 public:
857  /// Checks whether the given type matches the matcher rules.
858  /// Match may close open types and numbers in state.
859  /// @param state the MatchState
860  /// @param type the type to match
861  /// @returns the canonicalized type on match, otherwise nullptr
862  const sem::Type* Match(MatchState& state,
863                         const sem::Type* type) const override;
864  /// @param state the MatchState
865  /// @return a string representation of the matcher.
866  std::string String(MatchState& state) const override;
867};
868
869const sem::Type* TextureStorage1D::Match(MatchState& state, const sem::Type* ty) const {
870  Number F = Number::invalid;
871  Number A = Number::invalid;
872  if (!match_texture_storage_1d(ty, F, A)) {
873    return nullptr;
874  }
875  F = state.Num(F);
876  if (!F.IsValid()) {
877    return nullptr;
878  }
879  A = state.Num(A);
880  if (!A.IsValid()) {
881    return nullptr;
882  }
883  return build_texture_storage_1d(state, F, A);
884}
885
886std::string TextureStorage1D::String(MatchState& state) const {
887  const std::string F = state.NumName();
888  const std::string A = state.NumName();
889  return "texture_storage_1d<" + F + ", " + A + ">";
890}
891
892/// TypeMatcher for 'type texture_storage_2d'
893/// @see src/intrinsics.def:95:6
894class TextureStorage2D : public TypeMatcher {
895 public:
896  /// Checks whether the given type matches the matcher rules.
897  /// Match may close open types and numbers in state.
898  /// @param state the MatchState
899  /// @param type the type to match
900  /// @returns the canonicalized type on match, otherwise nullptr
901  const sem::Type* Match(MatchState& state,
902                         const sem::Type* type) const override;
903  /// @param state the MatchState
904  /// @return a string representation of the matcher.
905  std::string String(MatchState& state) const override;
906};
907
908const sem::Type* TextureStorage2D::Match(MatchState& state, const sem::Type* ty) const {
909  Number F = Number::invalid;
910  Number A = Number::invalid;
911  if (!match_texture_storage_2d(ty, F, A)) {
912    return nullptr;
913  }
914  F = state.Num(F);
915  if (!F.IsValid()) {
916    return nullptr;
917  }
918  A = state.Num(A);
919  if (!A.IsValid()) {
920    return nullptr;
921  }
922  return build_texture_storage_2d(state, F, A);
923}
924
925std::string TextureStorage2D::String(MatchState& state) const {
926  const std::string F = state.NumName();
927  const std::string A = state.NumName();
928  return "texture_storage_2d<" + F + ", " + A + ">";
929}
930
931/// TypeMatcher for 'type texture_storage_2d_array'
932/// @see src/intrinsics.def:96:6
933class TextureStorage2DArray : public TypeMatcher {
934 public:
935  /// Checks whether the given type matches the matcher rules.
936  /// Match may close open types and numbers in state.
937  /// @param state the MatchState
938  /// @param type the type to match
939  /// @returns the canonicalized type on match, otherwise nullptr
940  const sem::Type* Match(MatchState& state,
941                         const sem::Type* type) const override;
942  /// @param state the MatchState
943  /// @return a string representation of the matcher.
944  std::string String(MatchState& state) const override;
945};
946
947const sem::Type* TextureStorage2DArray::Match(MatchState& state, const sem::Type* ty) const {
948  Number F = Number::invalid;
949  Number A = Number::invalid;
950  if (!match_texture_storage_2d_array(ty, F, A)) {
951    return nullptr;
952  }
953  F = state.Num(F);
954  if (!F.IsValid()) {
955    return nullptr;
956  }
957  A = state.Num(A);
958  if (!A.IsValid()) {
959    return nullptr;
960  }
961  return build_texture_storage_2d_array(state, F, A);
962}
963
964std::string TextureStorage2DArray::String(MatchState& state) const {
965  const std::string F = state.NumName();
966  const std::string A = state.NumName();
967  return "texture_storage_2d_array<" + F + ", " + A + ">";
968}
969
970/// TypeMatcher for 'type texture_storage_3d'
971/// @see src/intrinsics.def:97:6
972class TextureStorage3D : public TypeMatcher {
973 public:
974  /// Checks whether the given type matches the matcher rules.
975  /// Match may close open types and numbers in state.
976  /// @param state the MatchState
977  /// @param type the type to match
978  /// @returns the canonicalized type on match, otherwise nullptr
979  const sem::Type* Match(MatchState& state,
980                         const sem::Type* type) const override;
981  /// @param state the MatchState
982  /// @return a string representation of the matcher.
983  std::string String(MatchState& state) const override;
984};
985
986const sem::Type* TextureStorage3D::Match(MatchState& state, const sem::Type* ty) const {
987  Number F = Number::invalid;
988  Number A = Number::invalid;
989  if (!match_texture_storage_3d(ty, F, A)) {
990    return nullptr;
991  }
992  F = state.Num(F);
993  if (!F.IsValid()) {
994    return nullptr;
995  }
996  A = state.Num(A);
997  if (!A.IsValid()) {
998    return nullptr;
999  }
1000  return build_texture_storage_3d(state, F, A);
1001}
1002
1003std::string TextureStorage3D::String(MatchState& state) const {
1004  const std::string F = state.NumName();
1005  const std::string A = state.NumName();
1006  return "texture_storage_3d<" + F + ", " + A + ">";
1007}
1008
1009/// TypeMatcher for 'type texture_external'
1010/// @see src/intrinsics.def:98:6
1011class TextureExternal : public TypeMatcher {
1012 public:
1013  /// Checks whether the given type matches the matcher rules.
1014  /// Match may close open types and numbers in state.
1015  /// @param state the MatchState
1016  /// @param type the type to match
1017  /// @returns the canonicalized type on match, otherwise nullptr
1018  const sem::Type* Match(MatchState& state,
1019                         const sem::Type* type) const override;
1020  /// @param state the MatchState
1021  /// @return a string representation of the matcher.
1022  std::string String(MatchState& state) const override;
1023};
1024
1025const sem::Type* TextureExternal::Match(MatchState& state, const sem::Type* ty) const {
1026  if (!match_texture_external(ty)) {
1027    return nullptr;
1028  }
1029  return build_texture_external(state);
1030}
1031
1032std::string TextureExternal::String(MatchState&) const {
1033  return "texture_external";
1034}
1035
1036/// TypeMatcher for 'type __modf_result'
1037/// @see src/intrinsics.def:100:6
1038class ModfResult : public TypeMatcher {
1039 public:
1040  /// Checks whether the given type matches the matcher rules.
1041  /// Match may close open types and numbers in state.
1042  /// @param state the MatchState
1043  /// @param type the type to match
1044  /// @returns the canonicalized type on match, otherwise nullptr
1045  const sem::Type* Match(MatchState& state,
1046                         const sem::Type* type) const override;
1047  /// @param state the MatchState
1048  /// @return a string representation of the matcher.
1049  std::string String(MatchState& state) const override;
1050};
1051
1052const sem::Type* ModfResult::Match(MatchState& state, const sem::Type* ty) const {
1053  if (!match_modf_result(ty)) {
1054    return nullptr;
1055  }
1056  return build_modf_result(state);
1057}
1058
1059std::string ModfResult::String(MatchState&) const {
1060  return "__modf_result";
1061}
1062
1063/// TypeMatcher for 'type __modf_result_vec'
1064/// @see src/intrinsics.def:101:42
1065class ModfResultVec : public TypeMatcher {
1066 public:
1067  /// Checks whether the given type matches the matcher rules.
1068  /// Match may close open types and numbers in state.
1069  /// @param state the MatchState
1070  /// @param type the type to match
1071  /// @returns the canonicalized type on match, otherwise nullptr
1072  const sem::Type* Match(MatchState& state,
1073                         const sem::Type* type) const override;
1074  /// @param state the MatchState
1075  /// @return a string representation of the matcher.
1076  std::string String(MatchState& state) const override;
1077};
1078
1079const sem::Type* ModfResultVec::Match(MatchState& state, const sem::Type* ty) const {
1080  Number N = Number::invalid;
1081  if (!match_modf_result_vec(ty, N)) {
1082    return nullptr;
1083  }
1084  N = state.Num(N);
1085  if (!N.IsValid()) {
1086    return nullptr;
1087  }
1088  return build_modf_result_vec(state, N);
1089}
1090
1091std::string ModfResultVec::String(MatchState& state) const {
1092  const std::string N = state.NumName();
1093  std::stringstream ss;
1094  ss << "__modf_result_vec" << N;
1095  return ss.str();
1096}
1097
1098/// TypeMatcher for 'type __frexp_result'
1099/// @see src/intrinsics.def:102:6
1100class FrexpResult : public TypeMatcher {
1101 public:
1102  /// Checks whether the given type matches the matcher rules.
1103  /// Match may close open types and numbers in state.
1104  /// @param state the MatchState
1105  /// @param type the type to match
1106  /// @returns the canonicalized type on match, otherwise nullptr
1107  const sem::Type* Match(MatchState& state,
1108                         const sem::Type* type) const override;
1109  /// @param state the MatchState
1110  /// @return a string representation of the matcher.
1111  std::string String(MatchState& state) const override;
1112};
1113
1114const sem::Type* FrexpResult::Match(MatchState& state, const sem::Type* ty) const {
1115  if (!match_frexp_result(ty)) {
1116    return nullptr;
1117  }
1118  return build_frexp_result(state);
1119}
1120
1121std::string FrexpResult::String(MatchState&) const {
1122  return "__frexp_result";
1123}
1124
1125/// TypeMatcher for 'type __frexp_result_vec'
1126/// @see src/intrinsics.def:103:43
1127class FrexpResultVec : public TypeMatcher {
1128 public:
1129  /// Checks whether the given type matches the matcher rules.
1130  /// Match may close open types and numbers in state.
1131  /// @param state the MatchState
1132  /// @param type the type to match
1133  /// @returns the canonicalized type on match, otherwise nullptr
1134  const sem::Type* Match(MatchState& state,
1135                         const sem::Type* type) const override;
1136  /// @param state the MatchState
1137  /// @return a string representation of the matcher.
1138  std::string String(MatchState& state) const override;
1139};
1140
1141const sem::Type* FrexpResultVec::Match(MatchState& state, const sem::Type* ty) const {
1142  Number N = Number::invalid;
1143  if (!match_frexp_result_vec(ty, N)) {
1144    return nullptr;
1145  }
1146  N = state.Num(N);
1147  if (!N.IsValid()) {
1148    return nullptr;
1149  }
1150  return build_frexp_result_vec(state, N);
1151}
1152
1153std::string FrexpResultVec::String(MatchState& state) const {
1154  const std::string N = state.NumName();
1155  std::stringstream ss;
1156  ss << "__frexp_result_vec" << N;
1157  return ss.str();
1158}
1159
1160/// TypeMatcher for 'match fiu32'
1161/// @see src/intrinsics.def:111:7
1162class Fiu32 : public TypeMatcher {
1163 public:
1164  /// Checks whether the given type matches the matcher rules, and returns the
1165  /// expected, canonicalized type on success.
1166  /// Match may close open types and numbers in state.
1167  /// @param state the MatchState
1168  /// @param type the type to match
1169  /// @returns the canonicalized type on match, otherwise nullptr
1170  const sem::Type* Match(MatchState& state,
1171                         const sem::Type* type) const override;
1172  /// @param state the MatchState
1173  /// @return a string representation of the matcher.
1174  std::string String(MatchState& state) const override;
1175};
1176
1177const sem::Type* Fiu32::Match(MatchState& state, const sem::Type* ty) const {
1178  if (match_f32(ty)) {
1179    return build_f32(state);
1180  }
1181  if (match_i32(ty)) {
1182    return build_i32(state);
1183  }
1184  if (match_u32(ty)) {
1185    return build_u32(state);
1186  }
1187  return nullptr;
1188}
1189
1190std::string Fiu32::String(MatchState&) const {
1191  return "f32, i32 or u32";
1192}
1193
1194/// TypeMatcher for 'match iu32'
1195/// @see src/intrinsics.def:112:7
1196class Iu32 : public TypeMatcher {
1197 public:
1198  /// Checks whether the given type matches the matcher rules, and returns the
1199  /// expected, canonicalized type on success.
1200  /// Match may close open types and numbers in state.
1201  /// @param state the MatchState
1202  /// @param type the type to match
1203  /// @returns the canonicalized type on match, otherwise nullptr
1204  const sem::Type* Match(MatchState& state,
1205                         const sem::Type* type) const override;
1206  /// @param state the MatchState
1207  /// @return a string representation of the matcher.
1208  std::string String(MatchState& state) const override;
1209};
1210
1211const sem::Type* Iu32::Match(MatchState& state, const sem::Type* ty) const {
1212  if (match_i32(ty)) {
1213    return build_i32(state);
1214  }
1215  if (match_u32(ty)) {
1216    return build_u32(state);
1217  }
1218  return nullptr;
1219}
1220
1221std::string Iu32::String(MatchState&) const {
1222  return "i32 or u32";
1223}
1224
1225/// TypeMatcher for 'match scalar'
1226/// @see src/intrinsics.def:113:7
1227class Scalar : public TypeMatcher {
1228 public:
1229  /// Checks whether the given type matches the matcher rules, and returns the
1230  /// expected, canonicalized type on success.
1231  /// Match may close open types and numbers in state.
1232  /// @param state the MatchState
1233  /// @param type the type to match
1234  /// @returns the canonicalized type on match, otherwise nullptr
1235  const sem::Type* Match(MatchState& state,
1236                         const sem::Type* type) const override;
1237  /// @param state the MatchState
1238  /// @return a string representation of the matcher.
1239  std::string String(MatchState& state) const override;
1240};
1241
1242const sem::Type* Scalar::Match(MatchState& state, const sem::Type* ty) const {
1243  if (match_f32(ty)) {
1244    return build_f32(state);
1245  }
1246  if (match_i32(ty)) {
1247    return build_i32(state);
1248  }
1249  if (match_u32(ty)) {
1250    return build_u32(state);
1251  }
1252  if (match_bool(ty)) {
1253    return build_bool(state);
1254  }
1255  return nullptr;
1256}
1257
1258std::string Scalar::String(MatchState&) const {
1259  return "f32, i32, u32 or bool";
1260}
1261
1262/// EnumMatcher for 'match f32_texel_format'
1263/// @see src/intrinsics.def:124:7
1264class F32TexelFormat : public NumberMatcher {
1265 public:
1266  /// Checks whether the given number matches the enum matcher rules.
1267  /// Match may close open types and numbers in state.
1268  /// @param state the MatchState
1269  /// @param number the enum value as a Number
1270  /// @return true if the enum value matches the set
1271  Number Match(MatchState& state, Number number) const override;
1272  /// @param state the MatchState
1273  /// @return a string representation of the matcher.
1274  std::string String(MatchState& state) const override;
1275};
1276
1277Number F32TexelFormat::Match(MatchState&, Number number) const {
1278  switch (static_cast<TexelFormat>(number.Value())) {
1279    case TexelFormat::kRgba8Unorm:
1280    case TexelFormat::kRgba8Snorm:
1281    case TexelFormat::kRgba16Float:
1282    case TexelFormat::kR32Float:
1283    case TexelFormat::kRg32Float:
1284    case TexelFormat::kRgba32Float:
1285      return number;
1286    default:
1287      return Number::invalid;
1288  }
1289}
1290
1291std::string F32TexelFormat::String(MatchState&) const {
1292  return "rgba8unorm, rgba8snorm, rgba16float, r32float, rg32float or rgba32float";
1293}
1294
1295/// EnumMatcher for 'match i32_texel_format'
1296/// @see src/intrinsics.def:126:7
1297class I32TexelFormat : public NumberMatcher {
1298 public:
1299  /// Checks whether the given number matches the enum matcher rules.
1300  /// Match may close open types and numbers in state.
1301  /// @param state the MatchState
1302  /// @param number the enum value as a Number
1303  /// @return true if the enum value matches the set
1304  Number Match(MatchState& state, Number number) const override;
1305  /// @param state the MatchState
1306  /// @return a string representation of the matcher.
1307  std::string String(MatchState& state) const override;
1308};
1309
1310Number I32TexelFormat::Match(MatchState&, Number number) const {
1311  switch (static_cast<TexelFormat>(number.Value())) {
1312    case TexelFormat::kRgba8Sint:
1313    case TexelFormat::kRgba16Sint:
1314    case TexelFormat::kR32Sint:
1315    case TexelFormat::kRg32Sint:
1316    case TexelFormat::kRgba32Sint:
1317      return number;
1318    default:
1319      return Number::invalid;
1320  }
1321}
1322
1323std::string I32TexelFormat::String(MatchState&) const {
1324  return "rgba8sint, rgba16sint, r32sint, rg32sint or rgba32sint";
1325}
1326
1327/// EnumMatcher for 'match u32_texel_format'
1328/// @see src/intrinsics.def:128:7
1329class U32TexelFormat : public NumberMatcher {
1330 public:
1331  /// Checks whether the given number matches the enum matcher rules.
1332  /// Match may close open types and numbers in state.
1333  /// @param state the MatchState
1334  /// @param number the enum value as a Number
1335  /// @return true if the enum value matches the set
1336  Number Match(MatchState& state, Number number) const override;
1337  /// @param state the MatchState
1338  /// @return a string representation of the matcher.
1339  std::string String(MatchState& state) const override;
1340};
1341
1342Number U32TexelFormat::Match(MatchState&, Number number) const {
1343  switch (static_cast<TexelFormat>(number.Value())) {
1344    case TexelFormat::kRgba8Uint:
1345    case TexelFormat::kRgba16Uint:
1346    case TexelFormat::kR32Uint:
1347    case TexelFormat::kRg32Uint:
1348    case TexelFormat::kRgba32Uint:
1349      return number;
1350    default:
1351      return Number::invalid;
1352  }
1353}
1354
1355std::string U32TexelFormat::String(MatchState&) const {
1356  return "rgba8uint, rgba16uint, r32uint, rg32uint or rgba32uint";
1357}
1358
1359/// EnumMatcher for 'match write_only'
1360/// @see src/intrinsics.def:131:7
1361class WriteOnly : public NumberMatcher {
1362 public:
1363  /// Checks whether the given number matches the enum matcher rules.
1364  /// Match may close open types and numbers in state.
1365  /// @param state the MatchState
1366  /// @param number the enum value as a Number
1367  /// @return true if the enum value matches the set
1368  Number Match(MatchState& state, Number number) const override;
1369  /// @param state the MatchState
1370  /// @return a string representation of the matcher.
1371  std::string String(MatchState& state) const override;
1372};
1373
1374Number WriteOnly::Match(MatchState&, Number number) const {
1375  if (number.IsAny() || number.Value() == static_cast<uint32_t>(Access::kWrite)) {
1376    return Number(static_cast<uint32_t>(Access::kWrite));
1377  }
1378  return Number::invalid;
1379}
1380
1381std::string WriteOnly::String(MatchState&) const {
1382  return "write";
1383}
1384
1385/// EnumMatcher for 'match function_private_workgroup'
1386/// @see src/intrinsics.def:133:7
1387class FunctionPrivateWorkgroup : public NumberMatcher {
1388 public:
1389  /// Checks whether the given number matches the enum matcher rules.
1390  /// Match may close open types and numbers in state.
1391  /// @param state the MatchState
1392  /// @param number the enum value as a Number
1393  /// @return true if the enum value matches the set
1394  Number Match(MatchState& state, Number number) const override;
1395  /// @param state the MatchState
1396  /// @return a string representation of the matcher.
1397  std::string String(MatchState& state) const override;
1398};
1399
1400Number FunctionPrivateWorkgroup::Match(MatchState&, Number number) const {
1401  switch (static_cast<StorageClass>(number.Value())) {
1402    case StorageClass::kFunction:
1403    case StorageClass::kPrivate:
1404    case StorageClass::kWorkgroup:
1405      return number;
1406    default:
1407      return Number::invalid;
1408  }
1409}
1410
1411std::string FunctionPrivateWorkgroup::String(MatchState&) const {
1412  return "function, private or workgroup";
1413}
1414
1415/// EnumMatcher for 'match workgroup_or_storage'
1416/// @see src/intrinsics.def:134:7
1417class WorkgroupOrStorage : public NumberMatcher {
1418 public:
1419  /// Checks whether the given number matches the enum matcher rules.
1420  /// Match may close open types and numbers in state.
1421  /// @param state the MatchState
1422  /// @param number the enum value as a Number
1423  /// @return true if the enum value matches the set
1424  Number Match(MatchState& state, Number number) const override;
1425  /// @param state the MatchState
1426  /// @return a string representation of the matcher.
1427  std::string String(MatchState& state) const override;
1428};
1429
1430Number WorkgroupOrStorage::Match(MatchState&, Number number) const {
1431  switch (static_cast<StorageClass>(number.Value())) {
1432    case StorageClass::kWorkgroup:
1433    case StorageClass::kStorage:
1434      return number;
1435    default:
1436      return Number::invalid;
1437  }
1438}
1439
1440std::string WorkgroupOrStorage::String(MatchState&) const {
1441  return "workgroup or storage";
1442}
1443
1444/// EnumMatcher for 'match storage'
1445class Storage : public NumberMatcher {
1446 public:
1447  /// Checks whether the given number matches the enum matcher rules.
1448  /// Match may close open types and numbers in state.
1449  /// @param state the MatchState
1450  /// @param number the enum value as a Number
1451  /// @return true if the enum value matches the set
1452  Number Match(MatchState& state, Number number) const override;
1453  /// @param state the MatchState
1454  /// @return a string representation of the matcher.
1455  std::string String(MatchState& state) const override;
1456};
1457
1458Number Storage::Match(MatchState&, Number number) const {
1459  if (number.IsAny() || number.Value() == static_cast<uint32_t>(StorageClass::kStorage)) {
1460    return Number(static_cast<uint32_t>(StorageClass::kStorage));
1461  }
1462  return Number::invalid;
1463}
1464
1465std::string Storage::String(MatchState&) const {
1466  return "storage";
1467}
1468
1469/// EnumMatcher for 'match write'
1470class Write : public NumberMatcher {
1471 public:
1472  /// Checks whether the given number matches the enum matcher rules.
1473  /// Match may close open types and numbers in state.
1474  /// @param state the MatchState
1475  /// @param number the enum value as a Number
1476  /// @return true if the enum value matches the set
1477  Number Match(MatchState& state, Number number) const override;
1478  /// @param state the MatchState
1479  /// @return a string representation of the matcher.
1480  std::string String(MatchState& state) const override;
1481};
1482
1483Number Write::Match(MatchState&, Number number) const {
1484  if (number.IsAny() || number.Value() == static_cast<uint32_t>(Access::kWrite)) {
1485    return Number(static_cast<uint32_t>(Access::kWrite));
1486  }
1487  return Number::invalid;
1488}
1489
1490std::string Write::String(MatchState&) const {
1491  return "write";
1492}
1493
1494/// EnumMatcher for 'match read_write'
1495class ReadWrite : public NumberMatcher {
1496 public:
1497  /// Checks whether the given number matches the enum matcher rules.
1498  /// Match may close open types and numbers in state.
1499  /// @param state the MatchState
1500  /// @param number the enum value as a Number
1501  /// @return true if the enum value matches the set
1502  Number Match(MatchState& state, Number number) const override;
1503  /// @param state the MatchState
1504  /// @return a string representation of the matcher.
1505  std::string String(MatchState& state) const override;
1506};
1507
1508Number ReadWrite::Match(MatchState&, Number number) const {
1509  if (number.IsAny() || number.Value() == static_cast<uint32_t>(Access::kReadWrite)) {
1510    return Number(static_cast<uint32_t>(Access::kReadWrite));
1511  }
1512  return Number::invalid;
1513}
1514
1515std::string ReadWrite::String(MatchState&) const {
1516  return "read_write";
1517}
1518
1519/// Matchers holds type and number matchers
1520class Matchers {
1521 private:
1522  OpenTypeMatcher open_type_0_{0};
1523  OpenNumberMatcher open_number_0_{0};
1524  OpenNumberMatcher open_number_1_{1};
1525  Bool Bool_;
1526  F32 F32_;
1527  I32 I32_;
1528  U32 U32_;
1529  Vec2 Vec2_;
1530  Vec3 Vec3_;
1531  Vec4 Vec4_;
1532  Vec Vec_;
1533  Mat Mat_;
1534  Ptr Ptr_;
1535  Atomic Atomic_;
1536  Array Array_;
1537  Sampler Sampler_;
1538  SamplerComparison SamplerComparison_;
1539  Texture1D Texture1D_;
1540  Texture2D Texture2D_;
1541  Texture2DArray Texture2DArray_;
1542  Texture3D Texture3D_;
1543  TextureCube TextureCube_;
1544  TextureCubeArray TextureCubeArray_;
1545  TextureMultisampled2D TextureMultisampled2D_;
1546  TextureDepth2D TextureDepth2D_;
1547  TextureDepth2DArray TextureDepth2DArray_;
1548  TextureDepthCube TextureDepthCube_;
1549  TextureDepthCubeArray TextureDepthCubeArray_;
1550  TextureDepthMultisampled2D TextureDepthMultisampled2D_;
1551  TextureStorage1D TextureStorage1D_;
1552  TextureStorage2D TextureStorage2D_;
1553  TextureStorage2DArray TextureStorage2DArray_;
1554  TextureStorage3D TextureStorage3D_;
1555  TextureExternal TextureExternal_;
1556  ModfResult ModfResult_;
1557  ModfResultVec ModfResultVec_;
1558  FrexpResult FrexpResult_;
1559  FrexpResultVec FrexpResultVec_;
1560  Fiu32 Fiu32_;
1561  Iu32 Iu32_;
1562  Scalar Scalar_;
1563  F32TexelFormat F32TexelFormat_;
1564  I32TexelFormat I32TexelFormat_;
1565  U32TexelFormat U32TexelFormat_;
1566  WriteOnly WriteOnly_;
1567  FunctionPrivateWorkgroup FunctionPrivateWorkgroup_;
1568  WorkgroupOrStorage WorkgroupOrStorage_;
1569  Storage Storage_;
1570  Write Write_;
1571  ReadWrite ReadWrite_;
1572
1573 public:
1574  /// Constructor
1575  Matchers();
1576  /// Destructor
1577  ~Matchers();
1578
1579  /// The open-types, types, and type matchers
1580  TypeMatcher const* const type[39] = {
1581    /* [0] */ &open_type_0_,
1582    /* [1] */ &Bool_,
1583    /* [2] */ &F32_,
1584    /* [3] */ &I32_,
1585    /* [4] */ &U32_,
1586    /* [5] */ &Vec2_,
1587    /* [6] */ &Vec3_,
1588    /* [7] */ &Vec4_,
1589    /* [8] */ &Vec_,
1590    /* [9] */ &Mat_,
1591    /* [10] */ &Ptr_,
1592    /* [11] */ &Atomic_,
1593    /* [12] */ &Array_,
1594    /* [13] */ &Sampler_,
1595    /* [14] */ &SamplerComparison_,
1596    /* [15] */ &Texture1D_,
1597    /* [16] */ &Texture2D_,
1598    /* [17] */ &Texture2DArray_,
1599    /* [18] */ &Texture3D_,
1600    /* [19] */ &TextureCube_,
1601    /* [20] */ &TextureCubeArray_,
1602    /* [21] */ &TextureMultisampled2D_,
1603    /* [22] */ &TextureDepth2D_,
1604    /* [23] */ &TextureDepth2DArray_,
1605    /* [24] */ &TextureDepthCube_,
1606    /* [25] */ &TextureDepthCubeArray_,
1607    /* [26] */ &TextureDepthMultisampled2D_,
1608    /* [27] */ &TextureStorage1D_,
1609    /* [28] */ &TextureStorage2D_,
1610    /* [29] */ &TextureStorage2DArray_,
1611    /* [30] */ &TextureStorage3D_,
1612    /* [31] */ &TextureExternal_,
1613    /* [32] */ &ModfResult_,
1614    /* [33] */ &ModfResultVec_,
1615    /* [34] */ &FrexpResult_,
1616    /* [35] */ &FrexpResultVec_,
1617    /* [36] */ &Fiu32_,
1618    /* [37] */ &Iu32_,
1619    /* [38] */ &Scalar_,
1620  };
1621
1622  /// The open-numbers, and number matchers
1623  NumberMatcher const* const number[11] = {
1624    /* [0] */ &open_number_0_,
1625    /* [1] */ &open_number_1_,
1626    /* [2] */ &F32TexelFormat_,
1627    /* [3] */ &I32TexelFormat_,
1628    /* [4] */ &U32TexelFormat_,
1629    /* [5] */ &WriteOnly_,
1630    /* [6] */ &FunctionPrivateWorkgroup_,
1631    /* [7] */ &WorkgroupOrStorage_,
1632    /* [8] */ &Storage_,
1633    /* [9] */ &Write_,
1634    /* [10] */ &ReadWrite_,
1635  };
1636};
1637
1638Matchers::Matchers() = default;
1639Matchers::~Matchers() = default;
1640
1641constexpr MatcherIndex kMatcherIndices[] = {
1642  /* [0] */ 10,
1643  /* [1] */ 0,
1644  /* [2] */ 11,
1645  /* [3] */ 0,
1646  /* [4] */ 10,
1647  /* [5] */ 8,
1648  /* [6] */ 12,
1649  /* [7] */ 0,
1650  /* [8] */ 0,
1651  /* [9] */ 9,
1652  /* [10] */ 1,
1653  /* [11] */ 0,
1654  /* [12] */ 2,
1655  /* [13] */ 9,
1656  /* [14] */ 0,
1657  /* [15] */ 1,
1658  /* [16] */ 2,
1659  /* [17] */ 9,
1660  /* [18] */ 0,
1661  /* [19] */ 0,
1662  /* [20] */ 2,
1663  /* [21] */ 8,
1664  /* [22] */ 0,
1665  /* [23] */ 2,
1666  /* [24] */ 8,
1667  /* [25] */ 0,
1668  /* [26] */ 1,
1669  /* [27] */ 29,
1670  /* [28] */ 0,
1671  /* [29] */ 1,
1672  /* [30] */ 8,
1673  /* [31] */ 0,
1674  /* [32] */ 0,
1675  /* [33] */ 30,
1676  /* [34] */ 0,
1677  /* [35] */ 1,
1678  /* [36] */ 28,
1679  /* [37] */ 0,
1680  /* [38] */ 1,
1681  /* [39] */ 27,
1682  /* [40] */ 0,
1683  /* [41] */ 1,
1684  /* [42] */ 30,
1685  /* [43] */ 4,
1686  /* [44] */ 9,
1687  /* [45] */ 29,
1688  /* [46] */ 4,
1689  /* [47] */ 9,
1690  /* [48] */ 28,
1691  /* [49] */ 4,
1692  /* [50] */ 9,
1693  /* [51] */ 27,
1694  /* [52] */ 4,
1695  /* [53] */ 9,
1696  /* [54] */ 30,
1697  /* [55] */ 3,
1698  /* [56] */ 9,
1699  /* [57] */ 29,
1700  /* [58] */ 3,
1701  /* [59] */ 9,
1702  /* [60] */ 28,
1703  /* [61] */ 3,
1704  /* [62] */ 9,
1705  /* [63] */ 27,
1706  /* [64] */ 3,
1707  /* [65] */ 9,
1708  /* [66] */ 30,
1709  /* [67] */ 2,
1710  /* [68] */ 9,
1711  /* [69] */ 29,
1712  /* [70] */ 2,
1713  /* [71] */ 9,
1714  /* [72] */ 28,
1715  /* [73] */ 2,
1716  /* [74] */ 9,
1717  /* [75] */ 27,
1718  /* [76] */ 2,
1719  /* [77] */ 9,
1720  /* [78] */ 8,
1721  /* [79] */ 0,
1722  /* [80] */ 3,
1723  /* [81] */ 15,
1724  /* [82] */ 0,
1725  /* [83] */ 6,
1726  /* [84] */ 2,
1727  /* [85] */ 18,
1728  /* [86] */ 2,
1729  /* [87] */ 7,
1730  /* [88] */ 2,
1731  /* [89] */ 5,
1732  /* [90] */ 3,
1733  /* [91] */ 5,
1734  /* [92] */ 2,
1735  /* [93] */ 17,
1736  /* [94] */ 2,
1737  /* [95] */ 6,
1738  /* [96] */ 3,
1739  /* [97] */ 19,
1740  /* [98] */ 2,
1741  /* [99] */ 16,
1742  /* [100] */ 2,
1743  /* [101] */ 20,
1744  /* [102] */ 2,
1745  /* [103] */ 33,
1746  /* [104] */ 0,
1747  /* [105] */ 5,
1748  /* [106] */ 0,
1749  /* [107] */ 35,
1750  /* [108] */ 0,
1751  /* [109] */ 17,
1752  /* [110] */ 0,
1753  /* [111] */ 7,
1754  /* [112] */ 3,
1755  /* [113] */ 7,
1756  /* [114] */ 4,
1757  /* [115] */ 7,
1758  /* [116] */ 0,
1759  /* [117] */ 16,
1760  /* [118] */ 0,
1761  /* [119] */ 18,
1762  /* [120] */ 0,
1763  /* [121] */ 21,
1764  /* [122] */ 0,
1765  /* [123] */ 19,
1766  /* [124] */ 0,
1767  /* [125] */ 20,
1768  /* [126] */ 0,
1769  /* [127] */ 15,
1770  /* [128] */ 2,
1771  /* [129] */ 22,
1772  /* [130] */ 23,
1773  /* [131] */ 24,
1774  /* [132] */ 25,
1775  /* [133] */ 26,
1776  /* [134] */ 13,
1777  /* [135] */ 14,
1778  /* [136] */ 31,
1779  /* [137] */ 32,
1780  /* [138] */ 34,
1781};
1782
1783// Assert that the MatcherIndex is big enough to index all the matchers, plus
1784// kNoMatcher.
1785static_assert(static_cast<int>(sizeof(kMatcherIndices) / sizeof(kMatcherIndices[0])) <
1786              static_cast<int>(std::numeric_limits<MatcherIndex>::max() - 1),
1787              "MatcherIndex is not large enough to index kMatcherIndices");
1788
1789constexpr ParameterInfo kParameters[] = {
1790  {
1791    /* [0] */
1792    /* usage */ ParameterUsage::kTexture,
1793    /* matcher indices */ &kMatcherIndices[93],
1794  },
1795  {
1796    /* [1] */
1797    /* usage */ ParameterUsage::kSampler,
1798    /* matcher indices */ &kMatcherIndices[134],
1799  },
1800  {
1801    /* [2] */
1802    /* usage */ ParameterUsage::kCoords,
1803    /* matcher indices */ &kMatcherIndices[91],
1804  },
1805  {
1806    /* [3] */
1807    /* usage */ ParameterUsage::kArrayIndex,
1808    /* matcher indices */ &kMatcherIndices[55],
1809  },
1810  {
1811    /* [4] */
1812    /* usage */ ParameterUsage::kDdx,
1813    /* matcher indices */ &kMatcherIndices[91],
1814  },
1815  {
1816    /* [5] */
1817    /* usage */ ParameterUsage::kDdy,
1818    /* matcher indices */ &kMatcherIndices[91],
1819  },
1820  {
1821    /* [6] */
1822    /* usage */ ParameterUsage::kOffset,
1823    /* matcher indices */ &kMatcherIndices[89],
1824  },
1825  {
1826    /* [7] */
1827    /* usage */ ParameterUsage::kTexture,
1828    /* matcher indices */ &kMatcherIndices[99],
1829  },
1830  {
1831    /* [8] */
1832    /* usage */ ParameterUsage::kSampler,
1833    /* matcher indices */ &kMatcherIndices[134],
1834  },
1835  {
1836    /* [9] */
1837    /* usage */ ParameterUsage::kCoords,
1838    /* matcher indices */ &kMatcherIndices[91],
1839  },
1840  {
1841    /* [10] */
1842    /* usage */ ParameterUsage::kDdx,
1843    /* matcher indices */ &kMatcherIndices[91],
1844  },
1845  {
1846    /* [11] */
1847    /* usage */ ParameterUsage::kDdy,
1848    /* matcher indices */ &kMatcherIndices[91],
1849  },
1850  {
1851    /* [12] */
1852    /* usage */ ParameterUsage::kOffset,
1853    /* matcher indices */ &kMatcherIndices[89],
1854  },
1855  {
1856    /* [13] */
1857    /* usage */ ParameterUsage::kTexture,
1858    /* matcher indices */ &kMatcherIndices[93],
1859  },
1860  {
1861    /* [14] */
1862    /* usage */ ParameterUsage::kSampler,
1863    /* matcher indices */ &kMatcherIndices[134],
1864  },
1865  {
1866    /* [15] */
1867    /* usage */ ParameterUsage::kCoords,
1868    /* matcher indices */ &kMatcherIndices[91],
1869  },
1870  {
1871    /* [16] */
1872    /* usage */ ParameterUsage::kArrayIndex,
1873    /* matcher indices */ &kMatcherIndices[55],
1874  },
1875  {
1876    /* [17] */
1877    /* usage */ ParameterUsage::kBias,
1878    /* matcher indices */ &kMatcherIndices[12],
1879  },
1880  {
1881    /* [18] */
1882    /* usage */ ParameterUsage::kOffset,
1883    /* matcher indices */ &kMatcherIndices[89],
1884  },
1885  {
1886    /* [19] */
1887    /* usage */ ParameterUsage::kTexture,
1888    /* matcher indices */ &kMatcherIndices[93],
1889  },
1890  {
1891    /* [20] */
1892    /* usage */ ParameterUsage::kSampler,
1893    /* matcher indices */ &kMatcherIndices[134],
1894  },
1895  {
1896    /* [21] */
1897    /* usage */ ParameterUsage::kCoords,
1898    /* matcher indices */ &kMatcherIndices[91],
1899  },
1900  {
1901    /* [22] */
1902    /* usage */ ParameterUsage::kArrayIndex,
1903    /* matcher indices */ &kMatcherIndices[55],
1904  },
1905  {
1906    /* [23] */
1907    /* usage */ ParameterUsage::kLevel,
1908    /* matcher indices */ &kMatcherIndices[12],
1909  },
1910  {
1911    /* [24] */
1912    /* usage */ ParameterUsage::kOffset,
1913    /* matcher indices */ &kMatcherIndices[89],
1914  },
1915  {
1916    /* [25] */
1917    /* usage */ ParameterUsage::kTexture,
1918    /* matcher indices */ &kMatcherIndices[101],
1919  },
1920  {
1921    /* [26] */
1922    /* usage */ ParameterUsage::kSampler,
1923    /* matcher indices */ &kMatcherIndices[134],
1924  },
1925  {
1926    /* [27] */
1927    /* usage */ ParameterUsage::kCoords,
1928    /* matcher indices */ &kMatcherIndices[83],
1929  },
1930  {
1931    /* [28] */
1932    /* usage */ ParameterUsage::kArrayIndex,
1933    /* matcher indices */ &kMatcherIndices[55],
1934  },
1935  {
1936    /* [29] */
1937    /* usage */ ParameterUsage::kDdx,
1938    /* matcher indices */ &kMatcherIndices[83],
1939  },
1940  {
1941    /* [30] */
1942    /* usage */ ParameterUsage::kDdy,
1943    /* matcher indices */ &kMatcherIndices[83],
1944  },
1945  {
1946    /* [31] */
1947    /* usage */ ParameterUsage::kComponent,
1948    /* matcher indices */ &kMatcherIndices[55],
1949  },
1950  {
1951    /* [32] */
1952    /* usage */ ParameterUsage::kTexture,
1953    /* matcher indices */ &kMatcherIndices[109],
1954  },
1955  {
1956    /* [33] */
1957    /* usage */ ParameterUsage::kSampler,
1958    /* matcher indices */ &kMatcherIndices[134],
1959  },
1960  {
1961    /* [34] */
1962    /* usage */ ParameterUsage::kCoords,
1963    /* matcher indices */ &kMatcherIndices[91],
1964  },
1965  {
1966    /* [35] */
1967    /* usage */ ParameterUsage::kArrayIndex,
1968    /* matcher indices */ &kMatcherIndices[55],
1969  },
1970  {
1971    /* [36] */
1972    /* usage */ ParameterUsage::kOffset,
1973    /* matcher indices */ &kMatcherIndices[89],
1974  },
1975  {
1976    /* [37] */
1977    /* usage */ ParameterUsage::kTexture,
1978    /* matcher indices */ &kMatcherIndices[85],
1979  },
1980  {
1981    /* [38] */
1982    /* usage */ ParameterUsage::kSampler,
1983    /* matcher indices */ &kMatcherIndices[134],
1984  },
1985  {
1986    /* [39] */
1987    /* usage */ ParameterUsage::kCoords,
1988    /* matcher indices */ &kMatcherIndices[83],
1989  },
1990  {
1991    /* [40] */
1992    /* usage */ ParameterUsage::kDdx,
1993    /* matcher indices */ &kMatcherIndices[83],
1994  },
1995  {
1996    /* [41] */
1997    /* usage */ ParameterUsage::kDdy,
1998    /* matcher indices */ &kMatcherIndices[83],
1999  },
2000  {
2001    /* [42] */
2002    /* usage */ ParameterUsage::kOffset,
2003    /* matcher indices */ &kMatcherIndices[95],
2004  },
2005  {
2006    /* [43] */
2007    /* usage */ ParameterUsage::kTexture,
2008    /* matcher indices */ &kMatcherIndices[130],
2009  },
2010  {
2011    /* [44] */
2012    /* usage */ ParameterUsage::kSampler,
2013    /* matcher indices */ &kMatcherIndices[134],
2014  },
2015  {
2016    /* [45] */
2017    /* usage */ ParameterUsage::kCoords,
2018    /* matcher indices */ &kMatcherIndices[91],
2019  },
2020  {
2021    /* [46] */
2022    /* usage */ ParameterUsage::kArrayIndex,
2023    /* matcher indices */ &kMatcherIndices[55],
2024  },
2025  {
2026    /* [47] */
2027    /* usage */ ParameterUsage::kLevel,
2028    /* matcher indices */ &kMatcherIndices[55],
2029  },
2030  {
2031    /* [48] */
2032    /* usage */ ParameterUsage::kOffset,
2033    /* matcher indices */ &kMatcherIndices[89],
2034  },
2035  {
2036    /* [49] */
2037    /* usage */ ParameterUsage::kTexture,
2038    /* matcher indices */ &kMatcherIndices[130],
2039  },
2040  {
2041    /* [50] */
2042    /* usage */ ParameterUsage::kSampler,
2043    /* matcher indices */ &kMatcherIndices[135],
2044  },
2045  {
2046    /* [51] */
2047    /* usage */ ParameterUsage::kCoords,
2048    /* matcher indices */ &kMatcherIndices[91],
2049  },
2050  {
2051    /* [52] */
2052    /* usage */ ParameterUsage::kArrayIndex,
2053    /* matcher indices */ &kMatcherIndices[55],
2054  },
2055  {
2056    /* [53] */
2057    /* usage */ ParameterUsage::kDepthRef,
2058    /* matcher indices */ &kMatcherIndices[12],
2059  },
2060  {
2061    /* [54] */
2062    /* usage */ ParameterUsage::kOffset,
2063    /* matcher indices */ &kMatcherIndices[89],
2064  },
2065  {
2066    /* [55] */
2067    /* usage */ ParameterUsage::kTexture,
2068    /* matcher indices */ &kMatcherIndices[130],
2069  },
2070  {
2071    /* [56] */
2072    /* usage */ ParameterUsage::kSampler,
2073    /* matcher indices */ &kMatcherIndices[135],
2074  },
2075  {
2076    /* [57] */
2077    /* usage */ ParameterUsage::kCoords,
2078    /* matcher indices */ &kMatcherIndices[91],
2079  },
2080  {
2081    /* [58] */
2082    /* usage */ ParameterUsage::kArrayIndex,
2083    /* matcher indices */ &kMatcherIndices[55],
2084  },
2085  {
2086    /* [59] */
2087    /* usage */ ParameterUsage::kDepthRef,
2088    /* matcher indices */ &kMatcherIndices[12],
2089  },
2090  {
2091    /* [60] */
2092    /* usage */ ParameterUsage::kOffset,
2093    /* matcher indices */ &kMatcherIndices[89],
2094  },
2095  {
2096    /* [61] */
2097    /* usage */ ParameterUsage::kTexture,
2098    /* matcher indices */ &kMatcherIndices[130],
2099  },
2100  {
2101    /* [62] */
2102    /* usage */ ParameterUsage::kSampler,
2103    /* matcher indices */ &kMatcherIndices[135],
2104  },
2105  {
2106    /* [63] */
2107    /* usage */ ParameterUsage::kCoords,
2108    /* matcher indices */ &kMatcherIndices[91],
2109  },
2110  {
2111    /* [64] */
2112    /* usage */ ParameterUsage::kArrayIndex,
2113    /* matcher indices */ &kMatcherIndices[55],
2114  },
2115  {
2116    /* [65] */
2117    /* usage */ ParameterUsage::kDepthRef,
2118    /* matcher indices */ &kMatcherIndices[12],
2119  },
2120  {
2121    /* [66] */
2122    /* usage */ ParameterUsage::kOffset,
2123    /* matcher indices */ &kMatcherIndices[89],
2124  },
2125  {
2126    /* [67] */
2127    /* usage */ ParameterUsage::kTexture,
2128    /* matcher indices */ &kMatcherIndices[93],
2129  },
2130  {
2131    /* [68] */
2132    /* usage */ ParameterUsage::kSampler,
2133    /* matcher indices */ &kMatcherIndices[134],
2134  },
2135  {
2136    /* [69] */
2137    /* usage */ ParameterUsage::kCoords,
2138    /* matcher indices */ &kMatcherIndices[91],
2139  },
2140  {
2141    /* [70] */
2142    /* usage */ ParameterUsage::kArrayIndex,
2143    /* matcher indices */ &kMatcherIndices[55],
2144  },
2145  {
2146    /* [71] */
2147    /* usage */ ParameterUsage::kDdx,
2148    /* matcher indices */ &kMatcherIndices[91],
2149  },
2150  {
2151    /* [72] */
2152    /* usage */ ParameterUsage::kDdy,
2153    /* matcher indices */ &kMatcherIndices[91],
2154  },
2155  {
2156    /* [73] */
2157    /* usage */ ParameterUsage::kTexture,
2158    /* matcher indices */ &kMatcherIndices[130],
2159  },
2160  {
2161    /* [74] */
2162    /* usage */ ParameterUsage::kSampler,
2163    /* matcher indices */ &kMatcherIndices[134],
2164  },
2165  {
2166    /* [75] */
2167    /* usage */ ParameterUsage::kCoords,
2168    /* matcher indices */ &kMatcherIndices[91],
2169  },
2170  {
2171    /* [76] */
2172    /* usage */ ParameterUsage::kArrayIndex,
2173    /* matcher indices */ &kMatcherIndices[55],
2174  },
2175  {
2176    /* [77] */
2177    /* usage */ ParameterUsage::kLevel,
2178    /* matcher indices */ &kMatcherIndices[55],
2179  },
2180  {
2181    /* [78] */
2182    /* usage */ ParameterUsage::kTexture,
2183    /* matcher indices */ &kMatcherIndices[99],
2184  },
2185  {
2186    /* [79] */
2187    /* usage */ ParameterUsage::kSampler,
2188    /* matcher indices */ &kMatcherIndices[134],
2189  },
2190  {
2191    /* [80] */
2192    /* usage */ ParameterUsage::kCoords,
2193    /* matcher indices */ &kMatcherIndices[91],
2194  },
2195  {
2196    /* [81] */
2197    /* usage */ ParameterUsage::kDdx,
2198    /* matcher indices */ &kMatcherIndices[91],
2199  },
2200  {
2201    /* [82] */
2202    /* usage */ ParameterUsage::kDdy,
2203    /* matcher indices */ &kMatcherIndices[91],
2204  },
2205  {
2206    /* [83] */
2207    /* usage */ ParameterUsage::kTexture,
2208    /* matcher indices */ &kMatcherIndices[129],
2209  },
2210  {
2211    /* [84] */
2212    /* usage */ ParameterUsage::kSampler,
2213    /* matcher indices */ &kMatcherIndices[135],
2214  },
2215  {
2216    /* [85] */
2217    /* usage */ ParameterUsage::kCoords,
2218    /* matcher indices */ &kMatcherIndices[91],
2219  },
2220  {
2221    /* [86] */
2222    /* usage */ ParameterUsage::kDepthRef,
2223    /* matcher indices */ &kMatcherIndices[12],
2224  },
2225  {
2226    /* [87] */
2227    /* usage */ ParameterUsage::kOffset,
2228    /* matcher indices */ &kMatcherIndices[89],
2229  },
2230  {
2231    /* [88] */
2232    /* usage */ ParameterUsage::kTexture,
2233    /* matcher indices */ &kMatcherIndices[130],
2234  },
2235  {
2236    /* [89] */
2237    /* usage */ ParameterUsage::kSampler,
2238    /* matcher indices */ &kMatcherIndices[135],
2239  },
2240  {
2241    /* [90] */
2242    /* usage */ ParameterUsage::kCoords,
2243    /* matcher indices */ &kMatcherIndices[91],
2244  },
2245  {
2246    /* [91] */
2247    /* usage */ ParameterUsage::kArrayIndex,
2248    /* matcher indices */ &kMatcherIndices[55],
2249  },
2250  {
2251    /* [92] */
2252    /* usage */ ParameterUsage::kDepthRef,
2253    /* matcher indices */ &kMatcherIndices[12],
2254  },
2255  {
2256    /* [93] */
2257    /* usage */ ParameterUsage::kTexture,
2258    /* matcher indices */ &kMatcherIndices[130],
2259  },
2260  {
2261    /* [94] */
2262    /* usage */ ParameterUsage::kSampler,
2263    /* matcher indices */ &kMatcherIndices[134],
2264  },
2265  {
2266    /* [95] */
2267    /* usage */ ParameterUsage::kCoords,
2268    /* matcher indices */ &kMatcherIndices[91],
2269  },
2270  {
2271    /* [96] */
2272    /* usage */ ParameterUsage::kArrayIndex,
2273    /* matcher indices */ &kMatcherIndices[55],
2274  },
2275  {
2276    /* [97] */
2277    /* usage */ ParameterUsage::kOffset,
2278    /* matcher indices */ &kMatcherIndices[89],
2279  },
2280  {
2281    /* [98] */
2282    /* usage */ ParameterUsage::kTexture,
2283    /* matcher indices */ &kMatcherIndices[132],
2284  },
2285  {
2286    /* [99] */
2287    /* usage */ ParameterUsage::kSampler,
2288    /* matcher indices */ &kMatcherIndices[135],
2289  },
2290  {
2291    /* [100] */
2292    /* usage */ ParameterUsage::kCoords,
2293    /* matcher indices */ &kMatcherIndices[83],
2294  },
2295  {
2296    /* [101] */
2297    /* usage */ ParameterUsage::kArrayIndex,
2298    /* matcher indices */ &kMatcherIndices[55],
2299  },
2300  {
2301    /* [102] */
2302    /* usage */ ParameterUsage::kDepthRef,
2303    /* matcher indices */ &kMatcherIndices[12],
2304  },
2305  {
2306    /* [103] */
2307    /* usage */ ParameterUsage::kComponent,
2308    /* matcher indices */ &kMatcherIndices[55],
2309  },
2310  {
2311    /* [104] */
2312    /* usage */ ParameterUsage::kTexture,
2313    /* matcher indices */ &kMatcherIndices[125],
2314  },
2315  {
2316    /* [105] */
2317    /* usage */ ParameterUsage::kSampler,
2318    /* matcher indices */ &kMatcherIndices[134],
2319  },
2320  {
2321    /* [106] */
2322    /* usage */ ParameterUsage::kCoords,
2323    /* matcher indices */ &kMatcherIndices[83],
2324  },
2325  {
2326    /* [107] */
2327    /* usage */ ParameterUsage::kArrayIndex,
2328    /* matcher indices */ &kMatcherIndices[55],
2329  },
2330  {
2331    /* [108] */
2332    /* usage */ ParameterUsage::kTexture,
2333    /* matcher indices */ &kMatcherIndices[132],
2334  },
2335  {
2336    /* [109] */
2337    /* usage */ ParameterUsage::kSampler,
2338    /* matcher indices */ &kMatcherIndices[135],
2339  },
2340  {
2341    /* [110] */
2342    /* usage */ ParameterUsage::kCoords,
2343    /* matcher indices */ &kMatcherIndices[83],
2344  },
2345  {
2346    /* [111] */
2347    /* usage */ ParameterUsage::kArrayIndex,
2348    /* matcher indices */ &kMatcherIndices[55],
2349  },
2350  {
2351    /* [112] */
2352    /* usage */ ParameterUsage::kDepthRef,
2353    /* matcher indices */ &kMatcherIndices[12],
2354  },
2355  {
2356    /* [113] */
2357    /* usage */ ParameterUsage::kTexture,
2358    /* matcher indices */ &kMatcherIndices[85],
2359  },
2360  {
2361    /* [114] */
2362    /* usage */ ParameterUsage::kSampler,
2363    /* matcher indices */ &kMatcherIndices[134],
2364  },
2365  {
2366    /* [115] */
2367    /* usage */ ParameterUsage::kCoords,
2368    /* matcher indices */ &kMatcherIndices[83],
2369  },
2370  {
2371    /* [116] */
2372    /* usage */ ParameterUsage::kDdx,
2373    /* matcher indices */ &kMatcherIndices[83],
2374  },
2375  {
2376    /* [117] */
2377    /* usage */ ParameterUsage::kDdy,
2378    /* matcher indices */ &kMatcherIndices[83],
2379  },
2380  {
2381    /* [118] */
2382    /* usage */ ParameterUsage::kTexture,
2383    /* matcher indices */ &kMatcherIndices[93],
2384  },
2385  {
2386    /* [119] */
2387    /* usage */ ParameterUsage::kSampler,
2388    /* matcher indices */ &kMatcherIndices[134],
2389  },
2390  {
2391    /* [120] */
2392    /* usage */ ParameterUsage::kCoords,
2393    /* matcher indices */ &kMatcherIndices[91],
2394  },
2395  {
2396    /* [121] */
2397    /* usage */ ParameterUsage::kArrayIndex,
2398    /* matcher indices */ &kMatcherIndices[55],
2399  },
2400  {
2401    /* [122] */
2402    /* usage */ ParameterUsage::kOffset,
2403    /* matcher indices */ &kMatcherIndices[89],
2404  },
2405  {
2406    /* [123] */
2407    /* usage */ ParameterUsage::kTexture,
2408    /* matcher indices */ &kMatcherIndices[130],
2409  },
2410  {
2411    /* [124] */
2412    /* usage */ ParameterUsage::kSampler,
2413    /* matcher indices */ &kMatcherIndices[135],
2414  },
2415  {
2416    /* [125] */
2417    /* usage */ ParameterUsage::kCoords,
2418    /* matcher indices */ &kMatcherIndices[91],
2419  },
2420  {
2421    /* [126] */
2422    /* usage */ ParameterUsage::kArrayIndex,
2423    /* matcher indices */ &kMatcherIndices[55],
2424  },
2425  {
2426    /* [127] */
2427    /* usage */ ParameterUsage::kDepthRef,
2428    /* matcher indices */ &kMatcherIndices[12],
2429  },
2430  {
2431    /* [128] */
2432    /* usage */ ParameterUsage::kTexture,
2433    /* matcher indices */ &kMatcherIndices[97],
2434  },
2435  {
2436    /* [129] */
2437    /* usage */ ParameterUsage::kSampler,
2438    /* matcher indices */ &kMatcherIndices[134],
2439  },
2440  {
2441    /* [130] */
2442    /* usage */ ParameterUsage::kCoords,
2443    /* matcher indices */ &kMatcherIndices[83],
2444  },
2445  {
2446    /* [131] */
2447    /* usage */ ParameterUsage::kDdx,
2448    /* matcher indices */ &kMatcherIndices[83],
2449  },
2450  {
2451    /* [132] */
2452    /* usage */ ParameterUsage::kDdy,
2453    /* matcher indices */ &kMatcherIndices[83],
2454  },
2455  {
2456    /* [133] */
2457    /* usage */ ParameterUsage::kComponent,
2458    /* matcher indices */ &kMatcherIndices[55],
2459  },
2460  {
2461    /* [134] */
2462    /* usage */ ParameterUsage::kTexture,
2463    /* matcher indices */ &kMatcherIndices[109],
2464  },
2465  {
2466    /* [135] */
2467    /* usage */ ParameterUsage::kSampler,
2468    /* matcher indices */ &kMatcherIndices[134],
2469  },
2470  {
2471    /* [136] */
2472    /* usage */ ParameterUsage::kCoords,
2473    /* matcher indices */ &kMatcherIndices[91],
2474  },
2475  {
2476    /* [137] */
2477    /* usage */ ParameterUsage::kArrayIndex,
2478    /* matcher indices */ &kMatcherIndices[55],
2479  },
2480  {
2481    /* [138] */
2482    /* usage */ ParameterUsage::kTexture,
2483    /* matcher indices */ &kMatcherIndices[99],
2484  },
2485  {
2486    /* [139] */
2487    /* usage */ ParameterUsage::kSampler,
2488    /* matcher indices */ &kMatcherIndices[134],
2489  },
2490  {
2491    /* [140] */
2492    /* usage */ ParameterUsage::kCoords,
2493    /* matcher indices */ &kMatcherIndices[91],
2494  },
2495  {
2496    /* [141] */
2497    /* usage */ ParameterUsage::kLevel,
2498    /* matcher indices */ &kMatcherIndices[12],
2499  },
2500  {
2501    /* [142] */
2502    /* usage */ ParameterUsage::kOffset,
2503    /* matcher indices */ &kMatcherIndices[89],
2504  },
2505  {
2506    /* [143] */
2507    /* usage */ ParameterUsage::kTexture,
2508    /* matcher indices */ &kMatcherIndices[93],
2509  },
2510  {
2511    /* [144] */
2512    /* usage */ ParameterUsage::kSampler,
2513    /* matcher indices */ &kMatcherIndices[134],
2514  },
2515  {
2516    /* [145] */
2517    /* usage */ ParameterUsage::kCoords,
2518    /* matcher indices */ &kMatcherIndices[91],
2519  },
2520  {
2521    /* [146] */
2522    /* usage */ ParameterUsage::kArrayIndex,
2523    /* matcher indices */ &kMatcherIndices[55],
2524  },
2525  {
2526    /* [147] */
2527    /* usage */ ParameterUsage::kLevel,
2528    /* matcher indices */ &kMatcherIndices[12],
2529  },
2530  {
2531    /* [148] */
2532    /* usage */ ParameterUsage::kTexture,
2533    /* matcher indices */ &kMatcherIndices[130],
2534  },
2535  {
2536    /* [149] */
2537    /* usage */ ParameterUsage::kSampler,
2538    /* matcher indices */ &kMatcherIndices[134],
2539  },
2540  {
2541    /* [150] */
2542    /* usage */ ParameterUsage::kCoords,
2543    /* matcher indices */ &kMatcherIndices[91],
2544  },
2545  {
2546    /* [151] */
2547    /* usage */ ParameterUsage::kArrayIndex,
2548    /* matcher indices */ &kMatcherIndices[55],
2549  },
2550  {
2551    /* [152] */
2552    /* usage */ ParameterUsage::kOffset,
2553    /* matcher indices */ &kMatcherIndices[89],
2554  },
2555  {
2556    /* [153] */
2557    /* usage */ ParameterUsage::kComponent,
2558    /* matcher indices */ &kMatcherIndices[55],
2559  },
2560  {
2561    /* [154] */
2562    /* usage */ ParameterUsage::kTexture,
2563    /* matcher indices */ &kMatcherIndices[117],
2564  },
2565  {
2566    /* [155] */
2567    /* usage */ ParameterUsage::kSampler,
2568    /* matcher indices */ &kMatcherIndices[134],
2569  },
2570  {
2571    /* [156] */
2572    /* usage */ ParameterUsage::kCoords,
2573    /* matcher indices */ &kMatcherIndices[91],
2574  },
2575  {
2576    /* [157] */
2577    /* usage */ ParameterUsage::kOffset,
2578    /* matcher indices */ &kMatcherIndices[89],
2579  },
2580  {
2581    /* [158] */
2582    /* usage */ ParameterUsage::kTexture,
2583    /* matcher indices */ &kMatcherIndices[130],
2584  },
2585  {
2586    /* [159] */
2587    /* usage */ ParameterUsage::kSampler,
2588    /* matcher indices */ &kMatcherIndices[135],
2589  },
2590  {
2591    /* [160] */
2592    /* usage */ ParameterUsage::kCoords,
2593    /* matcher indices */ &kMatcherIndices[91],
2594  },
2595  {
2596    /* [161] */
2597    /* usage */ ParameterUsage::kArrayIndex,
2598    /* matcher indices */ &kMatcherIndices[55],
2599  },
2600  {
2601    /* [162] */
2602    /* usage */ ParameterUsage::kDepthRef,
2603    /* matcher indices */ &kMatcherIndices[12],
2604  },
2605  {
2606    /* [163] */
2607    /* usage */ ParameterUsage::kTexture,
2608    /* matcher indices */ &kMatcherIndices[129],
2609  },
2610  {
2611    /* [164] */
2612    /* usage */ ParameterUsage::kSampler,
2613    /* matcher indices */ &kMatcherIndices[135],
2614  },
2615  {
2616    /* [165] */
2617    /* usage */ ParameterUsage::kCoords,
2618    /* matcher indices */ &kMatcherIndices[91],
2619  },
2620  {
2621    /* [166] */
2622    /* usage */ ParameterUsage::kDepthRef,
2623    /* matcher indices */ &kMatcherIndices[12],
2624  },
2625  {
2626    /* [167] */
2627    /* usage */ ParameterUsage::kOffset,
2628    /* matcher indices */ &kMatcherIndices[89],
2629  },
2630  {
2631    /* [168] */
2632    /* usage */ ParameterUsage::kTexture,
2633    /* matcher indices */ &kMatcherIndices[99],
2634  },
2635  {
2636    /* [169] */
2637    /* usage */ ParameterUsage::kSampler,
2638    /* matcher indices */ &kMatcherIndices[134],
2639  },
2640  {
2641    /* [170] */
2642    /* usage */ ParameterUsage::kCoords,
2643    /* matcher indices */ &kMatcherIndices[91],
2644  },
2645  {
2646    /* [171] */
2647    /* usage */ ParameterUsage::kBias,
2648    /* matcher indices */ &kMatcherIndices[12],
2649  },
2650  {
2651    /* [172] */
2652    /* usage */ ParameterUsage::kOffset,
2653    /* matcher indices */ &kMatcherIndices[89],
2654  },
2655  {
2656    /* [173] */
2657    /* usage */ ParameterUsage::kTexture,
2658    /* matcher indices */ &kMatcherIndices[93],
2659  },
2660  {
2661    /* [174] */
2662    /* usage */ ParameterUsage::kSampler,
2663    /* matcher indices */ &kMatcherIndices[134],
2664  },
2665  {
2666    /* [175] */
2667    /* usage */ ParameterUsage::kCoords,
2668    /* matcher indices */ &kMatcherIndices[91],
2669  },
2670  {
2671    /* [176] */
2672    /* usage */ ParameterUsage::kArrayIndex,
2673    /* matcher indices */ &kMatcherIndices[55],
2674  },
2675  {
2676    /* [177] */
2677    /* usage */ ParameterUsage::kBias,
2678    /* matcher indices */ &kMatcherIndices[12],
2679  },
2680  {
2681    /* [178] */
2682    /* usage */ ParameterUsage::kTexture,
2683    /* matcher indices */ &kMatcherIndices[129],
2684  },
2685  {
2686    /* [179] */
2687    /* usage */ ParameterUsage::kSampler,
2688    /* matcher indices */ &kMatcherIndices[135],
2689  },
2690  {
2691    /* [180] */
2692    /* usage */ ParameterUsage::kCoords,
2693    /* matcher indices */ &kMatcherIndices[91],
2694  },
2695  {
2696    /* [181] */
2697    /* usage */ ParameterUsage::kDepthRef,
2698    /* matcher indices */ &kMatcherIndices[12],
2699  },
2700  {
2701    /* [182] */
2702    /* usage */ ParameterUsage::kOffset,
2703    /* matcher indices */ &kMatcherIndices[89],
2704  },
2705  {
2706    /* [183] */
2707    /* usage */ ParameterUsage::kTexture,
2708    /* matcher indices */ &kMatcherIndices[85],
2709  },
2710  {
2711    /* [184] */
2712    /* usage */ ParameterUsage::kSampler,
2713    /* matcher indices */ &kMatcherIndices[134],
2714  },
2715  {
2716    /* [185] */
2717    /* usage */ ParameterUsage::kCoords,
2718    /* matcher indices */ &kMatcherIndices[83],
2719  },
2720  {
2721    /* [186] */
2722    /* usage */ ParameterUsage::kLevel,
2723    /* matcher indices */ &kMatcherIndices[12],
2724  },
2725  {
2726    /* [187] */
2727    /* usage */ ParameterUsage::kOffset,
2728    /* matcher indices */ &kMatcherIndices[95],
2729  },
2730  {
2731    /* [188] */
2732    /* usage */ ParameterUsage::kTexture,
2733    /* matcher indices */ &kMatcherIndices[132],
2734  },
2735  {
2736    /* [189] */
2737    /* usage */ ParameterUsage::kSampler,
2738    /* matcher indices */ &kMatcherIndices[135],
2739  },
2740  {
2741    /* [190] */
2742    /* usage */ ParameterUsage::kCoords,
2743    /* matcher indices */ &kMatcherIndices[83],
2744  },
2745  {
2746    /* [191] */
2747    /* usage */ ParameterUsage::kArrayIndex,
2748    /* matcher indices */ &kMatcherIndices[55],
2749  },
2750  {
2751    /* [192] */
2752    /* usage */ ParameterUsage::kDepthRef,
2753    /* matcher indices */ &kMatcherIndices[12],
2754  },
2755  {
2756    /* [193] */
2757    /* usage */ ParameterUsage::kTexture,
2758    /* matcher indices */ &kMatcherIndices[101],
2759  },
2760  {
2761    /* [194] */
2762    /* usage */ ParameterUsage::kSampler,
2763    /* matcher indices */ &kMatcherIndices[134],
2764  },
2765  {
2766    /* [195] */
2767    /* usage */ ParameterUsage::kCoords,
2768    /* matcher indices */ &kMatcherIndices[83],
2769  },
2770  {
2771    /* [196] */
2772    /* usage */ ParameterUsage::kArrayIndex,
2773    /* matcher indices */ &kMatcherIndices[55],
2774  },
2775  {
2776    /* [197] */
2777    /* usage */ ParameterUsage::kLevel,
2778    /* matcher indices */ &kMatcherIndices[12],
2779  },
2780  {
2781    /* [198] */
2782    /* usage */ ParameterUsage::kTexture,
2783    /* matcher indices */ &kMatcherIndices[101],
2784  },
2785  {
2786    /* [199] */
2787    /* usage */ ParameterUsage::kSampler,
2788    /* matcher indices */ &kMatcherIndices[134],
2789  },
2790  {
2791    /* [200] */
2792    /* usage */ ParameterUsage::kCoords,
2793    /* matcher indices */ &kMatcherIndices[83],
2794  },
2795  {
2796    /* [201] */
2797    /* usage */ ParameterUsage::kArrayIndex,
2798    /* matcher indices */ &kMatcherIndices[55],
2799  },
2800  {
2801    /* [202] */
2802    /* usage */ ParameterUsage::kBias,
2803    /* matcher indices */ &kMatcherIndices[12],
2804  },
2805  {
2806    /* [203] */
2807    /* usage */ ParameterUsage::kTexture,
2808    /* matcher indices */ &kMatcherIndices[132],
2809  },
2810  {
2811    /* [204] */
2812    /* usage */ ParameterUsage::kSampler,
2813    /* matcher indices */ &kMatcherIndices[134],
2814  },
2815  {
2816    /* [205] */
2817    /* usage */ ParameterUsage::kCoords,
2818    /* matcher indices */ &kMatcherIndices[83],
2819  },
2820  {
2821    /* [206] */
2822    /* usage */ ParameterUsage::kArrayIndex,
2823    /* matcher indices */ &kMatcherIndices[55],
2824  },
2825  {
2826    /* [207] */
2827    /* usage */ ParameterUsage::kLevel,
2828    /* matcher indices */ &kMatcherIndices[55],
2829  },
2830  {
2831    /* [208] */
2832    /* usage */ ParameterUsage::kTexture,
2833    /* matcher indices */ &kMatcherIndices[129],
2834  },
2835  {
2836    /* [209] */
2837    /* usage */ ParameterUsage::kSampler,
2838    /* matcher indices */ &kMatcherIndices[134],
2839  },
2840  {
2841    /* [210] */
2842    /* usage */ ParameterUsage::kCoords,
2843    /* matcher indices */ &kMatcherIndices[91],
2844  },
2845  {
2846    /* [211] */
2847    /* usage */ ParameterUsage::kLevel,
2848    /* matcher indices */ &kMatcherIndices[55],
2849  },
2850  {
2851    /* [212] */
2852    /* usage */ ParameterUsage::kOffset,
2853    /* matcher indices */ &kMatcherIndices[89],
2854  },
2855  {
2856    /* [213] */
2857    /* usage */ ParameterUsage::kTexture,
2858    /* matcher indices */ &kMatcherIndices[85],
2859  },
2860  {
2861    /* [214] */
2862    /* usage */ ParameterUsage::kSampler,
2863    /* matcher indices */ &kMatcherIndices[134],
2864  },
2865  {
2866    /* [215] */
2867    /* usage */ ParameterUsage::kCoords,
2868    /* matcher indices */ &kMatcherIndices[83],
2869  },
2870  {
2871    /* [216] */
2872    /* usage */ ParameterUsage::kBias,
2873    /* matcher indices */ &kMatcherIndices[12],
2874  },
2875  {
2876    /* [217] */
2877    /* usage */ ParameterUsage::kOffset,
2878    /* matcher indices */ &kMatcherIndices[95],
2879  },
2880  {
2881    /* [218] */
2882    /* usage */ ParameterUsage::kTexture,
2883    /* matcher indices */ &kMatcherIndices[129],
2884  },
2885  {
2886    /* [219] */
2887    /* usage */ ParameterUsage::kSampler,
2888    /* matcher indices */ &kMatcherIndices[134],
2889  },
2890  {
2891    /* [220] */
2892    /* usage */ ParameterUsage::kCoords,
2893    /* matcher indices */ &kMatcherIndices[91],
2894  },
2895  {
2896    /* [221] */
2897    /* usage */ ParameterUsage::kOffset,
2898    /* matcher indices */ &kMatcherIndices[89],
2899  },
2900  {
2901    /* [222] */
2902    /* usage */ ParameterUsage::kTexture,
2903    /* matcher indices */ &kMatcherIndices[131],
2904  },
2905  {
2906    /* [223] */
2907    /* usage */ ParameterUsage::kSampler,
2908    /* matcher indices */ &kMatcherIndices[134],
2909  },
2910  {
2911    /* [224] */
2912    /* usage */ ParameterUsage::kCoords,
2913    /* matcher indices */ &kMatcherIndices[83],
2914  },
2915  {
2916    /* [225] */
2917    /* usage */ ParameterUsage::kLevel,
2918    /* matcher indices */ &kMatcherIndices[55],
2919  },
2920  {
2921    /* [226] */
2922    /* usage */ ParameterUsage::kTexture,
2923    /* matcher indices */ &kMatcherIndices[129],
2924  },
2925  {
2926    /* [227] */
2927    /* usage */ ParameterUsage::kSampler,
2928    /* matcher indices */ &kMatcherIndices[134],
2929  },
2930  {
2931    /* [228] */
2932    /* usage */ ParameterUsage::kCoords,
2933    /* matcher indices */ &kMatcherIndices[91],
2934  },
2935  {
2936    /* [229] */
2937    /* usage */ ParameterUsage::kLevel,
2938    /* matcher indices */ &kMatcherIndices[55],
2939  },
2940  {
2941    /* [230] */
2942    /* usage */ ParameterUsage::kTexture,
2943    /* matcher indices */ &kMatcherIndices[97],
2944  },
2945  {
2946    /* [231] */
2947    /* usage */ ParameterUsage::kSampler,
2948    /* matcher indices */ &kMatcherIndices[134],
2949  },
2950  {
2951    /* [232] */
2952    /* usage */ ParameterUsage::kCoords,
2953    /* matcher indices */ &kMatcherIndices[83],
2954  },
2955  {
2956    /* [233] */
2957    /* usage */ ParameterUsage::kBias,
2958    /* matcher indices */ &kMatcherIndices[12],
2959  },
2960  {
2961    /* [234] */
2962    /* usage */ ParameterUsage::kTexture,
2963    /* matcher indices */ &kMatcherIndices[97],
2964  },
2965  {
2966    /* [235] */
2967    /* usage */ ParameterUsage::kSampler,
2968    /* matcher indices */ &kMatcherIndices[134],
2969  },
2970  {
2971    /* [236] */
2972    /* usage */ ParameterUsage::kCoords,
2973    /* matcher indices */ &kMatcherIndices[83],
2974  },
2975  {
2976    /* [237] */
2977    /* usage */ ParameterUsage::kLevel,
2978    /* matcher indices */ &kMatcherIndices[12],
2979  },
2980  {
2981    /* [238] */
2982    /* usage */ ParameterUsage::kTexture,
2983    /* matcher indices */ &kMatcherIndices[129],
2984  },
2985  {
2986    /* [239] */
2987    /* usage */ ParameterUsage::kSampler,
2988    /* matcher indices */ &kMatcherIndices[135],
2989  },
2990  {
2991    /* [240] */
2992    /* usage */ ParameterUsage::kCoords,
2993    /* matcher indices */ &kMatcherIndices[91],
2994  },
2995  {
2996    /* [241] */
2997    /* usage */ ParameterUsage::kDepthRef,
2998    /* matcher indices */ &kMatcherIndices[12],
2999  },
3000  {
3001    /* [242] */
3002    /* usage */ ParameterUsage::kTexture,
3003    /* matcher indices */ &kMatcherIndices[69],
3004  },
3005  {
3006    /* [243] */
3007    /* usage */ ParameterUsage::kCoords,
3008    /* matcher indices */ &kMatcherIndices[89],
3009  },
3010  {
3011    /* [244] */
3012    /* usage */ ParameterUsage::kArrayIndex,
3013    /* matcher indices */ &kMatcherIndices[55],
3014  },
3015  {
3016    /* [245] */
3017    /* usage */ ParameterUsage::kValue,
3018    /* matcher indices */ &kMatcherIndices[87],
3019  },
3020  {
3021    /* [246] */
3022    /* usage */ ParameterUsage::kTexture,
3023    /* matcher indices */ &kMatcherIndices[85],
3024  },
3025  {
3026    /* [247] */
3027    /* usage */ ParameterUsage::kSampler,
3028    /* matcher indices */ &kMatcherIndices[134],
3029  },
3030  {
3031    /* [248] */
3032    /* usage */ ParameterUsage::kCoords,
3033    /* matcher indices */ &kMatcherIndices[83],
3034  },
3035  {
3036    /* [249] */
3037    /* usage */ ParameterUsage::kLevel,
3038    /* matcher indices */ &kMatcherIndices[12],
3039  },
3040  {
3041    /* [250] */
3042    /* usage */ ParameterUsage::kTexture,
3043    /* matcher indices */ &kMatcherIndices[57],
3044  },
3045  {
3046    /* [251] */
3047    /* usage */ ParameterUsage::kCoords,
3048    /* matcher indices */ &kMatcherIndices[89],
3049  },
3050  {
3051    /* [252] */
3052    /* usage */ ParameterUsage::kArrayIndex,
3053    /* matcher indices */ &kMatcherIndices[55],
3054  },
3055  {
3056    /* [253] */
3057    /* usage */ ParameterUsage::kValue,
3058    /* matcher indices */ &kMatcherIndices[111],
3059  },
3060  {
3061    /* [254] */
3062    /* usage */ ParameterUsage::kTexture,
3063    /* matcher indices */ &kMatcherIndices[99],
3064  },
3065  {
3066    /* [255] */
3067    /* usage */ ParameterUsage::kSampler,
3068    /* matcher indices */ &kMatcherIndices[134],
3069  },
3070  {
3071    /* [256] */
3072    /* usage */ ParameterUsage::kCoords,
3073    /* matcher indices */ &kMatcherIndices[91],
3074  },
3075  {
3076    /* [257] */
3077    /* usage */ ParameterUsage::kBias,
3078    /* matcher indices */ &kMatcherIndices[12],
3079  },
3080  {
3081    /* [258] */
3082    /* usage */ ParameterUsage::kTexture,
3083    /* matcher indices */ &kMatcherIndices[132],
3084  },
3085  {
3086    /* [259] */
3087    /* usage */ ParameterUsage::kSampler,
3088    /* matcher indices */ &kMatcherIndices[134],
3089  },
3090  {
3091    /* [260] */
3092    /* usage */ ParameterUsage::kCoords,
3093    /* matcher indices */ &kMatcherIndices[83],
3094  },
3095  {
3096    /* [261] */
3097    /* usage */ ParameterUsage::kArrayIndex,
3098    /* matcher indices */ &kMatcherIndices[55],
3099  },
3100  {
3101    /* [262] */
3102    /* usage */ ParameterUsage::kTexture,
3103    /* matcher indices */ &kMatcherIndices[130],
3104  },
3105  {
3106    /* [263] */
3107    /* usage */ ParameterUsage::kSampler,
3108    /* matcher indices */ &kMatcherIndices[134],
3109  },
3110  {
3111    /* [264] */
3112    /* usage */ ParameterUsage::kCoords,
3113    /* matcher indices */ &kMatcherIndices[91],
3114  },
3115  {
3116    /* [265] */
3117    /* usage */ ParameterUsage::kArrayIndex,
3118    /* matcher indices */ &kMatcherIndices[55],
3119  },
3120  {
3121    /* [266] */
3122    /* usage */ ParameterUsage::kTexture,
3123    /* matcher indices */ &kMatcherIndices[129],
3124  },
3125  {
3126    /* [267] */
3127    /* usage */ ParameterUsage::kSampler,
3128    /* matcher indices */ &kMatcherIndices[134],
3129  },
3130  {
3131    /* [268] */
3132    /* usage */ ParameterUsage::kCoords,
3133    /* matcher indices */ &kMatcherIndices[91],
3134  },
3135  {
3136    /* [269] */
3137    /* usage */ ParameterUsage::kOffset,
3138    /* matcher indices */ &kMatcherIndices[89],
3139  },
3140  {
3141    /* [270] */
3142    /* usage */ ParameterUsage::kTexture,
3143    /* matcher indices */ &kMatcherIndices[99],
3144  },
3145  {
3146    /* [271] */
3147    /* usage */ ParameterUsage::kSampler,
3148    /* matcher indices */ &kMatcherIndices[134],
3149  },
3150  {
3151    /* [272] */
3152    /* usage */ ParameterUsage::kCoords,
3153    /* matcher indices */ &kMatcherIndices[91],
3154  },
3155  {
3156    /* [273] */
3157    /* usage */ ParameterUsage::kLevel,
3158    /* matcher indices */ &kMatcherIndices[12],
3159  },
3160  {
3161    /* [274] */
3162    /* usage */ ParameterUsage::kTexture,
3163    /* matcher indices */ &kMatcherIndices[101],
3164  },
3165  {
3166    /* [275] */
3167    /* usage */ ParameterUsage::kSampler,
3168    /* matcher indices */ &kMatcherIndices[134],
3169  },
3170  {
3171    /* [276] */
3172    /* usage */ ParameterUsage::kCoords,
3173    /* matcher indices */ &kMatcherIndices[83],
3174  },
3175  {
3176    /* [277] */
3177    /* usage */ ParameterUsage::kArrayIndex,
3178    /* matcher indices */ &kMatcherIndices[55],
3179  },
3180  {
3181    /* [278] */
3182    /* usage */ ParameterUsage::kTexture,
3183    /* matcher indices */ &kMatcherIndices[85],
3184  },
3185  {
3186    /* [279] */
3187    /* usage */ ParameterUsage::kSampler,
3188    /* matcher indices */ &kMatcherIndices[134],
3189  },
3190  {
3191    /* [280] */
3192    /* usage */ ParameterUsage::kCoords,
3193    /* matcher indices */ &kMatcherIndices[83],
3194  },
3195  {
3196    /* [281] */
3197    /* usage */ ParameterUsage::kOffset,
3198    /* matcher indices */ &kMatcherIndices[95],
3199  },
3200  {
3201    /* [282] */
3202    /* usage */ ParameterUsage::kTexture,
3203    /* matcher indices */ &kMatcherIndices[45],
3204  },
3205  {
3206    /* [283] */
3207    /* usage */ ParameterUsage::kCoords,
3208    /* matcher indices */ &kMatcherIndices[89],
3209  },
3210  {
3211    /* [284] */
3212    /* usage */ ParameterUsage::kArrayIndex,
3213    /* matcher indices */ &kMatcherIndices[55],
3214  },
3215  {
3216    /* [285] */
3217    /* usage */ ParameterUsage::kValue,
3218    /* matcher indices */ &kMatcherIndices[113],
3219  },
3220  {
3221    /* [286] */
3222    /* usage */ ParameterUsage::kTexture,
3223    /* matcher indices */ &kMatcherIndices[93],
3224  },
3225  {
3226    /* [287] */
3227    /* usage */ ParameterUsage::kSampler,
3228    /* matcher indices */ &kMatcherIndices[134],
3229  },
3230  {
3231    /* [288] */
3232    /* usage */ ParameterUsage::kCoords,
3233    /* matcher indices */ &kMatcherIndices[91],
3234  },
3235  {
3236    /* [289] */
3237    /* usage */ ParameterUsage::kArrayIndex,
3238    /* matcher indices */ &kMatcherIndices[55],
3239  },
3240  {
3241    /* [290] */
3242    /* usage */ ParameterUsage::kTexture,
3243    /* matcher indices */ &kMatcherIndices[131],
3244  },
3245  {
3246    /* [291] */
3247    /* usage */ ParameterUsage::kSampler,
3248    /* matcher indices */ &kMatcherIndices[135],
3249  },
3250  {
3251    /* [292] */
3252    /* usage */ ParameterUsage::kCoords,
3253    /* matcher indices */ &kMatcherIndices[83],
3254  },
3255  {
3256    /* [293] */
3257    /* usage */ ParameterUsage::kDepthRef,
3258    /* matcher indices */ &kMatcherIndices[12],
3259  },
3260  {
3261    /* [294] */
3262    /* usage */ ParameterUsage::kTexture,
3263    /* matcher indices */ &kMatcherIndices[109],
3264  },
3265  {
3266    /* [295] */
3267    /* usage */ ParameterUsage::kCoords,
3268    /* matcher indices */ &kMatcherIndices[89],
3269  },
3270  {
3271    /* [296] */
3272    /* usage */ ParameterUsage::kArrayIndex,
3273    /* matcher indices */ &kMatcherIndices[55],
3274  },
3275  {
3276    /* [297] */
3277    /* usage */ ParameterUsage::kLevel,
3278    /* matcher indices */ &kMatcherIndices[55],
3279  },
3280  {
3281    /* [298] */
3282    /* usage */ ParameterUsage::kTexture,
3283    /* matcher indices */ &kMatcherIndices[129],
3284  },
3285  {
3286    /* [299] */
3287    /* usage */ ParameterUsage::kSampler,
3288    /* matcher indices */ &kMatcherIndices[135],
3289  },
3290  {
3291    /* [300] */
3292    /* usage */ ParameterUsage::kCoords,
3293    /* matcher indices */ &kMatcherIndices[91],
3294  },
3295  {
3296    /* [301] */
3297    /* usage */ ParameterUsage::kDepthRef,
3298    /* matcher indices */ &kMatcherIndices[12],
3299  },
3300  {
3301    /* [302] */
3302    /* usage */ ParameterUsage::kTexture,
3303    /* matcher indices */ &kMatcherIndices[132],
3304  },
3305  {
3306    /* [303] */
3307    /* usage */ ParameterUsage::kSampler,
3308    /* matcher indices */ &kMatcherIndices[134],
3309  },
3310  {
3311    /* [304] */
3312    /* usage */ ParameterUsage::kCoords,
3313    /* matcher indices */ &kMatcherIndices[83],
3314  },
3315  {
3316    /* [305] */
3317    /* usage */ ParameterUsage::kArrayIndex,
3318    /* matcher indices */ &kMatcherIndices[55],
3319  },
3320  {
3321    /* [306] */
3322    /* usage */ ParameterUsage::kTexture,
3323    /* matcher indices */ &kMatcherIndices[130],
3324  },
3325  {
3326    /* [307] */
3327    /* usage */ ParameterUsage::kCoords,
3328    /* matcher indices */ &kMatcherIndices[89],
3329  },
3330  {
3331    /* [308] */
3332    /* usage */ ParameterUsage::kArrayIndex,
3333    /* matcher indices */ &kMatcherIndices[55],
3334  },
3335  {
3336    /* [309] */
3337    /* usage */ ParameterUsage::kLevel,
3338    /* matcher indices */ &kMatcherIndices[55],
3339  },
3340  {
3341    /* [310] */
3342    /* usage */ ParameterUsage::kTexture,
3343    /* matcher indices */ &kMatcherIndices[131],
3344  },
3345  {
3346    /* [311] */
3347    /* usage */ ParameterUsage::kSampler,
3348    /* matcher indices */ &kMatcherIndices[135],
3349  },
3350  {
3351    /* [312] */
3352    /* usage */ ParameterUsage::kCoords,
3353    /* matcher indices */ &kMatcherIndices[83],
3354  },
3355  {
3356    /* [313] */
3357    /* usage */ ParameterUsage::kDepthRef,
3358    /* matcher indices */ &kMatcherIndices[12],
3359  },
3360  {
3361    /* [314] */
3362    /* usage */ ParameterUsage::kTexture,
3363    /* matcher indices */ &kMatcherIndices[130],
3364  },
3365  {
3366    /* [315] */
3367    /* usage */ ParameterUsage::kSampler,
3368    /* matcher indices */ &kMatcherIndices[134],
3369  },
3370  {
3371    /* [316] */
3372    /* usage */ ParameterUsage::kCoords,
3373    /* matcher indices */ &kMatcherIndices[91],
3374  },
3375  {
3376    /* [317] */
3377    /* usage */ ParameterUsage::kArrayIndex,
3378    /* matcher indices */ &kMatcherIndices[55],
3379  },
3380  {
3381    /* [318] */
3382    /* usage */ ParameterUsage::kComponent,
3383    /* matcher indices */ &kMatcherIndices[55],
3384  },
3385  {
3386    /* [319] */
3387    /* usage */ ParameterUsage::kTexture,
3388    /* matcher indices */ &kMatcherIndices[123],
3389  },
3390  {
3391    /* [320] */
3392    /* usage */ ParameterUsage::kSampler,
3393    /* matcher indices */ &kMatcherIndices[134],
3394  },
3395  {
3396    /* [321] */
3397    /* usage */ ParameterUsage::kCoords,
3398    /* matcher indices */ &kMatcherIndices[83],
3399  },
3400  {
3401    /* [322] */
3402    /* usage */ ParameterUsage::kTexture,
3403    /* matcher indices */ &kMatcherIndices[85],
3404  },
3405  {
3406    /* [323] */
3407    /* usage */ ParameterUsage::kSampler,
3408    /* matcher indices */ &kMatcherIndices[134],
3409  },
3410  {
3411    /* [324] */
3412    /* usage */ ParameterUsage::kCoords,
3413    /* matcher indices */ &kMatcherIndices[83],
3414  },
3415  {
3416    /* [325] */
3417    /* usage */ ParameterUsage::kBias,
3418    /* matcher indices */ &kMatcherIndices[12],
3419  },
3420  {
3421    /* [326] */
3422    /* usage */ ParameterUsage::kTexture,
3423    /* matcher indices */ &kMatcherIndices[129],
3424  },
3425  {
3426    /* [327] */
3427    /* usage */ ParameterUsage::kSampler,
3428    /* matcher indices */ &kMatcherIndices[135],
3429  },
3430  {
3431    /* [328] */
3432    /* usage */ ParameterUsage::kCoords,
3433    /* matcher indices */ &kMatcherIndices[91],
3434  },
3435  {
3436    /* [329] */
3437    /* usage */ ParameterUsage::kDepthRef,
3438    /* matcher indices */ &kMatcherIndices[12],
3439  },
3440  {
3441    /* [330] */
3442    /* usage */ ParameterUsage::kComponent,
3443    /* matcher indices */ &kMatcherIndices[55],
3444  },
3445  {
3446    /* [331] */
3447    /* usage */ ParameterUsage::kTexture,
3448    /* matcher indices */ &kMatcherIndices[117],
3449  },
3450  {
3451    /* [332] */
3452    /* usage */ ParameterUsage::kSampler,
3453    /* matcher indices */ &kMatcherIndices[134],
3454  },
3455  {
3456    /* [333] */
3457    /* usage */ ParameterUsage::kCoords,
3458    /* matcher indices */ &kMatcherIndices[91],
3459  },
3460  {
3461    /* [334] */
3462    /* usage */ ParameterUsage::kTexture,
3463    /* matcher indices */ &kMatcherIndices[131],
3464  },
3465  {
3466    /* [335] */
3467    /* usage */ ParameterUsage::kSampler,
3468    /* matcher indices */ &kMatcherIndices[135],
3469  },
3470  {
3471    /* [336] */
3472    /* usage */ ParameterUsage::kCoords,
3473    /* matcher indices */ &kMatcherIndices[83],
3474  },
3475  {
3476    /* [337] */
3477    /* usage */ ParameterUsage::kDepthRef,
3478    /* matcher indices */ &kMatcherIndices[12],
3479  },
3480  {
3481    /* [338] */
3482    /* usage */ ParameterUsage::kTexture,
3483    /* matcher indices */ &kMatcherIndices[99],
3484  },
3485  {
3486    /* [339] */
3487    /* usage */ ParameterUsage::kSampler,
3488    /* matcher indices */ &kMatcherIndices[134],
3489  },
3490  {
3491    /* [340] */
3492    /* usage */ ParameterUsage::kCoords,
3493    /* matcher indices */ &kMatcherIndices[91],
3494  },
3495  {
3496    /* [341] */
3497    /* usage */ ParameterUsage::kOffset,
3498    /* matcher indices */ &kMatcherIndices[89],
3499  },
3500  {
3501    /* [342] */
3502    /* usage */ ParameterUsage::kNone,
3503    /* matcher indices */ &kMatcherIndices[12],
3504  },
3505  {
3506    /* [343] */
3507    /* usage */ ParameterUsage::kNone,
3508    /* matcher indices */ &kMatcherIndices[12],
3509  },
3510  {
3511    /* [344] */
3512    /* usage */ ParameterUsage::kNone,
3513    /* matcher indices */ &kMatcherIndices[12],
3514  },
3515  {
3516    /* [345] */
3517    /* usage */ ParameterUsage::kTexture,
3518    /* matcher indices */ &kMatcherIndices[75],
3519  },
3520  {
3521    /* [346] */
3522    /* usage */ ParameterUsage::kCoords,
3523    /* matcher indices */ &kMatcherIndices[55],
3524  },
3525  {
3526    /* [347] */
3527    /* usage */ ParameterUsage::kValue,
3528    /* matcher indices */ &kMatcherIndices[87],
3529  },
3530  {
3531    /* [348] */
3532    /* usage */ ParameterUsage::kNone,
3533    /* matcher indices */ &kMatcherIndices[21],
3534  },
3535  {
3536    /* [349] */
3537    /* usage */ ParameterUsage::kNone,
3538    /* matcher indices */ &kMatcherIndices[21],
3539  },
3540  {
3541    /* [350] */
3542    /* usage */ ParameterUsage::kNone,
3543    /* matcher indices */ &kMatcherIndices[21],
3544  },
3545  {
3546    /* [351] */
3547    /* usage */ ParameterUsage::kNone,
3548    /* matcher indices */ &kMatcherIndices[12],
3549  },
3550  {
3551    /* [352] */
3552    /* usage */ ParameterUsage::kNone,
3553    /* matcher indices */ &kMatcherIndices[12],
3554  },
3555  {
3556    /* [353] */
3557    /* usage */ ParameterUsage::kNone,
3558    /* matcher indices */ &kMatcherIndices[12],
3559  },
3560  {
3561    /* [354] */
3562    /* usage */ ParameterUsage::kNone,
3563    /* matcher indices */ &kMatcherIndices[21],
3564  },
3565  {
3566    /* [355] */
3567    /* usage */ ParameterUsage::kNone,
3568    /* matcher indices */ &kMatcherIndices[21],
3569  },
3570  {
3571    /* [356] */
3572    /* usage */ ParameterUsage::kNone,
3573    /* matcher indices */ &kMatcherIndices[21],
3574  },
3575  {
3576    /* [357] */
3577    /* usage */ ParameterUsage::kTexture,
3578    /* matcher indices */ &kMatcherIndices[136],
3579  },
3580  {
3581    /* [358] */
3582    /* usage */ ParameterUsage::kSampler,
3583    /* matcher indices */ &kMatcherIndices[134],
3584  },
3585  {
3586    /* [359] */
3587    /* usage */ ParameterUsage::kCoords,
3588    /* matcher indices */ &kMatcherIndices[91],
3589  },
3590  {
3591    /* [360] */
3592    /* usage */ ParameterUsage::kTexture,
3593    /* matcher indices */ &kMatcherIndices[129],
3594  },
3595  {
3596    /* [361] */
3597    /* usage */ ParameterUsage::kSampler,
3598    /* matcher indices */ &kMatcherIndices[134],
3599  },
3600  {
3601    /* [362] */
3602    /* usage */ ParameterUsage::kCoords,
3603    /* matcher indices */ &kMatcherIndices[91],
3604  },
3605  {
3606    /* [363] */
3607    /* usage */ ParameterUsage::kTexture,
3608    /* matcher indices */ &kMatcherIndices[72],
3609  },
3610  {
3611    /* [364] */
3612    /* usage */ ParameterUsage::kCoords,
3613    /* matcher indices */ &kMatcherIndices[89],
3614  },
3615  {
3616    /* [365] */
3617    /* usage */ ParameterUsage::kValue,
3618    /* matcher indices */ &kMatcherIndices[87],
3619  },
3620  {
3621    /* [366] */
3622    /* usage */ ParameterUsage::kTexture,
3623    /* matcher indices */ &kMatcherIndices[133],
3624  },
3625  {
3626    /* [367] */
3627    /* usage */ ParameterUsage::kCoords,
3628    /* matcher indices */ &kMatcherIndices[89],
3629  },
3630  {
3631    /* [368] */
3632    /* usage */ ParameterUsage::kSampleIndex,
3633    /* matcher indices */ &kMatcherIndices[55],
3634  },
3635  {
3636    /* [369] */
3637    /* usage */ ParameterUsage::kTexture,
3638    /* matcher indices */ &kMatcherIndices[60],
3639  },
3640  {
3641    /* [370] */
3642    /* usage */ ParameterUsage::kCoords,
3643    /* matcher indices */ &kMatcherIndices[89],
3644  },
3645  {
3646    /* [371] */
3647    /* usage */ ParameterUsage::kValue,
3648    /* matcher indices */ &kMatcherIndices[111],
3649  },
3650  {
3651    /* [372] */
3652    /* usage */ ParameterUsage::kTexture,
3653    /* matcher indices */ &kMatcherIndices[129],
3654  },
3655  {
3656    /* [373] */
3657    /* usage */ ParameterUsage::kCoords,
3658    /* matcher indices */ &kMatcherIndices[89],
3659  },
3660  {
3661    /* [374] */
3662    /* usage */ ParameterUsage::kLevel,
3663    /* matcher indices */ &kMatcherIndices[55],
3664  },
3665  {
3666    /* [375] */
3667    /* usage */ ParameterUsage::kTexture,
3668    /* matcher indices */ &kMatcherIndices[131],
3669  },
3670  {
3671    /* [376] */
3672    /* usage */ ParameterUsage::kSampler,
3673    /* matcher indices */ &kMatcherIndices[134],
3674  },
3675  {
3676    /* [377] */
3677    /* usage */ ParameterUsage::kCoords,
3678    /* matcher indices */ &kMatcherIndices[83],
3679  },
3680  {
3681    /* [378] */
3682    /* usage */ ParameterUsage::kNone,
3683    /* matcher indices */ &kMatcherIndices[12],
3684  },
3685  {
3686    /* [379] */
3687    /* usage */ ParameterUsage::kNone,
3688    /* matcher indices */ &kMatcherIndices[12],
3689  },
3690  {
3691    /* [380] */
3692    /* usage */ ParameterUsage::kNone,
3693    /* matcher indices */ &kMatcherIndices[12],
3694  },
3695  {
3696    /* [381] */
3697    /* usage */ ParameterUsage::kNone,
3698    /* matcher indices */ &kMatcherIndices[21],
3699  },
3700  {
3701    /* [382] */
3702    /* usage */ ParameterUsage::kNone,
3703    /* matcher indices */ &kMatcherIndices[21],
3704  },
3705  {
3706    /* [383] */
3707    /* usage */ ParameterUsage::kNone,
3708    /* matcher indices */ &kMatcherIndices[21],
3709  },
3710  {
3711    /* [384] */
3712    /* usage */ ParameterUsage::kNone,
3713    /* matcher indices */ &kMatcherIndices[21],
3714  },
3715  {
3716    /* [385] */
3717    /* usage */ ParameterUsage::kNone,
3718    /* matcher indices */ &kMatcherIndices[21],
3719  },
3720  {
3721    /* [386] */
3722    /* usage */ ParameterUsage::kNone,
3723    /* matcher indices */ &kMatcherIndices[12],
3724  },
3725  {
3726    /* [387] */
3727    /* usage */ ParameterUsage::kNone,
3728    /* matcher indices */ &kMatcherIndices[0],
3729  },
3730  {
3731    /* [388] */
3732    /* usage */ ParameterUsage::kNone,
3733    /* matcher indices */ &kMatcherIndices[1],
3734  },
3735  {
3736    /* [389] */
3737    /* usage */ ParameterUsage::kNone,
3738    /* matcher indices */ &kMatcherIndices[1],
3739  },
3740  {
3741    /* [390] */
3742    /* usage */ ParameterUsage::kTexture,
3743    /* matcher indices */ &kMatcherIndices[66],
3744  },
3745  {
3746    /* [391] */
3747    /* usage */ ParameterUsage::kCoords,
3748    /* matcher indices */ &kMatcherIndices[95],
3749  },
3750  {
3751    /* [392] */
3752    /* usage */ ParameterUsage::kValue,
3753    /* matcher indices */ &kMatcherIndices[87],
3754  },
3755  {
3756    /* [393] */
3757    /* usage */ ParameterUsage::kTexture,
3758    /* matcher indices */ &kMatcherIndices[63],
3759  },
3760  {
3761    /* [394] */
3762    /* usage */ ParameterUsage::kCoords,
3763    /* matcher indices */ &kMatcherIndices[55],
3764  },
3765  {
3766    /* [395] */
3767    /* usage */ ParameterUsage::kValue,
3768    /* matcher indices */ &kMatcherIndices[111],
3769  },
3770  {
3771    /* [396] */
3772    /* usage */ ParameterUsage::kTexture,
3773    /* matcher indices */ &kMatcherIndices[121],
3774  },
3775  {
3776    /* [397] */
3777    /* usage */ ParameterUsage::kCoords,
3778    /* matcher indices */ &kMatcherIndices[89],
3779  },
3780  {
3781    /* [398] */
3782    /* usage */ ParameterUsage::kSampleIndex,
3783    /* matcher indices */ &kMatcherIndices[55],
3784  },
3785  {
3786    /* [399] */
3787    /* usage */ ParameterUsage::kTexture,
3788    /* matcher indices */ &kMatcherIndices[119],
3789  },
3790  {
3791    /* [400] */
3792    /* usage */ ParameterUsage::kCoords,
3793    /* matcher indices */ &kMatcherIndices[95],
3794  },
3795  {
3796    /* [401] */
3797    /* usage */ ParameterUsage::kLevel,
3798    /* matcher indices */ &kMatcherIndices[55],
3799  },
3800  {
3801    /* [402] */
3802    /* usage */ ParameterUsage::kNone,
3803    /* matcher indices */ &kMatcherIndices[1],
3804  },
3805  {
3806    /* [403] */
3807    /* usage */ ParameterUsage::kNone,
3808    /* matcher indices */ &kMatcherIndices[1],
3809  },
3810  {
3811    /* [404] */
3812    /* usage */ ParameterUsage::kNone,
3813    /* matcher indices */ &kMatcherIndices[1],
3814  },
3815  {
3816    /* [405] */
3817    /* usage */ ParameterUsage::kTexture,
3818    /* matcher indices */ &kMatcherIndices[131],
3819  },
3820  {
3821    /* [406] */
3822    /* usage */ ParameterUsage::kSampler,
3823    /* matcher indices */ &kMatcherIndices[134],
3824  },
3825  {
3826    /* [407] */
3827    /* usage */ ParameterUsage::kCoords,
3828    /* matcher indices */ &kMatcherIndices[83],
3829  },
3830  {
3831    /* [408] */
3832    /* usage */ ParameterUsage::kNone,
3833    /* matcher indices */ &kMatcherIndices[30],
3834  },
3835  {
3836    /* [409] */
3837    /* usage */ ParameterUsage::kNone,
3838    /* matcher indices */ &kMatcherIndices[30],
3839  },
3840  {
3841    /* [410] */
3842    /* usage */ ParameterUsage::kNone,
3843    /* matcher indices */ &kMatcherIndices[30],
3844  },
3845  {
3846    /* [411] */
3847    /* usage */ ParameterUsage::kTexture,
3848    /* matcher indices */ &kMatcherIndices[117],
3849  },
3850  {
3851    /* [412] */
3852    /* usage */ ParameterUsage::kCoords,
3853    /* matcher indices */ &kMatcherIndices[89],
3854  },
3855  {
3856    /* [413] */
3857    /* usage */ ParameterUsage::kLevel,
3858    /* matcher indices */ &kMatcherIndices[55],
3859  },
3860  {
3861    /* [414] */
3862    /* usage */ ParameterUsage::kTexture,
3863    /* matcher indices */ &kMatcherIndices[127],
3864  },
3865  {
3866    /* [415] */
3867    /* usage */ ParameterUsage::kSampler,
3868    /* matcher indices */ &kMatcherIndices[134],
3869  },
3870  {
3871    /* [416] */
3872    /* usage */ ParameterUsage::kCoords,
3873    /* matcher indices */ &kMatcherIndices[12],
3874  },
3875  {
3876    /* [417] */
3877    /* usage */ ParameterUsage::kTexture,
3878    /* matcher indices */ &kMatcherIndices[99],
3879  },
3880  {
3881    /* [418] */
3882    /* usage */ ParameterUsage::kSampler,
3883    /* matcher indices */ &kMatcherIndices[134],
3884  },
3885  {
3886    /* [419] */
3887    /* usage */ ParameterUsage::kCoords,
3888    /* matcher indices */ &kMatcherIndices[91],
3889  },
3890  {
3891    /* [420] */
3892    /* usage */ ParameterUsage::kNone,
3893    /* matcher indices */ &kMatcherIndices[21],
3894  },
3895  {
3896    /* [421] */
3897    /* usage */ ParameterUsage::kNone,
3898    /* matcher indices */ &kMatcherIndices[21],
3899  },
3900  {
3901    /* [422] */
3902    /* usage */ ParameterUsage::kNone,
3903    /* matcher indices */ &kMatcherIndices[12],
3904  },
3905  {
3906    /* [423] */
3907    /* usage */ ParameterUsage::kTexture,
3908    /* matcher indices */ &kMatcherIndices[54],
3909  },
3910  {
3911    /* [424] */
3912    /* usage */ ParameterUsage::kCoords,
3913    /* matcher indices */ &kMatcherIndices[95],
3914  },
3915  {
3916    /* [425] */
3917    /* usage */ ParameterUsage::kValue,
3918    /* matcher indices */ &kMatcherIndices[111],
3919  },
3920  {
3921    /* [426] */
3922    /* usage */ ParameterUsage::kNone,
3923    /* matcher indices */ &kMatcherIndices[21],
3924  },
3925  {
3926    /* [427] */
3927    /* usage */ ParameterUsage::kNone,
3928    /* matcher indices */ &kMatcherIndices[21],
3929  },
3930  {
3931    /* [428] */
3932    /* usage */ ParameterUsage::kNone,
3933    /* matcher indices */ &kMatcherIndices[21],
3934  },
3935  {
3936    /* [429] */
3937    /* usage */ ParameterUsage::kTexture,
3938    /* matcher indices */ &kMatcherIndices[129],
3939  },
3940  {
3941    /* [430] */
3942    /* usage */ ParameterUsage::kSampler,
3943    /* matcher indices */ &kMatcherIndices[134],
3944  },
3945  {
3946    /* [431] */
3947    /* usage */ ParameterUsage::kCoords,
3948    /* matcher indices */ &kMatcherIndices[91],
3949  },
3950  {
3951    /* [432] */
3952    /* usage */ ParameterUsage::kTexture,
3953    /* matcher indices */ &kMatcherIndices[51],
3954  },
3955  {
3956    /* [433] */
3957    /* usage */ ParameterUsage::kCoords,
3958    /* matcher indices */ &kMatcherIndices[55],
3959  },
3960  {
3961    /* [434] */
3962    /* usage */ ParameterUsage::kValue,
3963    /* matcher indices */ &kMatcherIndices[113],
3964  },
3965  {
3966    /* [435] */
3967    /* usage */ ParameterUsage::kNone,
3968    /* matcher indices */ &kMatcherIndices[1],
3969  },
3970  {
3971    /* [436] */
3972    /* usage */ ParameterUsage::kNone,
3973    /* matcher indices */ &kMatcherIndices[1],
3974  },
3975  {
3976    /* [437] */
3977    /* usage */ ParameterUsage::kNone,
3978    /* matcher indices */ &kMatcherIndices[10],
3979  },
3980  {
3981    /* [438] */
3982    /* usage */ ParameterUsage::kNone,
3983    /* matcher indices */ &kMatcherIndices[30],
3984  },
3985  {
3986    /* [439] */
3987    /* usage */ ParameterUsage::kNone,
3988    /* matcher indices */ &kMatcherIndices[30],
3989  },
3990  {
3991    /* [440] */
3992    /* usage */ ParameterUsage::kNone,
3993    /* matcher indices */ &kMatcherIndices[10],
3994  },
3995  {
3996    /* [441] */
3997    /* usage */ ParameterUsage::kNone,
3998    /* matcher indices */ &kMatcherIndices[30],
3999  },
4000  {
4001    /* [442] */
4002    /* usage */ ParameterUsage::kNone,
4003    /* matcher indices */ &kMatcherIndices[30],
4004  },
4005  {
4006    /* [443] */
4007    /* usage */ ParameterUsage::kNone,
4008    /* matcher indices */ &kMatcherIndices[24],
4009  },
4010  {
4011    /* [444] */
4012    /* usage */ ParameterUsage::kTexture,
4013    /* matcher indices */ &kMatcherIndices[97],
4014  },
4015  {
4016    /* [445] */
4017    /* usage */ ParameterUsage::kSampler,
4018    /* matcher indices */ &kMatcherIndices[134],
4019  },
4020  {
4021    /* [446] */
4022    /* usage */ ParameterUsage::kCoords,
4023    /* matcher indices */ &kMatcherIndices[83],
4024  },
4025  {
4026    /* [447] */
4027    /* usage */ ParameterUsage::kTexture,
4028    /* matcher indices */ &kMatcherIndices[48],
4029  },
4030  {
4031    /* [448] */
4032    /* usage */ ParameterUsage::kCoords,
4033    /* matcher indices */ &kMatcherIndices[89],
4034  },
4035  {
4036    /* [449] */
4037    /* usage */ ParameterUsage::kValue,
4038    /* matcher indices */ &kMatcherIndices[113],
4039  },
4040  {
4041    /* [450] */
4042    /* usage */ ParameterUsage::kTexture,
4043    /* matcher indices */ &kMatcherIndices[85],
4044  },
4045  {
4046    /* [451] */
4047    /* usage */ ParameterUsage::kSampler,
4048    /* matcher indices */ &kMatcherIndices[134],
4049  },
4050  {
4051    /* [452] */
4052    /* usage */ ParameterUsage::kCoords,
4053    /* matcher indices */ &kMatcherIndices[83],
4054  },
4055  {
4056    /* [453] */
4057    /* usage */ ParameterUsage::kTexture,
4058    /* matcher indices */ &kMatcherIndices[42],
4059  },
4060  {
4061    /* [454] */
4062    /* usage */ ParameterUsage::kCoords,
4063    /* matcher indices */ &kMatcherIndices[95],
4064  },
4065  {
4066    /* [455] */
4067    /* usage */ ParameterUsage::kValue,
4068    /* matcher indices */ &kMatcherIndices[113],
4069  },
4070  {
4071    /* [456] */
4072    /* usage */ ParameterUsage::kTexture,
4073    /* matcher indices */ &kMatcherIndices[81],
4074  },
4075  {
4076    /* [457] */
4077    /* usage */ ParameterUsage::kCoords,
4078    /* matcher indices */ &kMatcherIndices[55],
4079  },
4080  {
4081    /* [458] */
4082    /* usage */ ParameterUsage::kLevel,
4083    /* matcher indices */ &kMatcherIndices[55],
4084  },
4085  {
4086    /* [459] */
4087    /* usage */ ParameterUsage::kNone,
4088    /* matcher indices */ &kMatcherIndices[30],
4089  },
4090  {
4091    /* [460] */
4092    /* usage */ ParameterUsage::kNone,
4093    /* matcher indices */ &kMatcherIndices[30],
4094  },
4095  {
4096    /* [461] */
4097    /* usage */ ParameterUsage::kTexture,
4098    /* matcher indices */ &kMatcherIndices[131],
4099  },
4100  {
4101    /* [462] */
4102    /* usage */ ParameterUsage::kLevel,
4103    /* matcher indices */ &kMatcherIndices[55],
4104  },
4105  {
4106    /* [463] */
4107    /* usage */ ParameterUsage::kNone,
4108    /* matcher indices */ &kMatcherIndices[83],
4109  },
4110  {
4111    /* [464] */
4112    /* usage */ ParameterUsage::kNone,
4113    /* matcher indices */ &kMatcherIndices[83],
4114  },
4115  {
4116    /* [465] */
4117    /* usage */ ParameterUsage::kNone,
4118    /* matcher indices */ &kMatcherIndices[21],
4119  },
4120  {
4121    /* [466] */
4122    /* usage */ ParameterUsage::kNone,
4123    /* matcher indices */ &kMatcherIndices[21],
4124  },
4125  {
4126    /* [467] */
4127    /* usage */ ParameterUsage::kNone,
4128    /* matcher indices */ &kMatcherIndices[21],
4129  },
4130  {
4131    /* [468] */
4132    /* usage */ ParameterUsage::kNone,
4133    /* matcher indices */ &kMatcherIndices[21],
4134  },
4135  {
4136    /* [469] */
4137    /* usage */ ParameterUsage::kNone,
4138    /* matcher indices */ &kMatcherIndices[12],
4139  },
4140  {
4141    /* [470] */
4142    /* usage */ ParameterUsage::kNone,
4143    /* matcher indices */ &kMatcherIndices[12],
4144  },
4145  {
4146    /* [471] */
4147    /* usage */ ParameterUsage::kNone,
4148    /* matcher indices */ &kMatcherIndices[21],
4149  },
4150  {
4151    /* [472] */
4152    /* usage */ ParameterUsage::kNone,
4153    /* matcher indices */ &kMatcherIndices[21],
4154  },
4155  {
4156    /* [473] */
4157    /* usage */ ParameterUsage::kNone,
4158    /* matcher indices */ &kMatcherIndices[0],
4159  },
4160  {
4161    /* [474] */
4162    /* usage */ ParameterUsage::kNone,
4163    /* matcher indices */ &kMatcherIndices[1],
4164  },
4165  {
4166    /* [475] */
4167    /* usage */ ParameterUsage::kNone,
4168    /* matcher indices */ &kMatcherIndices[12],
4169  },
4170  {
4171    /* [476] */
4172    /* usage */ ParameterUsage::kNone,
4173    /* matcher indices */ &kMatcherIndices[12],
4174  },
4175  {
4176    /* [477] */
4177    /* usage */ ParameterUsage::kNone,
4178    /* matcher indices */ &kMatcherIndices[12],
4179  },
4180  {
4181    /* [478] */
4182    /* usage */ ParameterUsage::kNone,
4183    /* matcher indices */ &kMatcherIndices[12],
4184  },
4185  {
4186    /* [479] */
4187    /* usage */ ParameterUsage::kNone,
4188    /* matcher indices */ &kMatcherIndices[21],
4189  },
4190  {
4191    /* [480] */
4192    /* usage */ ParameterUsage::kNone,
4193    /* matcher indices */ &kMatcherIndices[21],
4194  },
4195  {
4196    /* [481] */
4197    /* usage */ ParameterUsage::kNone,
4198    /* matcher indices */ &kMatcherIndices[30],
4199  },
4200  {
4201    /* [482] */
4202    /* usage */ ParameterUsage::kNone,
4203    /* matcher indices */ &kMatcherIndices[30],
4204  },
4205  {
4206    /* [483] */
4207    /* usage */ ParameterUsage::kNone,
4208    /* matcher indices */ &kMatcherIndices[21],
4209  },
4210  {
4211    /* [484] */
4212    /* usage */ ParameterUsage::kNone,
4213    /* matcher indices */ &kMatcherIndices[21],
4214  },
4215  {
4216    /* [485] */
4217    /* usage */ ParameterUsage::kNone,
4218    /* matcher indices */ &kMatcherIndices[12],
4219  },
4220  {
4221    /* [486] */
4222    /* usage */ ParameterUsage::kNone,
4223    /* matcher indices */ &kMatcherIndices[12],
4224  },
4225  {
4226    /* [487] */
4227    /* usage */ ParameterUsage::kNone,
4228    /* matcher indices */ &kMatcherIndices[12],
4229  },
4230  {
4231    /* [488] */
4232    /* usage */ ParameterUsage::kNone,
4233    /* matcher indices */ &kMatcherIndices[55],
4234  },
4235  {
4236    /* [489] */
4237    /* usage */ ParameterUsage::kNone,
4238    /* matcher indices */ &kMatcherIndices[30],
4239  },
4240  {
4241    /* [490] */
4242    /* usage */ ParameterUsage::kNone,
4243    /* matcher indices */ &kMatcherIndices[30],
4244  },
4245  {
4246    /* [491] */
4247    /* usage */ ParameterUsage::kNone,
4248    /* matcher indices */ &kMatcherIndices[1],
4249  },
4250  {
4251    /* [492] */
4252    /* usage */ ParameterUsage::kNone,
4253    /* matcher indices */ &kMatcherIndices[1],
4254  },
4255  {
4256    /* [493] */
4257    /* usage */ ParameterUsage::kNone,
4258    /* matcher indices */ &kMatcherIndices[1],
4259  },
4260  {
4261    /* [494] */
4262    /* usage */ ParameterUsage::kNone,
4263    /* matcher indices */ &kMatcherIndices[1],
4264  },
4265  {
4266    /* [495] */
4267    /* usage */ ParameterUsage::kTexture,
4268    /* matcher indices */ &kMatcherIndices[136],
4269  },
4270  {
4271    /* [496] */
4272    /* usage */ ParameterUsage::kCoords,
4273    /* matcher indices */ &kMatcherIndices[89],
4274  },
4275  {
4276    /* [497] */
4277    /* usage */ ParameterUsage::kTexture,
4278    /* matcher indices */ &kMatcherIndices[130],
4279  },
4280  {
4281    /* [498] */
4282    /* usage */ ParameterUsage::kLevel,
4283    /* matcher indices */ &kMatcherIndices[55],
4284  },
4285  {
4286    /* [499] */
4287    /* usage */ ParameterUsage::kNone,
4288    /* matcher indices */ &kMatcherIndices[0],
4289  },
4290  {
4291    /* [500] */
4292    /* usage */ ParameterUsage::kNone,
4293    /* matcher indices */ &kMatcherIndices[1],
4294  },
4295  {
4296    /* [501] */
4297    /* usage */ ParameterUsage::kNone,
4298    /* matcher indices */ &kMatcherIndices[0],
4299  },
4300  {
4301    /* [502] */
4302    /* usage */ ParameterUsage::kNone,
4303    /* matcher indices */ &kMatcherIndices[1],
4304  },
4305  {
4306    /* [503] */
4307    /* usage */ ParameterUsage::kTexture,
4308    /* matcher indices */ &kMatcherIndices[81],
4309  },
4310  {
4311    /* [504] */
4312    /* usage */ ParameterUsage::kLevel,
4313    /* matcher indices */ &kMatcherIndices[55],
4314  },
4315  {
4316    /* [505] */
4317    /* usage */ ParameterUsage::kNone,
4318    /* matcher indices */ &kMatcherIndices[0],
4319  },
4320  {
4321    /* [506] */
4322    /* usage */ ParameterUsage::kNone,
4323    /* matcher indices */ &kMatcherIndices[1],
4324  },
4325  {
4326    /* [507] */
4327    /* usage */ ParameterUsage::kTexture,
4328    /* matcher indices */ &kMatcherIndices[117],
4329  },
4330  {
4331    /* [508] */
4332    /* usage */ ParameterUsage::kLevel,
4333    /* matcher indices */ &kMatcherIndices[55],
4334  },
4335  {
4336    /* [509] */
4337    /* usage */ ParameterUsage::kNone,
4338    /* matcher indices */ &kMatcherIndices[0],
4339  },
4340  {
4341    /* [510] */
4342    /* usage */ ParameterUsage::kNone,
4343    /* matcher indices */ &kMatcherIndices[1],
4344  },
4345  {
4346    /* [511] */
4347    /* usage */ ParameterUsage::kTexture,
4348    /* matcher indices */ &kMatcherIndices[109],
4349  },
4350  {
4351    /* [512] */
4352    /* usage */ ParameterUsage::kLevel,
4353    /* matcher indices */ &kMatcherIndices[55],
4354  },
4355  {
4356    /* [513] */
4357    /* usage */ ParameterUsage::kNone,
4358    /* matcher indices */ &kMatcherIndices[21],
4359  },
4360  {
4361    /* [514] */
4362    /* usage */ ParameterUsage::kNone,
4363    /* matcher indices */ &kMatcherIndices[78],
4364  },
4365  {
4366    /* [515] */
4367    /* usage */ ParameterUsage::kTexture,
4368    /* matcher indices */ &kMatcherIndices[119],
4369  },
4370  {
4371    /* [516] */
4372    /* usage */ ParameterUsage::kLevel,
4373    /* matcher indices */ &kMatcherIndices[55],
4374  },
4375  {
4376    /* [517] */
4377    /* usage */ ParameterUsage::kNone,
4378    /* matcher indices */ &kMatcherIndices[0],
4379  },
4380  {
4381    /* [518] */
4382    /* usage */ ParameterUsage::kNone,
4383    /* matcher indices */ &kMatcherIndices[1],
4384  },
4385  {
4386    /* [519] */
4387    /* usage */ ParameterUsage::kTexture,
4388    /* matcher indices */ &kMatcherIndices[123],
4389  },
4390  {
4391    /* [520] */
4392    /* usage */ ParameterUsage::kLevel,
4393    /* matcher indices */ &kMatcherIndices[55],
4394  },
4395  {
4396    /* [521] */
4397    /* usage */ ParameterUsage::kNone,
4398    /* matcher indices */ &kMatcherIndices[0],
4399  },
4400  {
4401    /* [522] */
4402    /* usage */ ParameterUsage::kNone,
4403    /* matcher indices */ &kMatcherIndices[1],
4404  },
4405  {
4406    /* [523] */
4407    /* usage */ ParameterUsage::kTexture,
4408    /* matcher indices */ &kMatcherIndices[125],
4409  },
4410  {
4411    /* [524] */
4412    /* usage */ ParameterUsage::kLevel,
4413    /* matcher indices */ &kMatcherIndices[55],
4414  },
4415  {
4416    /* [525] */
4417    /* usage */ ParameterUsage::kNone,
4418    /* matcher indices */ &kMatcherIndices[0],
4419  },
4420  {
4421    /* [526] */
4422    /* usage */ ParameterUsage::kNone,
4423    /* matcher indices */ &kMatcherIndices[1],
4424  },
4425  {
4426    /* [527] */
4427    /* usage */ ParameterUsage::kTexture,
4428    /* matcher indices */ &kMatcherIndices[132],
4429  },
4430  {
4431    /* [528] */
4432    /* usage */ ParameterUsage::kLevel,
4433    /* matcher indices */ &kMatcherIndices[55],
4434  },
4435  {
4436    /* [529] */
4437    /* usage */ ParameterUsage::kTexture,
4438    /* matcher indices */ &kMatcherIndices[129],
4439  },
4440  {
4441    /* [530] */
4442    /* usage */ ParameterUsage::kLevel,
4443    /* matcher indices */ &kMatcherIndices[55],
4444  },
4445  {
4446    /* [531] */
4447    /* usage */ ParameterUsage::kNone,
4448    /* matcher indices */ &kMatcherIndices[0],
4449  },
4450  {
4451    /* [532] */
4452    /* usage */ ParameterUsage::kNone,
4453    /* matcher indices */ &kMatcherIndices[1],
4454  },
4455  {
4456    /* [533] */
4457    /* usage */ ParameterUsage::kTexture,
4458    /* matcher indices */ &kMatcherIndices[125],
4459  },
4460  {
4461    /* [534] */
4462    /* usage */ ParameterUsage::kTexture,
4463    /* matcher indices */ &kMatcherIndices[131],
4464  },
4465  {
4466    /* [535] */
4467    /* usage */ ParameterUsage::kTexture,
4468    /* matcher indices */ &kMatcherIndices[130],
4469  },
4470  {
4471    /* [536] */
4472    /* usage */ ParameterUsage::kTexture,
4473    /* matcher indices */ &kMatcherIndices[132],
4474  },
4475  {
4476    /* [537] */
4477    /* usage */ ParameterUsage::kTexture,
4478    /* matcher indices */ &kMatcherIndices[129],
4479  },
4480  {
4481    /* [538] */
4482    /* usage */ ParameterUsage::kTexture,
4483    /* matcher indices */ &kMatcherIndices[133],
4484  },
4485  {
4486    /* [539] */
4487    /* usage */ ParameterUsage::kTexture,
4488    /* matcher indices */ &kMatcherIndices[39],
4489  },
4490  {
4491    /* [540] */
4492    /* usage */ ParameterUsage::kTexture,
4493    /* matcher indices */ &kMatcherIndices[36],
4494  },
4495  {
4496    /* [541] */
4497    /* usage */ ParameterUsage::kTexture,
4498    /* matcher indices */ &kMatcherIndices[27],
4499  },
4500  {
4501    /* [542] */
4502    /* usage */ ParameterUsage::kTexture,
4503    /* matcher indices */ &kMatcherIndices[33],
4504  },
4505  {
4506    /* [543] */
4507    /* usage */ ParameterUsage::kTexture,
4508    /* matcher indices */ &kMatcherIndices[136],
4509  },
4510  {
4511    /* [544] */
4512    /* usage */ ParameterUsage::kTexture,
4513    /* matcher indices */ &kMatcherIndices[121],
4514  },
4515  {
4516    /* [545] */
4517    /* usage */ ParameterUsage::kTexture,
4518    /* matcher indices */ &kMatcherIndices[123],
4519  },
4520  {
4521    /* [546] */
4522    /* usage */ ParameterUsage::kTexture,
4523    /* matcher indices */ &kMatcherIndices[119],
4524  },
4525  {
4526    /* [547] */
4527    /* usage */ ParameterUsage::kTexture,
4528    /* matcher indices */ &kMatcherIndices[109],
4529  },
4530  {
4531    /* [548] */
4532    /* usage */ ParameterUsage::kTexture,
4533    /* matcher indices */ &kMatcherIndices[117],
4534  },
4535  {
4536    /* [549] */
4537    /* usage */ ParameterUsage::kTexture,
4538    /* matcher indices */ &kMatcherIndices[81],
4539  },
4540  {
4541    /* [550] */
4542    /* usage */ ParameterUsage::kNone,
4543    /* matcher indices */ &kMatcherIndices[43],
4544  },
4545  {
4546    /* [551] */
4547    /* usage */ ParameterUsage::kNone,
4548    /* matcher indices */ &kMatcherIndices[43],
4549  },
4550  {
4551    /* [552] */
4552    /* usage */ ParameterUsage::kNone,
4553    /* matcher indices */ &kMatcherIndices[43],
4554  },
4555  {
4556    /* [553] */
4557    /* usage */ ParameterUsage::kNone,
4558    /* matcher indices */ &kMatcherIndices[43],
4559  },
4560  {
4561    /* [554] */
4562    /* usage */ ParameterUsage::kNone,
4563    /* matcher indices */ &kMatcherIndices[43],
4564  },
4565  {
4566    /* [555] */
4567    /* usage */ ParameterUsage::kNone,
4568    /* matcher indices */ &kMatcherIndices[21],
4569  },
4570  {
4571    /* [556] */
4572    /* usage */ ParameterUsage::kNone,
4573    /* matcher indices */ &kMatcherIndices[12],
4574  },
4575  {
4576    /* [557] */
4577    /* usage */ ParameterUsage::kNone,
4578    /* matcher indices */ &kMatcherIndices[13],
4579  },
4580  {
4581    /* [558] */
4582    /* usage */ ParameterUsage::kNone,
4583    /* matcher indices */ &kMatcherIndices[21],
4584  },
4585  {
4586    /* [559] */
4587    /* usage */ ParameterUsage::kNone,
4588    /* matcher indices */ &kMatcherIndices[12],
4589  },
4590  {
4591    /* [560] */
4592    /* usage */ ParameterUsage::kNone,
4593    /* matcher indices */ &kMatcherIndices[21],
4594  },
4595  {
4596    /* [561] */
4597    /* usage */ ParameterUsage::kNone,
4598    /* matcher indices */ &kMatcherIndices[12],
4599  },
4600  {
4601    /* [562] */
4602    /* usage */ ParameterUsage::kTexture,
4603    /* matcher indices */ &kMatcherIndices[109],
4604  },
4605  {
4606    /* [563] */
4607    /* usage */ ParameterUsage::kTexture,
4608    /* matcher indices */ &kMatcherIndices[125],
4609  },
4610  {
4611    /* [564] */
4612    /* usage */ ParameterUsage::kTexture,
4613    /* matcher indices */ &kMatcherIndices[130],
4614  },
4615  {
4616    /* [565] */
4617    /* usage */ ParameterUsage::kTexture,
4618    /* matcher indices */ &kMatcherIndices[132],
4619  },
4620  {
4621    /* [566] */
4622    /* usage */ ParameterUsage::kTexture,
4623    /* matcher indices */ &kMatcherIndices[27],
4624  },
4625  {
4626    /* [567] */
4627    /* usage */ ParameterUsage::kTexture,
4628    /* matcher indices */ &kMatcherIndices[81],
4629  },
4630  {
4631    /* [568] */
4632    /* usage */ ParameterUsage::kTexture,
4633    /* matcher indices */ &kMatcherIndices[117],
4634  },
4635  {
4636    /* [569] */
4637    /* usage */ ParameterUsage::kTexture,
4638    /* matcher indices */ &kMatcherIndices[109],
4639  },
4640  {
4641    /* [570] */
4642    /* usage */ ParameterUsage::kTexture,
4643    /* matcher indices */ &kMatcherIndices[119],
4644  },
4645  {
4646    /* [571] */
4647    /* usage */ ParameterUsage::kTexture,
4648    /* matcher indices */ &kMatcherIndices[123],
4649  },
4650  {
4651    /* [572] */
4652    /* usage */ ParameterUsage::kTexture,
4653    /* matcher indices */ &kMatcherIndices[125],
4654  },
4655  {
4656    /* [573] */
4657    /* usage */ ParameterUsage::kTexture,
4658    /* matcher indices */ &kMatcherIndices[129],
4659  },
4660  {
4661    /* [574] */
4662    /* usage */ ParameterUsage::kTexture,
4663    /* matcher indices */ &kMatcherIndices[130],
4664  },
4665  {
4666    /* [575] */
4667    /* usage */ ParameterUsage::kTexture,
4668    /* matcher indices */ &kMatcherIndices[131],
4669  },
4670  {
4671    /* [576] */
4672    /* usage */ ParameterUsage::kTexture,
4673    /* matcher indices */ &kMatcherIndices[132],
4674  },
4675  {
4676    /* [577] */
4677    /* usage */ ParameterUsage::kTexture,
4678    /* matcher indices */ &kMatcherIndices[121],
4679  },
4680  {
4681    /* [578] */
4682    /* usage */ ParameterUsage::kTexture,
4683    /* matcher indices */ &kMatcherIndices[133],
4684  },
4685  {
4686    /* [579] */
4687    /* usage */ ParameterUsage::kNone,
4688    /* matcher indices */ &kMatcherIndices[21],
4689  },
4690  {
4691    /* [580] */
4692    /* usage */ ParameterUsage::kNone,
4693    /* matcher indices */ &kMatcherIndices[12],
4694  },
4695  {
4696    /* [581] */
4697    /* usage */ ParameterUsage::kNone,
4698    /* matcher indices */ &kMatcherIndices[21],
4699  },
4700  {
4701    /* [582] */
4702    /* usage */ ParameterUsage::kNone,
4703    /* matcher indices */ &kMatcherIndices[12],
4704  },
4705  {
4706    /* [583] */
4707    /* usage */ ParameterUsage::kNone,
4708    /* matcher indices */ &kMatcherIndices[21],
4709  },
4710  {
4711    /* [584] */
4712    /* usage */ ParameterUsage::kNone,
4713    /* matcher indices */ &kMatcherIndices[12],
4714  },
4715  {
4716    /* [585] */
4717    /* usage */ ParameterUsage::kNone,
4718    /* matcher indices */ &kMatcherIndices[21],
4719  },
4720  {
4721    /* [586] */
4722    /* usage */ ParameterUsage::kNone,
4723    /* matcher indices */ &kMatcherIndices[12],
4724  },
4725  {
4726    /* [587] */
4727    /* usage */ ParameterUsage::kNone,
4728    /* matcher indices */ &kMatcherIndices[21],
4729  },
4730  {
4731    /* [588] */
4732    /* usage */ ParameterUsage::kNone,
4733    /* matcher indices */ &kMatcherIndices[12],
4734  },
4735  {
4736    /* [589] */
4737    /* usage */ ParameterUsage::kNone,
4738    /* matcher indices */ &kMatcherIndices[30],
4739  },
4740  {
4741    /* [590] */
4742    /* usage */ ParameterUsage::kNone,
4743    /* matcher indices */ &kMatcherIndices[1],
4744  },
4745  {
4746    /* [591] */
4747    /* usage */ ParameterUsage::kNone,
4748    /* matcher indices */ &kMatcherIndices[87],
4749  },
4750  {
4751    /* [592] */
4752    /* usage */ ParameterUsage::kNone,
4753    /* matcher indices */ &kMatcherIndices[87],
4754  },
4755  {
4756    /* [593] */
4757    /* usage */ ParameterUsage::kNone,
4758    /* matcher indices */ &kMatcherIndices[91],
4759  },
4760  {
4761    /* [594] */
4762    /* usage */ ParameterUsage::kNone,
4763    /* matcher indices */ &kMatcherIndices[91],
4764  },
4765  {
4766    /* [595] */
4767    /* usage */ ParameterUsage::kNone,
4768    /* matcher indices */ &kMatcherIndices[91],
4769  },
4770  {
4771    /* [596] */
4772    /* usage */ ParameterUsage::kNone,
4773    /* matcher indices */ &kMatcherIndices[21],
4774  },
4775  {
4776    /* [597] */
4777    /* usage */ ParameterUsage::kNone,
4778    /* matcher indices */ &kMatcherIndices[21],
4779  },
4780  {
4781    /* [598] */
4782    /* usage */ ParameterUsage::kNone,
4783    /* matcher indices */ &kMatcherIndices[12],
4784  },
4785  {
4786    /* [599] */
4787    /* usage */ ParameterUsage::kNone,
4788    /* matcher indices */ &kMatcherIndices[21],
4789  },
4790  {
4791    /* [600] */
4792    /* usage */ ParameterUsage::kNone,
4793    /* matcher indices */ &kMatcherIndices[12],
4794  },
4795  {
4796    /* [601] */
4797    /* usage */ ParameterUsage::kNone,
4798    /* matcher indices */ &kMatcherIndices[21],
4799  },
4800  {
4801    /* [602] */
4802    /* usage */ ParameterUsage::kNone,
4803    /* matcher indices */ &kMatcherIndices[12],
4804  },
4805  {
4806    /* [603] */
4807    /* usage */ ParameterUsage::kNone,
4808    /* matcher indices */ &kMatcherIndices[21],
4809  },
4810  {
4811    /* [604] */
4812    /* usage */ ParameterUsage::kNone,
4813    /* matcher indices */ &kMatcherIndices[12],
4814  },
4815  {
4816    /* [605] */
4817    /* usage */ ParameterUsage::kNone,
4818    /* matcher indices */ &kMatcherIndices[21],
4819  },
4820  {
4821    /* [606] */
4822    /* usage */ ParameterUsage::kNone,
4823    /* matcher indices */ &kMatcherIndices[12],
4824  },
4825  {
4826    /* [607] */
4827    /* usage */ ParameterUsage::kNone,
4828    /* matcher indices */ &kMatcherIndices[21],
4829  },
4830  {
4831    /* [608] */
4832    /* usage */ ParameterUsage::kNone,
4833    /* matcher indices */ &kMatcherIndices[12],
4834  },
4835  {
4836    /* [609] */
4837    /* usage */ ParameterUsage::kNone,
4838    /* matcher indices */ &kMatcherIndices[21],
4839  },
4840  {
4841    /* [610] */
4842    /* usage */ ParameterUsage::kNone,
4843    /* matcher indices */ &kMatcherIndices[12],
4844  },
4845  {
4846    /* [611] */
4847    /* usage */ ParameterUsage::kNone,
4848    /* matcher indices */ &kMatcherIndices[21],
4849  },
4850  {
4851    /* [612] */
4852    /* usage */ ParameterUsage::kNone,
4853    /* matcher indices */ &kMatcherIndices[12],
4854  },
4855  {
4856    /* [613] */
4857    /* usage */ ParameterUsage::kNone,
4858    /* matcher indices */ &kMatcherIndices[21],
4859  },
4860  {
4861    /* [614] */
4862    /* usage */ ParameterUsage::kNone,
4863    /* matcher indices */ &kMatcherIndices[12],
4864  },
4865  {
4866    /* [615] */
4867    /* usage */ ParameterUsage::kNone,
4868    /* matcher indices */ &kMatcherIndices[1],
4869  },
4870  {
4871    /* [616] */
4872    /* usage */ ParameterUsage::kNone,
4873    /* matcher indices */ &kMatcherIndices[21],
4874  },
4875  {
4876    /* [617] */
4877    /* usage */ ParameterUsage::kNone,
4878    /* matcher indices */ &kMatcherIndices[12],
4879  },
4880  {
4881    /* [618] */
4882    /* usage */ ParameterUsage::kNone,
4883    /* matcher indices */ &kMatcherIndices[21],
4884  },
4885  {
4886    /* [619] */
4887    /* usage */ ParameterUsage::kNone,
4888    /* matcher indices */ &kMatcherIndices[12],
4889  },
4890  {
4891    /* [620] */
4892    /* usage */ ParameterUsage::kNone,
4893    /* matcher indices */ &kMatcherIndices[21],
4894  },
4895  {
4896    /* [621] */
4897    /* usage */ ParameterUsage::kNone,
4898    /* matcher indices */ &kMatcherIndices[12],
4899  },
4900  {
4901    /* [622] */
4902    /* usage */ ParameterUsage::kNone,
4903    /* matcher indices */ &kMatcherIndices[21],
4904  },
4905  {
4906    /* [623] */
4907    /* usage */ ParameterUsage::kNone,
4908    /* matcher indices */ &kMatcherIndices[12],
4909  },
4910  {
4911    /* [624] */
4912    /* usage */ ParameterUsage::kNone,
4913    /* matcher indices */ &kMatcherIndices[21],
4914  },
4915  {
4916    /* [625] */
4917    /* usage */ ParameterUsage::kNone,
4918    /* matcher indices */ &kMatcherIndices[12],
4919  },
4920  {
4921    /* [626] */
4922    /* usage */ ParameterUsage::kNone,
4923    /* matcher indices */ &kMatcherIndices[21],
4924  },
4925  {
4926    /* [627] */
4927    /* usage */ ParameterUsage::kNone,
4928    /* matcher indices */ &kMatcherIndices[12],
4929  },
4930  {
4931    /* [628] */
4932    /* usage */ ParameterUsage::kNone,
4933    /* matcher indices */ &kMatcherIndices[21],
4934  },
4935  {
4936    /* [629] */
4937    /* usage */ ParameterUsage::kNone,
4938    /* matcher indices */ &kMatcherIndices[12],
4939  },
4940  {
4941    /* [630] */
4942    /* usage */ ParameterUsage::kNone,
4943    /* matcher indices */ &kMatcherIndices[21],
4944  },
4945  {
4946    /* [631] */
4947    /* usage */ ParameterUsage::kNone,
4948    /* matcher indices */ &kMatcherIndices[12],
4949  },
4950  {
4951    /* [632] */
4952    /* usage */ ParameterUsage::kNone,
4953    /* matcher indices */ &kMatcherIndices[21],
4954  },
4955  {
4956    /* [633] */
4957    /* usage */ ParameterUsage::kNone,
4958    /* matcher indices */ &kMatcherIndices[12],
4959  },
4960  {
4961    /* [634] */
4962    /* usage */ ParameterUsage::kNone,
4963    /* matcher indices */ &kMatcherIndices[21],
4964  },
4965  {
4966    /* [635] */
4967    /* usage */ ParameterUsage::kNone,
4968    /* matcher indices */ &kMatcherIndices[12],
4969  },
4970  {
4971    /* [636] */
4972    /* usage */ ParameterUsage::kNone,
4973    /* matcher indices */ &kMatcherIndices[21],
4974  },
4975  {
4976    /* [637] */
4977    /* usage */ ParameterUsage::kNone,
4978    /* matcher indices */ &kMatcherIndices[12],
4979  },
4980  {
4981    /* [638] */
4982    /* usage */ ParameterUsage::kNone,
4983    /* matcher indices */ &kMatcherIndices[21],
4984  },
4985  {
4986    /* [639] */
4987    /* usage */ ParameterUsage::kNone,
4988    /* matcher indices */ &kMatcherIndices[12],
4989  },
4990  {
4991    /* [640] */
4992    /* usage */ ParameterUsage::kNone,
4993    /* matcher indices */ &kMatcherIndices[21],
4994  },
4995  {
4996    /* [641] */
4997    /* usage */ ParameterUsage::kNone,
4998    /* matcher indices */ &kMatcherIndices[12],
4999  },
5000  {
5001    /* [642] */
5002    /* usage */ ParameterUsage::kNone,
5003    /* matcher indices */ &kMatcherIndices[21],
5004  },
5005  {
5006    /* [643] */
5007    /* usage */ ParameterUsage::kNone,
5008    /* matcher indices */ &kMatcherIndices[12],
5009  },
5010  {
5011    /* [644] */
5012    /* usage */ ParameterUsage::kNone,
5013    /* matcher indices */ &kMatcherIndices[17],
5014  },
5015  {
5016    /* [645] */
5017    /* usage */ ParameterUsage::kNone,
5018    /* matcher indices */ &kMatcherIndices[30],
5019  },
5020  {
5021    /* [646] */
5022    /* usage */ ParameterUsage::kNone,
5023    /* matcher indices */ &kMatcherIndices[1],
5024  },
5025  {
5026    /* [647] */
5027    /* usage */ ParameterUsage::kNone,
5028    /* matcher indices */ &kMatcherIndices[21],
5029  },
5030  {
5031    /* [648] */
5032    /* usage */ ParameterUsage::kNone,
5033    /* matcher indices */ &kMatcherIndices[12],
5034  },
5035  {
5036    /* [649] */
5037    /* usage */ ParameterUsage::kNone,
5038    /* matcher indices */ &kMatcherIndices[21],
5039  },
5040  {
5041    /* [650] */
5042    /* usage */ ParameterUsage::kNone,
5043    /* matcher indices */ &kMatcherIndices[12],
5044  },
5045  {
5046    /* [651] */
5047    /* usage */ ParameterUsage::kNone,
5048    /* matcher indices */ &kMatcherIndices[21],
5049  },
5050  {
5051    /* [652] */
5052    /* usage */ ParameterUsage::kNone,
5053    /* matcher indices */ &kMatcherIndices[12],
5054  },
5055  {
5056    /* [653] */
5057    /* usage */ ParameterUsage::kNone,
5058    /* matcher indices */ &kMatcherIndices[21],
5059  },
5060  {
5061    /* [654] */
5062    /* usage */ ParameterUsage::kNone,
5063    /* matcher indices */ &kMatcherIndices[12],
5064  },
5065  {
5066    /* [655] */
5067    /* usage */ ParameterUsage::kNone,
5068    /* matcher indices */ &kMatcherIndices[21],
5069  },
5070  {
5071    /* [656] */
5072    /* usage */ ParameterUsage::kNone,
5073    /* matcher indices */ &kMatcherIndices[12],
5074  },
5075  {
5076    /* [657] */
5077    /* usage */ ParameterUsage::kNone,
5078    /* matcher indices */ &kMatcherIndices[4],
5079  },
5080  {
5081    /* [658] */
5082    /* usage */ ParameterUsage::kNone,
5083    /* matcher indices */ &kMatcherIndices[0],
5084  },
5085  {
5086    /* [659] */
5087    /* usage */ ParameterUsage::kNone,
5088    /* matcher indices */ &kMatcherIndices[24],
5089  },
5090  {
5091    /* [660] */
5092    /* usage */ ParameterUsage::kNone,
5093    /* matcher indices */ &kMatcherIndices[10],
5094  },
5095  {
5096    /* [661] */
5097    /* usage */ ParameterUsage::kNone,
5098    /* matcher indices */ &kMatcherIndices[24],
5099  },
5100  {
5101    /* [662] */
5102    /* usage */ ParameterUsage::kNone,
5103    /* matcher indices */ &kMatcherIndices[10],
5104  },
5105  {
5106    /* [663] */
5107    /* usage */ ParameterUsage::kNone,
5108    /* matcher indices */ &kMatcherIndices[21],
5109  },
5110  {
5111    /* [664] */
5112    /* usage */ ParameterUsage::kNone,
5113    /* matcher indices */ &kMatcherIndices[12],
5114  },
5115  {
5116    /* [665] */
5117    /* usage */ ParameterUsage::kNone,
5118    /* matcher indices */ &kMatcherIndices[30],
5119  },
5120  {
5121    /* [666] */
5122    /* usage */ ParameterUsage::kNone,
5123    /* matcher indices */ &kMatcherIndices[1],
5124  },
5125};
5126
5127constexpr OpenTypeInfo kOpenTypes[] = {
5128  {
5129    /* [0] */
5130    /* name */ "T",
5131    /* matcher index */ 36,
5132  },
5133  {
5134    /* [1] */
5135    /* name */ "T",
5136    /* matcher index */ 37,
5137  },
5138  {
5139    /* [2] */
5140    /* name */ "T",
5141    /* matcher index */ kNoMatcher,
5142  },
5143  {
5144    /* [3] */
5145    /* name */ "T",
5146    /* matcher index */ 38,
5147  },
5148};
5149
5150constexpr OpenNumberInfo kOpenNumbers[] = {
5151  {
5152    /* [0] */
5153    /* name */ "F",
5154    /* matcher index */ kNoMatcher,
5155  },
5156  {
5157    /* [1] */
5158    /* name */ "A",
5159    /* matcher index */ 5,
5160  },
5161  {
5162    /* [2] */
5163    /* name */ "M",
5164    /* matcher index */ kNoMatcher,
5165  },
5166  {
5167    /* [3] */
5168    /* name */ "N",
5169    /* matcher index */ kNoMatcher,
5170  },
5171  {
5172    /* [4] */
5173    /* name */ "A",
5174    /* matcher index */ kNoMatcher,
5175  },
5176  {
5177    /* [5] */
5178    /* name */ "S",
5179    /* matcher index */ 7,
5180  },
5181};
5182
5183constexpr OverloadInfo kOverloads[] = {
5184  {
5185    /* [0] */
5186    /* num parameters */ 1,
5187    /* num open types */ 1,
5188    /* num open numbers */ 0,
5189    /* open types */ &kOpenTypes[0],
5190    /* open numbers */ &kOpenNumbers[6],
5191    /* parameters */ &kParameters[549],
5192    /* return matcher indices */ &kMatcherIndices[55],
5193    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
5194    /* is_deprecated */ false,
5195  },
5196  {
5197    /* [1] */
5198    /* num parameters */ 2,
5199    /* num open types */ 1,
5200    /* num open numbers */ 0,
5201    /* open types */ &kOpenTypes[0],
5202    /* open numbers */ &kOpenNumbers[6],
5203    /* parameters */ &kParameters[503],
5204    /* return matcher indices */ &kMatcherIndices[55],
5205    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
5206    /* is_deprecated */ false,
5207  },
5208  {
5209    /* [2] */
5210    /* num parameters */ 1,
5211    /* num open types */ 1,
5212    /* num open numbers */ 0,
5213    /* open types */ &kOpenTypes[0],
5214    /* open numbers */ &kOpenNumbers[6],
5215    /* parameters */ &kParameters[548],
5216    /* return matcher indices */ &kMatcherIndices[89],
5217    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
5218    /* is_deprecated */ false,
5219  },
5220  {
5221    /* [3] */
5222    /* num parameters */ 2,
5223    /* num open types */ 1,
5224    /* num open numbers */ 0,
5225    /* open types */ &kOpenTypes[0],
5226    /* open numbers */ &kOpenNumbers[6],
5227    /* parameters */ &kParameters[507],
5228    /* return matcher indices */ &kMatcherIndices[89],
5229    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
5230    /* is_deprecated */ false,
5231  },
5232  {
5233    /* [4] */
5234    /* num parameters */ 1,
5235    /* num open types */ 1,
5236    /* num open numbers */ 0,
5237    /* open types */ &kOpenTypes[0],
5238    /* open numbers */ &kOpenNumbers[6],
5239    /* parameters */ &kParameters[547],
5240    /* return matcher indices */ &kMatcherIndices[89],
5241    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
5242    /* is_deprecated */ false,
5243  },
5244  {
5245    /* [5] */
5246    /* num parameters */ 2,
5247    /* num open types */ 1,
5248    /* num open numbers */ 0,
5249    /* open types */ &kOpenTypes[0],
5250    /* open numbers */ &kOpenNumbers[6],
5251    /* parameters */ &kParameters[511],
5252    /* return matcher indices */ &kMatcherIndices[89],
5253    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
5254    /* is_deprecated */ false,
5255  },
5256  {
5257    /* [6] */
5258    /* num parameters */ 1,
5259    /* num open types */ 1,
5260    /* num open numbers */ 0,
5261    /* open types */ &kOpenTypes[0],
5262    /* open numbers */ &kOpenNumbers[6],
5263    /* parameters */ &kParameters[546],
5264    /* return matcher indices */ &kMatcherIndices[95],
5265    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
5266    /* is_deprecated */ false,
5267  },
5268  {
5269    /* [7] */
5270    /* num parameters */ 2,
5271    /* num open types */ 1,
5272    /* num open numbers */ 0,
5273    /* open types */ &kOpenTypes[0],
5274    /* open numbers */ &kOpenNumbers[6],
5275    /* parameters */ &kParameters[515],
5276    /* return matcher indices */ &kMatcherIndices[95],
5277    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
5278    /* is_deprecated */ false,
5279  },
5280  {
5281    /* [8] */
5282    /* num parameters */ 1,
5283    /* num open types */ 1,
5284    /* num open numbers */ 0,
5285    /* open types */ &kOpenTypes[0],
5286    /* open numbers */ &kOpenNumbers[6],
5287    /* parameters */ &kParameters[545],
5288    /* return matcher indices */ &kMatcherIndices[89],
5289    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
5290    /* is_deprecated */ false,
5291  },
5292  {
5293    /* [9] */
5294    /* num parameters */ 2,
5295    /* num open types */ 1,
5296    /* num open numbers */ 0,
5297    /* open types */ &kOpenTypes[0],
5298    /* open numbers */ &kOpenNumbers[6],
5299    /* parameters */ &kParameters[519],
5300    /* return matcher indices */ &kMatcherIndices[89],
5301    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
5302    /* is_deprecated */ false,
5303  },
5304  {
5305    /* [10] */
5306    /* num parameters */ 1,
5307    /* num open types */ 1,
5308    /* num open numbers */ 0,
5309    /* open types */ &kOpenTypes[0],
5310    /* open numbers */ &kOpenNumbers[6],
5311    /* parameters */ &kParameters[533],
5312    /* return matcher indices */ &kMatcherIndices[89],
5313    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
5314    /* is_deprecated */ false,
5315  },
5316  {
5317    /* [11] */
5318    /* num parameters */ 2,
5319    /* num open types */ 1,
5320    /* num open numbers */ 0,
5321    /* open types */ &kOpenTypes[0],
5322    /* open numbers */ &kOpenNumbers[6],
5323    /* parameters */ &kParameters[523],
5324    /* return matcher indices */ &kMatcherIndices[89],
5325    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
5326    /* is_deprecated */ false,
5327  },
5328  {
5329    /* [12] */
5330    /* num parameters */ 1,
5331    /* num open types */ 1,
5332    /* num open numbers */ 0,
5333    /* open types */ &kOpenTypes[0],
5334    /* open numbers */ &kOpenNumbers[6],
5335    /* parameters */ &kParameters[544],
5336    /* return matcher indices */ &kMatcherIndices[89],
5337    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
5338    /* is_deprecated */ false,
5339  },
5340  {
5341    /* [13] */
5342    /* num parameters */ 1,
5343    /* num open types */ 0,
5344    /* num open numbers */ 0,
5345    /* open types */ &kOpenTypes[4],
5346    /* open numbers */ &kOpenNumbers[6],
5347    /* parameters */ &kParameters[537],
5348    /* return matcher indices */ &kMatcherIndices[89],
5349    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
5350    /* is_deprecated */ false,
5351  },
5352  {
5353    /* [14] */
5354    /* num parameters */ 2,
5355    /* num open types */ 0,
5356    /* num open numbers */ 0,
5357    /* open types */ &kOpenTypes[4],
5358    /* open numbers */ &kOpenNumbers[6],
5359    /* parameters */ &kParameters[529],
5360    /* return matcher indices */ &kMatcherIndices[89],
5361    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
5362    /* is_deprecated */ false,
5363  },
5364  {
5365    /* [15] */
5366    /* num parameters */ 1,
5367    /* num open types */ 0,
5368    /* num open numbers */ 0,
5369    /* open types */ &kOpenTypes[4],
5370    /* open numbers */ &kOpenNumbers[6],
5371    /* parameters */ &kParameters[535],
5372    /* return matcher indices */ &kMatcherIndices[89],
5373    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
5374    /* is_deprecated */ false,
5375  },
5376  {
5377    /* [16] */
5378    /* num parameters */ 2,
5379    /* num open types */ 0,
5380    /* num open numbers */ 0,
5381    /* open types */ &kOpenTypes[4],
5382    /* open numbers */ &kOpenNumbers[6],
5383    /* parameters */ &kParameters[497],
5384    /* return matcher indices */ &kMatcherIndices[89],
5385    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
5386    /* is_deprecated */ false,
5387  },
5388  {
5389    /* [17] */
5390    /* num parameters */ 1,
5391    /* num open types */ 0,
5392    /* num open numbers */ 0,
5393    /* open types */ &kOpenTypes[4],
5394    /* open numbers */ &kOpenNumbers[6],
5395    /* parameters */ &kParameters[534],
5396    /* return matcher indices */ &kMatcherIndices[89],
5397    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
5398    /* is_deprecated */ false,
5399  },
5400  {
5401    /* [18] */
5402    /* num parameters */ 2,
5403    /* num open types */ 0,
5404    /* num open numbers */ 0,
5405    /* open types */ &kOpenTypes[4],
5406    /* open numbers */ &kOpenNumbers[6],
5407    /* parameters */ &kParameters[461],
5408    /* return matcher indices */ &kMatcherIndices[89],
5409    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
5410    /* is_deprecated */ false,
5411  },
5412  {
5413    /* [19] */
5414    /* num parameters */ 1,
5415    /* num open types */ 0,
5416    /* num open numbers */ 0,
5417    /* open types */ &kOpenTypes[4],
5418    /* open numbers */ &kOpenNumbers[6],
5419    /* parameters */ &kParameters[536],
5420    /* return matcher indices */ &kMatcherIndices[89],
5421    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
5422    /* is_deprecated */ false,
5423  },
5424  {
5425    /* [20] */
5426    /* num parameters */ 2,
5427    /* num open types */ 0,
5428    /* num open numbers */ 0,
5429    /* open types */ &kOpenTypes[4],
5430    /* open numbers */ &kOpenNumbers[6],
5431    /* parameters */ &kParameters[527],
5432    /* return matcher indices */ &kMatcherIndices[89],
5433    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
5434    /* is_deprecated */ false,
5435  },
5436  {
5437    /* [21] */
5438    /* num parameters */ 1,
5439    /* num open types */ 0,
5440    /* num open numbers */ 0,
5441    /* open types */ &kOpenTypes[4],
5442    /* open numbers */ &kOpenNumbers[6],
5443    /* parameters */ &kParameters[538],
5444    /* return matcher indices */ &kMatcherIndices[89],
5445    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
5446    /* is_deprecated */ false,
5447  },
5448  {
5449    /* [22] */
5450    /* num parameters */ 1,
5451    /* num open types */ 0,
5452    /* num open numbers */ 2,
5453    /* open types */ &kOpenTypes[4],
5454    /* open numbers */ &kOpenNumbers[0],
5455    /* parameters */ &kParameters[539],
5456    /* return matcher indices */ &kMatcherIndices[55],
5457    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
5458    /* is_deprecated */ false,
5459  },
5460  {
5461    /* [23] */
5462    /* num parameters */ 1,
5463    /* num open types */ 0,
5464    /* num open numbers */ 2,
5465    /* open types */ &kOpenTypes[4],
5466    /* open numbers */ &kOpenNumbers[0],
5467    /* parameters */ &kParameters[540],
5468    /* return matcher indices */ &kMatcherIndices[89],
5469    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
5470    /* is_deprecated */ false,
5471  },
5472  {
5473    /* [24] */
5474    /* num parameters */ 1,
5475    /* num open types */ 0,
5476    /* num open numbers */ 2,
5477    /* open types */ &kOpenTypes[4],
5478    /* open numbers */ &kOpenNumbers[0],
5479    /* parameters */ &kParameters[541],
5480    /* return matcher indices */ &kMatcherIndices[89],
5481    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
5482    /* is_deprecated */ false,
5483  },
5484  {
5485    /* [25] */
5486    /* num parameters */ 1,
5487    /* num open types */ 0,
5488    /* num open numbers */ 2,
5489    /* open types */ &kOpenTypes[4],
5490    /* open numbers */ &kOpenNumbers[0],
5491    /* parameters */ &kParameters[542],
5492    /* return matcher indices */ &kMatcherIndices[95],
5493    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
5494    /* is_deprecated */ false,
5495  },
5496  {
5497    /* [26] */
5498    /* num parameters */ 1,
5499    /* num open types */ 0,
5500    /* num open numbers */ 0,
5501    /* open types */ &kOpenTypes[4],
5502    /* open numbers */ &kOpenNumbers[6],
5503    /* parameters */ &kParameters[543],
5504    /* return matcher indices */ &kMatcherIndices[89],
5505    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
5506    /* is_deprecated */ false,
5507  },
5508  {
5509    /* [27] */
5510    /* num parameters */ 4,
5511    /* num open types */ 0,
5512    /* num open numbers */ 0,
5513    /* open types */ &kOpenTypes[4],
5514    /* open numbers */ &kOpenNumbers[6],
5515    /* parameters */ &kParameters[270],
5516    /* return matcher indices */ &kMatcherIndices[87],
5517    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
5518    /* is_deprecated */ false,
5519  },
5520  {
5521    /* [28] */
5522    /* num parameters */ 5,
5523    /* num open types */ 0,
5524    /* num open numbers */ 0,
5525    /* open types */ &kOpenTypes[4],
5526    /* open numbers */ &kOpenNumbers[6],
5527    /* parameters */ &kParameters[138],
5528    /* return matcher indices */ &kMatcherIndices[87],
5529    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
5530    /* is_deprecated */ false,
5531  },
5532  {
5533    /* [29] */
5534    /* num parameters */ 5,
5535    /* num open types */ 0,
5536    /* num open numbers */ 0,
5537    /* open types */ &kOpenTypes[4],
5538    /* open numbers */ &kOpenNumbers[6],
5539    /* parameters */ &kParameters[143],
5540    /* return matcher indices */ &kMatcherIndices[87],
5541    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
5542    /* is_deprecated */ false,
5543  },
5544  {
5545    /* [30] */
5546    /* num parameters */ 6,
5547    /* num open types */ 0,
5548    /* num open numbers */ 0,
5549    /* open types */ &kOpenTypes[4],
5550    /* open numbers */ &kOpenNumbers[6],
5551    /* parameters */ &kParameters[19],
5552    /* return matcher indices */ &kMatcherIndices[87],
5553    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
5554    /* is_deprecated */ false,
5555  },
5556  {
5557    /* [31] */
5558    /* num parameters */ 4,
5559    /* num open types */ 0,
5560    /* num open numbers */ 0,
5561    /* open types */ &kOpenTypes[4],
5562    /* open numbers */ &kOpenNumbers[6],
5563    /* parameters */ &kParameters[246],
5564    /* return matcher indices */ &kMatcherIndices[87],
5565    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
5566    /* is_deprecated */ false,
5567  },
5568  {
5569    /* [32] */
5570    /* num parameters */ 5,
5571    /* num open types */ 0,
5572    /* num open numbers */ 0,
5573    /* open types */ &kOpenTypes[4],
5574    /* open numbers */ &kOpenNumbers[6],
5575    /* parameters */ &kParameters[183],
5576    /* return matcher indices */ &kMatcherIndices[87],
5577    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
5578    /* is_deprecated */ false,
5579  },
5580  {
5581    /* [33] */
5582    /* num parameters */ 4,
5583    /* num open types */ 0,
5584    /* num open numbers */ 0,
5585    /* open types */ &kOpenTypes[4],
5586    /* open numbers */ &kOpenNumbers[6],
5587    /* parameters */ &kParameters[234],
5588    /* return matcher indices */ &kMatcherIndices[87],
5589    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
5590    /* is_deprecated */ false,
5591  },
5592  {
5593    /* [34] */
5594    /* num parameters */ 5,
5595    /* num open types */ 0,
5596    /* num open numbers */ 0,
5597    /* open types */ &kOpenTypes[4],
5598    /* open numbers */ &kOpenNumbers[6],
5599    /* parameters */ &kParameters[193],
5600    /* return matcher indices */ &kMatcherIndices[87],
5601    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
5602    /* is_deprecated */ false,
5603  },
5604  {
5605    /* [35] */
5606    /* num parameters */ 4,
5607    /* num open types */ 0,
5608    /* num open numbers */ 0,
5609    /* open types */ &kOpenTypes[4],
5610    /* open numbers */ &kOpenNumbers[6],
5611    /* parameters */ &kParameters[226],
5612    /* return matcher indices */ &kMatcherIndices[12],
5613    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
5614    /* is_deprecated */ false,
5615  },
5616  {
5617    /* [36] */
5618    /* num parameters */ 5,
5619    /* num open types */ 0,
5620    /* num open numbers */ 0,
5621    /* open types */ &kOpenTypes[4],
5622    /* open numbers */ &kOpenNumbers[6],
5623    /* parameters */ &kParameters[208],
5624    /* return matcher indices */ &kMatcherIndices[12],
5625    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
5626    /* is_deprecated */ false,
5627  },
5628  {
5629    /* [37] */
5630    /* num parameters */ 5,
5631    /* num open types */ 0,
5632    /* num open numbers */ 0,
5633    /* open types */ &kOpenTypes[4],
5634    /* open numbers */ &kOpenNumbers[6],
5635    /* parameters */ &kParameters[73],
5636    /* return matcher indices */ &kMatcherIndices[12],
5637    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
5638    /* is_deprecated */ false,
5639  },
5640  {
5641    /* [38] */
5642    /* num parameters */ 6,
5643    /* num open types */ 0,
5644    /* num open numbers */ 0,
5645    /* open types */ &kOpenTypes[4],
5646    /* open numbers */ &kOpenNumbers[6],
5647    /* parameters */ &kParameters[43],
5648    /* return matcher indices */ &kMatcherIndices[12],
5649    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
5650    /* is_deprecated */ false,
5651  },
5652  {
5653    /* [39] */
5654    /* num parameters */ 4,
5655    /* num open types */ 0,
5656    /* num open numbers */ 0,
5657    /* open types */ &kOpenTypes[4],
5658    /* open numbers */ &kOpenNumbers[6],
5659    /* parameters */ &kParameters[222],
5660    /* return matcher indices */ &kMatcherIndices[12],
5661    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
5662    /* is_deprecated */ false,
5663  },
5664  {
5665    /* [40] */
5666    /* num parameters */ 5,
5667    /* num open types */ 0,
5668    /* num open numbers */ 0,
5669    /* open types */ &kOpenTypes[4],
5670    /* open numbers */ &kOpenNumbers[6],
5671    /* parameters */ &kParameters[203],
5672    /* return matcher indices */ &kMatcherIndices[12],
5673    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
5674    /* is_deprecated */ false,
5675  },
5676  {
5677    /* [41] */
5678    /* num parameters */ 3,
5679    /* num open types */ 0,
5680    /* num open numbers */ 0,
5681    /* open types */ &kOpenTypes[4],
5682    /* open numbers */ &kOpenNumbers[6],
5683    /* parameters */ &kParameters[357],
5684    /* return matcher indices */ &kMatcherIndices[87],
5685    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
5686    /* is_deprecated */ false,
5687  },
5688  {
5689    /* [42] */
5690    /* num parameters */ 3,
5691    /* num open types */ 0,
5692    /* num open numbers */ 0,
5693    /* open types */ &kOpenTypes[4],
5694    /* open numbers */ &kOpenNumbers[6],
5695    /* parameters */ &kParameters[414],
5696    /* return matcher indices */ &kMatcherIndices[87],
5697    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
5698    /* is_deprecated */ false,
5699  },
5700  {
5701    /* [43] */
5702    /* num parameters */ 3,
5703    /* num open types */ 0,
5704    /* num open numbers */ 0,
5705    /* open types */ &kOpenTypes[4],
5706    /* open numbers */ &kOpenNumbers[6],
5707    /* parameters */ &kParameters[417],
5708    /* return matcher indices */ &kMatcherIndices[87],
5709    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
5710    /* is_deprecated */ false,
5711  },
5712  {
5713    /* [44] */
5714    /* num parameters */ 4,
5715    /* num open types */ 0,
5716    /* num open numbers */ 0,
5717    /* open types */ &kOpenTypes[4],
5718    /* open numbers */ &kOpenNumbers[6],
5719    /* parameters */ &kParameters[338],
5720    /* return matcher indices */ &kMatcherIndices[87],
5721    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
5722    /* is_deprecated */ false,
5723  },
5724  {
5725    /* [45] */
5726    /* num parameters */ 4,
5727    /* num open types */ 0,
5728    /* num open numbers */ 0,
5729    /* open types */ &kOpenTypes[4],
5730    /* open numbers */ &kOpenNumbers[6],
5731    /* parameters */ &kParameters[286],
5732    /* return matcher indices */ &kMatcherIndices[87],
5733    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
5734    /* is_deprecated */ false,
5735  },
5736  {
5737    /* [46] */
5738    /* num parameters */ 5,
5739    /* num open types */ 0,
5740    /* num open numbers */ 0,
5741    /* open types */ &kOpenTypes[4],
5742    /* open numbers */ &kOpenNumbers[6],
5743    /* parameters */ &kParameters[118],
5744    /* return matcher indices */ &kMatcherIndices[87],
5745    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
5746    /* is_deprecated */ false,
5747  },
5748  {
5749    /* [47] */
5750    /* num parameters */ 3,
5751    /* num open types */ 0,
5752    /* num open numbers */ 0,
5753    /* open types */ &kOpenTypes[4],
5754    /* open numbers */ &kOpenNumbers[6],
5755    /* parameters */ &kParameters[450],
5756    /* return matcher indices */ &kMatcherIndices[87],
5757    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
5758    /* is_deprecated */ false,
5759  },
5760  {
5761    /* [48] */
5762    /* num parameters */ 4,
5763    /* num open types */ 0,
5764    /* num open numbers */ 0,
5765    /* open types */ &kOpenTypes[4],
5766    /* open numbers */ &kOpenNumbers[6],
5767    /* parameters */ &kParameters[278],
5768    /* return matcher indices */ &kMatcherIndices[87],
5769    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
5770    /* is_deprecated */ false,
5771  },
5772  {
5773    /* [49] */
5774    /* num parameters */ 3,
5775    /* num open types */ 0,
5776    /* num open numbers */ 0,
5777    /* open types */ &kOpenTypes[4],
5778    /* open numbers */ &kOpenNumbers[6],
5779    /* parameters */ &kParameters[444],
5780    /* return matcher indices */ &kMatcherIndices[87],
5781    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
5782    /* is_deprecated */ false,
5783  },
5784  {
5785    /* [50] */
5786    /* num parameters */ 4,
5787    /* num open types */ 0,
5788    /* num open numbers */ 0,
5789    /* open types */ &kOpenTypes[4],
5790    /* open numbers */ &kOpenNumbers[6],
5791    /* parameters */ &kParameters[274],
5792    /* return matcher indices */ &kMatcherIndices[87],
5793    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
5794    /* is_deprecated */ false,
5795  },
5796  {
5797    /* [51] */
5798    /* num parameters */ 3,
5799    /* num open types */ 0,
5800    /* num open numbers */ 0,
5801    /* open types */ &kOpenTypes[4],
5802    /* open numbers */ &kOpenNumbers[6],
5803    /* parameters */ &kParameters[429],
5804    /* return matcher indices */ &kMatcherIndices[12],
5805    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
5806    /* is_deprecated */ false,
5807  },
5808  {
5809    /* [52] */
5810    /* num parameters */ 4,
5811    /* num open types */ 0,
5812    /* num open numbers */ 0,
5813    /* open types */ &kOpenTypes[4],
5814    /* open numbers */ &kOpenNumbers[6],
5815    /* parameters */ &kParameters[266],
5816    /* return matcher indices */ &kMatcherIndices[12],
5817    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
5818    /* is_deprecated */ false,
5819  },
5820  {
5821    /* [53] */
5822    /* num parameters */ 4,
5823    /* num open types */ 0,
5824    /* num open numbers */ 0,
5825    /* open types */ &kOpenTypes[4],
5826    /* open numbers */ &kOpenNumbers[6],
5827    /* parameters */ &kParameters[262],
5828    /* return matcher indices */ &kMatcherIndices[12],
5829    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
5830    /* is_deprecated */ false,
5831  },
5832  {
5833    /* [54] */
5834    /* num parameters */ 5,
5835    /* num open types */ 0,
5836    /* num open numbers */ 0,
5837    /* open types */ &kOpenTypes[4],
5838    /* open numbers */ &kOpenNumbers[6],
5839    /* parameters */ &kParameters[148],
5840    /* return matcher indices */ &kMatcherIndices[12],
5841    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
5842    /* is_deprecated */ false,
5843  },
5844  {
5845    /* [55] */
5846    /* num parameters */ 3,
5847    /* num open types */ 0,
5848    /* num open numbers */ 0,
5849    /* open types */ &kOpenTypes[4],
5850    /* open numbers */ &kOpenNumbers[6],
5851    /* parameters */ &kParameters[405],
5852    /* return matcher indices */ &kMatcherIndices[12],
5853    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
5854    /* is_deprecated */ false,
5855  },
5856  {
5857    /* [56] */
5858    /* num parameters */ 4,
5859    /* num open types */ 0,
5860    /* num open numbers */ 0,
5861    /* open types */ &kOpenTypes[4],
5862    /* open numbers */ &kOpenNumbers[6],
5863    /* parameters */ &kParameters[258],
5864    /* return matcher indices */ &kMatcherIndices[12],
5865    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
5866    /* is_deprecated */ false,
5867  },
5868  {
5869    /* [57] */
5870    /* num parameters */ 4,
5871    /* num open types */ 1,
5872    /* num open numbers */ 0,
5873    /* open types */ &kOpenTypes[0],
5874    /* open numbers */ &kOpenNumbers[6],
5875    /* parameters */ &kParameters[330],
5876    /* return matcher indices */ &kMatcherIndices[115],
5877    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
5878    /* is_deprecated */ false,
5879  },
5880  {
5881    /* [58] */
5882    /* num parameters */ 5,
5883    /* num open types */ 1,
5884    /* num open numbers */ 0,
5885    /* open types */ &kOpenTypes[0],
5886    /* open numbers */ &kOpenNumbers[6],
5887    /* parameters */ &kParameters[153],
5888    /* return matcher indices */ &kMatcherIndices[115],
5889    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
5890    /* is_deprecated */ false,
5891  },
5892  {
5893    /* [59] */
5894    /* num parameters */ 5,
5895    /* num open types */ 1,
5896    /* num open numbers */ 0,
5897    /* open types */ &kOpenTypes[0],
5898    /* open numbers */ &kOpenNumbers[6],
5899    /* parameters */ &kParameters[133],
5900    /* return matcher indices */ &kMatcherIndices[115],
5901    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
5902    /* is_deprecated */ false,
5903  },
5904  {
5905    /* [60] */
5906    /* num parameters */ 6,
5907    /* num open types */ 1,
5908    /* num open numbers */ 0,
5909    /* open types */ &kOpenTypes[0],
5910    /* open numbers */ &kOpenNumbers[6],
5911    /* parameters */ &kParameters[31],
5912    /* return matcher indices */ &kMatcherIndices[115],
5913    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
5914    /* is_deprecated */ false,
5915  },
5916  {
5917    /* [61] */
5918    /* num parameters */ 4,
5919    /* num open types */ 1,
5920    /* num open numbers */ 0,
5921    /* open types */ &kOpenTypes[0],
5922    /* open numbers */ &kOpenNumbers[6],
5923    /* parameters */ &kParameters[318],
5924    /* return matcher indices */ &kMatcherIndices[115],
5925    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
5926    /* is_deprecated */ false,
5927  },
5928  {
5929    /* [62] */
5930    /* num parameters */ 5,
5931    /* num open types */ 1,
5932    /* num open numbers */ 0,
5933    /* open types */ &kOpenTypes[0],
5934    /* open numbers */ &kOpenNumbers[6],
5935    /* parameters */ &kParameters[103],
5936    /* return matcher indices */ &kMatcherIndices[115],
5937    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
5938    /* is_deprecated */ false,
5939  },
5940  {
5941    /* [63] */
5942    /* num parameters */ 3,
5943    /* num open types */ 0,
5944    /* num open numbers */ 0,
5945    /* open types */ &kOpenTypes[4],
5946    /* open numbers */ &kOpenNumbers[6],
5947    /* parameters */ &kParameters[360],
5948    /* return matcher indices */ &kMatcherIndices[87],
5949    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
5950    /* is_deprecated */ false,
5951  },
5952  {
5953    /* [64] */
5954    /* num parameters */ 4,
5955    /* num open types */ 0,
5956    /* num open numbers */ 0,
5957    /* open types */ &kOpenTypes[4],
5958    /* open numbers */ &kOpenNumbers[6],
5959    /* parameters */ &kParameters[218],
5960    /* return matcher indices */ &kMatcherIndices[87],
5961    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
5962    /* is_deprecated */ false,
5963  },
5964  {
5965    /* [65] */
5966    /* num parameters */ 4,
5967    /* num open types */ 0,
5968    /* num open numbers */ 0,
5969    /* open types */ &kOpenTypes[4],
5970    /* open numbers */ &kOpenNumbers[6],
5971    /* parameters */ &kParameters[314],
5972    /* return matcher indices */ &kMatcherIndices[87],
5973    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
5974    /* is_deprecated */ false,
5975  },
5976  {
5977    /* [66] */
5978    /* num parameters */ 5,
5979    /* num open types */ 0,
5980    /* num open numbers */ 0,
5981    /* open types */ &kOpenTypes[4],
5982    /* open numbers */ &kOpenNumbers[6],
5983    /* parameters */ &kParameters[93],
5984    /* return matcher indices */ &kMatcherIndices[87],
5985    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
5986    /* is_deprecated */ false,
5987  },
5988  {
5989    /* [67] */
5990    /* num parameters */ 3,
5991    /* num open types */ 0,
5992    /* num open numbers */ 0,
5993    /* open types */ &kOpenTypes[4],
5994    /* open numbers */ &kOpenNumbers[6],
5995    /* parameters */ &kParameters[375],
5996    /* return matcher indices */ &kMatcherIndices[87],
5997    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
5998    /* is_deprecated */ false,
5999  },
6000  {
6001    /* [68] */
6002    /* num parameters */ 4,
6003    /* num open types */ 0,
6004    /* num open numbers */ 0,
6005    /* open types */ &kOpenTypes[4],
6006    /* open numbers */ &kOpenNumbers[6],
6007    /* parameters */ &kParameters[302],
6008    /* return matcher indices */ &kMatcherIndices[87],
6009    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
6010    /* is_deprecated */ false,
6011  },
6012  {
6013    /* [69] */
6014    /* num parameters */ 3,
6015    /* num open types */ 0,
6016    /* num open numbers */ 0,
6017    /* open types */ &kOpenTypes[4],
6018    /* open numbers */ &kOpenNumbers[6],
6019    /* parameters */ &kParameters[345],
6020    /* return matcher indices */ nullptr,
6021    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
6022    /* is_deprecated */ false,
6023  },
6024  {
6025    /* [70] */
6026    /* num parameters */ 3,
6027    /* num open types */ 0,
6028    /* num open numbers */ 0,
6029    /* open types */ &kOpenTypes[4],
6030    /* open numbers */ &kOpenNumbers[6],
6031    /* parameters */ &kParameters[363],
6032    /* return matcher indices */ nullptr,
6033    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
6034    /* is_deprecated */ false,
6035  },
6036  {
6037    /* [71] */
6038    /* num parameters */ 4,
6039    /* num open types */ 0,
6040    /* num open numbers */ 0,
6041    /* open types */ &kOpenTypes[4],
6042    /* open numbers */ &kOpenNumbers[6],
6043    /* parameters */ &kParameters[242],
6044    /* return matcher indices */ nullptr,
6045    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
6046    /* is_deprecated */ false,
6047  },
6048  {
6049    /* [72] */
6050    /* num parameters */ 3,
6051    /* num open types */ 0,
6052    /* num open numbers */ 0,
6053    /* open types */ &kOpenTypes[4],
6054    /* open numbers */ &kOpenNumbers[6],
6055    /* parameters */ &kParameters[390],
6056    /* return matcher indices */ nullptr,
6057    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
6058    /* is_deprecated */ false,
6059  },
6060  {
6061    /* [73] */
6062    /* num parameters */ 3,
6063    /* num open types */ 0,
6064    /* num open numbers */ 0,
6065    /* open types */ &kOpenTypes[4],
6066    /* open numbers */ &kOpenNumbers[6],
6067    /* parameters */ &kParameters[393],
6068    /* return matcher indices */ nullptr,
6069    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
6070    /* is_deprecated */ false,
6071  },
6072  {
6073    /* [74] */
6074    /* num parameters */ 3,
6075    /* num open types */ 0,
6076    /* num open numbers */ 0,
6077    /* open types */ &kOpenTypes[4],
6078    /* open numbers */ &kOpenNumbers[6],
6079    /* parameters */ &kParameters[369],
6080    /* return matcher indices */ nullptr,
6081    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
6082    /* is_deprecated */ false,
6083  },
6084  {
6085    /* [75] */
6086    /* num parameters */ 4,
6087    /* num open types */ 0,
6088    /* num open numbers */ 0,
6089    /* open types */ &kOpenTypes[4],
6090    /* open numbers */ &kOpenNumbers[6],
6091    /* parameters */ &kParameters[250],
6092    /* return matcher indices */ nullptr,
6093    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
6094    /* is_deprecated */ false,
6095  },
6096  {
6097    /* [76] */
6098    /* num parameters */ 3,
6099    /* num open types */ 0,
6100    /* num open numbers */ 0,
6101    /* open types */ &kOpenTypes[4],
6102    /* open numbers */ &kOpenNumbers[6],
6103    /* parameters */ &kParameters[423],
6104    /* return matcher indices */ nullptr,
6105    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
6106    /* is_deprecated */ false,
6107  },
6108  {
6109    /* [77] */
6110    /* num parameters */ 3,
6111    /* num open types */ 0,
6112    /* num open numbers */ 0,
6113    /* open types */ &kOpenTypes[4],
6114    /* open numbers */ &kOpenNumbers[6],
6115    /* parameters */ &kParameters[432],
6116    /* return matcher indices */ nullptr,
6117    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
6118    /* is_deprecated */ false,
6119  },
6120  {
6121    /* [78] */
6122    /* num parameters */ 3,
6123    /* num open types */ 0,
6124    /* num open numbers */ 0,
6125    /* open types */ &kOpenTypes[4],
6126    /* open numbers */ &kOpenNumbers[6],
6127    /* parameters */ &kParameters[447],
6128    /* return matcher indices */ nullptr,
6129    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
6130    /* is_deprecated */ false,
6131  },
6132  {
6133    /* [79] */
6134    /* num parameters */ 4,
6135    /* num open types */ 0,
6136    /* num open numbers */ 0,
6137    /* open types */ &kOpenTypes[4],
6138    /* open numbers */ &kOpenNumbers[6],
6139    /* parameters */ &kParameters[282],
6140    /* return matcher indices */ nullptr,
6141    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
6142    /* is_deprecated */ false,
6143  },
6144  {
6145    /* [80] */
6146    /* num parameters */ 3,
6147    /* num open types */ 0,
6148    /* num open numbers */ 0,
6149    /* open types */ &kOpenTypes[4],
6150    /* open numbers */ &kOpenNumbers[6],
6151    /* parameters */ &kParameters[453],
6152    /* return matcher indices */ nullptr,
6153    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
6154    /* is_deprecated */ false,
6155  },
6156  {
6157    /* [81] */
6158    /* num parameters */ 1,
6159    /* num open types */ 1,
6160    /* num open numbers */ 0,
6161    /* open types */ &kOpenTypes[0],
6162    /* open numbers */ &kOpenNumbers[6],
6163    /* parameters */ &kParameters[567],
6164    /* return matcher indices */ &kMatcherIndices[55],
6165    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
6166    /* is_deprecated */ false,
6167  },
6168  {
6169    /* [82] */
6170    /* num parameters */ 1,
6171    /* num open types */ 1,
6172    /* num open numbers */ 0,
6173    /* open types */ &kOpenTypes[0],
6174    /* open numbers */ &kOpenNumbers[6],
6175    /* parameters */ &kParameters[568],
6176    /* return matcher indices */ &kMatcherIndices[55],
6177    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
6178    /* is_deprecated */ false,
6179  },
6180  {
6181    /* [83] */
6182    /* num parameters */ 1,
6183    /* num open types */ 1,
6184    /* num open numbers */ 0,
6185    /* open types */ &kOpenTypes[0],
6186    /* open numbers */ &kOpenNumbers[6],
6187    /* parameters */ &kParameters[569],
6188    /* return matcher indices */ &kMatcherIndices[55],
6189    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
6190    /* is_deprecated */ false,
6191  },
6192  {
6193    /* [84] */
6194    /* num parameters */ 1,
6195    /* num open types */ 1,
6196    /* num open numbers */ 0,
6197    /* open types */ &kOpenTypes[0],
6198    /* open numbers */ &kOpenNumbers[6],
6199    /* parameters */ &kParameters[570],
6200    /* return matcher indices */ &kMatcherIndices[55],
6201    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
6202    /* is_deprecated */ false,
6203  },
6204  {
6205    /* [85] */
6206    /* num parameters */ 1,
6207    /* num open types */ 1,
6208    /* num open numbers */ 0,
6209    /* open types */ &kOpenTypes[0],
6210    /* open numbers */ &kOpenNumbers[6],
6211    /* parameters */ &kParameters[571],
6212    /* return matcher indices */ &kMatcherIndices[55],
6213    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
6214    /* is_deprecated */ false,
6215  },
6216  {
6217    /* [86] */
6218    /* num parameters */ 1,
6219    /* num open types */ 1,
6220    /* num open numbers */ 0,
6221    /* open types */ &kOpenTypes[0],
6222    /* open numbers */ &kOpenNumbers[6],
6223    /* parameters */ &kParameters[572],
6224    /* return matcher indices */ &kMatcherIndices[55],
6225    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
6226    /* is_deprecated */ false,
6227  },
6228  {
6229    /* [87] */
6230    /* num parameters */ 1,
6231    /* num open types */ 0,
6232    /* num open numbers */ 0,
6233    /* open types */ &kOpenTypes[4],
6234    /* open numbers */ &kOpenNumbers[6],
6235    /* parameters */ &kParameters[573],
6236    /* return matcher indices */ &kMatcherIndices[55],
6237    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
6238    /* is_deprecated */ false,
6239  },
6240  {
6241    /* [88] */
6242    /* num parameters */ 1,
6243    /* num open types */ 0,
6244    /* num open numbers */ 0,
6245    /* open types */ &kOpenTypes[4],
6246    /* open numbers */ &kOpenNumbers[6],
6247    /* parameters */ &kParameters[574],
6248    /* return matcher indices */ &kMatcherIndices[55],
6249    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
6250    /* is_deprecated */ false,
6251  },
6252  {
6253    /* [89] */
6254    /* num parameters */ 1,
6255    /* num open types */ 0,
6256    /* num open numbers */ 0,
6257    /* open types */ &kOpenTypes[4],
6258    /* open numbers */ &kOpenNumbers[6],
6259    /* parameters */ &kParameters[575],
6260    /* return matcher indices */ &kMatcherIndices[55],
6261    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
6262    /* is_deprecated */ false,
6263  },
6264  {
6265    /* [90] */
6266    /* num parameters */ 1,
6267    /* num open types */ 0,
6268    /* num open numbers */ 0,
6269    /* open types */ &kOpenTypes[4],
6270    /* open numbers */ &kOpenNumbers[6],
6271    /* parameters */ &kParameters[576],
6272    /* return matcher indices */ &kMatcherIndices[55],
6273    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
6274    /* is_deprecated */ false,
6275  },
6276  {
6277    /* [91] */
6278    /* num parameters */ 3,
6279    /* num open types */ 1,
6280    /* num open numbers */ 0,
6281    /* open types */ &kOpenTypes[0],
6282    /* open numbers */ &kOpenNumbers[6],
6283    /* parameters */ &kParameters[456],
6284    /* return matcher indices */ &kMatcherIndices[115],
6285    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
6286    /* is_deprecated */ false,
6287  },
6288  {
6289    /* [92] */
6290    /* num parameters */ 3,
6291    /* num open types */ 1,
6292    /* num open numbers */ 0,
6293    /* open types */ &kOpenTypes[0],
6294    /* open numbers */ &kOpenNumbers[6],
6295    /* parameters */ &kParameters[411],
6296    /* return matcher indices */ &kMatcherIndices[115],
6297    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
6298    /* is_deprecated */ false,
6299  },
6300  {
6301    /* [93] */
6302    /* num parameters */ 4,
6303    /* num open types */ 1,
6304    /* num open numbers */ 0,
6305    /* open types */ &kOpenTypes[0],
6306    /* open numbers */ &kOpenNumbers[6],
6307    /* parameters */ &kParameters[294],
6308    /* return matcher indices */ &kMatcherIndices[115],
6309    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
6310    /* is_deprecated */ false,
6311  },
6312  {
6313    /* [94] */
6314    /* num parameters */ 3,
6315    /* num open types */ 1,
6316    /* num open numbers */ 0,
6317    /* open types */ &kOpenTypes[0],
6318    /* open numbers */ &kOpenNumbers[6],
6319    /* parameters */ &kParameters[399],
6320    /* return matcher indices */ &kMatcherIndices[115],
6321    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
6322    /* is_deprecated */ false,
6323  },
6324  {
6325    /* [95] */
6326    /* num parameters */ 3,
6327    /* num open types */ 1,
6328    /* num open numbers */ 0,
6329    /* open types */ &kOpenTypes[0],
6330    /* open numbers */ &kOpenNumbers[6],
6331    /* parameters */ &kParameters[396],
6332    /* return matcher indices */ &kMatcherIndices[115],
6333    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
6334    /* is_deprecated */ false,
6335  },
6336  {
6337    /* [96] */
6338    /* num parameters */ 3,
6339    /* num open types */ 0,
6340    /* num open numbers */ 0,
6341    /* open types */ &kOpenTypes[4],
6342    /* open numbers */ &kOpenNumbers[6],
6343    /* parameters */ &kParameters[372],
6344    /* return matcher indices */ &kMatcherIndices[12],
6345    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
6346    /* is_deprecated */ false,
6347  },
6348  {
6349    /* [97] */
6350    /* num parameters */ 4,
6351    /* num open types */ 0,
6352    /* num open numbers */ 0,
6353    /* open types */ &kOpenTypes[4],
6354    /* open numbers */ &kOpenNumbers[6],
6355    /* parameters */ &kParameters[306],
6356    /* return matcher indices */ &kMatcherIndices[12],
6357    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
6358    /* is_deprecated */ false,
6359  },
6360  {
6361    /* [98] */
6362    /* num parameters */ 3,
6363    /* num open types */ 0,
6364    /* num open numbers */ 0,
6365    /* open types */ &kOpenTypes[4],
6366    /* open numbers */ &kOpenNumbers[6],
6367    /* parameters */ &kParameters[366],
6368    /* return matcher indices */ &kMatcherIndices[12],
6369    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
6370    /* is_deprecated */ false,
6371  },
6372  {
6373    /* [99] */
6374    /* num parameters */ 2,
6375    /* num open types */ 0,
6376    /* num open numbers */ 0,
6377    /* open types */ &kOpenTypes[4],
6378    /* open numbers */ &kOpenNumbers[6],
6379    /* parameters */ &kParameters[495],
6380    /* return matcher indices */ &kMatcherIndices[87],
6381    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
6382    /* is_deprecated */ false,
6383  },
6384  {
6385    /* [100] */
6386    /* num parameters */ 5,
6387    /* num open types */ 0,
6388    /* num open numbers */ 0,
6389    /* open types */ &kOpenTypes[4],
6390    /* open numbers */ &kOpenNumbers[6],
6391    /* parameters */ &kParameters[78],
6392    /* return matcher indices */ &kMatcherIndices[87],
6393    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
6394    /* is_deprecated */ false,
6395  },
6396  {
6397    /* [101] */
6398    /* num parameters */ 6,
6399    /* num open types */ 0,
6400    /* num open numbers */ 0,
6401    /* open types */ &kOpenTypes[4],
6402    /* open numbers */ &kOpenNumbers[6],
6403    /* parameters */ &kParameters[7],
6404    /* return matcher indices */ &kMatcherIndices[87],
6405    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
6406    /* is_deprecated */ false,
6407  },
6408  {
6409    /* [102] */
6410    /* num parameters */ 6,
6411    /* num open types */ 0,
6412    /* num open numbers */ 0,
6413    /* open types */ &kOpenTypes[4],
6414    /* open numbers */ &kOpenNumbers[6],
6415    /* parameters */ &kParameters[67],
6416    /* return matcher indices */ &kMatcherIndices[87],
6417    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
6418    /* is_deprecated */ false,
6419  },
6420  {
6421    /* [103] */
6422    /* num parameters */ 7,
6423    /* num open types */ 0,
6424    /* num open numbers */ 0,
6425    /* open types */ &kOpenTypes[4],
6426    /* open numbers */ &kOpenNumbers[6],
6427    /* parameters */ &kParameters[0],
6428    /* return matcher indices */ &kMatcherIndices[87],
6429    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
6430    /* is_deprecated */ false,
6431  },
6432  {
6433    /* [104] */
6434    /* num parameters */ 5,
6435    /* num open types */ 0,
6436    /* num open numbers */ 0,
6437    /* open types */ &kOpenTypes[4],
6438    /* open numbers */ &kOpenNumbers[6],
6439    /* parameters */ &kParameters[113],
6440    /* return matcher indices */ &kMatcherIndices[87],
6441    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
6442    /* is_deprecated */ false,
6443  },
6444  {
6445    /* [105] */
6446    /* num parameters */ 6,
6447    /* num open types */ 0,
6448    /* num open numbers */ 0,
6449    /* open types */ &kOpenTypes[4],
6450    /* open numbers */ &kOpenNumbers[6],
6451    /* parameters */ &kParameters[37],
6452    /* return matcher indices */ &kMatcherIndices[87],
6453    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
6454    /* is_deprecated */ false,
6455  },
6456  {
6457    /* [106] */
6458    /* num parameters */ 5,
6459    /* num open types */ 0,
6460    /* num open numbers */ 0,
6461    /* open types */ &kOpenTypes[4],
6462    /* open numbers */ &kOpenNumbers[6],
6463    /* parameters */ &kParameters[128],
6464    /* return matcher indices */ &kMatcherIndices[87],
6465    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
6466    /* is_deprecated */ false,
6467  },
6468  {
6469    /* [107] */
6470    /* num parameters */ 6,
6471    /* num open types */ 0,
6472    /* num open numbers */ 0,
6473    /* open types */ &kOpenTypes[4],
6474    /* open numbers */ &kOpenNumbers[6],
6475    /* parameters */ &kParameters[25],
6476    /* return matcher indices */ &kMatcherIndices[87],
6477    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
6478    /* is_deprecated */ false,
6479  },
6480  {
6481    /* [108] */
6482    /* num parameters */ 4,
6483    /* num open types */ 0,
6484    /* num open numbers */ 0,
6485    /* open types */ &kOpenTypes[4],
6486    /* open numbers */ &kOpenNumbers[6],
6487    /* parameters */ &kParameters[254],
6488    /* return matcher indices */ &kMatcherIndices[87],
6489    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
6490    /* is_deprecated */ false,
6491  },
6492  {
6493    /* [109] */
6494    /* num parameters */ 5,
6495    /* num open types */ 0,
6496    /* num open numbers */ 0,
6497    /* open types */ &kOpenTypes[4],
6498    /* open numbers */ &kOpenNumbers[6],
6499    /* parameters */ &kParameters[168],
6500    /* return matcher indices */ &kMatcherIndices[87],
6501    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
6502    /* is_deprecated */ false,
6503  },
6504  {
6505    /* [110] */
6506    /* num parameters */ 5,
6507    /* num open types */ 0,
6508    /* num open numbers */ 0,
6509    /* open types */ &kOpenTypes[4],
6510    /* open numbers */ &kOpenNumbers[6],
6511    /* parameters */ &kParameters[173],
6512    /* return matcher indices */ &kMatcherIndices[87],
6513    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
6514    /* is_deprecated */ false,
6515  },
6516  {
6517    /* [111] */
6518    /* num parameters */ 6,
6519    /* num open types */ 0,
6520    /* num open numbers */ 0,
6521    /* open types */ &kOpenTypes[4],
6522    /* open numbers */ &kOpenNumbers[6],
6523    /* parameters */ &kParameters[13],
6524    /* return matcher indices */ &kMatcherIndices[87],
6525    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
6526    /* is_deprecated */ false,
6527  },
6528  {
6529    /* [112] */
6530    /* num parameters */ 4,
6531    /* num open types */ 0,
6532    /* num open numbers */ 0,
6533    /* open types */ &kOpenTypes[4],
6534    /* open numbers */ &kOpenNumbers[6],
6535    /* parameters */ &kParameters[322],
6536    /* return matcher indices */ &kMatcherIndices[87],
6537    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
6538    /* is_deprecated */ false,
6539  },
6540  {
6541    /* [113] */
6542    /* num parameters */ 5,
6543    /* num open types */ 0,
6544    /* num open numbers */ 0,
6545    /* open types */ &kOpenTypes[4],
6546    /* open numbers */ &kOpenNumbers[6],
6547    /* parameters */ &kParameters[213],
6548    /* return matcher indices */ &kMatcherIndices[87],
6549    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
6550    /* is_deprecated */ false,
6551  },
6552  {
6553    /* [114] */
6554    /* num parameters */ 4,
6555    /* num open types */ 0,
6556    /* num open numbers */ 0,
6557    /* open types */ &kOpenTypes[4],
6558    /* open numbers */ &kOpenNumbers[6],
6559    /* parameters */ &kParameters[230],
6560    /* return matcher indices */ &kMatcherIndices[87],
6561    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
6562    /* is_deprecated */ false,
6563  },
6564  {
6565    /* [115] */
6566    /* num parameters */ 5,
6567    /* num open types */ 0,
6568    /* num open numbers */ 0,
6569    /* open types */ &kOpenTypes[4],
6570    /* open numbers */ &kOpenNumbers[6],
6571    /* parameters */ &kParameters[198],
6572    /* return matcher indices */ &kMatcherIndices[87],
6573    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
6574    /* is_deprecated */ false,
6575  },
6576  {
6577    /* [116] */
6578    /* num parameters */ 4,
6579    /* num open types */ 0,
6580    /* num open numbers */ 0,
6581    /* open types */ &kOpenTypes[4],
6582    /* open numbers */ &kOpenNumbers[6],
6583    /* parameters */ &kParameters[298],
6584    /* return matcher indices */ &kMatcherIndices[87],
6585    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
6586    /* is_deprecated */ false,
6587  },
6588  {
6589    /* [117] */
6590    /* num parameters */ 5,
6591    /* num open types */ 0,
6592    /* num open numbers */ 0,
6593    /* open types */ &kOpenTypes[4],
6594    /* open numbers */ &kOpenNumbers[6],
6595    /* parameters */ &kParameters[83],
6596    /* return matcher indices */ &kMatcherIndices[87],
6597    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
6598    /* is_deprecated */ false,
6599  },
6600  {
6601    /* [118] */
6602    /* num parameters */ 5,
6603    /* num open types */ 0,
6604    /* num open numbers */ 0,
6605    /* open types */ &kOpenTypes[4],
6606    /* open numbers */ &kOpenNumbers[6],
6607    /* parameters */ &kParameters[88],
6608    /* return matcher indices */ &kMatcherIndices[87],
6609    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
6610    /* is_deprecated */ false,
6611  },
6612  {
6613    /* [119] */
6614    /* num parameters */ 6,
6615    /* num open types */ 0,
6616    /* num open numbers */ 0,
6617    /* open types */ &kOpenTypes[4],
6618    /* open numbers */ &kOpenNumbers[6],
6619    /* parameters */ &kParameters[61],
6620    /* return matcher indices */ &kMatcherIndices[87],
6621    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
6622    /* is_deprecated */ false,
6623  },
6624  {
6625    /* [120] */
6626    /* num parameters */ 4,
6627    /* num open types */ 0,
6628    /* num open numbers */ 0,
6629    /* open types */ &kOpenTypes[4],
6630    /* open numbers */ &kOpenNumbers[6],
6631    /* parameters */ &kParameters[290],
6632    /* return matcher indices */ &kMatcherIndices[87],
6633    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
6634    /* is_deprecated */ false,
6635  },
6636  {
6637    /* [121] */
6638    /* num parameters */ 5,
6639    /* num open types */ 0,
6640    /* num open numbers */ 0,
6641    /* open types */ &kOpenTypes[4],
6642    /* open numbers */ &kOpenNumbers[6],
6643    /* parameters */ &kParameters[108],
6644    /* return matcher indices */ &kMatcherIndices[87],
6645    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
6646    /* is_deprecated */ false,
6647  },
6648  {
6649    /* [122] */
6650    /* num parameters */ 4,
6651    /* num open types */ 0,
6652    /* num open numbers */ 0,
6653    /* open types */ &kOpenTypes[4],
6654    /* open numbers */ &kOpenNumbers[6],
6655    /* parameters */ &kParameters[238],
6656    /* return matcher indices */ &kMatcherIndices[12],
6657    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
6658    /* is_deprecated */ false,
6659  },
6660  {
6661    /* [123] */
6662    /* num parameters */ 5,
6663    /* num open types */ 0,
6664    /* num open numbers */ 0,
6665    /* open types */ &kOpenTypes[4],
6666    /* open numbers */ &kOpenNumbers[6],
6667    /* parameters */ &kParameters[163],
6668    /* return matcher indices */ &kMatcherIndices[12],
6669    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
6670    /* is_deprecated */ false,
6671  },
6672  {
6673    /* [124] */
6674    /* num parameters */ 5,
6675    /* num open types */ 0,
6676    /* num open numbers */ 0,
6677    /* open types */ &kOpenTypes[4],
6678    /* open numbers */ &kOpenNumbers[6],
6679    /* parameters */ &kParameters[158],
6680    /* return matcher indices */ &kMatcherIndices[12],
6681    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
6682    /* is_deprecated */ false,
6683  },
6684  {
6685    /* [125] */
6686    /* num parameters */ 6,
6687    /* num open types */ 0,
6688    /* num open numbers */ 0,
6689    /* open types */ &kOpenTypes[4],
6690    /* open numbers */ &kOpenNumbers[6],
6691    /* parameters */ &kParameters[49],
6692    /* return matcher indices */ &kMatcherIndices[12],
6693    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
6694    /* is_deprecated */ false,
6695  },
6696  {
6697    /* [126] */
6698    /* num parameters */ 4,
6699    /* num open types */ 0,
6700    /* num open numbers */ 0,
6701    /* open types */ &kOpenTypes[4],
6702    /* open numbers */ &kOpenNumbers[6],
6703    /* parameters */ &kParameters[334],
6704    /* return matcher indices */ &kMatcherIndices[12],
6705    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
6706    /* is_deprecated */ false,
6707  },
6708  {
6709    /* [127] */
6710    /* num parameters */ 5,
6711    /* num open types */ 0,
6712    /* num open numbers */ 0,
6713    /* open types */ &kOpenTypes[4],
6714    /* open numbers */ &kOpenNumbers[6],
6715    /* parameters */ &kParameters[188],
6716    /* return matcher indices */ &kMatcherIndices[12],
6717    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
6718    /* is_deprecated */ false,
6719  },
6720  {
6721    /* [128] */
6722    /* num parameters */ 4,
6723    /* num open types */ 0,
6724    /* num open numbers */ 0,
6725    /* open types */ &kOpenTypes[4],
6726    /* open numbers */ &kOpenNumbers[6],
6727    /* parameters */ &kParameters[326],
6728    /* return matcher indices */ &kMatcherIndices[12],
6729    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
6730    /* is_deprecated */ false,
6731  },
6732  {
6733    /* [129] */
6734    /* num parameters */ 5,
6735    /* num open types */ 0,
6736    /* num open numbers */ 0,
6737    /* open types */ &kOpenTypes[4],
6738    /* open numbers */ &kOpenNumbers[6],
6739    /* parameters */ &kParameters[178],
6740    /* return matcher indices */ &kMatcherIndices[12],
6741    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
6742    /* is_deprecated */ false,
6743  },
6744  {
6745    /* [130] */
6746    /* num parameters */ 5,
6747    /* num open types */ 0,
6748    /* num open numbers */ 0,
6749    /* open types */ &kOpenTypes[4],
6750    /* open numbers */ &kOpenNumbers[6],
6751    /* parameters */ &kParameters[123],
6752    /* return matcher indices */ &kMatcherIndices[12],
6753    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
6754    /* is_deprecated */ false,
6755  },
6756  {
6757    /* [131] */
6758    /* num parameters */ 6,
6759    /* num open types */ 0,
6760    /* num open numbers */ 0,
6761    /* open types */ &kOpenTypes[4],
6762    /* open numbers */ &kOpenNumbers[6],
6763    /* parameters */ &kParameters[55],
6764    /* return matcher indices */ &kMatcherIndices[12],
6765    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
6766    /* is_deprecated */ false,
6767  },
6768  {
6769    /* [132] */
6770    /* num parameters */ 4,
6771    /* num open types */ 0,
6772    /* num open numbers */ 0,
6773    /* open types */ &kOpenTypes[4],
6774    /* open numbers */ &kOpenNumbers[6],
6775    /* parameters */ &kParameters[310],
6776    /* return matcher indices */ &kMatcherIndices[12],
6777    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
6778    /* is_deprecated */ false,
6779  },
6780  {
6781    /* [133] */
6782    /* num parameters */ 5,
6783    /* num open types */ 0,
6784    /* num open numbers */ 0,
6785    /* open types */ &kOpenTypes[4],
6786    /* open numbers */ &kOpenNumbers[6],
6787    /* parameters */ &kParameters[98],
6788    /* return matcher indices */ &kMatcherIndices[12],
6789    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
6790    /* is_deprecated */ false,
6791  },
6792  {
6793    /* [134] */
6794    /* num parameters */ 1,
6795    /* num open types */ 1,
6796    /* num open numbers */ 0,
6797    /* open types */ &kOpenTypes[0],
6798    /* open numbers */ &kOpenNumbers[6],
6799    /* parameters */ &kParameters[562],
6800    /* return matcher indices */ &kMatcherIndices[55],
6801    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
6802    /* is_deprecated */ false,
6803  },
6804  {
6805    /* [135] */
6806    /* num parameters */ 1,
6807    /* num open types */ 1,
6808    /* num open numbers */ 0,
6809    /* open types */ &kOpenTypes[0],
6810    /* open numbers */ &kOpenNumbers[6],
6811    /* parameters */ &kParameters[563],
6812    /* return matcher indices */ &kMatcherIndices[55],
6813    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
6814    /* is_deprecated */ false,
6815  },
6816  {
6817    /* [136] */
6818    /* num parameters */ 1,
6819    /* num open types */ 0,
6820    /* num open numbers */ 0,
6821    /* open types */ &kOpenTypes[4],
6822    /* open numbers */ &kOpenNumbers[6],
6823    /* parameters */ &kParameters[564],
6824    /* return matcher indices */ &kMatcherIndices[55],
6825    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
6826    /* is_deprecated */ false,
6827  },
6828  {
6829    /* [137] */
6830    /* num parameters */ 1,
6831    /* num open types */ 0,
6832    /* num open numbers */ 0,
6833    /* open types */ &kOpenTypes[4],
6834    /* open numbers */ &kOpenNumbers[6],
6835    /* parameters */ &kParameters[565],
6836    /* return matcher indices */ &kMatcherIndices[55],
6837    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
6838    /* is_deprecated */ false,
6839  },
6840  {
6841    /* [138] */
6842    /* num parameters */ 1,
6843    /* num open types */ 0,
6844    /* num open numbers */ 2,
6845    /* open types */ &kOpenTypes[4],
6846    /* open numbers */ &kOpenNumbers[0],
6847    /* parameters */ &kParameters[566],
6848    /* return matcher indices */ &kMatcherIndices[55],
6849    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
6850    /* is_deprecated */ false,
6851  },
6852  {
6853    /* [139] */
6854    /* num parameters */ 3,
6855    /* num open types */ 0,
6856    /* num open numbers */ 0,
6857    /* open types */ &kOpenTypes[4],
6858    /* open numbers */ &kOpenNumbers[6],
6859    /* parameters */ &kParameters[378],
6860    /* return matcher indices */ &kMatcherIndices[12],
6861    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
6862    /* is_deprecated */ false,
6863  },
6864  {
6865    /* [140] */
6866    /* num parameters */ 3,
6867    /* num open types */ 0,
6868    /* num open numbers */ 1,
6869    /* open types */ &kOpenTypes[4],
6870    /* open numbers */ &kOpenNumbers[3],
6871    /* parameters */ &kParameters[381],
6872    /* return matcher indices */ &kMatcherIndices[21],
6873    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
6874    /* is_deprecated */ false,
6875  },
6876  {
6877    /* [141] */
6878    /* num parameters */ 3,
6879    /* num open types */ 0,
6880    /* num open numbers */ 1,
6881    /* open types */ &kOpenTypes[4],
6882    /* open numbers */ &kOpenNumbers[3],
6883    /* parameters */ &kParameters[384],
6884    /* return matcher indices */ &kMatcherIndices[21],
6885    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
6886    /* is_deprecated */ false,
6887  },
6888  {
6889    /* [142] */
6890    /* num parameters */ 3,
6891    /* num open types */ 1,
6892    /* num open numbers */ 0,
6893    /* open types */ &kOpenTypes[3],
6894    /* open numbers */ &kOpenNumbers[6],
6895    /* parameters */ &kParameters[435],
6896    /* return matcher indices */ &kMatcherIndices[1],
6897    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
6898    /* is_deprecated */ false,
6899  },
6900  {
6901    /* [143] */
6902    /* num parameters */ 3,
6903    /* num open types */ 1,
6904    /* num open numbers */ 1,
6905    /* open types */ &kOpenTypes[3],
6906    /* open numbers */ &kOpenNumbers[3],
6907    /* parameters */ &kParameters[438],
6908    /* return matcher indices */ &kMatcherIndices[30],
6909    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
6910    /* is_deprecated */ false,
6911  },
6912  {
6913    /* [144] */
6914    /* num parameters */ 3,
6915    /* num open types */ 1,
6916    /* num open numbers */ 1,
6917    /* open types */ &kOpenTypes[3],
6918    /* open numbers */ &kOpenNumbers[3],
6919    /* parameters */ &kParameters[441],
6920    /* return matcher indices */ &kMatcherIndices[30],
6921    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
6922    /* is_deprecated */ false,
6923  },
6924  {
6925    /* [145] */
6926    /* num parameters */ 1,
6927    /* num open types */ 0,
6928    /* num open numbers */ 0,
6929    /* open types */ &kOpenTypes[4],
6930    /* open numbers */ &kOpenNumbers[6],
6931    /* parameters */ &kParameters[652],
6932    /* return matcher indices */ &kMatcherIndices[12],
6933    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
6934    /* is_deprecated */ false,
6935  },
6936  {
6937    /* [146] */
6938    /* num parameters */ 1,
6939    /* num open types */ 0,
6940    /* num open numbers */ 1,
6941    /* open types */ &kOpenTypes[4],
6942    /* open numbers */ &kOpenNumbers[3],
6943    /* parameters */ &kParameters[651],
6944    /* return matcher indices */ &kMatcherIndices[21],
6945    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
6946    /* is_deprecated */ false,
6947  },
6948  {
6949    /* [147] */
6950    /* num parameters */ 1,
6951    /* num open types */ 0,
6952    /* num open numbers */ 0,
6953    /* open types */ &kOpenTypes[4],
6954    /* open numbers */ &kOpenNumbers[6],
6955    /* parameters */ &kParameters[561],
6956    /* return matcher indices */ &kMatcherIndices[12],
6957    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
6958    /* is_deprecated */ false,
6959  },
6960  {
6961    /* [148] */
6962    /* num parameters */ 1,
6963    /* num open types */ 0,
6964    /* num open numbers */ 1,
6965    /* open types */ &kOpenTypes[4],
6966    /* open numbers */ &kOpenNumbers[3],
6967    /* parameters */ &kParameters[560],
6968    /* return matcher indices */ &kMatcherIndices[21],
6969    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
6970    /* is_deprecated */ false,
6971  },
6972  {
6973    /* [149] */
6974    /* num parameters */ 1,
6975    /* num open types */ 0,
6976    /* num open numbers */ 0,
6977    /* open types */ &kOpenTypes[4],
6978    /* open numbers */ &kOpenNumbers[6],
6979    /* parameters */ &kParameters[643],
6980    /* return matcher indices */ &kMatcherIndices[12],
6981    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
6982    /* is_deprecated */ false,
6983  },
6984  {
6985    /* [150] */
6986    /* num parameters */ 1,
6987    /* num open types */ 0,
6988    /* num open numbers */ 1,
6989    /* open types */ &kOpenTypes[4],
6990    /* open numbers */ &kOpenNumbers[3],
6991    /* parameters */ &kParameters[642],
6992    /* return matcher indices */ &kMatcherIndices[21],
6993    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
6994    /* is_deprecated */ false,
6995  },
6996  {
6997    /* [151] */
6998    /* num parameters */ 1,
6999    /* num open types */ 0,
7000    /* num open numbers */ 0,
7001    /* open types */ &kOpenTypes[4],
7002    /* open numbers */ &kOpenNumbers[6],
7003    /* parameters */ &kParameters[641],
7004    /* return matcher indices */ &kMatcherIndices[12],
7005    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
7006    /* is_deprecated */ false,
7007  },
7008  {
7009    /* [152] */
7010    /* num parameters */ 1,
7011    /* num open types */ 0,
7012    /* num open numbers */ 1,
7013    /* open types */ &kOpenTypes[4],
7014    /* open numbers */ &kOpenNumbers[3],
7015    /* parameters */ &kParameters[640],
7016    /* return matcher indices */ &kMatcherIndices[21],
7017    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
7018    /* is_deprecated */ false,
7019  },
7020  {
7021    /* [153] */
7022    /* num parameters */ 1,
7023    /* num open types */ 0,
7024    /* num open numbers */ 0,
7025    /* open types */ &kOpenTypes[4],
7026    /* open numbers */ &kOpenNumbers[6],
7027    /* parameters */ &kParameters[639],
7028    /* return matcher indices */ &kMatcherIndices[12],
7029    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
7030    /* is_deprecated */ false,
7031  },
7032  {
7033    /* [154] */
7034    /* num parameters */ 1,
7035    /* num open types */ 0,
7036    /* num open numbers */ 1,
7037    /* open types */ &kOpenTypes[4],
7038    /* open numbers */ &kOpenNumbers[3],
7039    /* parameters */ &kParameters[638],
7040    /* return matcher indices */ &kMatcherIndices[21],
7041    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
7042    /* is_deprecated */ false,
7043  },
7044  {
7045    /* [155] */
7046    /* num parameters */ 1,
7047    /* num open types */ 0,
7048    /* num open numbers */ 0,
7049    /* open types */ &kOpenTypes[4],
7050    /* open numbers */ &kOpenNumbers[6],
7051    /* parameters */ &kParameters[637],
7052    /* return matcher indices */ &kMatcherIndices[12],
7053    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
7054    /* is_deprecated */ false,
7055  },
7056  {
7057    /* [156] */
7058    /* num parameters */ 1,
7059    /* num open types */ 0,
7060    /* num open numbers */ 1,
7061    /* open types */ &kOpenTypes[4],
7062    /* open numbers */ &kOpenNumbers[3],
7063    /* parameters */ &kParameters[636],
7064    /* return matcher indices */ &kMatcherIndices[21],
7065    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
7066    /* is_deprecated */ false,
7067  },
7068  {
7069    /* [157] */
7070    /* num parameters */ 1,
7071    /* num open types */ 0,
7072    /* num open numbers */ 0,
7073    /* open types */ &kOpenTypes[4],
7074    /* open numbers */ &kOpenNumbers[6],
7075    /* parameters */ &kParameters[635],
7076    /* return matcher indices */ &kMatcherIndices[12],
7077    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
7078    /* is_deprecated */ false,
7079  },
7080  {
7081    /* [158] */
7082    /* num parameters */ 1,
7083    /* num open types */ 0,
7084    /* num open numbers */ 1,
7085    /* open types */ &kOpenTypes[4],
7086    /* open numbers */ &kOpenNumbers[3],
7087    /* parameters */ &kParameters[634],
7088    /* return matcher indices */ &kMatcherIndices[21],
7089    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
7090    /* is_deprecated */ false,
7091  },
7092  {
7093    /* [159] */
7094    /* num parameters */ 1,
7095    /* num open types */ 0,
7096    /* num open numbers */ 0,
7097    /* open types */ &kOpenTypes[4],
7098    /* open numbers */ &kOpenNumbers[6],
7099    /* parameters */ &kParameters[633],
7100    /* return matcher indices */ &kMatcherIndices[12],
7101    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
7102    /* is_deprecated */ false,
7103  },
7104  {
7105    /* [160] */
7106    /* num parameters */ 1,
7107    /* num open types */ 0,
7108    /* num open numbers */ 1,
7109    /* open types */ &kOpenTypes[4],
7110    /* open numbers */ &kOpenNumbers[3],
7111    /* parameters */ &kParameters[632],
7112    /* return matcher indices */ &kMatcherIndices[21],
7113    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
7114    /* is_deprecated */ false,
7115  },
7116  {
7117    /* [161] */
7118    /* num parameters */ 1,
7119    /* num open types */ 0,
7120    /* num open numbers */ 0,
7121    /* open types */ &kOpenTypes[4],
7122    /* open numbers */ &kOpenNumbers[6],
7123    /* parameters */ &kParameters[631],
7124    /* return matcher indices */ &kMatcherIndices[12],
7125    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
7126    /* is_deprecated */ false,
7127  },
7128  {
7129    /* [162] */
7130    /* num parameters */ 1,
7131    /* num open types */ 0,
7132    /* num open numbers */ 1,
7133    /* open types */ &kOpenTypes[4],
7134    /* open numbers */ &kOpenNumbers[3],
7135    /* parameters */ &kParameters[630],
7136    /* return matcher indices */ &kMatcherIndices[21],
7137    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
7138    /* is_deprecated */ false,
7139  },
7140  {
7141    /* [163] */
7142    /* num parameters */ 1,
7143    /* num open types */ 0,
7144    /* num open numbers */ 0,
7145    /* open types */ &kOpenTypes[4],
7146    /* open numbers */ &kOpenNumbers[6],
7147    /* parameters */ &kParameters[629],
7148    /* return matcher indices */ &kMatcherIndices[12],
7149    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
7150    /* is_deprecated */ false,
7151  },
7152  {
7153    /* [164] */
7154    /* num parameters */ 1,
7155    /* num open types */ 0,
7156    /* num open numbers */ 1,
7157    /* open types */ &kOpenTypes[4],
7158    /* open numbers */ &kOpenNumbers[3],
7159    /* parameters */ &kParameters[628],
7160    /* return matcher indices */ &kMatcherIndices[21],
7161    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
7162    /* is_deprecated */ false,
7163  },
7164  {
7165    /* [165] */
7166    /* num parameters */ 2,
7167    /* num open types */ 0,
7168    /* num open numbers */ 0,
7169    /* open types */ &kOpenTypes[4],
7170    /* open numbers */ &kOpenNumbers[6],
7171    /* parameters */ &kParameters[477],
7172    /* return matcher indices */ &kMatcherIndices[12],
7173    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
7174    /* is_deprecated */ false,
7175  },
7176  {
7177    /* [166] */
7178    /* num parameters */ 2,
7179    /* num open types */ 0,
7180    /* num open numbers */ 1,
7181    /* open types */ &kOpenTypes[4],
7182    /* open numbers */ &kOpenNumbers[3],
7183    /* parameters */ &kParameters[479],
7184    /* return matcher indices */ &kMatcherIndices[12],
7185    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
7186    /* is_deprecated */ false,
7187  },
7188  {
7189    /* [167] */
7190    /* num parameters */ 1,
7191    /* num open types */ 0,
7192    /* num open numbers */ 0,
7193    /* open types */ &kOpenTypes[4],
7194    /* open numbers */ &kOpenNumbers[6],
7195    /* parameters */ &kParameters[627],
7196    /* return matcher indices */ &kMatcherIndices[12],
7197    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
7198    /* is_deprecated */ false,
7199  },
7200  {
7201    /* [168] */
7202    /* num parameters */ 1,
7203    /* num open types */ 0,
7204    /* num open numbers */ 1,
7205    /* open types */ &kOpenTypes[4],
7206    /* open numbers */ &kOpenNumbers[3],
7207    /* parameters */ &kParameters[626],
7208    /* return matcher indices */ &kMatcherIndices[21],
7209    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
7210    /* is_deprecated */ false,
7211  },
7212  {
7213    /* [169] */
7214    /* num parameters */ 3,
7215    /* num open types */ 0,
7216    /* num open numbers */ 0,
7217    /* open types */ &kOpenTypes[4],
7218    /* open numbers */ &kOpenNumbers[6],
7219    /* parameters */ &kParameters[351],
7220    /* return matcher indices */ &kMatcherIndices[12],
7221    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
7222    /* is_deprecated */ false,
7223  },
7224  {
7225    /* [170] */
7226    /* num parameters */ 3,
7227    /* num open types */ 0,
7228    /* num open numbers */ 1,
7229    /* open types */ &kOpenTypes[4],
7230    /* open numbers */ &kOpenNumbers[3],
7231    /* parameters */ &kParameters[348],
7232    /* return matcher indices */ &kMatcherIndices[21],
7233    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
7234    /* is_deprecated */ false,
7235  },
7236  {
7237    /* [171] */
7238    /* num parameters */ 1,
7239    /* num open types */ 0,
7240    /* num open numbers */ 0,
7241    /* open types */ &kOpenTypes[4],
7242    /* open numbers */ &kOpenNumbers[6],
7243    /* parameters */ &kParameters[625],
7244    /* return matcher indices */ &kMatcherIndices[12],
7245    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
7246    /* is_deprecated */ false,
7247  },
7248  {
7249    /* [172] */
7250    /* num parameters */ 1,
7251    /* num open types */ 0,
7252    /* num open numbers */ 1,
7253    /* open types */ &kOpenTypes[4],
7254    /* open numbers */ &kOpenNumbers[3],
7255    /* parameters */ &kParameters[624],
7256    /* return matcher indices */ &kMatcherIndices[21],
7257    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
7258    /* is_deprecated */ false,
7259  },
7260  {
7261    /* [173] */
7262    /* num parameters */ 1,
7263    /* num open types */ 0,
7264    /* num open numbers */ 0,
7265    /* open types */ &kOpenTypes[4],
7266    /* open numbers */ &kOpenNumbers[6],
7267    /* parameters */ &kParameters[623],
7268    /* return matcher indices */ &kMatcherIndices[138],
7269    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
7270    /* is_deprecated */ false,
7271  },
7272  {
7273    /* [174] */
7274    /* num parameters */ 1,
7275    /* num open types */ 0,
7276    /* num open numbers */ 1,
7277    /* open types */ &kOpenTypes[4],
7278    /* open numbers */ &kOpenNumbers[3],
7279    /* parameters */ &kParameters[622],
7280    /* return matcher indices */ &kMatcherIndices[107],
7281    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
7282    /* is_deprecated */ false,
7283  },
7284  {
7285    /* [175] */
7286    /* num parameters */ 1,
7287    /* num open types */ 0,
7288    /* num open numbers */ 0,
7289    /* open types */ &kOpenTypes[4],
7290    /* open numbers */ &kOpenNumbers[6],
7291    /* parameters */ &kParameters[621],
7292    /* return matcher indices */ &kMatcherIndices[12],
7293    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
7294    /* is_deprecated */ false,
7295  },
7296  {
7297    /* [176] */
7298    /* num parameters */ 1,
7299    /* num open types */ 0,
7300    /* num open numbers */ 1,
7301    /* open types */ &kOpenTypes[4],
7302    /* open numbers */ &kOpenNumbers[3],
7303    /* parameters */ &kParameters[620],
7304    /* return matcher indices */ &kMatcherIndices[21],
7305    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
7306    /* is_deprecated */ false,
7307  },
7308  {
7309    /* [177] */
7310    /* num parameters */ 1,
7311    /* num open types */ 0,
7312    /* num open numbers */ 0,
7313    /* open types */ &kOpenTypes[4],
7314    /* open numbers */ &kOpenNumbers[6],
7315    /* parameters */ &kParameters[619],
7316    /* return matcher indices */ &kMatcherIndices[12],
7317    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
7318    /* is_deprecated */ false,
7319  },
7320  {
7321    /* [178] */
7322    /* num parameters */ 1,
7323    /* num open types */ 0,
7324    /* num open numbers */ 1,
7325    /* open types */ &kOpenTypes[4],
7326    /* open numbers */ &kOpenNumbers[3],
7327    /* parameters */ &kParameters[618],
7328    /* return matcher indices */ &kMatcherIndices[21],
7329    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
7330    /* is_deprecated */ false,
7331  },
7332  {
7333    /* [179] */
7334    /* num parameters */ 1,
7335    /* num open types */ 0,
7336    /* num open numbers */ 0,
7337    /* open types */ &kOpenTypes[4],
7338    /* open numbers */ &kOpenNumbers[6],
7339    /* parameters */ &kParameters[617],
7340    /* return matcher indices */ &kMatcherIndices[12],
7341    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
7342    /* is_deprecated */ false,
7343  },
7344  {
7345    /* [180] */
7346    /* num parameters */ 1,
7347    /* num open types */ 0,
7348    /* num open numbers */ 1,
7349    /* open types */ &kOpenTypes[4],
7350    /* open numbers */ &kOpenNumbers[3],
7351    /* parameters */ &kParameters[616],
7352    /* return matcher indices */ &kMatcherIndices[21],
7353    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
7354    /* is_deprecated */ false,
7355  },
7356  {
7357    /* [181] */
7358    /* num parameters */ 1,
7359    /* num open types */ 1,
7360    /* num open numbers */ 0,
7361    /* open types */ &kOpenTypes[1],
7362    /* open numbers */ &kOpenNumbers[6],
7363    /* parameters */ &kParameters[646],
7364    /* return matcher indices */ &kMatcherIndices[1],
7365    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
7366    /* is_deprecated */ false,
7367  },
7368  {
7369    /* [182] */
7370    /* num parameters */ 1,
7371    /* num open types */ 1,
7372    /* num open numbers */ 1,
7373    /* open types */ &kOpenTypes[1],
7374    /* open numbers */ &kOpenNumbers[3],
7375    /* parameters */ &kParameters[645],
7376    /* return matcher indices */ &kMatcherIndices[30],
7377    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
7378    /* is_deprecated */ false,
7379  },
7380  {
7381    /* [183] */
7382    /* num parameters */ 1,
7383    /* num open types */ 0,
7384    /* num open numbers */ 0,
7385    /* open types */ &kOpenTypes[4],
7386    /* open numbers */ &kOpenNumbers[6],
7387    /* parameters */ &kParameters[614],
7388    /* return matcher indices */ &kMatcherIndices[12],
7389    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
7390    /* is_deprecated */ false,
7391  },
7392  {
7393    /* [184] */
7394    /* num parameters */ 1,
7395    /* num open types */ 0,
7396    /* num open numbers */ 1,
7397    /* open types */ &kOpenTypes[4],
7398    /* open numbers */ &kOpenNumbers[3],
7399    /* parameters */ &kParameters[613],
7400    /* return matcher indices */ &kMatcherIndices[21],
7401    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
7402    /* is_deprecated */ false,
7403  },
7404  {
7405    /* [185] */
7406    /* num parameters */ 1,
7407    /* num open types */ 0,
7408    /* num open numbers */ 0,
7409    /* open types */ &kOpenTypes[4],
7410    /* open numbers */ &kOpenNumbers[6],
7411    /* parameters */ &kParameters[612],
7412    /* return matcher indices */ &kMatcherIndices[10],
7413    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
7414    /* is_deprecated */ true,
7415  },
7416  {
7417    /* [186] */
7418    /* num parameters */ 1,
7419    /* num open types */ 0,
7420    /* num open numbers */ 1,
7421    /* open types */ &kOpenTypes[4],
7422    /* open numbers */ &kOpenNumbers[3],
7423    /* parameters */ &kParameters[611],
7424    /* return matcher indices */ &kMatcherIndices[24],
7425    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
7426    /* is_deprecated */ true,
7427  },
7428  {
7429    /* [187] */
7430    /* num parameters */ 1,
7431    /* num open types */ 0,
7432    /* num open numbers */ 0,
7433    /* open types */ &kOpenTypes[4],
7434    /* open numbers */ &kOpenNumbers[6],
7435    /* parameters */ &kParameters[610],
7436    /* return matcher indices */ &kMatcherIndices[10],
7437    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
7438    /* is_deprecated */ true,
7439  },
7440  {
7441    /* [188] */
7442    /* num parameters */ 1,
7443    /* num open types */ 0,
7444    /* num open numbers */ 1,
7445    /* open types */ &kOpenTypes[4],
7446    /* open numbers */ &kOpenNumbers[3],
7447    /* parameters */ &kParameters[609],
7448    /* return matcher indices */ &kMatcherIndices[24],
7449    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
7450    /* is_deprecated */ true,
7451  },
7452  {
7453    /* [189] */
7454    /* num parameters */ 1,
7455    /* num open types */ 0,
7456    /* num open numbers */ 0,
7457    /* open types */ &kOpenTypes[4],
7458    /* open numbers */ &kOpenNumbers[6],
7459    /* parameters */ &kParameters[608],
7460    /* return matcher indices */ &kMatcherIndices[10],
7461    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
7462    /* is_deprecated */ true,
7463  },
7464  {
7465    /* [190] */
7466    /* num parameters */ 1,
7467    /* num open types */ 0,
7468    /* num open numbers */ 1,
7469    /* open types */ &kOpenTypes[4],
7470    /* open numbers */ &kOpenNumbers[3],
7471    /* parameters */ &kParameters[607],
7472    /* return matcher indices */ &kMatcherIndices[24],
7473    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
7474    /* is_deprecated */ true,
7475  },
7476  {
7477    /* [191] */
7478    /* num parameters */ 1,
7479    /* num open types */ 0,
7480    /* num open numbers */ 0,
7481    /* open types */ &kOpenTypes[4],
7482    /* open numbers */ &kOpenNumbers[6],
7483    /* parameters */ &kParameters[606],
7484    /* return matcher indices */ &kMatcherIndices[10],
7485    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
7486    /* is_deprecated */ true,
7487  },
7488  {
7489    /* [192] */
7490    /* num parameters */ 1,
7491    /* num open types */ 0,
7492    /* num open numbers */ 1,
7493    /* open types */ &kOpenTypes[4],
7494    /* open numbers */ &kOpenNumbers[3],
7495    /* parameters */ &kParameters[605],
7496    /* return matcher indices */ &kMatcherIndices[24],
7497    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
7498    /* is_deprecated */ true,
7499  },
7500  {
7501    /* [193] */
7502    /* num parameters */ 2,
7503    /* num open types */ 0,
7504    /* num open numbers */ 0,
7505    /* open types */ &kOpenTypes[4],
7506    /* open numbers */ &kOpenNumbers[6],
7507    /* parameters */ &kParameters[487],
7508    /* return matcher indices */ &kMatcherIndices[12],
7509    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
7510    /* is_deprecated */ false,
7511  },
7512  {
7513    /* [194] */
7514    /* num parameters */ 2,
7515    /* num open types */ 0,
7516    /* num open numbers */ 1,
7517    /* open types */ &kOpenTypes[4],
7518    /* open numbers */ &kOpenNumbers[3],
7519    /* parameters */ &kParameters[513],
7520    /* return matcher indices */ &kMatcherIndices[21],
7521    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
7522    /* is_deprecated */ false,
7523  },
7524  {
7525    /* [195] */
7526    /* num parameters */ 1,
7527    /* num open types */ 0,
7528    /* num open numbers */ 0,
7529    /* open types */ &kOpenTypes[4],
7530    /* open numbers */ &kOpenNumbers[6],
7531    /* parameters */ &kParameters[604],
7532    /* return matcher indices */ &kMatcherIndices[12],
7533    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
7534    /* is_deprecated */ false,
7535  },
7536  {
7537    /* [196] */
7538    /* num parameters */ 1,
7539    /* num open types */ 0,
7540    /* num open numbers */ 1,
7541    /* open types */ &kOpenTypes[4],
7542    /* open numbers */ &kOpenNumbers[3],
7543    /* parameters */ &kParameters[603],
7544    /* return matcher indices */ &kMatcherIndices[12],
7545    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
7546    /* is_deprecated */ false,
7547  },
7548  {
7549    /* [197] */
7550    /* num parameters */ 1,
7551    /* num open types */ 0,
7552    /* num open numbers */ 0,
7553    /* open types */ &kOpenTypes[4],
7554    /* open numbers */ &kOpenNumbers[6],
7555    /* parameters */ &kParameters[602],
7556    /* return matcher indices */ &kMatcherIndices[12],
7557    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
7558    /* is_deprecated */ false,
7559  },
7560  {
7561    /* [198] */
7562    /* num parameters */ 1,
7563    /* num open types */ 0,
7564    /* num open numbers */ 1,
7565    /* open types */ &kOpenTypes[4],
7566    /* open numbers */ &kOpenNumbers[3],
7567    /* parameters */ &kParameters[601],
7568    /* return matcher indices */ &kMatcherIndices[21],
7569    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
7570    /* is_deprecated */ false,
7571  },
7572  {
7573    /* [199] */
7574    /* num parameters */ 1,
7575    /* num open types */ 0,
7576    /* num open numbers */ 0,
7577    /* open types */ &kOpenTypes[4],
7578    /* open numbers */ &kOpenNumbers[6],
7579    /* parameters */ &kParameters[600],
7580    /* return matcher indices */ &kMatcherIndices[12],
7581    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
7582    /* is_deprecated */ false,
7583  },
7584  {
7585    /* [200] */
7586    /* num parameters */ 1,
7587    /* num open types */ 0,
7588    /* num open numbers */ 1,
7589    /* open types */ &kOpenTypes[4],
7590    /* open numbers */ &kOpenNumbers[3],
7591    /* parameters */ &kParameters[599],
7592    /* return matcher indices */ &kMatcherIndices[21],
7593    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
7594    /* is_deprecated */ false,
7595  },
7596  {
7597    /* [201] */
7598    /* num parameters */ 2,
7599    /* num open types */ 1,
7600    /* num open numbers */ 0,
7601    /* open types */ &kOpenTypes[0],
7602    /* open numbers */ &kOpenNumbers[6],
7603    /* parameters */ &kParameters[493],
7604    /* return matcher indices */ &kMatcherIndices[1],
7605    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
7606    /* is_deprecated */ false,
7607  },
7608  {
7609    /* [202] */
7610    /* num parameters */ 2,
7611    /* num open types */ 1,
7612    /* num open numbers */ 1,
7613    /* open types */ &kOpenTypes[0],
7614    /* open numbers */ &kOpenNumbers[3],
7615    /* parameters */ &kParameters[459],
7616    /* return matcher indices */ &kMatcherIndices[30],
7617    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
7618    /* is_deprecated */ false,
7619  },
7620  {
7621    /* [203] */
7622    /* num parameters */ 2,
7623    /* num open types */ 1,
7624    /* num open numbers */ 0,
7625    /* open types */ &kOpenTypes[0],
7626    /* open numbers */ &kOpenNumbers[6],
7627    /* parameters */ &kParameters[491],
7628    /* return matcher indices */ &kMatcherIndices[1],
7629    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
7630    /* is_deprecated */ false,
7631  },
7632  {
7633    /* [204] */
7634    /* num parameters */ 2,
7635    /* num open types */ 1,
7636    /* num open numbers */ 1,
7637    /* open types */ &kOpenTypes[0],
7638    /* open numbers */ &kOpenNumbers[3],
7639    /* parameters */ &kParameters[489],
7640    /* return matcher indices */ &kMatcherIndices[30],
7641    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
7642    /* is_deprecated */ false,
7643  },
7644  {
7645    /* [205] */
7646    /* num parameters */ 1,
7647    /* num open types */ 0,
7648    /* num open numbers */ 0,
7649    /* open types */ &kOpenTypes[4],
7650    /* open numbers */ &kOpenNumbers[6],
7651    /* parameters */ &kParameters[648],
7652    /* return matcher indices */ &kMatcherIndices[12],
7653    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
7654    /* is_deprecated */ false,
7655  },
7656  {
7657    /* [206] */
7658    /* num parameters */ 1,
7659    /* num open types */ 0,
7660    /* num open numbers */ 1,
7661    /* open types */ &kOpenTypes[4],
7662    /* open numbers */ &kOpenNumbers[3],
7663    /* parameters */ &kParameters[647],
7664    /* return matcher indices */ &kMatcherIndices[21],
7665    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
7666    /* is_deprecated */ false,
7667  },
7668  {
7669    /* [207] */
7670    /* num parameters */ 1,
7671    /* num open types */ 0,
7672    /* num open numbers */ 0,
7673    /* open types */ &kOpenTypes[4],
7674    /* open numbers */ &kOpenNumbers[6],
7675    /* parameters */ &kParameters[598],
7676    /* return matcher indices */ &kMatcherIndices[137],
7677    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
7678    /* is_deprecated */ false,
7679  },
7680  {
7681    /* [208] */
7682    /* num parameters */ 1,
7683    /* num open types */ 0,
7684    /* num open numbers */ 1,
7685    /* open types */ &kOpenTypes[4],
7686    /* open numbers */ &kOpenNumbers[3],
7687    /* parameters */ &kParameters[597],
7688    /* return matcher indices */ &kMatcherIndices[103],
7689    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
7690    /* is_deprecated */ false,
7691  },
7692  {
7693    /* [209] */
7694    /* num parameters */ 1,
7695    /* num open types */ 0,
7696    /* num open numbers */ 0,
7697    /* open types */ &kOpenTypes[4],
7698    /* open numbers */ &kOpenNumbers[6],
7699    /* parameters */ &kParameters[650],
7700    /* return matcher indices */ &kMatcherIndices[12],
7701    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
7702    /* is_deprecated */ false,
7703  },
7704  {
7705    /* [210] */
7706    /* num parameters */ 1,
7707    /* num open types */ 0,
7708    /* num open numbers */ 1,
7709    /* open types */ &kOpenTypes[4],
7710    /* open numbers */ &kOpenNumbers[3],
7711    /* parameters */ &kParameters[649],
7712    /* return matcher indices */ &kMatcherIndices[21],
7713    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
7714    /* is_deprecated */ false,
7715  },
7716  {
7717    /* [211] */
7718    /* num parameters */ 3,
7719    /* num open types */ 1,
7720    /* num open numbers */ 0,
7721    /* open types */ &kOpenTypes[0],
7722    /* open numbers */ &kOpenNumbers[6],
7723    /* parameters */ &kParameters[402],
7724    /* return matcher indices */ &kMatcherIndices[1],
7725    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
7726    /* is_deprecated */ false,
7727  },
7728  {
7729    /* [212] */
7730    /* num parameters */ 3,
7731    /* num open types */ 1,
7732    /* num open numbers */ 1,
7733    /* open types */ &kOpenTypes[0],
7734    /* open numbers */ &kOpenNumbers[3],
7735    /* parameters */ &kParameters[408],
7736    /* return matcher indices */ &kMatcherIndices[30],
7737    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
7738    /* is_deprecated */ false,
7739  },
7740  {
7741    /* [213] */
7742    /* num parameters */ 1,
7743    /* num open types */ 1,
7744    /* num open numbers */ 0,
7745    /* open types */ &kOpenTypes[0],
7746    /* open numbers */ &kOpenNumbers[6],
7747    /* parameters */ &kParameters[577],
7748    /* return matcher indices */ &kMatcherIndices[55],
7749    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
7750    /* is_deprecated */ false,
7751  },
7752  {
7753    /* [214] */
7754    /* num parameters */ 1,
7755    /* num open types */ 0,
7756    /* num open numbers */ 0,
7757    /* open types */ &kOpenTypes[4],
7758    /* open numbers */ &kOpenNumbers[6],
7759    /* parameters */ &kParameters[578],
7760    /* return matcher indices */ &kMatcherIndices[55],
7761    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
7762    /* is_deprecated */ false,
7763  },
7764  {
7765    /* [215] */
7766    /* num parameters */ 2,
7767    /* num open types */ 0,
7768    /* num open numbers */ 0,
7769    /* open types */ &kOpenTypes[4],
7770    /* open numbers */ &kOpenNumbers[6],
7771    /* parameters */ &kParameters[485],
7772    /* return matcher indices */ &kMatcherIndices[12],
7773    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
7774    /* is_deprecated */ false,
7775  },
7776  {
7777    /* [216] */
7778    /* num parameters */ 2,
7779    /* num open types */ 0,
7780    /* num open numbers */ 1,
7781    /* open types */ &kOpenTypes[4],
7782    /* open numbers */ &kOpenNumbers[3],
7783    /* parameters */ &kParameters[483],
7784    /* return matcher indices */ &kMatcherIndices[21],
7785    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
7786    /* is_deprecated */ false,
7787  },
7788  {
7789    /* [217] */
7790    /* num parameters */ 1,
7791    /* num open types */ 0,
7792    /* num open numbers */ 0,
7793    /* open types */ &kOpenTypes[4],
7794    /* open numbers */ &kOpenNumbers[6],
7795    /* parameters */ &kParameters[654],
7796    /* return matcher indices */ &kMatcherIndices[12],
7797    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
7798    /* is_deprecated */ false,
7799  },
7800  {
7801    /* [218] */
7802    /* num parameters */ 1,
7803    /* num open types */ 0,
7804    /* num open numbers */ 1,
7805    /* open types */ &kOpenTypes[4],
7806    /* open numbers */ &kOpenNumbers[3],
7807    /* parameters */ &kParameters[653],
7808    /* return matcher indices */ &kMatcherIndices[21],
7809    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
7810    /* is_deprecated */ false,
7811  },
7812  {
7813    /* [219] */
7814    /* num parameters */ 1,
7815    /* num open types */ 0,
7816    /* num open numbers */ 0,
7817    /* open types */ &kOpenTypes[4],
7818    /* open numbers */ &kOpenNumbers[6],
7819    /* parameters */ &kParameters[656],
7820    /* return matcher indices */ &kMatcherIndices[12],
7821    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
7822    /* is_deprecated */ false,
7823  },
7824  {
7825    /* [220] */
7826    /* num parameters */ 1,
7827    /* num open types */ 0,
7828    /* num open numbers */ 1,
7829    /* open types */ &kOpenTypes[4],
7830    /* open numbers */ &kOpenNumbers[3],
7831    /* parameters */ &kParameters[655],
7832    /* return matcher indices */ &kMatcherIndices[21],
7833    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
7834    /* is_deprecated */ false,
7835  },
7836  {
7837    /* [221] */
7838    /* num parameters */ 2,
7839    /* num open types */ 0,
7840    /* num open numbers */ 0,
7841    /* open types */ &kOpenTypes[4],
7842    /* open numbers */ &kOpenNumbers[6],
7843    /* parameters */ &kParameters[475],
7844    /* return matcher indices */ &kMatcherIndices[12],
7845    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
7846    /* is_deprecated */ false,
7847  },
7848  {
7849    /* [222] */
7850    /* num parameters */ 2,
7851    /* num open types */ 0,
7852    /* num open numbers */ 1,
7853    /* open types */ &kOpenTypes[4],
7854    /* open numbers */ &kOpenNumbers[3],
7855    /* parameters */ &kParameters[467],
7856    /* return matcher indices */ &kMatcherIndices[21],
7857    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
7858    /* is_deprecated */ false,
7859  },
7860  {
7861    /* [223] */
7862    /* num parameters */ 1,
7863    /* num open types */ 0,
7864    /* num open numbers */ 0,
7865    /* open types */ &kOpenTypes[4],
7866    /* open numbers */ &kOpenNumbers[6],
7867    /* parameters */ &kParameters[660],
7868    /* return matcher indices */ &kMatcherIndices[10],
7869    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
7870    /* is_deprecated */ false,
7871  },
7872  {
7873    /* [224] */
7874    /* num parameters */ 1,
7875    /* num open types */ 0,
7876    /* num open numbers */ 1,
7877    /* open types */ &kOpenTypes[4],
7878    /* open numbers */ &kOpenNumbers[3],
7879    /* parameters */ &kParameters[659],
7880    /* return matcher indices */ &kMatcherIndices[10],
7881    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
7882    /* is_deprecated */ false,
7883  },
7884  {
7885    /* [225] */
7886    /* num parameters */ 1,
7887    /* num open types */ 0,
7888    /* num open numbers */ 0,
7889    /* open types */ &kOpenTypes[4],
7890    /* open numbers */ &kOpenNumbers[6],
7891    /* parameters */ &kParameters[662],
7892    /* return matcher indices */ &kMatcherIndices[10],
7893    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
7894    /* is_deprecated */ false,
7895  },
7896  {
7897    /* [226] */
7898    /* num parameters */ 1,
7899    /* num open types */ 0,
7900    /* num open numbers */ 1,
7901    /* open types */ &kOpenTypes[4],
7902    /* open numbers */ &kOpenNumbers[3],
7903    /* parameters */ &kParameters[661],
7904    /* return matcher indices */ &kMatcherIndices[10],
7905    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
7906    /* is_deprecated */ false,
7907  },
7908  {
7909    /* [227] */
7910    /* num parameters */ 1,
7911    /* num open types */ 1,
7912    /* num open numbers */ 0,
7913    /* open types */ &kOpenTypes[1],
7914    /* open numbers */ &kOpenNumbers[6],
7915    /* parameters */ &kParameters[590],
7916    /* return matcher indices */ &kMatcherIndices[1],
7917    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
7918    /* is_deprecated */ false,
7919  },
7920  {
7921    /* [228] */
7922    /* num parameters */ 1,
7923    /* num open types */ 1,
7924    /* num open numbers */ 1,
7925    /* open types */ &kOpenTypes[1],
7926    /* open numbers */ &kOpenNumbers[3],
7927    /* parameters */ &kParameters[589],
7928    /* return matcher indices */ &kMatcherIndices[30],
7929    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
7930    /* is_deprecated */ false,
7931  },
7932  {
7933    /* [229] */
7934    /* num parameters */ 1,
7935    /* num open types */ 0,
7936    /* num open numbers */ 0,
7937    /* open types */ &kOpenTypes[4],
7938    /* open numbers */ &kOpenNumbers[6],
7939    /* parameters */ &kParameters[588],
7940    /* return matcher indices */ &kMatcherIndices[12],
7941    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
7942    /* is_deprecated */ false,
7943  },
7944  {
7945    /* [230] */
7946    /* num parameters */ 1,
7947    /* num open types */ 0,
7948    /* num open numbers */ 1,
7949    /* open types */ &kOpenTypes[4],
7950    /* open numbers */ &kOpenNumbers[3],
7951    /* parameters */ &kParameters[587],
7952    /* return matcher indices */ &kMatcherIndices[21],
7953    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
7954    /* is_deprecated */ false,
7955  },
7956  {
7957    /* [231] */
7958    /* num parameters */ 1,
7959    /* num open types */ 0,
7960    /* num open numbers */ 0,
7961    /* open types */ &kOpenTypes[4],
7962    /* open numbers */ &kOpenNumbers[6],
7963    /* parameters */ &kParameters[664],
7964    /* return matcher indices */ &kMatcherIndices[12],
7965    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
7966    /* is_deprecated */ false,
7967  },
7968  {
7969    /* [232] */
7970    /* num parameters */ 1,
7971    /* num open types */ 0,
7972    /* num open numbers */ 1,
7973    /* open types */ &kOpenTypes[4],
7974    /* open numbers */ &kOpenNumbers[3],
7975    /* parameters */ &kParameters[663],
7976    /* return matcher indices */ &kMatcherIndices[21],
7977    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
7978    /* is_deprecated */ false,
7979  },
7980  {
7981    /* [233] */
7982    /* num parameters */ 1,
7983    /* num open types */ 0,
7984    /* num open numbers */ 0,
7985    /* open types */ &kOpenTypes[4],
7986    /* open numbers */ &kOpenNumbers[6],
7987    /* parameters */ &kParameters[586],
7988    /* return matcher indices */ &kMatcherIndices[12],
7989    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
7990    /* is_deprecated */ false,
7991  },
7992  {
7993    /* [234] */
7994    /* num parameters */ 1,
7995    /* num open types */ 0,
7996    /* num open numbers */ 1,
7997    /* open types */ &kOpenTypes[4],
7998    /* open numbers */ &kOpenNumbers[3],
7999    /* parameters */ &kParameters[585],
8000    /* return matcher indices */ &kMatcherIndices[21],
8001    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
8002    /* is_deprecated */ false,
8003  },
8004  {
8005    /* [235] */
8006    /* num parameters */ 1,
8007    /* num open types */ 0,
8008    /* num open numbers */ 0,
8009    /* open types */ &kOpenTypes[4],
8010    /* open numbers */ &kOpenNumbers[6],
8011    /* parameters */ &kParameters[584],
8012    /* return matcher indices */ &kMatcherIndices[12],
8013    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
8014    /* is_deprecated */ false,
8015  },
8016  {
8017    /* [236] */
8018    /* num parameters */ 1,
8019    /* num open types */ 0,
8020    /* num open numbers */ 1,
8021    /* open types */ &kOpenTypes[4],
8022    /* open numbers */ &kOpenNumbers[3],
8023    /* parameters */ &kParameters[583],
8024    /* return matcher indices */ &kMatcherIndices[21],
8025    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
8026    /* is_deprecated */ false,
8027  },
8028  {
8029    /* [237] */
8030    /* num parameters */ 1,
8031    /* num open types */ 0,
8032    /* num open numbers */ 0,
8033    /* open types */ &kOpenTypes[4],
8034    /* open numbers */ &kOpenNumbers[6],
8035    /* parameters */ &kParameters[582],
8036    /* return matcher indices */ &kMatcherIndices[12],
8037    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
8038    /* is_deprecated */ false,
8039  },
8040  {
8041    /* [238] */
8042    /* num parameters */ 1,
8043    /* num open types */ 0,
8044    /* num open numbers */ 1,
8045    /* open types */ &kOpenTypes[4],
8046    /* open numbers */ &kOpenNumbers[3],
8047    /* parameters */ &kParameters[581],
8048    /* return matcher indices */ &kMatcherIndices[21],
8049    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
8050    /* is_deprecated */ false,
8051  },
8052  {
8053    /* [239] */
8054    /* num parameters */ 1,
8055    /* num open types */ 0,
8056    /* num open numbers */ 0,
8057    /* open types */ &kOpenTypes[4],
8058    /* open numbers */ &kOpenNumbers[6],
8059    /* parameters */ &kParameters[556],
8060    /* return matcher indices */ &kMatcherIndices[12],
8061    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
8062    /* is_deprecated */ false,
8063  },
8064  {
8065    /* [240] */
8066    /* num parameters */ 1,
8067    /* num open types */ 0,
8068    /* num open numbers */ 1,
8069    /* open types */ &kOpenTypes[4],
8070    /* open numbers */ &kOpenNumbers[3],
8071    /* parameters */ &kParameters[555],
8072    /* return matcher indices */ &kMatcherIndices[21],
8073    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
8074    /* is_deprecated */ false,
8075  },
8076  {
8077    /* [241] */
8078    /* num parameters */ 1,
8079    /* num open types */ 0,
8080    /* num open numbers */ 0,
8081    /* open types */ &kOpenTypes[4],
8082    /* open numbers */ &kOpenNumbers[6],
8083    /* parameters */ &kParameters[580],
8084    /* return matcher indices */ &kMatcherIndices[12],
8085    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
8086    /* is_deprecated */ false,
8087  },
8088  {
8089    /* [242] */
8090    /* num parameters */ 1,
8091    /* num open types */ 0,
8092    /* num open numbers */ 1,
8093    /* open types */ &kOpenTypes[4],
8094    /* open numbers */ &kOpenNumbers[3],
8095    /* parameters */ &kParameters[579],
8096    /* return matcher indices */ &kMatcherIndices[21],
8097    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
8098    /* is_deprecated */ false,
8099  },
8100  {
8101    /* [243] */
8102    /* num parameters */ 2,
8103    /* num open types */ 0,
8104    /* num open numbers */ 0,
8105    /* open types */ &kOpenTypes[4],
8106    /* open numbers */ &kOpenNumbers[6],
8107    /* parameters */ &kParameters[469],
8108    /* return matcher indices */ &kMatcherIndices[12],
8109    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
8110    /* is_deprecated */ false,
8111  },
8112  {
8113    /* [244] */
8114    /* num parameters */ 2,
8115    /* num open types */ 0,
8116    /* num open numbers */ 1,
8117    /* open types */ &kOpenTypes[4],
8118    /* open numbers */ &kOpenNumbers[3],
8119    /* parameters */ &kParameters[471],
8120    /* return matcher indices */ &kMatcherIndices[21],
8121    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
8122    /* is_deprecated */ false,
8123  },
8124  {
8125    /* [245] */
8126    /* num parameters */ 1,
8127    /* num open types */ 0,
8128    /* num open numbers */ 0,
8129    /* open types */ &kOpenTypes[4],
8130    /* open numbers */ &kOpenNumbers[6],
8131    /* parameters */ &kParameters[559],
8132    /* return matcher indices */ &kMatcherIndices[12],
8133    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
8134    /* is_deprecated */ false,
8135  },
8136  {
8137    /* [246] */
8138    /* num parameters */ 1,
8139    /* num open types */ 0,
8140    /* num open numbers */ 1,
8141    /* open types */ &kOpenTypes[4],
8142    /* open numbers */ &kOpenNumbers[3],
8143    /* parameters */ &kParameters[558],
8144    /* return matcher indices */ &kMatcherIndices[21],
8145    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
8146    /* is_deprecated */ false,
8147  },
8148  {
8149    /* [247] */
8150    /* num parameters */ 3,
8151    /* num open types */ 0,
8152    /* num open numbers */ 0,
8153    /* open types */ &kOpenTypes[4],
8154    /* open numbers */ &kOpenNumbers[6],
8155    /* parameters */ &kParameters[342],
8156    /* return matcher indices */ &kMatcherIndices[12],
8157    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
8158    /* is_deprecated */ false,
8159  },
8160  {
8161    /* [248] */
8162    /* num parameters */ 3,
8163    /* num open types */ 0,
8164    /* num open numbers */ 1,
8165    /* open types */ &kOpenTypes[4],
8166    /* open numbers */ &kOpenNumbers[3],
8167    /* parameters */ &kParameters[426],
8168    /* return matcher indices */ &kMatcherIndices[21],
8169    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
8170    /* is_deprecated */ false,
8171  },
8172  {
8173    /* [249] */
8174    /* num parameters */ 1,
8175    /* num open types */ 1,
8176    /* num open numbers */ 0,
8177    /* open types */ &kOpenTypes[0],
8178    /* open numbers */ &kOpenNumbers[6],
8179    /* parameters */ &kParameters[666],
8180    /* return matcher indices */ &kMatcherIndices[1],
8181    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
8182    /* is_deprecated */ false,
8183  },
8184  {
8185    /* [250] */
8186    /* num parameters */ 1,
8187    /* num open types */ 1,
8188    /* num open numbers */ 1,
8189    /* open types */ &kOpenTypes[0],
8190    /* open numbers */ &kOpenNumbers[3],
8191    /* parameters */ &kParameters[665],
8192    /* return matcher indices */ &kMatcherIndices[30],
8193    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
8194    /* is_deprecated */ false,
8195  },
8196  {
8197    /* [251] */
8198    /* num parameters */ 1,
8199    /* num open types */ 1,
8200    /* num open numbers */ 0,
8201    /* open types */ &kOpenTypes[2],
8202    /* open numbers */ &kOpenNumbers[6],
8203    /* parameters */ &kParameters[615],
8204    /* return matcher indices */ nullptr,
8205    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
8206    /* is_deprecated */ true,
8207  },
8208  {
8209    /* [252] */
8210    /* num parameters */ 1,
8211    /* num open types */ 0,
8212    /* num open numbers */ 0,
8213    /* open types */ &kOpenTypes[4],
8214    /* open numbers */ &kOpenNumbers[6],
8215    /* parameters */ &kParameters[593],
8216    /* return matcher indices */ &kMatcherIndices[43],
8217    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
8218    /* is_deprecated */ false,
8219  },
8220  {
8221    /* [253] */
8222    /* num parameters */ 1,
8223    /* num open types */ 0,
8224    /* num open numbers */ 0,
8225    /* open types */ &kOpenTypes[4],
8226    /* open numbers */ &kOpenNumbers[6],
8227    /* parameters */ &kParameters[554],
8228    /* return matcher indices */ &kMatcherIndices[91],
8229    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
8230    /* is_deprecated */ false,
8231  },
8232  {
8233    /* [254] */
8234    /* num parameters */ 1,
8235    /* num open types */ 0,
8236    /* num open numbers */ 0,
8237    /* open types */ &kOpenTypes[4],
8238    /* open numbers */ &kOpenNumbers[6],
8239    /* parameters */ &kParameters[553],
8240    /* return matcher indices */ &kMatcherIndices[91],
8241    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
8242    /* is_deprecated */ false,
8243  },
8244  {
8245    /* [255] */
8246    /* num parameters */ 1,
8247    /* num open types */ 0,
8248    /* num open numbers */ 0,
8249    /* open types */ &kOpenTypes[4],
8250    /* open numbers */ &kOpenNumbers[6],
8251    /* parameters */ &kParameters[552],
8252    /* return matcher indices */ &kMatcherIndices[91],
8253    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
8254    /* is_deprecated */ false,
8255  },
8256  {
8257    /* [256] */
8258    /* num parameters */ 1,
8259    /* num open types */ 0,
8260    /* num open numbers */ 0,
8261    /* open types */ &kOpenTypes[4],
8262    /* open numbers */ &kOpenNumbers[6],
8263    /* parameters */ &kParameters[551],
8264    /* return matcher indices */ &kMatcherIndices[87],
8265    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
8266    /* is_deprecated */ false,
8267  },
8268  {
8269    /* [257] */
8270    /* num parameters */ 1,
8271    /* num open types */ 0,
8272    /* num open numbers */ 0,
8273    /* open types */ &kOpenTypes[4],
8274    /* open numbers */ &kOpenNumbers[6],
8275    /* parameters */ &kParameters[550],
8276    /* return matcher indices */ &kMatcherIndices[87],
8277    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
8278    /* is_deprecated */ false,
8279  },
8280  {
8281    /* [258] */
8282    /* num parameters */ 0,
8283    /* num open types */ 0,
8284    /* num open numbers */ 0,
8285    /* open types */ &kOpenTypes[4],
8286    /* open numbers */ &kOpenNumbers[6],
8287    /* parameters */ &kParameters[667],
8288    /* return matcher indices */ nullptr,
8289    /* supported_stages */ PipelineStageSet(PipelineStage::kCompute),
8290    /* is_deprecated */ false,
8291  },
8292  {
8293    /* [259] */
8294    /* num parameters */ 3,
8295    /* num open types */ 1,
8296    /* num open numbers */ 1,
8297    /* open types */ &kOpenTypes[1],
8298    /* open numbers */ &kOpenNumbers[5],
8299    /* parameters */ &kParameters[387],
8300    /* return matcher indices */ &kMatcherIndices[105],
8301    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment, PipelineStage::kCompute),
8302    /* is_deprecated */ false,
8303  },
8304  {
8305    /* [260] */
8306    /* num parameters */ 3,
8307    /* num open types */ 0,
8308    /* num open numbers */ 1,
8309    /* open types */ &kOpenTypes[4],
8310    /* open numbers */ &kOpenNumbers[3],
8311    /* parameters */ &kParameters[420],
8312    /* return matcher indices */ &kMatcherIndices[21],
8313    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
8314    /* is_deprecated */ false,
8315  },
8316  {
8317    /* [261] */
8318    /* num parameters */ 2,
8319    /* num open types */ 0,
8320    /* num open numbers */ 1,
8321    /* open types */ &kOpenTypes[4],
8322    /* open numbers */ &kOpenNumbers[3],
8323    /* parameters */ &kParameters[465],
8324    /* return matcher indices */ &kMatcherIndices[21],
8325    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
8326    /* is_deprecated */ false,
8327  },
8328  {
8329    /* [262] */
8330    /* num parameters */ 1,
8331    /* num open types */ 0,
8332    /* num open numbers */ 0,
8333    /* open types */ &kOpenTypes[4],
8334    /* open numbers */ &kOpenNumbers[6],
8335    /* parameters */ &kParameters[591],
8336    /* return matcher indices */ &kMatcherIndices[43],
8337    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
8338    /* is_deprecated */ false,
8339  },
8340  {
8341    /* [263] */
8342    /* num parameters */ 1,
8343    /* num open types */ 0,
8344    /* num open numbers */ 0,
8345    /* open types */ &kOpenTypes[4],
8346    /* open numbers */ &kOpenNumbers[6],
8347    /* parameters */ &kParameters[592],
8348    /* return matcher indices */ &kMatcherIndices[43],
8349    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
8350    /* is_deprecated */ false,
8351  },
8352  {
8353    /* [264] */
8354    /* num parameters */ 1,
8355    /* num open types */ 0,
8356    /* num open numbers */ 0,
8357    /* open types */ &kOpenTypes[4],
8358    /* open numbers */ &kOpenNumbers[6],
8359    /* parameters */ &kParameters[594],
8360    /* return matcher indices */ &kMatcherIndices[43],
8361    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
8362    /* is_deprecated */ false,
8363  },
8364  {
8365    /* [265] */
8366    /* num parameters */ 1,
8367    /* num open types */ 0,
8368    /* num open numbers */ 0,
8369    /* open types */ &kOpenTypes[4],
8370    /* open numbers */ &kOpenNumbers[6],
8371    /* parameters */ &kParameters[595],
8372    /* return matcher indices */ &kMatcherIndices[43],
8373    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
8374    /* is_deprecated */ false,
8375  },
8376  {
8377    /* [266] */
8378    /* num parameters */ 1,
8379    /* num open types */ 0,
8380    /* num open numbers */ 1,
8381    /* open types */ &kOpenTypes[4],
8382    /* open numbers */ &kOpenNumbers[3],
8383    /* parameters */ &kParameters[596],
8384    /* return matcher indices */ &kMatcherIndices[21],
8385    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
8386    /* is_deprecated */ false,
8387  },
8388  {
8389    /* [267] */
8390    /* num parameters */ 1,
8391    /* num open types */ 0,
8392    /* num open numbers */ 2,
8393    /* open types */ &kOpenTypes[4],
8394    /* open numbers */ &kOpenNumbers[2],
8395    /* parameters */ &kParameters[557],
8396    /* return matcher indices */ &kMatcherIndices[9],
8397    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
8398    /* is_deprecated */ false,
8399  },
8400  {
8401    /* [268] */
8402    /* num parameters */ 3,
8403    /* num open types */ 0,
8404    /* num open numbers */ 1,
8405    /* open types */ &kOpenTypes[4],
8406    /* open numbers */ &kOpenNumbers[3],
8407    /* parameters */ &kParameters[354],
8408    /* return matcher indices */ &kMatcherIndices[21],
8409    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
8410    /* is_deprecated */ false,
8411  },
8412  {
8413    /* [269] */
8414    /* num parameters */ 2,
8415    /* num open types */ 1,
8416    /* num open numbers */ 1,
8417    /* open types */ &kOpenTypes[0],
8418    /* open numbers */ &kOpenNumbers[3],
8419    /* parameters */ &kParameters[481],
8420    /* return matcher indices */ &kMatcherIndices[1],
8421    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
8422    /* is_deprecated */ false,
8423  },
8424  {
8425    /* [270] */
8426    /* num parameters */ 1,
8427    /* num open types */ 0,
8428    /* num open numbers */ 1,
8429    /* open types */ &kOpenTypes[4],
8430    /* open numbers */ &kOpenNumbers[3],
8431    /* parameters */ &kParameters[644],
8432    /* return matcher indices */ &kMatcherIndices[12],
8433    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
8434    /* is_deprecated */ false,
8435  },
8436  {
8437    /* [271] */
8438    /* num parameters */ 2,
8439    /* num open types */ 0,
8440    /* num open numbers */ 0,
8441    /* open types */ &kOpenTypes[4],
8442    /* open numbers */ &kOpenNumbers[6],
8443    /* parameters */ &kParameters[463],
8444    /* return matcher indices */ &kMatcherIndices[83],
8445    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
8446    /* is_deprecated */ false,
8447  },
8448  {
8449    /* [272] */
8450    /* num parameters */ 1,
8451    /* num open types */ 1,
8452    /* num open numbers */ 1,
8453    /* open types */ &kOpenTypes[2],
8454    /* open numbers */ &kOpenNumbers[4],
8455    /* parameters */ &kParameters[657],
8456    /* return matcher indices */ &kMatcherIndices[43],
8457    /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
8458    /* is_deprecated */ false,
8459  },
8460  {
8461    /* [273] */
8462    /* num parameters */ 1,
8463    /* num open types */ 1,
8464    /* num open numbers */ 1,
8465    /* open types */ &kOpenTypes[1],
8466    /* open numbers */ &kOpenNumbers[5],
8467    /* parameters */ &kParameters[658],
8468    /* return matcher indices */ &kMatcherIndices[1],
8469    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment, PipelineStage::kCompute),
8470    /* is_deprecated */ false,
8471  },
8472  {
8473    /* [274] */
8474    /* num parameters */ 2,
8475    /* num open types */ 1,
8476    /* num open numbers */ 1,
8477    /* open types */ &kOpenTypes[1],
8478    /* open numbers */ &kOpenNumbers[5],
8479    /* parameters */ &kParameters[501],
8480    /* return matcher indices */ nullptr,
8481    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment, PipelineStage::kCompute),
8482    /* is_deprecated */ false,
8483  },
8484  {
8485    /* [275] */
8486    /* num parameters */ 2,
8487    /* num open types */ 1,
8488    /* num open numbers */ 1,
8489    /* open types */ &kOpenTypes[1],
8490    /* open numbers */ &kOpenNumbers[5],
8491    /* parameters */ &kParameters[505],
8492    /* return matcher indices */ &kMatcherIndices[1],
8493    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment, PipelineStage::kCompute),
8494    /* is_deprecated */ false,
8495  },
8496  {
8497    /* [276] */
8498    /* num parameters */ 2,
8499    /* num open types */ 1,
8500    /* num open numbers */ 1,
8501    /* open types */ &kOpenTypes[1],
8502    /* open numbers */ &kOpenNumbers[5],
8503    /* parameters */ &kParameters[509],
8504    /* return matcher indices */ &kMatcherIndices[1],
8505    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment, PipelineStage::kCompute),
8506    /* is_deprecated */ false,
8507  },
8508  {
8509    /* [277] */
8510    /* num parameters */ 2,
8511    /* num open types */ 1,
8512    /* num open numbers */ 1,
8513    /* open types */ &kOpenTypes[1],
8514    /* open numbers */ &kOpenNumbers[5],
8515    /* parameters */ &kParameters[531],
8516    /* return matcher indices */ &kMatcherIndices[1],
8517    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment, PipelineStage::kCompute),
8518    /* is_deprecated */ false,
8519  },
8520  {
8521    /* [278] */
8522    /* num parameters */ 2,
8523    /* num open types */ 1,
8524    /* num open numbers */ 1,
8525    /* open types */ &kOpenTypes[1],
8526    /* open numbers */ &kOpenNumbers[5],
8527    /* parameters */ &kParameters[517],
8528    /* return matcher indices */ &kMatcherIndices[1],
8529    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment, PipelineStage::kCompute),
8530    /* is_deprecated */ false,
8531  },
8532  {
8533    /* [279] */
8534    /* num parameters */ 2,
8535    /* num open types */ 1,
8536    /* num open numbers */ 1,
8537    /* open types */ &kOpenTypes[1],
8538    /* open numbers */ &kOpenNumbers[5],
8539    /* parameters */ &kParameters[521],
8540    /* return matcher indices */ &kMatcherIndices[1],
8541    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment, PipelineStage::kCompute),
8542    /* is_deprecated */ false,
8543  },
8544  {
8545    /* [280] */
8546    /* num parameters */ 2,
8547    /* num open types */ 1,
8548    /* num open numbers */ 1,
8549    /* open types */ &kOpenTypes[1],
8550    /* open numbers */ &kOpenNumbers[5],
8551    /* parameters */ &kParameters[525],
8552    /* return matcher indices */ &kMatcherIndices[1],
8553    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment, PipelineStage::kCompute),
8554    /* is_deprecated */ false,
8555  },
8556  {
8557    /* [281] */
8558    /* num parameters */ 2,
8559    /* num open types */ 1,
8560    /* num open numbers */ 1,
8561    /* open types */ &kOpenTypes[1],
8562    /* open numbers */ &kOpenNumbers[5],
8563    /* parameters */ &kParameters[499],
8564    /* return matcher indices */ &kMatcherIndices[1],
8565    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment, PipelineStage::kCompute),
8566    /* is_deprecated */ false,
8567  },
8568  {
8569    /* [282] */
8570    /* num parameters */ 2,
8571    /* num open types */ 1,
8572    /* num open numbers */ 1,
8573    /* open types */ &kOpenTypes[1],
8574    /* open numbers */ &kOpenNumbers[5],
8575    /* parameters */ &kParameters[473],
8576    /* return matcher indices */ &kMatcherIndices[1],
8577    /* supported_stages */ PipelineStageSet(PipelineStage::kFragment, PipelineStage::kCompute),
8578    /* is_deprecated */ false,
8579  },
8580  {
8581    /* [283] */
8582    /* num parameters */ 0,
8583    /* num open types */ 0,
8584    /* num open numbers */ 0,
8585    /* open types */ &kOpenTypes[4],
8586    /* open numbers */ &kOpenNumbers[6],
8587    /* parameters */ &kParameters[667],
8588    /* return matcher indices */ nullptr,
8589    /* supported_stages */ PipelineStageSet(PipelineStage::kCompute),
8590    /* is_deprecated */ false,
8591  },
8592};
8593
8594constexpr IntrinsicInfo kIntrinsics[] = {
8595  {
8596    /* [0] */
8597    /* fn abs<T : fiu32>(T) -> T */
8598    /* fn abs<N : num, T : fiu32>(vec<N, T>) -> vec<N, T> */
8599    /* num overloads */ 2,
8600    /* overloads */ &kOverloads[249],
8601  },
8602  {
8603    /* [1] */
8604    /* fn acos(f32) -> f32 */
8605    /* fn acos<N : num>(vec<N, f32>) -> vec<N, f32> */
8606    /* num overloads */ 2,
8607    /* overloads */ &kOverloads[231],
8608  },
8609  {
8610    /* [2] */
8611    /* fn all(bool) -> bool */
8612    /* fn all<N : num>(vec<N, bool>) -> bool */
8613    /* num overloads */ 2,
8614    /* overloads */ &kOverloads[225],
8615  },
8616  {
8617    /* [3] */
8618    /* fn any(bool) -> bool */
8619    /* fn any<N : num>(vec<N, bool>) -> bool */
8620    /* num overloads */ 2,
8621    /* overloads */ &kOverloads[223],
8622  },
8623  {
8624    /* [4] */
8625    /* fn arrayLength<T, A : access>(ptr<storage, array<T>, A>) -> u32 */
8626    /* num overloads */ 1,
8627    /* overloads */ &kOverloads[272],
8628  },
8629  {
8630    /* [5] */
8631    /* fn asin(f32) -> f32 */
8632    /* fn asin<N : num>(vec<N, f32>) -> vec<N, f32> */
8633    /* num overloads */ 2,
8634    /* overloads */ &kOverloads[219],
8635  },
8636  {
8637    /* [6] */
8638    /* fn atan(f32) -> f32 */
8639    /* fn atan<N : num>(vec<N, f32>) -> vec<N, f32> */
8640    /* num overloads */ 2,
8641    /* overloads */ &kOverloads[217],
8642  },
8643  {
8644    /* [7] */
8645    /* fn atan2(f32, f32) -> f32 */
8646    /* fn atan2<N : num>(vec<N, f32>, vec<N, f32>) -> vec<N, f32> */
8647    /* num overloads */ 2,
8648    /* overloads */ &kOverloads[215],
8649  },
8650  {
8651    /* [8] */
8652    /* fn ceil(f32) -> f32 */
8653    /* fn ceil<N : num>(vec<N, f32>) -> vec<N, f32> */
8654    /* num overloads */ 2,
8655    /* overloads */ &kOverloads[145],
8656  },
8657  {
8658    /* [9] */
8659    /* fn clamp<T : fiu32>(T, T, T) -> T */
8660    /* fn clamp<N : num, T : fiu32>(vec<N, T>, vec<N, T>, vec<N, T>) -> vec<N, T> */
8661    /* num overloads */ 2,
8662    /* overloads */ &kOverloads[211],
8663  },
8664  {
8665    /* [10] */
8666    /* fn cos(f32) -> f32 */
8667    /* fn cos<N : num>(vec<N, f32>) -> vec<N, f32> */
8668    /* num overloads */ 2,
8669    /* overloads */ &kOverloads[209],
8670  },
8671  {
8672    /* [11] */
8673    /* fn cosh(f32) -> f32 */
8674    /* fn cosh<N : num>(vec<N, f32>) -> vec<N, f32> */
8675    /* num overloads */ 2,
8676    /* overloads */ &kOverloads[205],
8677  },
8678  {
8679    /* [12] */
8680    /* fn countOneBits<T : iu32>(T) -> T */
8681    /* fn countOneBits<N : num, T : iu32>(vec<N, T>) -> vec<N, T> */
8682    /* num overloads */ 2,
8683    /* overloads */ &kOverloads[181],
8684  },
8685  {
8686    /* [13] */
8687    /* fn cross(vec3<f32>, vec3<f32>) -> vec3<f32> */
8688    /* num overloads */ 1,
8689    /* overloads */ &kOverloads[271],
8690  },
8691  {
8692    /* [14] */
8693    /* fn determinant<N : num>(mat<N, N, f32>) -> f32 */
8694    /* num overloads */ 1,
8695    /* overloads */ &kOverloads[270],
8696  },
8697  {
8698    /* [15] */
8699    /* fn distance(f32, f32) -> f32 */
8700    /* fn distance<N : num>(vec<N, f32>, vec<N, f32>) -> f32 */
8701    /* num overloads */ 2,
8702    /* overloads */ &kOverloads[165],
8703  },
8704  {
8705    /* [16] */
8706    /* fn dot<N : num, T : fiu32>(vec<N, T>, vec<N, T>) -> T */
8707    /* num overloads */ 1,
8708    /* overloads */ &kOverloads[269],
8709  },
8710  {
8711    /* [17] */
8712    /* fn dpdx(f32) -> f32 */
8713    /* fn dpdx<N : num>(vec<N, f32>) -> vec<N, f32> */
8714    /* num overloads */ 2,
8715    /* overloads */ &kOverloads[149],
8716  },
8717  {
8718    /* [18] */
8719    /* fn dpdxCoarse(f32) -> f32 */
8720    /* fn dpdxCoarse<N : num>(vec<N, f32>) -> vec<N, f32> */
8721    /* num overloads */ 2,
8722    /* overloads */ &kOverloads[151],
8723  },
8724  {
8725    /* [19] */
8726    /* fn dpdxFine(f32) -> f32 */
8727    /* fn dpdxFine<N : num>(vec<N, f32>) -> vec<N, f32> */
8728    /* num overloads */ 2,
8729    /* overloads */ &kOverloads[153],
8730  },
8731  {
8732    /* [20] */
8733    /* fn dpdy(f32) -> f32 */
8734    /* fn dpdy<N : num>(vec<N, f32>) -> vec<N, f32> */
8735    /* num overloads */ 2,
8736    /* overloads */ &kOverloads[155],
8737  },
8738  {
8739    /* [21] */
8740    /* fn dpdyCoarse(f32) -> f32 */
8741    /* fn dpdyCoarse<N : num>(vec<N, f32>) -> vec<N, f32> */
8742    /* num overloads */ 2,
8743    /* overloads */ &kOverloads[157],
8744  },
8745  {
8746    /* [22] */
8747    /* fn dpdyFine(f32) -> f32 */
8748    /* fn dpdyFine<N : num>(vec<N, f32>) -> vec<N, f32> */
8749    /* num overloads */ 2,
8750    /* overloads */ &kOverloads[159],
8751  },
8752  {
8753    /* [23] */
8754    /* fn exp(f32) -> f32 */
8755    /* fn exp<N : num>(vec<N, f32>) -> vec<N, f32> */
8756    /* num overloads */ 2,
8757    /* overloads */ &kOverloads[161],
8758  },
8759  {
8760    /* [24] */
8761    /* fn exp2(f32) -> f32 */
8762    /* fn exp2<N : num>(vec<N, f32>) -> vec<N, f32> */
8763    /* num overloads */ 2,
8764    /* overloads */ &kOverloads[163],
8765  },
8766  {
8767    /* [25] */
8768    /* fn faceForward<N : num>(vec<N, f32>, vec<N, f32>, vec<N, f32>) -> vec<N, f32> */
8769    /* num overloads */ 1,
8770    /* overloads */ &kOverloads[268],
8771  },
8772  {
8773    /* [26] */
8774    /* fn floor(f32) -> f32 */
8775    /* fn floor<N : num>(vec<N, f32>) -> vec<N, f32> */
8776    /* num overloads */ 2,
8777    /* overloads */ &kOverloads[167],
8778  },
8779  {
8780    /* [27] */
8781    /* fn fma(f32, f32, f32) -> f32 */
8782    /* fn fma<N : num>(vec<N, f32>, vec<N, f32>, vec<N, f32>) -> vec<N, f32> */
8783    /* num overloads */ 2,
8784    /* overloads */ &kOverloads[169],
8785  },
8786  {
8787    /* [28] */
8788    /* fn fract(f32) -> f32 */
8789    /* fn fract<N : num>(vec<N, f32>) -> vec<N, f32> */
8790    /* num overloads */ 2,
8791    /* overloads */ &kOverloads[171],
8792  },
8793  {
8794    /* [29] */
8795    /* fn frexp(f32) -> __frexp_result */
8796    /* fn frexp<N : num>(vec<N, f32>) -> __frexp_result_vec<N> */
8797    /* num overloads */ 2,
8798    /* overloads */ &kOverloads[173],
8799  },
8800  {
8801    /* [30] */
8802    /* fn fwidth(f32) -> f32 */
8803    /* fn fwidth<N : num>(vec<N, f32>) -> vec<N, f32> */
8804    /* num overloads */ 2,
8805    /* overloads */ &kOverloads[175],
8806  },
8807  {
8808    /* [31] */
8809    /* fn fwidthCoarse(f32) -> f32 */
8810    /* fn fwidthCoarse<N : num>(vec<N, f32>) -> vec<N, f32> */
8811    /* num overloads */ 2,
8812    /* overloads */ &kOverloads[177],
8813  },
8814  {
8815    /* [32] */
8816    /* fn fwidthFine(f32) -> f32 */
8817    /* fn fwidthFine<N : num>(vec<N, f32>) -> vec<N, f32> */
8818    /* num overloads */ 2,
8819    /* overloads */ &kOverloads[179],
8820  },
8821  {
8822    /* [33] */
8823    /* fn ignore<T>(T) */
8824    /* num overloads */ 1,
8825    /* overloads */ &kOverloads[251],
8826  },
8827  {
8828    /* [34] */
8829    /* fn inverseSqrt(f32) -> f32 */
8830    /* fn inverseSqrt<N : num>(vec<N, f32>) -> vec<N, f32> */
8831    /* num overloads */ 2,
8832    /* overloads */ &kOverloads[183],
8833  },
8834  {
8835    /* [35] */
8836    /* fn isFinite(f32) -> bool */
8837    /* fn isFinite<N : num>(vec<N, f32>) -> vec<N, bool> */
8838    /* num overloads */ 2,
8839    /* overloads */ &kOverloads[185],
8840  },
8841  {
8842    /* [36] */
8843    /* fn isInf(f32) -> bool */
8844    /* fn isInf<N : num>(vec<N, f32>) -> vec<N, bool> */
8845    /* num overloads */ 2,
8846    /* overloads */ &kOverloads[187],
8847  },
8848  {
8849    /* [37] */
8850    /* fn isNan(f32) -> bool */
8851    /* fn isNan<N : num>(vec<N, f32>) -> vec<N, bool> */
8852    /* num overloads */ 2,
8853    /* overloads */ &kOverloads[189],
8854  },
8855  {
8856    /* [38] */
8857    /* fn isNormal(f32) -> bool */
8858    /* fn isNormal<N : num>(vec<N, f32>) -> vec<N, bool> */
8859    /* num overloads */ 2,
8860    /* overloads */ &kOverloads[191],
8861  },
8862  {
8863    /* [39] */
8864    /* fn ldexp(f32, i32) -> f32 */
8865    /* fn ldexp<N : num>(vec<N, f32>, vec<N, i32>) -> vec<N, f32> */
8866    /* num overloads */ 2,
8867    /* overloads */ &kOverloads[193],
8868  },
8869  {
8870    /* [40] */
8871    /* fn length(f32) -> f32 */
8872    /* fn length<N : num>(vec<N, f32>) -> f32 */
8873    /* num overloads */ 2,
8874    /* overloads */ &kOverloads[195],
8875  },
8876  {
8877    /* [41] */
8878    /* fn log(f32) -> f32 */
8879    /* fn log<N : num>(vec<N, f32>) -> vec<N, f32> */
8880    /* num overloads */ 2,
8881    /* overloads */ &kOverloads[197],
8882  },
8883  {
8884    /* [42] */
8885    /* fn log2(f32) -> f32 */
8886    /* fn log2<N : num>(vec<N, f32>) -> vec<N, f32> */
8887    /* num overloads */ 2,
8888    /* overloads */ &kOverloads[199],
8889  },
8890  {
8891    /* [43] */
8892    /* fn max<T : fiu32>(T, T) -> T */
8893    /* fn max<N : num, T : fiu32>(vec<N, T>, vec<N, T>) -> vec<N, T> */
8894    /* num overloads */ 2,
8895    /* overloads */ &kOverloads[201],
8896  },
8897  {
8898    /* [44] */
8899    /* fn min<T : fiu32>(T, T) -> T */
8900    /* fn min<N : num, T : fiu32>(vec<N, T>, vec<N, T>) -> vec<N, T> */
8901    /* num overloads */ 2,
8902    /* overloads */ &kOverloads[203],
8903  },
8904  {
8905    /* [45] */
8906    /* fn mix(f32, f32, f32) -> f32 */
8907    /* fn mix<N : num>(vec<N, f32>, vec<N, f32>, vec<N, f32>) -> vec<N, f32> */
8908    /* fn mix<N : num>(vec<N, f32>, vec<N, f32>, f32) -> vec<N, f32> */
8909    /* num overloads */ 3,
8910    /* overloads */ &kOverloads[139],
8911  },
8912  {
8913    /* [46] */
8914    /* fn modf(f32) -> __modf_result */
8915    /* fn modf<N : num>(vec<N, f32>) -> __modf_result_vec<N> */
8916    /* num overloads */ 2,
8917    /* overloads */ &kOverloads[207],
8918  },
8919  {
8920    /* [47] */
8921    /* fn normalize<N : num>(vec<N, f32>) -> vec<N, f32> */
8922    /* num overloads */ 1,
8923    /* overloads */ &kOverloads[266],
8924  },
8925  {
8926    /* [48] */
8927    /* fn pack2x16float(vec2<f32>) -> u32 */
8928    /* num overloads */ 1,
8929    /* overloads */ &kOverloads[265],
8930  },
8931  {
8932    /* [49] */
8933    /* fn pack2x16snorm(vec2<f32>) -> u32 */
8934    /* num overloads */ 1,
8935    /* overloads */ &kOverloads[264],
8936  },
8937  {
8938    /* [50] */
8939    /* fn pack2x16unorm(vec2<f32>) -> u32 */
8940    /* num overloads */ 1,
8941    /* overloads */ &kOverloads[252],
8942  },
8943  {
8944    /* [51] */
8945    /* fn pack4x8snorm(vec4<f32>) -> u32 */
8946    /* num overloads */ 1,
8947    /* overloads */ &kOverloads[263],
8948  },
8949  {
8950    /* [52] */
8951    /* fn pack4x8unorm(vec4<f32>) -> u32 */
8952    /* num overloads */ 1,
8953    /* overloads */ &kOverloads[262],
8954  },
8955  {
8956    /* [53] */
8957    /* fn pow(f32, f32) -> f32 */
8958    /* fn pow<N : num>(vec<N, f32>, vec<N, f32>) -> vec<N, f32> */
8959    /* num overloads */ 2,
8960    /* overloads */ &kOverloads[221],
8961  },
8962  {
8963    /* [54] */
8964    /* fn reflect<N : num>(vec<N, f32>, vec<N, f32>) -> vec<N, f32> */
8965    /* num overloads */ 1,
8966    /* overloads */ &kOverloads[261],
8967  },
8968  {
8969    /* [55] */
8970    /* fn refract<N : num>(vec<N, f32>, vec<N, f32>, f32) -> vec<N, f32> */
8971    /* num overloads */ 1,
8972    /* overloads */ &kOverloads[260],
8973  },
8974  {
8975    /* [56] */
8976    /* fn reverseBits<T : iu32>(T) -> T */
8977    /* fn reverseBits<N : num, T : iu32>(vec<N, T>) -> vec<N, T> */
8978    /* num overloads */ 2,
8979    /* overloads */ &kOverloads[227],
8980  },
8981  {
8982    /* [57] */
8983    /* fn round(f32) -> f32 */
8984    /* fn round<N : num>(vec<N, f32>) -> vec<N, f32> */
8985    /* num overloads */ 2,
8986    /* overloads */ &kOverloads[229],
8987  },
8988  {
8989    /* [58] */
8990    /* fn select<T : scalar>(T, T, bool) -> T */
8991    /* fn select<T : scalar, N : num>(vec<N, T>, vec<N, T>, bool) -> vec<N, T> */
8992    /* fn select<N : num, T : scalar>(vec<N, T>, vec<N, T>, vec<N, bool>) -> vec<N, T> */
8993    /* num overloads */ 3,
8994    /* overloads */ &kOverloads[142],
8995  },
8996  {
8997    /* [59] */
8998    /* fn sign(f32) -> f32 */
8999    /* fn sign<N : num>(vec<N, f32>) -> vec<N, f32> */
9000    /* num overloads */ 2,
9001    /* overloads */ &kOverloads[233],
9002  },
9003  {
9004    /* [60] */
9005    /* fn sin(f32) -> f32 */
9006    /* fn sin<N : num>(vec<N, f32>) -> vec<N, f32> */
9007    /* num overloads */ 2,
9008    /* overloads */ &kOverloads[235],
9009  },
9010  {
9011    /* [61] */
9012    /* fn sinh(f32) -> f32 */
9013    /* fn sinh<N : num>(vec<N, f32>) -> vec<N, f32> */
9014    /* num overloads */ 2,
9015    /* overloads */ &kOverloads[237],
9016  },
9017  {
9018    /* [62] */
9019    /* fn smoothStep(f32, f32, f32) -> f32 */
9020    /* fn smoothStep<N : num>(vec<N, f32>, vec<N, f32>, vec<N, f32>) -> vec<N, f32> */
9021    /* num overloads */ 2,
9022    /* overloads */ &kOverloads[247],
9023  },
9024  {
9025    /* [63] */
9026    /* fn sqrt(f32) -> f32 */
9027    /* fn sqrt<N : num>(vec<N, f32>) -> vec<N, f32> */
9028    /* num overloads */ 2,
9029    /* overloads */ &kOverloads[241],
9030  },
9031  {
9032    /* [64] */
9033    /* fn step(f32, f32) -> f32 */
9034    /* fn step<N : num>(vec<N, f32>, vec<N, f32>) -> vec<N, f32> */
9035    /* num overloads */ 2,
9036    /* overloads */ &kOverloads[243],
9037  },
9038  {
9039    /* [65] */
9040    /* fn storageBarrier() */
9041    /* num overloads */ 1,
9042    /* overloads */ &kOverloads[283],
9043  },
9044  {
9045    /* [66] */
9046    /* fn tan(f32) -> f32 */
9047    /* fn tan<N : num>(vec<N, f32>) -> vec<N, f32> */
9048    /* num overloads */ 2,
9049    /* overloads */ &kOverloads[147],
9050  },
9051  {
9052    /* [67] */
9053    /* fn tanh(f32) -> f32 */
9054    /* fn tanh<N : num>(vec<N, f32>) -> vec<N, f32> */
9055    /* num overloads */ 2,
9056    /* overloads */ &kOverloads[245],
9057  },
9058  {
9059    /* [68] */
9060    /* fn transpose<M : num, N : num>(mat<M, N, f32>) -> mat<N, M, f32> */
9061    /* num overloads */ 1,
9062    /* overloads */ &kOverloads[267],
9063  },
9064  {
9065    /* [69] */
9066    /* fn trunc(f32) -> f32 */
9067    /* fn trunc<N : num>(vec<N, f32>) -> vec<N, f32> */
9068    /* num overloads */ 2,
9069    /* overloads */ &kOverloads[239],
9070  },
9071  {
9072    /* [70] */
9073    /* fn unpack2x16float(u32) -> vec2<f32> */
9074    /* num overloads */ 1,
9075    /* overloads */ &kOverloads[253],
9076  },
9077  {
9078    /* [71] */
9079    /* fn unpack2x16snorm(u32) -> vec2<f32> */
9080    /* num overloads */ 1,
9081    /* overloads */ &kOverloads[254],
9082  },
9083  {
9084    /* [72] */
9085    /* fn unpack2x16unorm(u32) -> vec2<f32> */
9086    /* num overloads */ 1,
9087    /* overloads */ &kOverloads[255],
9088  },
9089  {
9090    /* [73] */
9091    /* fn unpack4x8snorm(u32) -> vec4<f32> */
9092    /* num overloads */ 1,
9093    /* overloads */ &kOverloads[256],
9094  },
9095  {
9096    /* [74] */
9097    /* fn unpack4x8unorm(u32) -> vec4<f32> */
9098    /* num overloads */ 1,
9099    /* overloads */ &kOverloads[257],
9100  },
9101  {
9102    /* [75] */
9103    /* fn workgroupBarrier() */
9104    /* num overloads */ 1,
9105    /* overloads */ &kOverloads[258],
9106  },
9107  {
9108    /* [76] */
9109    /* fn textureDimensions<T : fiu32>(texture: texture_1d<T>) -> i32 */
9110    /* fn textureDimensions<T : fiu32>(texture: texture_1d<T>, level: i32) -> i32 */
9111    /* fn textureDimensions<T : fiu32>(texture: texture_2d<T>) -> vec2<i32> */
9112    /* fn textureDimensions<T : fiu32>(texture: texture_2d<T>, level: i32) -> vec2<i32> */
9113    /* fn textureDimensions<T : fiu32>(texture: texture_2d_array<T>) -> vec2<i32> */
9114    /* fn textureDimensions<T : fiu32>(texture: texture_2d_array<T>, level: i32) -> vec2<i32> */
9115    /* fn textureDimensions<T : fiu32>(texture: texture_3d<T>) -> vec3<i32> */
9116    /* fn textureDimensions<T : fiu32>(texture: texture_3d<T>, level: i32) -> vec3<i32> */
9117    /* fn textureDimensions<T : fiu32>(texture: texture_cube<T>) -> vec2<i32> */
9118    /* fn textureDimensions<T : fiu32>(texture: texture_cube<T>, level: i32) -> vec2<i32> */
9119    /* fn textureDimensions<T : fiu32>(texture: texture_cube_array<T>) -> vec2<i32> */
9120    /* fn textureDimensions<T : fiu32>(texture: texture_cube_array<T>, level: i32) -> vec2<i32> */
9121    /* fn textureDimensions<T : fiu32>(texture: texture_multisampled_2d<T>) -> vec2<i32> */
9122    /* fn textureDimensions(texture: texture_depth_2d) -> vec2<i32> */
9123    /* fn textureDimensions(texture: texture_depth_2d, level: i32) -> vec2<i32> */
9124    /* fn textureDimensions(texture: texture_depth_2d_array) -> vec2<i32> */
9125    /* fn textureDimensions(texture: texture_depth_2d_array, level: i32) -> vec2<i32> */
9126    /* fn textureDimensions(texture: texture_depth_cube) -> vec2<i32> */
9127    /* fn textureDimensions(texture: texture_depth_cube, level: i32) -> vec2<i32> */
9128    /* fn textureDimensions(texture: texture_depth_cube_array) -> vec2<i32> */
9129    /* fn textureDimensions(texture: texture_depth_cube_array, level: i32) -> vec2<i32> */
9130    /* fn textureDimensions(texture: texture_depth_multisampled_2d) -> vec2<i32> */
9131    /* fn textureDimensions<F : texel_format, A : write_only>(texture: texture_storage_1d<F, A>) -> i32 */
9132    /* fn textureDimensions<F : texel_format, A : write_only>(texture: texture_storage_2d<F, A>) -> vec2<i32> */
9133    /* fn textureDimensions<F : texel_format, A : write_only>(texture: texture_storage_2d_array<F, A>) -> vec2<i32> */
9134    /* fn textureDimensions<F : texel_format, A : write_only>(texture: texture_storage_3d<F, A>) -> vec3<i32> */
9135    /* fn textureDimensions(texture: texture_external) -> vec2<i32> */
9136    /* num overloads */ 27,
9137    /* overloads */ &kOverloads[0],
9138  },
9139  {
9140    /* [77] */
9141    /* fn textureGather<T : fiu32>(component: i32, texture: texture_2d<T>, sampler: sampler, coords: vec2<f32>) -> vec4<T> */
9142    /* fn textureGather<T : fiu32>(component: i32, texture: texture_2d<T>, sampler: sampler, coords: vec2<f32>, offset: vec2<i32>) -> vec4<T> */
9143    /* fn textureGather<T : fiu32>(component: i32, texture: texture_2d_array<T>, sampler: sampler, coords: vec2<f32>, array_index: i32) -> vec4<T> */
9144    /* fn textureGather<T : fiu32>(component: i32, texture: texture_2d_array<T>, sampler: sampler, coords: vec2<f32>, array_index: i32, offset: vec2<i32>) -> vec4<T> */
9145    /* fn textureGather<T : fiu32>(component: i32, texture: texture_cube<T>, sampler: sampler, coords: vec3<f32>) -> vec4<T> */
9146    /* fn textureGather<T : fiu32>(component: i32, texture: texture_cube_array<T>, sampler: sampler, coords: vec3<f32>, array_index: i32) -> vec4<T> */
9147    /* fn textureGather(texture: texture_depth_2d, sampler: sampler, coords: vec2<f32>) -> vec4<f32> */
9148    /* fn textureGather(texture: texture_depth_2d, sampler: sampler, coords: vec2<f32>, offset: vec2<i32>) -> vec4<f32> */
9149    /* fn textureGather(texture: texture_depth_2d_array, sampler: sampler, coords: vec2<f32>, array_index: i32) -> vec4<f32> */
9150    /* fn textureGather(texture: texture_depth_2d_array, sampler: sampler, coords: vec2<f32>, array_index: i32, offset: vec2<i32>) -> vec4<f32> */
9151    /* fn textureGather(texture: texture_depth_cube, sampler: sampler, coords: vec3<f32>) -> vec4<f32> */
9152    /* fn textureGather(texture: texture_depth_cube_array, sampler: sampler, coords: vec3<f32>, array_index: i32) -> vec4<f32> */
9153    /* num overloads */ 12,
9154    /* overloads */ &kOverloads[57],
9155  },
9156  {
9157    /* [78] */
9158    /* fn textureGatherCompare(texture: texture_depth_2d, sampler: sampler_comparison, coords: vec2<f32>, depth_ref: f32) -> vec4<f32> */
9159    /* fn textureGatherCompare(texture: texture_depth_2d, sampler: sampler_comparison, coords: vec2<f32>, depth_ref: f32, offset: vec2<i32>) -> vec4<f32> */
9160    /* fn textureGatherCompare(texture: texture_depth_2d_array, sampler: sampler_comparison, coords: vec2<f32>, array_index: i32, depth_ref: f32) -> vec4<f32> */
9161    /* fn textureGatherCompare(texture: texture_depth_2d_array, sampler: sampler_comparison, coords: vec2<f32>, array_index: i32, depth_ref: f32, offset: vec2<i32>) -> vec4<f32> */
9162    /* fn textureGatherCompare(texture: texture_depth_cube, sampler: sampler_comparison, coords: vec3<f32>, depth_ref: f32) -> vec4<f32> */
9163    /* fn textureGatherCompare(texture: texture_depth_cube_array, sampler: sampler_comparison, coords: vec3<f32>, array_index: i32, depth_ref: f32) -> vec4<f32> */
9164    /* num overloads */ 6,
9165    /* overloads */ &kOverloads[116],
9166  },
9167  {
9168    /* [79] */
9169    /* fn textureNumLayers<T : fiu32>(texture: texture_2d_array<T>) -> i32 */
9170    /* fn textureNumLayers<T : fiu32>(texture: texture_cube_array<T>) -> i32 */
9171    /* fn textureNumLayers(texture: texture_depth_2d_array) -> i32 */
9172    /* fn textureNumLayers(texture: texture_depth_cube_array) -> i32 */
9173    /* fn textureNumLayers<F : texel_format, A : write_only>(texture: texture_storage_2d_array<F, A>) -> i32 */
9174    /* num overloads */ 5,
9175    /* overloads */ &kOverloads[134],
9176  },
9177  {
9178    /* [80] */
9179    /* fn textureNumLevels<T : fiu32>(texture: texture_1d<T>) -> i32 */
9180    /* fn textureNumLevels<T : fiu32>(texture: texture_2d<T>) -> i32 */
9181    /* fn textureNumLevels<T : fiu32>(texture: texture_2d_array<T>) -> i32 */
9182    /* fn textureNumLevels<T : fiu32>(texture: texture_3d<T>) -> i32 */
9183    /* fn textureNumLevels<T : fiu32>(texture: texture_cube<T>) -> i32 */
9184    /* fn textureNumLevels<T : fiu32>(texture: texture_cube_array<T>) -> i32 */
9185    /* fn textureNumLevels(texture: texture_depth_2d) -> i32 */
9186    /* fn textureNumLevels(texture: texture_depth_2d_array) -> i32 */
9187    /* fn textureNumLevels(texture: texture_depth_cube) -> i32 */
9188    /* fn textureNumLevels(texture: texture_depth_cube_array) -> i32 */
9189    /* num overloads */ 10,
9190    /* overloads */ &kOverloads[81],
9191  },
9192  {
9193    /* [81] */
9194    /* fn textureNumSamples<T : fiu32>(texture: texture_multisampled_2d<T>) -> i32 */
9195    /* fn textureNumSamples(texture: texture_depth_multisampled_2d) -> i32 */
9196    /* num overloads */ 2,
9197    /* overloads */ &kOverloads[213],
9198  },
9199  {
9200    /* [82] */
9201    /* fn textureSample(texture: texture_1d<f32>, sampler: sampler, coords: f32) -> vec4<f32> */
9202    /* fn textureSample(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>) -> vec4<f32> */
9203    /* fn textureSample(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>, offset: vec2<i32>) -> vec4<f32> */
9204    /* fn textureSample(texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: i32) -> vec4<f32> */
9205    /* fn textureSample(texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: i32, offset: vec2<i32>) -> vec4<f32> */
9206    /* fn textureSample(texture: texture_3d<f32>, sampler: sampler, coords: vec3<f32>) -> vec4<f32> */
9207    /* fn textureSample(texture: texture_3d<f32>, sampler: sampler, coords: vec3<f32>, offset: vec3<i32>) -> vec4<f32> */
9208    /* fn textureSample(texture: texture_cube<f32>, sampler: sampler, coords: vec3<f32>) -> vec4<f32> */
9209    /* fn textureSample(texture: texture_cube_array<f32>, sampler: sampler, coords: vec3<f32>, array_index: i32) -> vec4<f32> */
9210    /* fn textureSample(texture: texture_depth_2d, sampler: sampler, coords: vec2<f32>) -> f32 */
9211    /* fn textureSample(texture: texture_depth_2d, sampler: sampler, coords: vec2<f32>, offset: vec2<i32>) -> f32 */
9212    /* fn textureSample(texture: texture_depth_2d_array, sampler: sampler, coords: vec2<f32>, array_index: i32) -> f32 */
9213    /* fn textureSample(texture: texture_depth_2d_array, sampler: sampler, coords: vec2<f32>, array_index: i32, offset: vec2<i32>) -> f32 */
9214    /* fn textureSample(texture: texture_depth_cube, sampler: sampler, coords: vec3<f32>) -> f32 */
9215    /* fn textureSample(texture: texture_depth_cube_array, sampler: sampler, coords: vec3<f32>, array_index: i32) -> f32 */
9216    /* num overloads */ 15,
9217    /* overloads */ &kOverloads[42],
9218  },
9219  {
9220    /* [83] */
9221    /* fn textureSampleBias(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>, bias: f32) -> vec4<f32> */
9222    /* fn textureSampleBias(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>, bias: f32, offset: vec2<i32>) -> vec4<f32> */
9223    /* fn textureSampleBias(texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: i32, bias: f32) -> vec4<f32> */
9224    /* fn textureSampleBias(texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: i32, bias: f32, offset: vec2<i32>) -> vec4<f32> */
9225    /* fn textureSampleBias(texture: texture_3d<f32>, sampler: sampler, coords: vec3<f32>, bias: f32) -> vec4<f32> */
9226    /* fn textureSampleBias(texture: texture_3d<f32>, sampler: sampler, coords: vec3<f32>, bias: f32, offset: vec3<i32>) -> vec4<f32> */
9227    /* fn textureSampleBias(texture: texture_cube<f32>, sampler: sampler, coords: vec3<f32>, bias: f32) -> vec4<f32> */
9228    /* fn textureSampleBias(texture: texture_cube_array<f32>, sampler: sampler, coords: vec3<f32>, array_index: i32, bias: f32) -> vec4<f32> */
9229    /* num overloads */ 8,
9230    /* overloads */ &kOverloads[108],
9231  },
9232  {
9233    /* [84] */
9234    /* fn textureSampleCompare(texture: texture_depth_2d, sampler: sampler_comparison, coords: vec2<f32>, depth_ref: f32) -> f32 */
9235    /* fn textureSampleCompare(texture: texture_depth_2d, sampler: sampler_comparison, coords: vec2<f32>, depth_ref: f32, offset: vec2<i32>) -> f32 */
9236    /* fn textureSampleCompare(texture: texture_depth_2d_array, sampler: sampler_comparison, coords: vec2<f32>, array_index: i32, depth_ref: f32) -> f32 */
9237    /* fn textureSampleCompare(texture: texture_depth_2d_array, sampler: sampler_comparison, coords: vec2<f32>, array_index: i32, depth_ref: f32, offset: vec2<i32>) -> f32 */
9238    /* fn textureSampleCompare(texture: texture_depth_cube, sampler: sampler_comparison, coords: vec3<f32>, depth_ref: f32) -> f32 */
9239    /* fn textureSampleCompare(texture: texture_depth_cube_array, sampler: sampler_comparison, coords: vec3<f32>, array_index: i32, depth_ref: f32) -> f32 */
9240    /* num overloads */ 6,
9241    /* overloads */ &kOverloads[122],
9242  },
9243  {
9244    /* [85] */
9245    /* fn textureSampleCompareLevel(texture: texture_depth_2d, sampler: sampler_comparison, coords: vec2<f32>, depth_ref: f32) -> f32 */
9246    /* fn textureSampleCompareLevel(texture: texture_depth_2d, sampler: sampler_comparison, coords: vec2<f32>, depth_ref: f32, offset: vec2<i32>) -> f32 */
9247    /* fn textureSampleCompareLevel(texture: texture_depth_2d_array, sampler: sampler_comparison, coords: vec2<f32>, array_index: i32, depth_ref: f32) -> f32 */
9248    /* fn textureSampleCompareLevel(texture: texture_depth_2d_array, sampler: sampler_comparison, coords: vec2<f32>, array_index: i32, depth_ref: f32, offset: vec2<i32>) -> f32 */
9249    /* fn textureSampleCompareLevel(texture: texture_depth_cube, sampler: sampler_comparison, coords: vec3<f32>, depth_ref: f32) -> f32 */
9250    /* fn textureSampleCompareLevel(texture: texture_depth_cube_array, sampler: sampler_comparison, coords: vec3<f32>, array_index: i32, depth_ref: f32) -> f32 */
9251    /* num overloads */ 6,
9252    /* overloads */ &kOverloads[128],
9253  },
9254  {
9255    /* [86] */
9256    /* fn textureSampleGrad(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>, ddx: vec2<f32>, ddy: vec2<f32>) -> vec4<f32> */
9257    /* fn textureSampleGrad(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>, ddx: vec2<f32>, ddy: vec2<f32>, offset: vec2<i32>) -> vec4<f32> */
9258    /* fn textureSampleGrad(texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: i32, ddx: vec2<f32>, ddy: vec2<f32>) -> vec4<f32> */
9259    /* fn textureSampleGrad(texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: i32, ddx: vec2<f32>, ddy: vec2<f32>, offset: vec2<i32>) -> vec4<f32> */
9260    /* fn textureSampleGrad(texture: texture_3d<f32>, sampler: sampler, coords: vec3<f32>, ddx: vec3<f32>, ddy: vec3<f32>) -> vec4<f32> */
9261    /* fn textureSampleGrad(texture: texture_3d<f32>, sampler: sampler, coords: vec3<f32>, ddx: vec3<f32>, ddy: vec3<f32>, offset: vec3<i32>) -> vec4<f32> */
9262    /* fn textureSampleGrad(texture: texture_cube<f32>, sampler: sampler, coords: vec3<f32>, ddx: vec3<f32>, ddy: vec3<f32>) -> vec4<f32> */
9263    /* fn textureSampleGrad(texture: texture_cube_array<f32>, sampler: sampler, coords: vec3<f32>, array_index: i32, ddx: vec3<f32>, ddy: vec3<f32>) -> vec4<f32> */
9264    /* num overloads */ 8,
9265    /* overloads */ &kOverloads[100],
9266  },
9267  {
9268    /* [87] */
9269    /* fn textureSampleLevel(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>, level: f32) -> vec4<f32> */
9270    /* fn textureSampleLevel(texture: texture_2d<f32>, sampler: sampler, coords: vec2<f32>, level: f32, offset: vec2<i32>) -> vec4<f32> */
9271    /* fn textureSampleLevel(texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: i32, level: f32) -> vec4<f32> */
9272    /* fn textureSampleLevel(texture: texture_2d_array<f32>, sampler: sampler, coords: vec2<f32>, array_index: i32, level: f32, offset: vec2<i32>) -> vec4<f32> */
9273    /* fn textureSampleLevel(texture: texture_3d<f32>, sampler: sampler, coords: vec3<f32>, level: f32) -> vec4<f32> */
9274    /* fn textureSampleLevel(texture: texture_3d<f32>, sampler: sampler, coords: vec3<f32>, level: f32, offset: vec3<i32>) -> vec4<f32> */
9275    /* fn textureSampleLevel(texture: texture_cube<f32>, sampler: sampler, coords: vec3<f32>, level: f32) -> vec4<f32> */
9276    /* fn textureSampleLevel(texture: texture_cube_array<f32>, sampler: sampler, coords: vec3<f32>, array_index: i32, level: f32) -> vec4<f32> */
9277    /* fn textureSampleLevel(texture: texture_depth_2d, sampler: sampler, coords: vec2<f32>, level: i32) -> f32 */
9278    /* fn textureSampleLevel(texture: texture_depth_2d, sampler: sampler, coords: vec2<f32>, level: i32, offset: vec2<i32>) -> f32 */
9279    /* fn textureSampleLevel(texture: texture_depth_2d_array, sampler: sampler, coords: vec2<f32>, array_index: i32, level: i32) -> f32 */
9280    /* fn textureSampleLevel(texture: texture_depth_2d_array, sampler: sampler, coords: vec2<f32>, array_index: i32, level: i32, offset: vec2<i32>) -> f32 */
9281    /* fn textureSampleLevel(texture: texture_depth_cube, sampler: sampler, coords: vec3<f32>, level: i32) -> f32 */
9282    /* fn textureSampleLevel(texture: texture_depth_cube_array, sampler: sampler, coords: vec3<f32>, array_index: i32, level: i32) -> f32 */
9283    /* fn textureSampleLevel(texture: texture_external, sampler: sampler, coords: vec2<f32>) -> vec4<f32> */
9284    /* num overloads */ 15,
9285    /* overloads */ &kOverloads[27],
9286  },
9287  {
9288    /* [88] */
9289    /* fn textureStore(texture: texture_storage_1d<f32_texel_format, write>, coords: i32, value: vec4<f32>) */
9290    /* fn textureStore(texture: texture_storage_2d<f32_texel_format, write>, coords: vec2<i32>, value: vec4<f32>) */
9291    /* fn textureStore(texture: texture_storage_2d_array<f32_texel_format, write>, coords: vec2<i32>, array_index: i32, value: vec4<f32>) */
9292    /* fn textureStore(texture: texture_storage_3d<f32_texel_format, write>, coords: vec3<i32>, value: vec4<f32>) */
9293    /* fn textureStore(texture: texture_storage_1d<i32_texel_format, write>, coords: i32, value: vec4<i32>) */
9294    /* fn textureStore(texture: texture_storage_2d<i32_texel_format, write>, coords: vec2<i32>, value: vec4<i32>) */
9295    /* fn textureStore(texture: texture_storage_2d_array<i32_texel_format, write>, coords: vec2<i32>, array_index: i32, value: vec4<i32>) */
9296    /* fn textureStore(texture: texture_storage_3d<i32_texel_format, write>, coords: vec3<i32>, value: vec4<i32>) */
9297    /* fn textureStore(texture: texture_storage_1d<u32_texel_format, write>, coords: i32, value: vec4<u32>) */
9298    /* fn textureStore(texture: texture_storage_2d<u32_texel_format, write>, coords: vec2<i32>, value: vec4<u32>) */
9299    /* fn textureStore(texture: texture_storage_2d_array<u32_texel_format, write>, coords: vec2<i32>, array_index: i32, value: vec4<u32>) */
9300    /* fn textureStore(texture: texture_storage_3d<u32_texel_format, write>, coords: vec3<i32>, value: vec4<u32>) */
9301    /* num overloads */ 12,
9302    /* overloads */ &kOverloads[69],
9303  },
9304  {
9305    /* [89] */
9306    /* fn textureLoad<T : fiu32>(texture: texture_1d<T>, coords: i32, level: i32) -> vec4<T> */
9307    /* fn textureLoad<T : fiu32>(texture: texture_2d<T>, coords: vec2<i32>, level: i32) -> vec4<T> */
9308    /* fn textureLoad<T : fiu32>(texture: texture_2d_array<T>, coords: vec2<i32>, array_index: i32, level: i32) -> vec4<T> */
9309    /* fn textureLoad<T : fiu32>(texture: texture_3d<T>, coords: vec3<i32>, level: i32) -> vec4<T> */
9310    /* fn textureLoad<T : fiu32>(texture: texture_multisampled_2d<T>, coords: vec2<i32>, sample_index: i32) -> vec4<T> */
9311    /* fn textureLoad(texture: texture_depth_2d, coords: vec2<i32>, level: i32) -> f32 */
9312    /* fn textureLoad(texture: texture_depth_2d_array, coords: vec2<i32>, array_index: i32, level: i32) -> f32 */
9313    /* fn textureLoad(texture: texture_depth_multisampled_2d, coords: vec2<i32>, sample_index: i32) -> f32 */
9314    /* fn textureLoad(texture: texture_external, coords: vec2<i32>) -> vec4<f32> */
9315    /* num overloads */ 9,
9316    /* overloads */ &kOverloads[91],
9317  },
9318  {
9319    /* [90] */
9320    /* fn atomicLoad<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>) -> T */
9321    /* num overloads */ 1,
9322    /* overloads */ &kOverloads[273],
9323  },
9324  {
9325    /* [91] */
9326    /* fn atomicStore<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) */
9327    /* num overloads */ 1,
9328    /* overloads */ &kOverloads[274],
9329  },
9330  {
9331    /* [92] */
9332    /* fn atomicAdd<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
9333    /* num overloads */ 1,
9334    /* overloads */ &kOverloads[275],
9335  },
9336  {
9337    /* [93] */
9338    /* fn atomicSub<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
9339    /* num overloads */ 1,
9340    /* overloads */ &kOverloads[276],
9341  },
9342  {
9343    /* [94] */
9344    /* fn atomicMax<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
9345    /* num overloads */ 1,
9346    /* overloads */ &kOverloads[277],
9347  },
9348  {
9349    /* [95] */
9350    /* fn atomicMin<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
9351    /* num overloads */ 1,
9352    /* overloads */ &kOverloads[278],
9353  },
9354  {
9355    /* [96] */
9356    /* fn atomicAnd<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
9357    /* num overloads */ 1,
9358    /* overloads */ &kOverloads[279],
9359  },
9360  {
9361    /* [97] */
9362    /* fn atomicOr<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
9363    /* num overloads */ 1,
9364    /* overloads */ &kOverloads[280],
9365  },
9366  {
9367    /* [98] */
9368    /* fn atomicXor<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
9369    /* num overloads */ 1,
9370    /* overloads */ &kOverloads[281],
9371  },
9372  {
9373    /* [99] */
9374    /* fn atomicExchange<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T) -> T */
9375    /* num overloads */ 1,
9376    /* overloads */ &kOverloads[282],
9377  },
9378  {
9379    /* [100] */
9380    /* fn atomicCompareExchangeWeak<T : iu32, S : workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T, T) -> vec2<T> */
9381    /* num overloads */ 1,
9382    /* overloads */ &kOverloads[259],
9383  },
9384};
9385
9386// clang-format on
9387