diff --git a/src/intrinsic_table.cc b/src/intrinsic_table.cc
index e99fdc1..d0dee57 100644
--- a/src/intrinsic_table.cc
+++ b/src/intrinsic_table.cc
@@ -663,10 +663,12 @@
   ParameterInfo const* const parameters;
   /// Pointer to a list of matcher indices that index on Matchers::type and
   /// Matchers::number, used to build the return type. If the function has no
-  /// return type then this is null.
+  /// return type then this is null
   MatcherIndex const* const return_matcher_indices;
-  /// The pipeline stages that this overload can be used in.
+  /// The pipeline stages that this overload can be used in
   PipelineStageSet supported_stages;
+  /// True if the overload is marked as deprecated
+  bool is_deprecated;
 };
 
 /// IntrinsicInfo describes an intrinsic function
@@ -878,7 +880,7 @@
 
   return builder.create<sem::Intrinsic>(
       intrinsic_type, const_cast<sem::Type*>(return_type),
-      std::move(parameters), overload.supported_stages);
+      std::move(parameters), overload.supported_stages, overload.is_deprecated);
 }
 
 MatchState Impl::Match(ClosedState& closed,
diff --git a/src/intrinsic_table.inl b/src/intrinsic_table.inl
index 3fe5ee1..fd156f0 100644
--- a/src/intrinsic_table.inl
+++ b/src/intrinsic_table.inl
@@ -1219,7 +1219,7 @@
 
 Number Write::Match(MatchState&, Number number) const {
   if (number.IsAny() || number.Value() == static_cast<uint32_t>(Access::kWrite)) {
-    return Number(Access::kWrite);
+    return Number(static_cast<uint32_t>(Access::kWrite));
   }
   return Number::invalid;
 }
@@ -1244,7 +1244,7 @@
 
 Number Read::Match(MatchState&, Number number) const {
   if (number.IsAny() || number.Value() == static_cast<uint32_t>(Access::kRead)) {
-    return Number(Access::kRead);
+    return Number(static_cast<uint32_t>(Access::kRead));
   }
   return Number::invalid;
 }
@@ -4379,6 +4379,7 @@
     /* parameters */ &kParameters[432],
     /* return matcher indices */ &kMatcherIndices[69],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [1] */
@@ -4390,6 +4391,7 @@
     /* parameters */ &kParameters[433],
     /* return matcher indices */ &kMatcherIndices[125],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [2] */
@@ -4401,6 +4403,7 @@
     /* parameters */ &kParameters[427],
     /* return matcher indices */ &kMatcherIndices[125],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [3] */
@@ -4412,6 +4415,7 @@
     /* parameters */ &kParameters[435],
     /* return matcher indices */ &kMatcherIndices[125],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [4] */
@@ -4423,6 +4427,7 @@
     /* parameters */ &kParameters[425],
     /* return matcher indices */ &kMatcherIndices[125],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [5] */
@@ -4434,6 +4439,7 @@
     /* parameters */ &kParameters[437],
     /* return matcher indices */ &kMatcherIndices[129],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [6] */
@@ -4445,6 +4451,7 @@
     /* parameters */ &kParameters[423],
     /* return matcher indices */ &kMatcherIndices[129],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [7] */
@@ -4456,6 +4463,7 @@
     /* parameters */ &kParameters[439],
     /* return matcher indices */ &kMatcherIndices[129],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [8] */
@@ -4467,6 +4475,7 @@
     /* parameters */ &kParameters[421],
     /* return matcher indices */ &kMatcherIndices[129],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [9] */
@@ -4478,6 +4487,7 @@
     /* parameters */ &kParameters[441],
     /* return matcher indices */ &kMatcherIndices[129],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [10] */
@@ -4489,6 +4499,7 @@
     /* parameters */ &kParameters[429],
     /* return matcher indices */ &kMatcherIndices[129],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [11] */
@@ -4500,6 +4511,7 @@
     /* parameters */ &kParameters[443],
     /* return matcher indices */ &kMatcherIndices[125],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [12] */
@@ -4511,6 +4523,7 @@
     /* parameters */ &kParameters[444],
     /* return matcher indices */ &kMatcherIndices[125],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [13] */
@@ -4522,6 +4535,7 @@
     /* parameters */ &kParameters[417],
     /* return matcher indices */ &kMatcherIndices[125],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [14] */
@@ -4533,6 +4547,7 @@
     /* parameters */ &kParameters[446],
     /* return matcher indices */ &kMatcherIndices[125],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [15] */
@@ -4544,6 +4559,7 @@
     /* parameters */ &kParameters[415],
     /* return matcher indices */ &kMatcherIndices[125],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [16] */
@@ -4555,6 +4571,7 @@
     /* parameters */ &kParameters[448],
     /* return matcher indices */ &kMatcherIndices[129],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [17] */
@@ -4566,6 +4583,7 @@
     /* parameters */ &kParameters[413],
     /* return matcher indices */ &kMatcherIndices[129],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [18] */
@@ -4577,6 +4595,7 @@
     /* parameters */ &kParameters[450],
     /* return matcher indices */ &kMatcherIndices[129],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [19] */
@@ -4588,6 +4607,7 @@
     /* parameters */ &kParameters[411],
     /* return matcher indices */ &kMatcherIndices[129],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [20] */
@@ -4599,6 +4619,7 @@
     /* parameters */ &kParameters[452],
     /* return matcher indices */ &kMatcherIndices[69],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [21] */
@@ -4610,6 +4631,7 @@
     /* parameters */ &kParameters[453],
     /* return matcher indices */ &kMatcherIndices[125],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [22] */
@@ -4621,6 +4643,7 @@
     /* parameters */ &kParameters[454],
     /* return matcher indices */ &kMatcherIndices[125],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [23] */
@@ -4632,6 +4655,7 @@
     /* parameters */ &kParameters[455],
     /* return matcher indices */ &kMatcherIndices[129],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [24] */
@@ -4643,6 +4667,7 @@
     /* parameters */ &kParameters[456],
     /* return matcher indices */ &kMatcherIndices[125],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [25] */
@@ -4654,6 +4679,7 @@
     /* parameters */ &kParameters[289],
     /* return matcher indices */ &kMatcherIndices[97],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [26] */
@@ -4665,6 +4691,7 @@
     /* parameters */ &kParameters[292],
     /* return matcher indices */ &kMatcherIndices[97],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [27] */
@@ -4676,6 +4703,7 @@
     /* parameters */ &kParameters[150],
     /* return matcher indices */ &kMatcherIndices[97],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [28] */
@@ -4687,6 +4715,7 @@
     /* parameters */ &kParameters[295],
     /* return matcher indices */ &kMatcherIndices[97],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [29] */
@@ -4698,6 +4727,7 @@
     /* parameters */ &kParameters[298],
     /* return matcher indices */ &kMatcherIndices[97],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [30] */
@@ -4709,6 +4739,7 @@
     /* parameters */ &kParameters[310],
     /* return matcher indices */ &kMatcherIndices[5],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [31] */
@@ -4720,6 +4751,7 @@
     /* parameters */ &kParameters[182],
     /* return matcher indices */ &kMatcherIndices[5],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [32] */
@@ -4731,6 +4763,7 @@
     /* parameters */ &kParameters[389],
     /* return matcher indices */ &kMatcherIndices[82],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [33] */
@@ -4742,6 +4775,7 @@
     /* parameters */ &kParameters[391],
     /* return matcher indices */ &kMatcherIndices[82],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [34] */
@@ -4753,6 +4787,7 @@
     /* parameters */ &kParameters[316],
     /* return matcher indices */ &kMatcherIndices[82],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [35] */
@@ -4764,6 +4799,7 @@
     /* parameters */ &kParameters[393],
     /* return matcher indices */ &kMatcherIndices[82],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [36] */
@@ -4775,6 +4811,7 @@
     /* parameters */ &kParameters[395],
     /* return matcher indices */ &kMatcherIndices[89],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [37] */
@@ -4786,6 +4823,7 @@
     /* parameters */ &kParameters[397],
     /* return matcher indices */ &kMatcherIndices[89],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [38] */
@@ -4797,6 +4835,7 @@
     /* parameters */ &kParameters[328],
     /* return matcher indices */ &kMatcherIndices[89],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [39] */
@@ -4808,6 +4847,7 @@
     /* parameters */ &kParameters[399],
     /* return matcher indices */ &kMatcherIndices[89],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [40] */
@@ -4819,6 +4859,7 @@
     /* parameters */ &kParameters[407],
     /* return matcher indices */ &kMatcherIndices[93],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [41] */
@@ -4830,6 +4871,7 @@
     /* parameters */ &kParameters[409],
     /* return matcher indices */ &kMatcherIndices[93],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [42] */
@@ -4841,6 +4883,7 @@
     /* parameters */ &kParameters[343],
     /* return matcher indices */ &kMatcherIndices[93],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [43] */
@@ -4852,6 +4895,7 @@
     /* parameters */ &kParameters[405],
     /* return matcher indices */ &kMatcherIndices[93],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [44] */
@@ -4863,6 +4907,7 @@
     /* parameters */ &kParameters[359],
     /* return matcher indices */ &kMatcherIndices[82],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [45] */
@@ -4874,6 +4919,7 @@
     /* parameters */ &kParameters[334],
     /* return matcher indices */ &kMatcherIndices[82],
     /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
+    /* is_deprecated */ false,
   },
   {
     /* [46] */
@@ -4885,6 +4931,7 @@
     /* parameters */ &kParameters[331],
     /* return matcher indices */ &kMatcherIndices[82],
     /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
+    /* is_deprecated */ false,
   },
   {
     /* [47] */
@@ -4896,6 +4943,7 @@
     /* parameters */ &kParameters[230],
     /* return matcher indices */ &kMatcherIndices[82],
     /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
+    /* is_deprecated */ false,
   },
   {
     /* [48] */
@@ -4907,6 +4955,7 @@
     /* parameters */ &kParameters[210],
     /* return matcher indices */ &kMatcherIndices[82],
     /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
+    /* is_deprecated */ false,
   },
   {
     /* [49] */
@@ -4918,6 +4967,7 @@
     /* parameters */ &kParameters[60],
     /* return matcher indices */ &kMatcherIndices[82],
     /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
+    /* is_deprecated */ false,
   },
   {
     /* [50] */
@@ -4929,6 +4979,7 @@
     /* parameters */ &kParameters[238],
     /* return matcher indices */ &kMatcherIndices[82],
     /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
+    /* is_deprecated */ false,
   },
   {
     /* [51] */
@@ -4940,6 +4991,7 @@
     /* parameters */ &kParameters[194],
     /* return matcher indices */ &kMatcherIndices[82],
     /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
+    /* is_deprecated */ false,
   },
   {
     /* [52] */
@@ -4951,6 +5003,7 @@
     /* parameters */ &kParameters[313],
     /* return matcher indices */ &kMatcherIndices[82],
     /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
+    /* is_deprecated */ false,
   },
   {
     /* [53] */
@@ -4962,6 +5015,7 @@
     /* parameters */ &kParameters[158],
     /* return matcher indices */ &kMatcherIndices[82],
     /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
+    /* is_deprecated */ false,
   },
   {
     /* [54] */
@@ -4973,6 +5027,7 @@
     /* parameters */ &kParameters[283],
     /* return matcher indices */ &kMatcherIndices[5],
     /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
+    /* is_deprecated */ false,
   },
   {
     /* [55] */
@@ -4984,6 +5039,7 @@
     /* parameters */ &kParameters[206],
     /* return matcher indices */ &kMatcherIndices[5],
     /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
+    /* is_deprecated */ false,
   },
   {
     /* [56] */
@@ -4995,6 +5051,7 @@
     /* parameters */ &kParameters[218],
     /* return matcher indices */ &kMatcherIndices[5],
     /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
+    /* is_deprecated */ false,
   },
   {
     /* [57] */
@@ -5006,6 +5063,7 @@
     /* parameters */ &kParameters[90],
     /* return matcher indices */ &kMatcherIndices[5],
     /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
+    /* is_deprecated */ false,
   },
   {
     /* [58] */
@@ -5017,6 +5075,7 @@
     /* parameters */ &kParameters[304],
     /* return matcher indices */ &kMatcherIndices[5],
     /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
+    /* is_deprecated */ false,
   },
   {
     /* [59] */
@@ -5028,6 +5087,7 @@
     /* parameters */ &kParameters[202],
     /* return matcher indices */ &kMatcherIndices[5],
     /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
+    /* is_deprecated */ false,
   },
   {
     /* [60] */
@@ -5039,6 +5099,7 @@
     /* parameters */ &kParameters[325],
     /* return matcher indices */ &kMatcherIndices[82],
     /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
+    /* is_deprecated */ false,
   },
   {
     /* [61] */
@@ -5050,6 +5111,7 @@
     /* parameters */ &kParameters[170],
     /* return matcher indices */ &kMatcherIndices[82],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [62] */
@@ -5061,6 +5123,7 @@
     /* parameters */ &kParameters[55],
     /* return matcher indices */ &kMatcherIndices[82],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [63] */
@@ -5072,6 +5135,7 @@
     /* parameters */ &kParameters[75],
     /* return matcher indices */ &kMatcherIndices[82],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [64] */
@@ -5083,6 +5147,7 @@
     /* parameters */ &kParameters[43],
     /* return matcher indices */ &kMatcherIndices[82],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [65] */
@@ -5094,6 +5159,7 @@
     /* parameters */ &kParameters[214],
     /* return matcher indices */ &kMatcherIndices[82],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [66] */
@@ -5105,6 +5171,7 @@
     /* parameters */ &kParameters[135],
     /* return matcher indices */ &kMatcherIndices[82],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [67] */
@@ -5116,6 +5183,7 @@
     /* parameters */ &kParameters[190],
     /* return matcher indices */ &kMatcherIndices[82],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [68] */
@@ -5127,6 +5195,7 @@
     /* parameters */ &kParameters[105],
     /* return matcher indices */ &kMatcherIndices[82],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [69] */
@@ -5138,6 +5207,7 @@
     /* parameters */ &kParameters[222],
     /* return matcher indices */ &kMatcherIndices[5],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [70] */
@@ -5149,6 +5219,7 @@
     /* parameters */ &kParameters[100],
     /* return matcher indices */ &kMatcherIndices[5],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [71] */
@@ -5160,6 +5231,7 @@
     /* parameters */ &kParameters[110],
     /* return matcher indices */ &kMatcherIndices[5],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [72] */
@@ -5171,6 +5243,7 @@
     /* parameters */ &kParameters[49],
     /* return matcher indices */ &kMatcherIndices[5],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [73] */
@@ -5182,6 +5255,7 @@
     /* parameters */ &kParameters[198],
     /* return matcher indices */ &kMatcherIndices[5],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [74] */
@@ -5193,6 +5267,7 @@
     /* parameters */ &kParameters[65],
     /* return matcher indices */ &kMatcherIndices[5],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [75] */
@@ -5204,6 +5279,7 @@
     /* parameters */ &kParameters[253],
     /* return matcher indices */ &kMatcherIndices[82],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [76] */
@@ -5215,6 +5291,7 @@
     /* parameters */ &kParameters[346],
     /* return matcher indices */ nullptr,
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [77] */
@@ -5226,6 +5303,7 @@
     /* parameters */ &kParameters[256],
     /* return matcher indices */ nullptr,
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [78] */
@@ -5237,6 +5315,7 @@
     /* parameters */ &kParameters[178],
     /* return matcher indices */ nullptr,
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [79] */
@@ -5248,6 +5327,7 @@
     /* parameters */ &kParameters[259],
     /* return matcher indices */ nullptr,
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [80] */
@@ -5259,6 +5339,7 @@
     /* parameters */ &kParameters[262],
     /* return matcher indices */ nullptr,
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [81] */
@@ -5270,6 +5351,7 @@
     /* parameters */ &kParameters[244],
     /* return matcher indices */ nullptr,
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [82] */
@@ -5281,6 +5363,7 @@
     /* parameters */ &kParameters[162],
     /* return matcher indices */ nullptr,
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [83] */
@@ -5292,6 +5375,7 @@
     /* parameters */ &kParameters[265],
     /* return matcher indices */ nullptr,
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [84] */
@@ -5303,6 +5387,7 @@
     /* parameters */ &kParameters[268],
     /* return matcher indices */ nullptr,
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [85] */
@@ -5314,6 +5399,7 @@
     /* parameters */ &kParameters[271],
     /* return matcher indices */ nullptr,
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [86] */
@@ -5325,6 +5411,7 @@
     /* parameters */ &kParameters[154],
     /* return matcher indices */ nullptr,
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [87] */
@@ -5336,6 +5423,7 @@
     /* parameters */ &kParameters[286],
     /* return matcher indices */ nullptr,
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [88] */
@@ -5347,6 +5435,7 @@
     /* parameters */ &kParameters[462],
     /* return matcher indices */ &kMatcherIndices[69],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [89] */
@@ -5358,6 +5447,7 @@
     /* parameters */ &kParameters[463],
     /* return matcher indices */ &kMatcherIndices[69],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [90] */
@@ -5369,6 +5459,7 @@
     /* parameters */ &kParameters[464],
     /* return matcher indices */ &kMatcherIndices[69],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [91] */
@@ -5380,6 +5471,7 @@
     /* parameters */ &kParameters[465],
     /* return matcher indices */ &kMatcherIndices[69],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [92] */
@@ -5391,6 +5483,7 @@
     /* parameters */ &kParameters[466],
     /* return matcher indices */ &kMatcherIndices[69],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [93] */
@@ -5402,6 +5495,7 @@
     /* parameters */ &kParameters[467],
     /* return matcher indices */ &kMatcherIndices[69],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [94] */
@@ -5413,6 +5507,7 @@
     /* parameters */ &kParameters[468],
     /* return matcher indices */ &kMatcherIndices[69],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [95] */
@@ -5424,6 +5519,7 @@
     /* parameters */ &kParameters[469],
     /* return matcher indices */ &kMatcherIndices[69],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [96] */
@@ -5435,6 +5531,7 @@
     /* parameters */ &kParameters[470],
     /* return matcher indices */ &kMatcherIndices[69],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [97] */
@@ -5446,6 +5543,7 @@
     /* parameters */ &kParameters[120],
     /* return matcher indices */ &kMatcherIndices[82],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [98] */
@@ -5457,6 +5555,7 @@
     /* parameters */ &kParameters[25],
     /* return matcher indices */ &kMatcherIndices[82],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [99] */
@@ -5468,6 +5567,7 @@
     /* parameters */ &kParameters[19],
     /* return matcher indices */ &kMatcherIndices[82],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [100] */
@@ -5479,6 +5579,7 @@
     /* parameters */ &kParameters[0],
     /* return matcher indices */ &kMatcherIndices[82],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [101] */
@@ -5490,6 +5591,7 @@
     /* parameters */ &kParameters[145],
     /* return matcher indices */ &kMatcherIndices[82],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [102] */
@@ -5501,6 +5603,7 @@
     /* parameters */ &kParameters[37],
     /* return matcher indices */ &kMatcherIndices[82],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [103] */
@@ -5512,6 +5615,7 @@
     /* parameters */ &kParameters[130],
     /* return matcher indices */ &kMatcherIndices[82],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [104] */
@@ -5523,6 +5627,7 @@
     /* parameters */ &kParameters[13],
     /* return matcher indices */ &kMatcherIndices[82],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [105] */
@@ -5534,6 +5639,7 @@
     /* parameters */ &kParameters[226],
     /* return matcher indices */ &kMatcherIndices[82],
     /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
+    /* is_deprecated */ false,
   },
   {
     /* [106] */
@@ -5545,6 +5651,7 @@
     /* parameters */ &kParameters[125],
     /* return matcher indices */ &kMatcherIndices[82],
     /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
+    /* is_deprecated */ false,
   },
   {
     /* [107] */
@@ -5556,6 +5663,7 @@
     /* parameters */ &kParameters[140],
     /* return matcher indices */ &kMatcherIndices[82],
     /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
+    /* is_deprecated */ false,
   },
   {
     /* [108] */
@@ -5567,6 +5675,7 @@
     /* parameters */ &kParameters[7],
     /* return matcher indices */ &kMatcherIndices[82],
     /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
+    /* is_deprecated */ false,
   },
   {
     /* [109] */
@@ -5578,6 +5687,7 @@
     /* parameters */ &kParameters[234],
     /* return matcher indices */ &kMatcherIndices[82],
     /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
+    /* is_deprecated */ false,
   },
   {
     /* [110] */
@@ -5589,6 +5699,7 @@
     /* parameters */ &kParameters[70],
     /* return matcher indices */ &kMatcherIndices[82],
     /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
+    /* is_deprecated */ false,
   },
   {
     /* [111] */
@@ -5600,6 +5711,7 @@
     /* parameters */ &kParameters[186],
     /* return matcher indices */ &kMatcherIndices[82],
     /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
+    /* is_deprecated */ false,
   },
   {
     /* [112] */
@@ -5611,6 +5723,7 @@
     /* parameters */ &kParameters[80],
     /* return matcher indices */ &kMatcherIndices[82],
     /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
+    /* is_deprecated */ false,
   },
   {
     /* [113] */
@@ -5622,6 +5735,7 @@
     /* parameters */ &kParameters[174],
     /* return matcher indices */ &kMatcherIndices[5],
     /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
+    /* is_deprecated */ false,
   },
   {
     /* [114] */
@@ -5633,6 +5747,7 @@
     /* parameters */ &kParameters[85],
     /* return matcher indices */ &kMatcherIndices[5],
     /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
+    /* is_deprecated */ false,
   },
   {
     /* [115] */
@@ -5644,6 +5759,7 @@
     /* parameters */ &kParameters[95],
     /* return matcher indices */ &kMatcherIndices[5],
     /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
+    /* is_deprecated */ false,
   },
   {
     /* [116] */
@@ -5655,6 +5771,7 @@
     /* parameters */ &kParameters[31],
     /* return matcher indices */ &kMatcherIndices[5],
     /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
+    /* is_deprecated */ false,
   },
   {
     /* [117] */
@@ -5666,6 +5783,7 @@
     /* parameters */ &kParameters[166],
     /* return matcher indices */ &kMatcherIndices[5],
     /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
+    /* is_deprecated */ false,
   },
   {
     /* [118] */
@@ -5677,6 +5795,7 @@
     /* parameters */ &kParameters[115],
     /* return matcher indices */ &kMatcherIndices[5],
     /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
+    /* is_deprecated */ false,
   },
   {
     /* [119] */
@@ -5688,6 +5807,7 @@
     /* parameters */ &kParameters[457],
     /* return matcher indices */ &kMatcherIndices[69],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [120] */
@@ -5699,6 +5819,7 @@
     /* parameters */ &kParameters[458],
     /* return matcher indices */ &kMatcherIndices[69],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [121] */
@@ -5710,6 +5831,7 @@
     /* parameters */ &kParameters[459],
     /* return matcher indices */ &kMatcherIndices[69],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [122] */
@@ -5721,6 +5843,7 @@
     /* parameters */ &kParameters[460],
     /* return matcher indices */ &kMatcherIndices[69],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [123] */
@@ -5732,6 +5855,7 @@
     /* parameters */ &kParameters[461],
     /* return matcher indices */ &kMatcherIndices[69],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [124] */
@@ -5743,6 +5867,7 @@
     /* parameters */ &kParameters[387],
     /* return matcher indices */ &kMatcherIndices[5],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [125] */
@@ -5754,6 +5879,7 @@
     /* parameters */ &kParameters[385],
     /* return matcher indices */ &kMatcherIndices[8],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [126] */
@@ -5765,6 +5891,7 @@
     /* parameters */ &kParameters[539],
     /* return matcher indices */ &kMatcherIndices[5],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [127] */
@@ -5776,6 +5903,7 @@
     /* parameters */ &kParameters[538],
     /* return matcher indices */ &kMatcherIndices[8],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [128] */
@@ -5787,6 +5915,7 @@
     /* parameters */ &kParameters[537],
     /* return matcher indices */ &kMatcherIndices[3],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [129] */
@@ -5798,6 +5927,7 @@
     /* parameters */ &kParameters[536],
     /* return matcher indices */ &kMatcherIndices[2],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [130] */
@@ -5809,6 +5939,7 @@
     /* parameters */ &kParameters[541],
     /* return matcher indices */ &kMatcherIndices[5],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [131] */
@@ -5820,6 +5951,7 @@
     /* parameters */ &kParameters[540],
     /* return matcher indices */ &kMatcherIndices[8],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [132] */
@@ -5831,6 +5963,7 @@
     /* parameters */ &kParameters[475],
     /* return matcher indices */ &kMatcherIndices[5],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [133] */
@@ -5842,6 +5975,7 @@
     /* parameters */ &kParameters[474],
     /* return matcher indices */ &kMatcherIndices[8],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [134] */
@@ -5853,6 +5987,7 @@
     /* parameters */ &kParameters[381],
     /* return matcher indices */ &kMatcherIndices[5],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [135] */
@@ -5864,6 +5999,7 @@
     /* parameters */ &kParameters[379],
     /* return matcher indices */ &kMatcherIndices[5],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [136] */
@@ -5875,6 +6011,7 @@
     /* parameters */ &kParameters[307],
     /* return matcher indices */ &kMatcherIndices[3],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [137] */
@@ -5886,6 +6023,7 @@
     /* parameters */ &kParameters[301],
     /* return matcher indices */ &kMatcherIndices[2],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [138] */
@@ -5897,6 +6035,7 @@
     /* parameters */ &kParameters[534],
     /* return matcher indices */ &kMatcherIndices[5],
     /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
+    /* is_deprecated */ false,
   },
   {
     /* [139] */
@@ -5908,6 +6047,7 @@
     /* parameters */ &kParameters[533],
     /* return matcher indices */ &kMatcherIndices[8],
     /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
+    /* is_deprecated */ false,
   },
   {
     /* [140] */
@@ -5919,6 +6059,7 @@
     /* parameters */ &kParameters[532],
     /* return matcher indices */ &kMatcherIndices[5],
     /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
+    /* is_deprecated */ false,
   },
   {
     /* [141] */
@@ -5930,6 +6071,7 @@
     /* parameters */ &kParameters[531],
     /* return matcher indices */ &kMatcherIndices[8],
     /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
+    /* is_deprecated */ false,
   },
   {
     /* [142] */
@@ -5941,6 +6083,7 @@
     /* parameters */ &kParameters[530],
     /* return matcher indices */ &kMatcherIndices[5],
     /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
+    /* is_deprecated */ false,
   },
   {
     /* [143] */
@@ -5952,6 +6095,7 @@
     /* parameters */ &kParameters[529],
     /* return matcher indices */ &kMatcherIndices[8],
     /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
+    /* is_deprecated */ false,
   },
   {
     /* [144] */
@@ -5963,6 +6107,7 @@
     /* parameters */ &kParameters[528],
     /* return matcher indices */ &kMatcherIndices[5],
     /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
+    /* is_deprecated */ false,
   },
   {
     /* [145] */
@@ -5974,6 +6119,7 @@
     /* parameters */ &kParameters[527],
     /* return matcher indices */ &kMatcherIndices[8],
     /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
+    /* is_deprecated */ false,
   },
   {
     /* [146] */
@@ -5985,6 +6131,7 @@
     /* parameters */ &kParameters[526],
     /* return matcher indices */ &kMatcherIndices[5],
     /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
+    /* is_deprecated */ false,
   },
   {
     /* [147] */
@@ -5996,6 +6143,7 @@
     /* parameters */ &kParameters[525],
     /* return matcher indices */ &kMatcherIndices[8],
     /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
+    /* is_deprecated */ false,
   },
   {
     /* [148] */
@@ -6007,6 +6155,7 @@
     /* parameters */ &kParameters[524],
     /* return matcher indices */ &kMatcherIndices[5],
     /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
+    /* is_deprecated */ false,
   },
   {
     /* [149] */
@@ -6018,6 +6167,7 @@
     /* parameters */ &kParameters[523],
     /* return matcher indices */ &kMatcherIndices[8],
     /* supported_stages */ PipelineStageSet(PipelineStage::kFragment),
+    /* is_deprecated */ false,
   },
   {
     /* [150] */
@@ -6029,6 +6179,7 @@
     /* parameters */ &kParameters[522],
     /* return matcher indices */ &kMatcherIndices[5],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [151] */
@@ -6040,6 +6191,7 @@
     /* parameters */ &kParameters[521],
     /* return matcher indices */ &kMatcherIndices[8],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [152] */
@@ -6051,6 +6203,7 @@
     /* parameters */ &kParameters[520],
     /* return matcher indices */ &kMatcherIndices[5],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [153] */
@@ -6062,6 +6215,7 @@
     /* parameters */ &kParameters[519],
     /* return matcher indices */ &kMatcherIndices[8],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [154] */
@@ -6073,6 +6227,7 @@
     /* parameters */ &kParameters[250],
     /* return matcher indices */ &kMatcherIndices[5],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [155] */
@@ -6084,6 +6239,7 @@
     /* parameters */ &kParameters[247],
     /* return matcher indices */ &kMatcherIndices[8],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [156] */
@@ -6095,6 +6251,7 @@
     /* parameters */ &kParameters[518],
     /* return matcher indices */ &kMatcherIndices[5],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [157] */
@@ -6106,6 +6263,7 @@
     /* parameters */ &kParameters[517],
     /* return matcher indices */ &kMatcherIndices[8],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [158] */
@@ -6117,6 +6275,7 @@
     /* parameters */ &kParameters[280],
     /* return matcher indices */ &kMatcherIndices[5],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [159] */
@@ -6128,6 +6287,7 @@
     /* parameters */ &kParameters[241],
     /* return matcher indices */ &kMatcherIndices[8],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [160] */
@@ -6139,6 +6299,7 @@
     /* parameters */ &kParameters[516],
     /* return matcher indices */ &kMatcherIndices[5],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [161] */
@@ -6150,6 +6311,7 @@
     /* parameters */ &kParameters[515],
     /* return matcher indices */ &kMatcherIndices[8],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [162] */
@@ -6161,6 +6323,7 @@
     /* parameters */ &kParameters[375],
     /* return matcher indices */ &kMatcherIndices[5],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [163] */
@@ -6172,6 +6335,7 @@
     /* parameters */ &kParameters[373],
     /* return matcher indices */ &kMatcherIndices[8],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [164] */
@@ -6183,6 +6347,7 @@
     /* parameters */ &kParameters[514],
     /* return matcher indices */ &kMatcherIndices[5],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [165] */
@@ -6194,6 +6359,7 @@
     /* parameters */ &kParameters[513],
     /* return matcher indices */ &kMatcherIndices[8],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [166] */
@@ -6205,6 +6371,7 @@
     /* parameters */ &kParameters[512],
     /* return matcher indices */ &kMatcherIndices[5],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [167] */
@@ -6216,6 +6383,7 @@
     /* parameters */ &kParameters[511],
     /* return matcher indices */ &kMatcherIndices[8],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [168] */
@@ -6227,6 +6395,7 @@
     /* parameters */ &kParameters[510],
     /* return matcher indices */ &kMatcherIndices[5],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [169] */
@@ -6238,6 +6407,7 @@
     /* parameters */ &kParameters[509],
     /* return matcher indices */ &kMatcherIndices[8],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [170] */
@@ -6249,6 +6419,7 @@
     /* parameters */ &kParameters[357],
     /* return matcher indices */ &kMatcherIndices[3],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [171] */
@@ -6260,6 +6431,7 @@
     /* parameters */ &kParameters[355],
     /* return matcher indices */ &kMatcherIndices[2],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [172] */
@@ -6271,6 +6443,7 @@
     /* parameters */ &kParameters[507],
     /* return matcher indices */ &kMatcherIndices[5],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [173] */
@@ -6282,6 +6455,7 @@
     /* parameters */ &kParameters[506],
     /* return matcher indices */ &kMatcherIndices[8],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [174] */
@@ -6293,6 +6467,7 @@
     /* parameters */ &kParameters[505],
     /* return matcher indices */ &kMatcherIndices[1],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [175] */
@@ -6304,6 +6479,7 @@
     /* parameters */ &kParameters[504],
     /* return matcher indices */ &kMatcherIndices[32],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [176] */
@@ -6315,6 +6491,7 @@
     /* parameters */ &kParameters[503],
     /* return matcher indices */ &kMatcherIndices[1],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [177] */
@@ -6326,6 +6503,7 @@
     /* parameters */ &kParameters[502],
     /* return matcher indices */ &kMatcherIndices[32],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [178] */
@@ -6337,6 +6515,7 @@
     /* parameters */ &kParameters[501],
     /* return matcher indices */ &kMatcherIndices[1],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [179] */
@@ -6348,6 +6527,7 @@
     /* parameters */ &kParameters[500],
     /* return matcher indices */ &kMatcherIndices[32],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [180] */
@@ -6359,6 +6539,7 @@
     /* parameters */ &kParameters[499],
     /* return matcher indices */ &kMatcherIndices[1],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [181] */
@@ -6370,6 +6551,7 @@
     /* parameters */ &kParameters[498],
     /* return matcher indices */ &kMatcherIndices[32],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [182] */
@@ -6381,6 +6563,7 @@
     /* parameters */ &kParameters[371],
     /* return matcher indices */ &kMatcherIndices[5],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [183] */
@@ -6392,6 +6575,7 @@
     /* parameters */ &kParameters[369],
     /* return matcher indices */ &kMatcherIndices[8],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [184] */
@@ -6403,6 +6587,7 @@
     /* parameters */ &kParameters[497],
     /* return matcher indices */ &kMatcherIndices[5],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [185] */
@@ -6414,6 +6599,7 @@
     /* parameters */ &kParameters[496],
     /* return matcher indices */ &kMatcherIndices[5],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [186] */
@@ -6425,6 +6611,7 @@
     /* parameters */ &kParameters[495],
     /* return matcher indices */ &kMatcherIndices[5],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [187] */
@@ -6436,6 +6623,7 @@
     /* parameters */ &kParameters[494],
     /* return matcher indices */ &kMatcherIndices[8],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [188] */
@@ -6447,6 +6635,7 @@
     /* parameters */ &kParameters[493],
     /* return matcher indices */ &kMatcherIndices[5],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [189] */
@@ -6458,6 +6647,7 @@
     /* parameters */ &kParameters[492],
     /* return matcher indices */ &kMatcherIndices[8],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [190] */
@@ -6469,6 +6659,7 @@
     /* parameters */ &kParameters[543],
     /* return matcher indices */ &kMatcherIndices[5],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [191] */
@@ -6480,6 +6671,7 @@
     /* parameters */ &kParameters[542],
     /* return matcher indices */ &kMatcherIndices[8],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [192] */
@@ -6491,6 +6683,7 @@
     /* parameters */ &kParameters[353],
     /* return matcher indices */ &kMatcherIndices[3],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [193] */
@@ -6502,6 +6695,7 @@
     /* parameters */ &kParameters[351],
     /* return matcher indices */ &kMatcherIndices[2],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [194] */
@@ -6513,6 +6707,7 @@
     /* parameters */ &kParameters[337],
     /* return matcher indices */ &kMatcherIndices[5],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [195] */
@@ -6524,6 +6719,7 @@
     /* parameters */ &kParameters[340],
     /* return matcher indices */ &kMatcherIndices[8],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [196] */
@@ -6535,6 +6731,7 @@
     /* parameters */ &kParameters[419],
     /* return matcher indices */ &kMatcherIndices[5],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [197] */
@@ -6546,6 +6743,7 @@
     /* parameters */ &kParameters[349],
     /* return matcher indices */ &kMatcherIndices[8],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [198] */
@@ -6557,6 +6755,7 @@
     /* parameters */ &kParameters[319],
     /* return matcher indices */ &kMatcherIndices[5],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [199] */
@@ -6568,6 +6767,7 @@
     /* parameters */ &kParameters[322],
     /* return matcher indices */ &kMatcherIndices[8],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [200] */
@@ -6579,6 +6779,7 @@
     /* parameters */ &kParameters[545],
     /* return matcher indices */ &kMatcherIndices[5],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [201] */
@@ -6590,6 +6791,7 @@
     /* parameters */ &kParameters[544],
     /* return matcher indices */ &kMatcherIndices[8],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [202] */
@@ -6601,6 +6803,7 @@
     /* parameters */ &kParameters[547],
     /* return matcher indices */ &kMatcherIndices[5],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [203] */
@@ -6612,6 +6815,7 @@
     /* parameters */ &kParameters[546],
     /* return matcher indices */ &kMatcherIndices[8],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [204] */
@@ -6623,6 +6827,7 @@
     /* parameters */ &kParameters[445],
     /* return matcher indices */ &kMatcherIndices[5],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [205] */
@@ -6634,6 +6839,7 @@
     /* parameters */ &kParameters[442],
     /* return matcher indices */ &kMatcherIndices[8],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [206] */
@@ -6645,6 +6851,7 @@
     /* parameters */ &kParameters[451],
     /* return matcher indices */ &kMatcherIndices[5],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [207] */
@@ -6656,6 +6863,7 @@
     /* parameters */ &kParameters[449],
     /* return matcher indices */ &kMatcherIndices[8],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [208] */
@@ -6667,6 +6875,7 @@
     /* parameters */ &kParameters[473],
     /* return matcher indices */ &kMatcherIndices[5],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [209] */
@@ -6678,6 +6887,7 @@
     /* parameters */ &kParameters[472],
     /* return matcher indices */ &kMatcherIndices[8],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [210] */
@@ -6689,6 +6899,7 @@
     /* parameters */ &kParameters[401],
     /* return matcher indices */ &kMatcherIndices[5],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [211] */
@@ -6700,6 +6911,7 @@
     /* parameters */ &kParameters[403],
     /* return matcher indices */ &kMatcherIndices[8],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [212] */
@@ -6711,6 +6923,7 @@
     /* parameters */ &kParameters[552],
     /* return matcher indices */ &kMatcherIndices[5],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [213] */
@@ -6722,6 +6935,7 @@
     /* parameters */ &kParameters[551],
     /* return matcher indices */ &kMatcherIndices[8],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [214] */
@@ -6733,6 +6947,7 @@
     /* parameters */ &kParameters[485],
     /* return matcher indices */ &kMatcherIndices[3],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [215] */
@@ -6744,6 +6959,7 @@
     /* parameters */ &kParameters[484],
     /* return matcher indices */ &kMatcherIndices[2],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [216] */
@@ -6755,6 +6971,7 @@
     /* parameters */ &kParameters[483],
     /* return matcher indices */ &kMatcherIndices[5],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [217] */
@@ -6766,6 +6983,7 @@
     /* parameters */ &kParameters[482],
     /* return matcher indices */ &kMatcherIndices[8],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [218] */
@@ -6777,6 +6995,7 @@
     /* parameters */ &kParameters[274],
     /* return matcher indices */ &kMatcherIndices[3],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [219] */
@@ -6788,6 +7007,7 @@
     /* parameters */ &kParameters[277],
     /* return matcher indices */ &kMatcherIndices[2],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [220] */
@@ -6799,6 +7019,7 @@
     /* parameters */ &kParameters[481],
     /* return matcher indices */ &kMatcherIndices[5],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [221] */
@@ -6810,6 +7031,7 @@
     /* parameters */ &kParameters[480],
     /* return matcher indices */ &kMatcherIndices[8],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [222] */
@@ -6821,6 +7043,7 @@
     /* parameters */ &kParameters[479],
     /* return matcher indices */ &kMatcherIndices[5],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [223] */
@@ -6832,6 +7055,7 @@
     /* parameters */ &kParameters[478],
     /* return matcher indices */ &kMatcherIndices[8],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [224] */
@@ -6843,6 +7067,7 @@
     /* parameters */ &kParameters[477],
     /* return matcher indices */ &kMatcherIndices[5],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [225] */
@@ -6854,6 +7079,7 @@
     /* parameters */ &kParameters[476],
     /* return matcher indices */ &kMatcherIndices[8],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [226] */
@@ -6865,6 +7091,7 @@
     /* parameters */ &kParameters[365],
     /* return matcher indices */ &kMatcherIndices[5],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [227] */
@@ -6876,6 +7103,7 @@
     /* parameters */ &kParameters[367],
     /* return matcher indices */ &kMatcherIndices[8],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [228] */
@@ -6887,6 +7115,7 @@
     /* parameters */ &kParameters[361],
     /* return matcher indices */ &kMatcherIndices[5],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [229] */
@@ -6898,6 +7127,7 @@
     /* parameters */ &kParameters[363],
     /* return matcher indices */ &kMatcherIndices[8],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [230] */
@@ -6909,6 +7139,7 @@
     /* parameters */ &kParameters[554],
     /* return matcher indices */ &kMatcherIndices[3],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [231] */
@@ -6920,6 +7151,7 @@
     /* parameters */ &kParameters[553],
     /* return matcher indices */ &kMatcherIndices[2],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [232] */
@@ -6931,6 +7163,7 @@
     /* parameters */ &kParameters[555],
     /* return matcher indices */ nullptr,
     /* supported_stages */ PipelineStageSet(PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [233] */
@@ -6942,6 +7175,7 @@
     /* parameters */ &kParameters[486],
     /* return matcher indices */ &kMatcherIndices[54],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [234] */
@@ -6953,6 +7187,7 @@
     /* parameters */ &kParameters[487],
     /* return matcher indices */ &kMatcherIndices[54],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [235] */
@@ -6964,6 +7199,7 @@
     /* parameters */ &kParameters[447],
     /* return matcher indices */ &kMatcherIndices[12],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [236] */
@@ -6975,6 +7211,7 @@
     /* parameters */ &kParameters[488],
     /* return matcher indices */ &kMatcherIndices[54],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [237] */
@@ -6986,6 +7223,7 @@
     /* parameters */ &kParameters[440],
     /* return matcher indices */ &kMatcherIndices[127],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [238] */
@@ -6997,6 +7235,7 @@
     /* parameters */ &kParameters[438],
     /* return matcher indices */ &kMatcherIndices[127],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [239] */
@@ -7008,6 +7247,7 @@
     /* parameters */ &kParameters[436],
     /* return matcher indices */ &kMatcherIndices[127],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [240] */
@@ -7019,6 +7259,7 @@
     /* parameters */ &kParameters[434],
     /* return matcher indices */ &kMatcherIndices[82],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [241] */
@@ -7030,6 +7271,7 @@
     /* parameters */ &kParameters[431],
     /* return matcher indices */ &kMatcherIndices[82],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [242] */
@@ -7041,6 +7283,7 @@
     /* parameters */ &kParameters[555],
     /* return matcher indices */ nullptr,
     /* supported_stages */ PipelineStageSet(PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [243] */
@@ -7052,6 +7295,7 @@
     /* parameters */ &kParameters[489],
     /* return matcher indices */ &kMatcherIndices[54],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [244] */
@@ -7063,6 +7307,7 @@
     /* parameters */ &kParameters[490],
     /* return matcher indices */ &kMatcherIndices[54],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [245] */
@@ -7074,6 +7319,7 @@
     /* parameters */ &kParameters[491],
     /* return matcher indices */ &kMatcherIndices[8],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [246] */
@@ -7085,6 +7331,7 @@
     /* parameters */ &kParameters[471],
     /* return matcher indices */ &kMatcherIndices[69],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [247] */
@@ -7096,6 +7343,7 @@
     /* parameters */ &kParameters[377],
     /* return matcher indices */ &kMatcherIndices[5],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [248] */
@@ -7107,6 +7355,7 @@
     /* parameters */ &kParameters[535],
     /* return matcher indices */ &kMatcherIndices[5],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [249] */
@@ -7118,6 +7367,7 @@
     /* parameters */ &kParameters[383],
     /* return matcher indices */ &kMatcherIndices[123],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [250] */
@@ -7129,6 +7379,7 @@
     /* parameters */ &kParameters[548],
     /* return matcher indices */ &kMatcherIndices[54],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [251] */
@@ -7140,6 +7391,7 @@
     /* parameters */ &kParameters[549],
     /* return matcher indices */ &kMatcherIndices[1],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [252] */
@@ -7151,6 +7403,7 @@
     /* parameters */ &kParameters[550],
     /* return matcher indices */ &kMatcherIndices[1],
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
   {
     /* [253] */
@@ -7162,6 +7415,7 @@
     /* parameters */ &kParameters[508],
     /* return matcher indices */ nullptr,
     /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute),
+    /* is_deprecated */ false,
   },
 };
 
diff --git a/src/intrinsic_table.inl.tmpl b/src/intrinsic_table.inl.tmpl
index fc3a0b7..f45de8d 100644
--- a/src/intrinsic_table.inl.tmpl
+++ b/src/intrinsic_table.inl.tmpl
@@ -101,6 +101,7 @@
 {{-   range $i, $u := $o.CanBeUsedInStage.List -}}
 {{-     if $i -}}, {{end}}PipelineStage::k{{Title $u}}
 {{-   end }}),
+    /* is_deprecated */ {{$o.IsDeprecated}},
   },
 {{- end }}
 };
@@ -247,7 +248,7 @@
 {{-   $entry := printf "k%v" (PascalCase $option.Name) -}}
 Number {{$class}}::Match(MatchState&, Number number) const {
   if (number.IsAny() || number.Value() == static_cast<uint32_t>({{$enum}}::{{$entry}})) {
-    return Number({{$enum}}::{{$entry}});
+    return Number(static_cast<uint32_t>({{$enum}}::{{$entry}}));
   }
   return Number::invalid;
 }
diff --git a/src/resolver/resolver.cc b/src/resolver/resolver.cc
index ee2674a..2cf6ccd 100644
--- a/src/resolver/resolver.cc
+++ b/src/resolver/resolver.cc
@@ -1723,6 +1723,10 @@
     return false;
   }
 
+  if (result->IsDeprecated()) {
+    diagnostics_.add_warning("use of deprecated intrinsic", call->source());
+  }
+
   builder_->Sem().Add(
       call, builder_->create<sem::Call>(call, result, current_statement_));
   SetType(call, result->ReturnType());
diff --git a/src/sem/intrinsic.cc b/src/sem/intrinsic.cc
index bdcae1d..b1d2733 100644
--- a/src/sem/intrinsic.cc
+++ b/src/sem/intrinsic.cc
@@ -90,10 +90,12 @@
 Intrinsic::Intrinsic(IntrinsicType type,
                      sem::Type* return_type,
                      const ParameterList& parameters,
-                     PipelineStageSet supported_stages)
+                     PipelineStageSet supported_stages,
+                     bool is_deprecated)
     : Base(return_type, parameters),
       type_(type),
-      supported_stages_(supported_stages) {}
+      supported_stages_(supported_stages),
+      is_deprecated_(is_deprecated) {}
 
 Intrinsic::~Intrinsic() = default;
 
diff --git a/src/sem/intrinsic.h b/src/sem/intrinsic.h
index 83a7f6d..19ce31c 100644
--- a/src/sem/intrinsic.h
+++ b/src/sem/intrinsic.h
@@ -78,10 +78,13 @@
   /// @param parameters the parameters for the intrinsic overload
   /// @param supported_stages the pipeline stages that this intrinsic can be
   /// used in
+  /// @param is_deprecated true if the particular overload is considered
+  /// deprecated
   Intrinsic(IntrinsicType type,
             sem::Type* return_type,
             const ParameterList& parameters,
-            PipelineStageSet supported_stages);
+            PipelineStageSet supported_stages,
+            bool is_deprecated);
 
   /// Destructor
   ~Intrinsic() override;
@@ -92,6 +95,9 @@
   /// @return the pipeline stages that this intrinsic can be used in
   PipelineStageSet SupportedStages() const { return supported_stages_; }
 
+  /// @return true if the intrinsic overload is considered deprecated
+  bool IsDeprecated() const { return is_deprecated_; }
+
   /// @returns the name of the intrinsic function type. The spelling, including
   /// case, matches the name in the WGSL spec.
   const char* str() const;
@@ -126,6 +132,7 @@
  private:
   IntrinsicType const type_;
   PipelineStageSet const supported_stages_;
+  bool const is_deprecated_;
 };
 
 /// Emits the name of the intrinsic function type. The spelling, including case,
diff --git a/tools/src/cmd/intrinsic-gen/gen/intrinsic_table.go b/tools/src/cmd/intrinsic-gen/gen/intrinsic_table.go
index 82dfa0d..821b1d6 100644
--- a/tools/src/cmd/intrinsic-gen/gen/intrinsic_table.go
+++ b/tools/src/cmd/intrinsic-gen/gen/intrinsic_table.go
@@ -98,6 +98,8 @@
 	ReturnMatcherIndicesOffset *int
 	// StageUses describes the stages an overload can be used in
 	CanBeUsedInStage sem.StageUses
+	// True if the overload is marked as deprecated
+	IsDeprecated bool
 }
 
 // Function is used to create the C++ IntrinsicInfo structure
@@ -196,6 +198,7 @@
 		ParametersOffset:           b.lut.parameters.Add(ob.parameters),
 		ReturnMatcherIndicesOffset: ob.returnTypeMatcherIndicesOffset,
 		CanBeUsedInStage:           o.CanBeUsedInStage,
+		IsDeprecated:               o.IsDeprecated,
 	}, nil
 }
 
diff --git a/tools/src/cmd/intrinsic-gen/resolver/resolve.go b/tools/src/cmd/intrinsic-gen/resolver/resolve.go
index 4f76f31..951df74 100644
--- a/tools/src/cmd/intrinsic-gen/resolver/resolve.go
+++ b/tools/src/cmd/intrinsic-gen/resolver/resolve.go
@@ -275,6 +275,12 @@
 			Compute:  true,
 		}
 	}
+	if deprecated := a.Decorations.Take("deprecated"); deprecated != nil {
+		overload.IsDeprecated = true
+		if len(deprecated.Values) != 0 {
+			return fmt.Errorf("%v unexpected value for deprecated decoration", deprecated.Source)
+		}
+	}
 	if len(a.Decorations) != 0 {
 		return fmt.Errorf("%v unknown decoration", a.Decorations[0].Source)
 	}
diff --git a/tools/src/cmd/intrinsic-gen/sem/sem.go b/tools/src/cmd/intrinsic-gen/sem/sem.go
index cdc91bf..b1dc485 100644
--- a/tools/src/cmd/intrinsic-gen/sem/sem.go
+++ b/tools/src/cmd/intrinsic-gen/sem/sem.go
@@ -137,6 +137,7 @@
 	ReturnType       *FullyQualifiedName
 	Parameters       []Parameter
 	CanBeUsedInStage StageUses
+	IsDeprecated     bool // True if this overload is deprecated
 }
 
 // StageUses describes the stages an overload can be used in
