SPIR-V 1.4: Allow scalar condition with vector data
Fixed: 422424513
* Add overload for select(bool, vec<N, T>, vec<N, T>) -> vec<N, T>
* In SPIR-V 1.4 or later no need to splat a scalar condition for vector
operands
Change-Id: I592efa4b39456b712b72172b702f846e8c8225c1
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/246374
Reviewed-by: James Price <jrprice@google.com>
Commit-Queue: James Price <jrprice@google.com>
Auto-Submit: Alan Baker <alanbaker@google.com>
Commit-Queue: Alan Baker <alanbaker@google.com>
diff --git a/src/tint/lang/spirv/intrinsic/data.cc b/src/tint/lang/spirv/intrinsic/data.cc
index 5a7f8cf..6602869 100644
--- a/src/tint/lang/spirv/intrinsic/data.cc
+++ b/src/tint/lang/spirv/intrinsic/data.cc
@@ -5639,7 +5639,7 @@
{
/* [678] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(914),
+ /* matcher_indices */ MatcherIndicesIndex(856),
},
{
/* [679] */
@@ -5659,32 +5659,32 @@
{
/* [682] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(929),
+ /* matcher_indices */ MatcherIndicesIndex(914),
},
{
/* [683] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(932),
+ /* matcher_indices */ MatcherIndicesIndex(899),
},
{
/* [684] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(935),
+ /* matcher_indices */ MatcherIndicesIndex(899),
},
{
/* [685] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(814),
+ /* matcher_indices */ MatcherIndicesIndex(929),
},
{
/* [686] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(814),
+ /* matcher_indices */ MatcherIndicesIndex(932),
},
{
/* [687] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(21),
+ /* matcher_indices */ MatcherIndicesIndex(935),
},
{
/* [688] */
@@ -5699,32 +5699,32 @@
{
/* [690] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(814),
+ /* matcher_indices */ MatcherIndicesIndex(21),
},
{
/* [691] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(875),
+ /* matcher_indices */ MatcherIndicesIndex(814),
},
{
/* [692] */
- /* usage */ core::ParameterUsage::kBase,
- /* matcher_indices */ MatcherIndicesIndex(21),
+ /* usage */ core::ParameterUsage::kNone,
+ /* matcher_indices */ MatcherIndicesIndex(814),
},
{
/* [693] */
- /* usage */ core::ParameterUsage::kOffset,
- /* matcher_indices */ MatcherIndicesIndex(966),
+ /* usage */ core::ParameterUsage::kNone,
+ /* matcher_indices */ MatcherIndicesIndex(814),
},
{
/* [694] */
- /* usage */ core::ParameterUsage::kCount,
- /* matcher_indices */ MatcherIndicesIndex(966),
+ /* usage */ core::ParameterUsage::kNone,
+ /* matcher_indices */ MatcherIndicesIndex(875),
},
{
/* [695] */
/* usage */ core::ParameterUsage::kBase,
- /* matcher_indices */ MatcherIndicesIndex(814),
+ /* matcher_indices */ MatcherIndicesIndex(21),
},
{
/* [696] */
@@ -5738,296 +5738,311 @@
},
{
/* [698] */
+ /* usage */ core::ParameterUsage::kBase,
+ /* matcher_indices */ MatcherIndicesIndex(814),
+ },
+ {
+ /* [699] */
+ /* usage */ core::ParameterUsage::kOffset,
+ /* matcher_indices */ MatcherIndicesIndex(966),
+ },
+ {
+ /* [700] */
+ /* usage */ core::ParameterUsage::kCount,
+ /* matcher_indices */ MatcherIndicesIndex(966),
+ },
+ {
+ /* [701] */
/* usage */ core::ParameterUsage::kNone,
/* matcher_indices */ MatcherIndicesIndex(855),
},
{
- /* [699] */
+ /* [702] */
/* usage */ core::ParameterUsage::kNone,
/* matcher_indices */ MatcherIndicesIndex(21),
},
{
- /* [700] */
+ /* [703] */
/* usage */ core::ParameterUsage::kImage,
/* matcher_indices */ MatcherIndicesIndex(406),
},
{
- /* [701] */
+ /* [704] */
/* usage */ core::ParameterUsage::kLevel,
/* matcher_indices */ MatcherIndicesIndex(52),
},
{
- /* [702] */
+ /* [705] */
/* usage */ core::ParameterUsage::kImage,
/* matcher_indices */ MatcherIndicesIndex(415),
},
{
- /* [703] */
+ /* [706] */
/* usage */ core::ParameterUsage::kLevel,
/* matcher_indices */ MatcherIndicesIndex(52),
},
{
- /* [704] */
+ /* [707] */
/* usage */ core::ParameterUsage::kImage,
/* matcher_indices */ MatcherIndicesIndex(424),
},
{
- /* [705] */
+ /* [708] */
/* usage */ core::ParameterUsage::kLevel,
/* matcher_indices */ MatcherIndicesIndex(52),
},
{
- /* [706] */
+ /* [709] */
/* usage */ core::ParameterUsage::kImage,
/* matcher_indices */ MatcherIndicesIndex(433),
},
{
- /* [707] */
+ /* [710] */
/* usage */ core::ParameterUsage::kLevel,
/* matcher_indices */ MatcherIndicesIndex(52),
},
{
- /* [708] */
+ /* [711] */
/* usage */ core::ParameterUsage::kImage,
/* matcher_indices */ MatcherIndicesIndex(442),
},
{
- /* [709] */
+ /* [712] */
/* usage */ core::ParameterUsage::kLevel,
/* matcher_indices */ MatcherIndicesIndex(52),
},
{
- /* [710] */
+ /* [713] */
/* usage */ core::ParameterUsage::kImage,
/* matcher_indices */ MatcherIndicesIndex(451),
},
{
- /* [711] */
+ /* [714] */
/* usage */ core::ParameterUsage::kLevel,
/* matcher_indices */ MatcherIndicesIndex(52),
},
{
- /* [712] */
+ /* [715] */
/* usage */ core::ParameterUsage::kImage,
/* matcher_indices */ MatcherIndicesIndex(460),
},
{
- /* [713] */
+ /* [716] */
/* usage */ core::ParameterUsage::kLevel,
/* matcher_indices */ MatcherIndicesIndex(8),
},
{
- /* [714] */
+ /* [717] */
/* usage */ core::ParameterUsage::kImage,
/* matcher_indices */ MatcherIndicesIndex(469),
},
{
- /* [715] */
+ /* [718] */
/* usage */ core::ParameterUsage::kLevel,
/* matcher_indices */ MatcherIndicesIndex(8),
},
{
- /* [716] */
+ /* [719] */
/* usage */ core::ParameterUsage::kImage,
/* matcher_indices */ MatcherIndicesIndex(478),
},
{
- /* [717] */
+ /* [720] */
/* usage */ core::ParameterUsage::kLevel,
/* matcher_indices */ MatcherIndicesIndex(8),
},
{
- /* [718] */
+ /* [721] */
/* usage */ core::ParameterUsage::kImage,
/* matcher_indices */ MatcherIndicesIndex(487),
},
{
- /* [719] */
+ /* [722] */
/* usage */ core::ParameterUsage::kLevel,
/* matcher_indices */ MatcherIndicesIndex(8),
},
{
- /* [720] */
+ /* [723] */
/* usage */ core::ParameterUsage::kImage,
/* matcher_indices */ MatcherIndicesIndex(622),
},
{
- /* [721] */
+ /* [724] */
/* usage */ core::ParameterUsage::kCoords,
/* matcher_indices */ MatcherIndicesIndex(956),
},
{
- /* [722] */
+ /* [725] */
/* usage */ core::ParameterUsage::kNone,
/* matcher_indices */ MatcherIndicesIndex(871),
},
{
- /* [723] */
+ /* [726] */
/* usage */ core::ParameterUsage::kNone,
/* matcher_indices */ MatcherIndicesIndex(875),
},
{
- /* [724] */
- /* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(879),
- },
- {
- /* [725] */
- /* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(21),
- },
- {
- /* [726] */
- /* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(879),
- },
- {
/* [727] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(814),
+ /* matcher_indices */ MatcherIndicesIndex(879),
},
{
/* [728] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(911),
+ /* matcher_indices */ MatcherIndicesIndex(21),
},
{
/* [729] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(820),
+ /* matcher_indices */ MatcherIndicesIndex(879),
},
{
/* [730] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(920),
+ /* matcher_indices */ MatcherIndicesIndex(814),
},
{
/* [731] */
/* usage */ core::ParameterUsage::kNone,
- /* matcher_indices */ MatcherIndicesIndex(923),
+ /* matcher_indices */ MatcherIndicesIndex(911),
},
{
/* [732] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* matcher_indices */ MatcherIndicesIndex(820),
+ },
+ {
+ /* [733] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* matcher_indices */ MatcherIndicesIndex(920),
+ },
+ {
+ /* [734] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* matcher_indices */ MatcherIndicesIndex(923),
+ },
+ {
+ /* [735] */
/* usage */ core::ParameterUsage::kX,
/* matcher_indices */ MatcherIndicesIndex(21),
},
{
- /* [733] */
+ /* [736] */
/* usage */ core::ParameterUsage::kI,
/* matcher_indices */ MatcherIndicesIndex(883),
},
{
- /* [734] */
+ /* [737] */
/* usage */ core::ParameterUsage::kX,
/* matcher_indices */ MatcherIndicesIndex(814),
},
{
- /* [735] */
+ /* [738] */
/* usage */ core::ParameterUsage::kI,
/* matcher_indices */ MatcherIndicesIndex(812),
},
{
- /* [736] */
+ /* [739] */
/* usage */ core::ParameterUsage::kX,
/* matcher_indices */ MatcherIndicesIndex(21),
},
{
- /* [737] */
+ /* [740] */
/* usage */ core::ParameterUsage::kI,
/* matcher_indices */ MatcherIndicesIndex(887),
},
{
- /* [738] */
+ /* [741] */
/* usage */ core::ParameterUsage::kX,
/* matcher_indices */ MatcherIndicesIndex(911),
},
{
- /* [739] */
+ /* [742] */
/* usage */ core::ParameterUsage::kI,
/* matcher_indices */ MatcherIndicesIndex(818),
},
{
- /* [740] */
+ /* [743] */
/* usage */ core::ParameterUsage::kImage,
/* matcher_indices */ MatcherIndicesIndex(298),
},
{
- /* [741] */
+ /* [744] */
/* usage */ core::ParameterUsage::kImage,
/* matcher_indices */ MatcherIndicesIndex(307),
},
{
- /* [742] */
+ /* [745] */
/* usage */ core::ParameterUsage::kImage,
/* matcher_indices */ MatcherIndicesIndex(316),
},
{
- /* [743] */
+ /* [746] */
/* usage */ core::ParameterUsage::kImage,
/* matcher_indices */ MatcherIndicesIndex(325),
},
{
- /* [744] */
+ /* [747] */
/* usage */ core::ParameterUsage::kImage,
/* matcher_indices */ MatcherIndicesIndex(334),
},
{
- /* [745] */
+ /* [748] */
/* usage */ core::ParameterUsage::kImage,
/* matcher_indices */ MatcherIndicesIndex(343),
},
{
- /* [746] */
+ /* [749] */
/* usage */ core::ParameterUsage::kImage,
/* matcher_indices */ MatcherIndicesIndex(352),
},
{
- /* [747] */
+ /* [750] */
/* usage */ core::ParameterUsage::kImage,
/* matcher_indices */ MatcherIndicesIndex(361),
},
{
- /* [748] */
+ /* [751] */
/* usage */ core::ParameterUsage::kImage,
/* matcher_indices */ MatcherIndicesIndex(370),
},
{
- /* [749] */
+ /* [752] */
/* usage */ core::ParameterUsage::kImage,
/* matcher_indices */ MatcherIndicesIndex(379),
},
{
- /* [750] */
+ /* [753] */
/* usage */ core::ParameterUsage::kImage,
/* matcher_indices */ MatcherIndicesIndex(388),
},
{
- /* [751] */
+ /* [754] */
/* usage */ core::ParameterUsage::kImage,
/* matcher_indices */ MatcherIndicesIndex(397),
},
{
- /* [752] */
+ /* [755] */
/* usage */ core::ParameterUsage::kImage,
/* matcher_indices */ MatcherIndicesIndex(496),
},
{
- /* [753] */
+ /* [756] */
/* usage */ core::ParameterUsage::kImage,
/* matcher_indices */ MatcherIndicesIndex(505),
},
{
- /* [754] */
+ /* [757] */
/* usage */ core::ParameterUsage::kNone,
/* matcher_indices */ MatcherIndicesIndex(639),
},
{
- /* [755] */
+ /* [758] */
/* usage */ core::ParameterUsage::kNone,
/* matcher_indices */ MatcherIndicesIndex(962),
},
{
- /* [756] */
+ /* [759] */
/* usage */ core::ParameterUsage::kNone,
/* matcher_indices */ MatcherIndicesIndex(964),
},
@@ -8508,7 +8523,7 @@
/* num_explicit_templates */ 0,
/* num_templates */ 4,
/* templates */ TemplateIndex(57),
- /* parameters */ ParameterIndex(720),
+ /* parameters */ ParameterIndex(723),
/* return_matcher_indices */ MatcherIndicesIndex(53),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -8651,7 +8666,7 @@
/* num_explicit_templates */ 1,
/* num_templates */ 4,
/* templates */ TemplateIndex(49),
- /* parameters */ ParameterIndex(740),
+ /* parameters */ ParameterIndex(743),
/* return_matcher_indices */ MatcherIndicesIndex(21),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -8662,7 +8677,7 @@
/* num_explicit_templates */ 1,
/* num_templates */ 4,
/* templates */ TemplateIndex(49),
- /* parameters */ ParameterIndex(741),
+ /* parameters */ ParameterIndex(744),
/* return_matcher_indices */ MatcherIndicesIndex(952),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -8673,7 +8688,7 @@
/* num_explicit_templates */ 1,
/* num_templates */ 4,
/* templates */ TemplateIndex(49),
- /* parameters */ ParameterIndex(742),
+ /* parameters */ ParameterIndex(745),
/* return_matcher_indices */ MatcherIndicesIndex(954),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -8684,7 +8699,7 @@
/* num_explicit_templates */ 1,
/* num_templates */ 4,
/* templates */ TemplateIndex(49),
- /* parameters */ ParameterIndex(743),
+ /* parameters */ ParameterIndex(746),
/* return_matcher_indices */ MatcherIndicesIndex(954),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -8695,7 +8710,7 @@
/* num_explicit_templates */ 1,
/* num_templates */ 4,
/* templates */ TemplateIndex(49),
- /* parameters */ ParameterIndex(744),
+ /* parameters */ ParameterIndex(747),
/* return_matcher_indices */ MatcherIndicesIndex(952),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -8706,7 +8721,7 @@
/* num_explicit_templates */ 1,
/* num_templates */ 4,
/* templates */ TemplateIndex(49),
- /* parameters */ ParameterIndex(745),
+ /* parameters */ ParameterIndex(748),
/* return_matcher_indices */ MatcherIndicesIndex(954),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -8717,7 +8732,7 @@
/* num_explicit_templates */ 1,
/* num_templates */ 5,
/* templates */ TemplateIndex(16),
- /* parameters */ ParameterIndex(746),
+ /* parameters */ ParameterIndex(749),
/* return_matcher_indices */ MatcherIndicesIndex(952),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -8728,7 +8743,7 @@
/* num_explicit_templates */ 1,
/* num_templates */ 3,
/* templates */ TemplateIndex(112),
- /* parameters */ ParameterIndex(747),
+ /* parameters */ ParameterIndex(750),
/* return_matcher_indices */ MatcherIndicesIndex(952),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -8739,7 +8754,7 @@
/* num_explicit_templates */ 1,
/* num_templates */ 3,
/* templates */ TemplateIndex(112),
- /* parameters */ ParameterIndex(748),
+ /* parameters */ ParameterIndex(751),
/* return_matcher_indices */ MatcherIndicesIndex(954),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -8750,7 +8765,7 @@
/* num_explicit_templates */ 1,
/* num_templates */ 3,
/* templates */ TemplateIndex(112),
- /* parameters */ ParameterIndex(749),
+ /* parameters */ ParameterIndex(752),
/* return_matcher_indices */ MatcherIndicesIndex(952),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -8761,7 +8776,7 @@
/* num_explicit_templates */ 1,
/* num_templates */ 3,
/* templates */ TemplateIndex(112),
- /* parameters */ ParameterIndex(750),
+ /* parameters */ ParameterIndex(753),
/* return_matcher_indices */ MatcherIndicesIndex(954),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -8772,7 +8787,7 @@
/* num_explicit_templates */ 1,
/* num_templates */ 4,
/* templates */ TemplateIndex(53),
- /* parameters */ ParameterIndex(751),
+ /* parameters */ ParameterIndex(754),
/* return_matcher_indices */ MatcherIndicesIndex(952),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -8915,7 +8930,7 @@
/* num_explicit_templates */ 1,
/* num_templates */ 6,
/* templates */ TemplateIndex(10),
- /* parameters */ ParameterIndex(700),
+ /* parameters */ ParameterIndex(703),
/* return_matcher_indices */ MatcherIndicesIndex(21),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -8926,7 +8941,7 @@
/* num_explicit_templates */ 1,
/* num_templates */ 6,
/* templates */ TemplateIndex(10),
- /* parameters */ ParameterIndex(702),
+ /* parameters */ ParameterIndex(705),
/* return_matcher_indices */ MatcherIndicesIndex(952),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -8937,7 +8952,7 @@
/* num_explicit_templates */ 1,
/* num_templates */ 6,
/* templates */ TemplateIndex(10),
- /* parameters */ ParameterIndex(704),
+ /* parameters */ ParameterIndex(707),
/* return_matcher_indices */ MatcherIndicesIndex(954),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -8948,7 +8963,7 @@
/* num_explicit_templates */ 1,
/* num_templates */ 6,
/* templates */ TemplateIndex(10),
- /* parameters */ ParameterIndex(706),
+ /* parameters */ ParameterIndex(709),
/* return_matcher_indices */ MatcherIndicesIndex(954),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -8959,7 +8974,7 @@
/* num_explicit_templates */ 1,
/* num_templates */ 6,
/* templates */ TemplateIndex(10),
- /* parameters */ ParameterIndex(708),
+ /* parameters */ ParameterIndex(711),
/* return_matcher_indices */ MatcherIndicesIndex(952),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -8970,7 +8985,7 @@
/* num_explicit_templates */ 1,
/* num_templates */ 6,
/* templates */ TemplateIndex(10),
- /* parameters */ ParameterIndex(710),
+ /* parameters */ ParameterIndex(713),
/* return_matcher_indices */ MatcherIndicesIndex(954),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -8981,7 +8996,7 @@
/* num_explicit_templates */ 1,
/* num_templates */ 5,
/* templates */ TemplateIndex(21),
- /* parameters */ ParameterIndex(712),
+ /* parameters */ ParameterIndex(715),
/* return_matcher_indices */ MatcherIndicesIndex(952),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -8992,7 +9007,7 @@
/* num_explicit_templates */ 1,
/* num_templates */ 5,
/* templates */ TemplateIndex(21),
- /* parameters */ ParameterIndex(714),
+ /* parameters */ ParameterIndex(717),
/* return_matcher_indices */ MatcherIndicesIndex(954),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -9003,7 +9018,7 @@
/* num_explicit_templates */ 1,
/* num_templates */ 5,
/* templates */ TemplateIndex(21),
- /* parameters */ ParameterIndex(716),
+ /* parameters */ ParameterIndex(719),
/* return_matcher_indices */ MatcherIndicesIndex(952),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -9014,7 +9029,7 @@
/* num_explicit_templates */ 1,
/* num_templates */ 5,
/* templates */ TemplateIndex(21),
- /* parameters */ ParameterIndex(718),
+ /* parameters */ ParameterIndex(721),
/* return_matcher_indices */ MatcherIndicesIndex(954),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -9395,127 +9410,6 @@
{
/* [215] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
- /* num_parameters */ 1,
- /* num_explicit_templates */ 0,
- /* num_templates */ 1,
- /* templates */ TemplateIndex(31),
- /* parameters */ ParameterIndex(754),
- /* return_matcher_indices */ MatcherIndicesIndex(639),
- /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
- },
- {
- /* [216] */
- /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
- /* num_parameters */ 1,
- /* num_explicit_templates */ 0,
- /* num_templates */ 1,
- /* templates */ TemplateIndex(31),
- /* parameters */ ParameterIndex(755),
- /* return_matcher_indices */ MatcherIndicesIndex(962),
- /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
- },
- {
- /* [217] */
- /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
- /* num_parameters */ 1,
- /* num_explicit_templates */ 0,
- /* num_templates */ 1,
- /* templates */ TemplateIndex(31),
- /* parameters */ ParameterIndex(756),
- /* return_matcher_indices */ MatcherIndicesIndex(964),
- /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
- },
- {
- /* [218] */
- /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
- /* num_parameters */ 3,
- /* num_explicit_templates */ 0,
- /* num_templates */ 3,
- /* templates */ TemplateIndex(105),
- /* parameters */ ParameterIndex(0),
- /* return_matcher_indices */ MatcherIndicesIndex(21),
- /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
- },
- {
- /* [219] */
- /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
- /* num_parameters */ 3,
- /* num_explicit_templates */ 0,
- /* num_templates */ 3,
- /* templates */ TemplateIndex(105),
- /* parameters */ ParameterIndex(606),
- /* return_matcher_indices */ MatcherIndicesIndex(21),
- /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
- },
- {
- /* [220] */
- /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
- /* num_parameters */ 4,
- /* num_explicit_templates */ 0,
- /* num_templates */ 3,
- /* templates */ TemplateIndex(105),
- /* parameters */ ParameterIndex(302),
- /* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
- },
- {
- /* [221] */
- /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
- /* num_parameters */ 4,
- /* num_explicit_templates */ 0,
- /* num_templates */ 3,
- /* templates */ TemplateIndex(105),
- /* parameters */ ParameterIndex(306),
- /* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
- /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
- },
- {
- /* [222] */
- /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
- /* num_parameters */ 4,
- /* num_explicit_templates */ 0,
- /* num_templates */ 3,
- /* templates */ TemplateIndex(105),
- /* parameters */ ParameterIndex(302),
- /* return_matcher_indices */ MatcherIndicesIndex(21),
- /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
- },
- {
- /* [223] */
- /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
- /* num_parameters */ 4,
- /* num_explicit_templates */ 0,
- /* num_templates */ 3,
- /* templates */ TemplateIndex(105),
- /* parameters */ ParameterIndex(306),
- /* return_matcher_indices */ MatcherIndicesIndex(21),
- /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
- },
- {
- /* [224] */
- /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
- /* num_parameters */ 6,
- /* num_explicit_templates */ 0,
- /* num_templates */ 3,
- /* templates */ TemplateIndex(105),
- /* parameters */ ParameterIndex(0),
- /* return_matcher_indices */ MatcherIndicesIndex(21),
- /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
- },
- {
- /* [225] */
- /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
- /* num_parameters */ 6,
- /* num_explicit_templates */ 0,
- /* num_templates */ 3,
- /* templates */ TemplateIndex(105),
- /* parameters */ ParameterIndex(8),
- /* return_matcher_indices */ MatcherIndicesIndex(21),
- /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
- },
- {
- /* [226] */
- /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* num_parameters */ 3,
/* num_explicit_templates */ 0,
/* num_templates */ 1,
@@ -9525,7 +9419,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [227] */
+ /* [216] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* num_parameters */ 3,
/* num_explicit_templates */ 0,
@@ -9536,7 +9430,139 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
+ /* [217] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
+ /* num_parameters */ 3,
+ /* num_explicit_templates */ 0,
+ /* num_templates */ 2,
+ /* templates */ TemplateIndex(47),
+ /* parameters */ ParameterIndex(682),
+ /* return_matcher_indices */ MatcherIndicesIndex(899),
+ /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+ },
+ {
+ /* [218] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
+ /* num_parameters */ 1,
+ /* num_explicit_templates */ 0,
+ /* num_templates */ 1,
+ /* templates */ TemplateIndex(31),
+ /* parameters */ ParameterIndex(757),
+ /* return_matcher_indices */ MatcherIndicesIndex(639),
+ /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+ },
+ {
+ /* [219] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
+ /* num_parameters */ 1,
+ /* num_explicit_templates */ 0,
+ /* num_templates */ 1,
+ /* templates */ TemplateIndex(31),
+ /* parameters */ ParameterIndex(758),
+ /* return_matcher_indices */ MatcherIndicesIndex(962),
+ /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+ },
+ {
+ /* [220] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
+ /* num_parameters */ 1,
+ /* num_explicit_templates */ 0,
+ /* num_templates */ 1,
+ /* templates */ TemplateIndex(31),
+ /* parameters */ ParameterIndex(759),
+ /* return_matcher_indices */ MatcherIndicesIndex(964),
+ /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+ },
+ {
+ /* [221] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
+ /* num_parameters */ 3,
+ /* num_explicit_templates */ 0,
+ /* num_templates */ 3,
+ /* templates */ TemplateIndex(105),
+ /* parameters */ ParameterIndex(0),
+ /* return_matcher_indices */ MatcherIndicesIndex(21),
+ /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+ },
+ {
+ /* [222] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
+ /* num_parameters */ 3,
+ /* num_explicit_templates */ 0,
+ /* num_templates */ 3,
+ /* templates */ TemplateIndex(105),
+ /* parameters */ ParameterIndex(606),
+ /* return_matcher_indices */ MatcherIndicesIndex(21),
+ /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+ },
+ {
+ /* [223] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
+ /* num_parameters */ 4,
+ /* num_explicit_templates */ 0,
+ /* num_templates */ 3,
+ /* templates */ TemplateIndex(105),
+ /* parameters */ ParameterIndex(302),
+ /* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+ },
+ {
+ /* [224] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
+ /* num_parameters */ 4,
+ /* num_explicit_templates */ 0,
+ /* num_templates */ 3,
+ /* templates */ TemplateIndex(105),
+ /* parameters */ ParameterIndex(306),
+ /* return_matcher_indices */ MatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+ },
+ {
+ /* [225] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
+ /* num_parameters */ 4,
+ /* num_explicit_templates */ 0,
+ /* num_templates */ 3,
+ /* templates */ TemplateIndex(105),
+ /* parameters */ ParameterIndex(302),
+ /* return_matcher_indices */ MatcherIndicesIndex(21),
+ /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+ },
+ {
+ /* [226] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
+ /* num_parameters */ 4,
+ /* num_explicit_templates */ 0,
+ /* num_templates */ 3,
+ /* templates */ TemplateIndex(105),
+ /* parameters */ ParameterIndex(306),
+ /* return_matcher_indices */ MatcherIndicesIndex(21),
+ /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+ },
+ {
+ /* [227] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
+ /* num_parameters */ 6,
+ /* num_explicit_templates */ 0,
+ /* num_templates */ 3,
+ /* templates */ TemplateIndex(105),
+ /* parameters */ ParameterIndex(0),
+ /* return_matcher_indices */ MatcherIndicesIndex(21),
+ /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+ },
+ {
/* [228] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
+ /* num_parameters */ 6,
+ /* num_explicit_templates */ 0,
+ /* num_templates */ 3,
+ /* templates */ TemplateIndex(105),
+ /* parameters */ ParameterIndex(8),
+ /* return_matcher_indices */ MatcherIndicesIndex(21),
+ /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+ },
+ {
+ /* [229] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* num_parameters */ 1,
/* num_explicit_templates */ 0,
@@ -9547,7 +9573,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [229] */
+ /* [230] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* num_parameters */ 1,
/* num_explicit_templates */ 0,
@@ -9558,7 +9584,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [230] */
+ /* [231] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* num_parameters */ 1,
/* num_explicit_templates */ 1,
@@ -9569,41 +9595,41 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [231] */
+ /* [232] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* num_parameters */ 1,
/* num_explicit_templates */ 1,
/* num_templates */ 3,
/* templates */ TemplateIndex(142),
- /* parameters */ ParameterIndex(729),
+ /* parameters */ ParameterIndex(732),
/* return_matcher_indices */ MatcherIndicesIndex(911),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [232] */
- /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
- /* num_parameters */ 2,
- /* num_explicit_templates */ 1,
- /* num_templates */ 3,
- /* templates */ TemplateIndex(26),
- /* parameters */ ParameterIndex(14),
- /* return_matcher_indices */ MatcherIndicesIndex(21),
- /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
- },
- {
/* [233] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* num_parameters */ 2,
/* num_explicit_templates */ 1,
- /* num_templates */ 4,
- /* templates */ TemplateIndex(93),
- /* parameters */ ParameterIndex(730),
- /* return_matcher_indices */ MatcherIndicesIndex(917),
+ /* num_templates */ 3,
+ /* templates */ TemplateIndex(26),
+ /* parameters */ ParameterIndex(14),
+ /* return_matcher_indices */ MatcherIndicesIndex(21),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
/* [234] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
+ /* num_parameters */ 2,
+ /* num_explicit_templates */ 1,
+ /* num_templates */ 4,
+ /* templates */ TemplateIndex(93),
+ /* parameters */ ParameterIndex(733),
+ /* return_matcher_indices */ MatcherIndicesIndex(917),
+ /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+ },
+ {
+ /* [235] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* num_parameters */ 3,
/* num_explicit_templates */ 1,
/* num_templates */ 4,
@@ -9613,74 +9639,30 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [235] */
+ /* [236] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* num_parameters */ 3,
/* num_explicit_templates */ 1,
/* num_templates */ 5,
/* templates */ TemplateIndex(26),
- /* parameters */ ParameterIndex(682),
+ /* parameters */ ParameterIndex(685),
/* return_matcher_indices */ MatcherIndicesIndex(926),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [236] */
- /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
- /* num_parameters */ 3,
- /* num_explicit_templates */ 0,
- /* num_templates */ 1,
- /* templates */ TemplateIndex(31),
- /* parameters */ ParameterIndex(4),
- /* return_matcher_indices */ MatcherIndicesIndex(21),
- /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
- },
- {
/* [237] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* num_parameters */ 3,
/* num_explicit_templates */ 0,
- /* num_templates */ 2,
- /* templates */ TemplateIndex(139),
- /* parameters */ ParameterIndex(685),
- /* return_matcher_indices */ MatcherIndicesIndex(814),
+ /* num_templates */ 1,
+ /* templates */ TemplateIndex(31),
+ /* parameters */ ParameterIndex(4),
+ /* return_matcher_indices */ MatcherIndicesIndex(21),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
/* [238] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
- /* num_parameters */ 2,
- /* num_explicit_templates */ 0,
- /* num_templates */ 1,
- /* templates */ TemplateIndex(31),
- /* parameters */ ParameterIndex(4),
- /* return_matcher_indices */ MatcherIndicesIndex(21),
- /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
- },
- {
- /* [239] */
- /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
- /* num_parameters */ 2,
- /* num_explicit_templates */ 0,
- /* num_templates */ 2,
- /* templates */ TemplateIndex(139),
- /* parameters */ ParameterIndex(685),
- /* return_matcher_indices */ MatcherIndicesIndex(814),
- /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
- },
- {
- /* [240] */
- /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
- /* num_parameters */ 3,
- /* num_explicit_templates */ 0,
- /* num_templates */ 1,
- /* templates */ TemplateIndex(31),
- /* parameters */ ParameterIndex(4),
- /* return_matcher_indices */ MatcherIndicesIndex(21),
- /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
- },
- {
- /* [241] */
- /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* num_parameters */ 3,
/* num_explicit_templates */ 0,
/* num_templates */ 2,
@@ -9690,8 +9672,52 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
+ /* [239] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
+ /* num_parameters */ 2,
+ /* num_explicit_templates */ 0,
+ /* num_templates */ 1,
+ /* templates */ TemplateIndex(31),
+ /* parameters */ ParameterIndex(4),
+ /* return_matcher_indices */ MatcherIndicesIndex(21),
+ /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+ },
+ {
+ /* [240] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
+ /* num_parameters */ 2,
+ /* num_explicit_templates */ 0,
+ /* num_templates */ 2,
+ /* templates */ TemplateIndex(139),
+ /* parameters */ ParameterIndex(688),
+ /* return_matcher_indices */ MatcherIndicesIndex(814),
+ /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+ },
+ {
+ /* [241] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
+ /* num_parameters */ 3,
+ /* num_explicit_templates */ 0,
+ /* num_templates */ 1,
+ /* templates */ TemplateIndex(31),
+ /* parameters */ ParameterIndex(4),
+ /* return_matcher_indices */ MatcherIndicesIndex(21),
+ /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+ },
+ {
/* [242] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
+ /* num_parameters */ 3,
+ /* num_explicit_templates */ 0,
+ /* num_templates */ 2,
+ /* templates */ TemplateIndex(139),
+ /* parameters */ ParameterIndex(691),
+ /* return_matcher_indices */ MatcherIndicesIndex(814),
+ /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+ },
+ {
+ /* [243] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* num_parameters */ 2,
/* num_explicit_templates */ 0,
/* num_templates */ 2,
@@ -9701,7 +9727,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [243] */
+ /* [244] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* num_parameters */ 2,
/* num_explicit_templates */ 0,
@@ -9712,36 +9738,25 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [244] */
+ /* [245] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* num_parameters */ 2,
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(162),
- /* parameters */ ParameterIndex(732),
+ /* parameters */ ParameterIndex(735),
/* return_matcher_indices */ MatcherIndicesIndex(21),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [245] */
- /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
- /* num_parameters */ 2,
- /* num_explicit_templates */ 0,
- /* num_templates */ 3,
- /* templates */ TemplateIndex(145),
- /* parameters */ ParameterIndex(734),
- /* return_matcher_indices */ MatcherIndicesIndex(814),
- /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
- },
- {
/* [246] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* num_parameters */ 2,
/* num_explicit_templates */ 0,
/* num_templates */ 3,
- /* templates */ TemplateIndex(148),
- /* parameters */ ParameterIndex(736),
- /* return_matcher_indices */ MatcherIndicesIndex(21),
+ /* templates */ TemplateIndex(145),
+ /* parameters */ ParameterIndex(737),
+ /* return_matcher_indices */ MatcherIndicesIndex(814),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -9749,15 +9764,26 @@
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* num_parameters */ 2,
/* num_explicit_templates */ 0,
- /* num_templates */ 4,
- /* templates */ TemplateIndex(97),
- /* parameters */ ParameterIndex(738),
- /* return_matcher_indices */ MatcherIndicesIndex(911),
+ /* num_templates */ 3,
+ /* templates */ TemplateIndex(148),
+ /* parameters */ ParameterIndex(739),
+ /* return_matcher_indices */ MatcherIndicesIndex(21),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
/* [248] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
+ /* num_parameters */ 2,
+ /* num_explicit_templates */ 0,
+ /* num_templates */ 4,
+ /* templates */ TemplateIndex(97),
+ /* parameters */ ParameterIndex(741),
+ /* return_matcher_indices */ MatcherIndicesIndex(911),
+ /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+ },
+ {
+ /* [249] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* num_parameters */ 4,
/* num_explicit_templates */ 0,
/* num_templates */ 1,
@@ -9767,7 +9793,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [249] */
+ /* [250] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* num_parameters */ 4,
/* num_explicit_templates */ 0,
@@ -9778,29 +9804,29 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [250] */
+ /* [251] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* num_parameters */ 3,
/* num_explicit_templates */ 0,
/* num_templates */ 1,
/* templates */ TemplateIndex(27),
- /* parameters */ ParameterIndex(692),
+ /* parameters */ ParameterIndex(695),
/* return_matcher_indices */ MatcherIndicesIndex(21),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [251] */
+ /* [252] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* num_parameters */ 3,
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(143),
- /* parameters */ ParameterIndex(695),
+ /* parameters */ ParameterIndex(698),
/* return_matcher_indices */ MatcherIndicesIndex(814),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [252] */
+ /* [253] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* num_parameters */ 2,
/* num_explicit_templates */ 1,
@@ -9811,18 +9837,18 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [253] */
+ /* [254] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* num_parameters */ 2,
/* num_explicit_templates */ 1,
/* num_templates */ 4,
/* templates */ TemplateIndex(101),
- /* parameters */ ParameterIndex(730),
+ /* parameters */ ParameterIndex(733),
/* return_matcher_indices */ MatcherIndicesIndex(917),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [254] */
+ /* [255] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* num_parameters */ 2,
/* num_explicit_templates */ 0,
@@ -9833,36 +9859,25 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [255] */
+ /* [256] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* num_parameters */ 2,
/* num_explicit_templates */ 0,
/* num_templates */ 3,
/* templates */ TemplateIndex(102),
- /* parameters */ ParameterIndex(728),
+ /* parameters */ ParameterIndex(731),
/* return_matcher_indices */ MatcherIndicesIndex(941),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [256] */
- /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
- /* num_parameters */ 1,
- /* num_explicit_templates */ 1,
- /* num_templates */ 2,
- /* templates */ TemplateIndex(151),
- /* parameters */ ParameterIndex(1),
- /* return_matcher_indices */ MatcherIndicesIndex(21),
- /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
- },
- {
/* [257] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* num_parameters */ 1,
/* num_explicit_templates */ 1,
- /* num_templates */ 3,
+ /* num_templates */ 2,
/* templates */ TemplateIndex(151),
- /* parameters */ ParameterIndex(729),
- /* return_matcher_indices */ MatcherIndicesIndex(911),
+ /* parameters */ ParameterIndex(1),
+ /* return_matcher_indices */ MatcherIndicesIndex(21),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -9870,6 +9885,17 @@
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* num_parameters */ 1,
/* num_explicit_templates */ 1,
+ /* num_templates */ 3,
+ /* templates */ TemplateIndex(151),
+ /* parameters */ ParameterIndex(732),
+ /* return_matcher_indices */ MatcherIndicesIndex(911),
+ /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+ },
+ {
+ /* [259] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
+ /* num_parameters */ 1,
+ /* num_explicit_templates */ 1,
/* num_templates */ 2,
/* templates */ TemplateIndex(154),
/* parameters */ ParameterIndex(1),
@@ -9877,18 +9903,18 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [259] */
+ /* [260] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* num_parameters */ 1,
/* num_explicit_templates */ 1,
/* num_templates */ 3,
/* templates */ TemplateIndex(154),
- /* parameters */ ParameterIndex(729),
+ /* parameters */ ParameterIndex(732),
/* return_matcher_indices */ MatcherIndicesIndex(911),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [260] */
+ /* [261] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* num_parameters */ 1,
/* num_explicit_templates */ 1,
@@ -9899,29 +9925,29 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [261] */
+ /* [262] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* num_parameters */ 1,
/* num_explicit_templates */ 1,
/* num_templates */ 3,
/* templates */ TemplateIndex(157),
- /* parameters */ ParameterIndex(729),
+ /* parameters */ ParameterIndex(732),
/* return_matcher_indices */ MatcherIndicesIndex(911),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [262] */
+ /* [263] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* num_parameters */ 2,
/* num_explicit_templates */ 0,
/* num_templates */ 2,
/* templates */ TemplateIndex(160),
- /* parameters */ ParameterIndex(698),
+ /* parameters */ ParameterIndex(701),
/* return_matcher_indices */ MatcherIndicesIndex(43),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [263] */
+ /* [264] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* num_parameters */ 3,
/* num_explicit_templates */ 0,
@@ -9932,7 +9958,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [264] */
+ /* [265] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* num_parameters */ 2,
/* num_explicit_templates */ 0,
@@ -9943,36 +9969,25 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [265] */
- /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
- /* num_parameters */ 1,
- /* num_explicit_templates */ 1,
- /* num_templates */ 7,
- /* templates */ TemplateIndex(3),
- /* parameters */ ParameterIndex(752),
- /* return_matcher_indices */ MatcherIndicesIndex(21),
- /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
- },
- {
/* [266] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* num_parameters */ 1,
/* num_explicit_templates */ 1,
/* num_templates */ 7,
/* templates */ TemplateIndex(3),
- /* parameters */ ParameterIndex(753),
+ /* parameters */ ParameterIndex(755),
/* return_matcher_indices */ MatcherIndicesIndex(21),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
/* [267] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
- /* num_parameters */ 2,
- /* num_explicit_templates */ 0,
- /* num_templates */ 4,
- /* templates */ TemplateIndex(89),
- /* parameters */ ParameterIndex(722),
- /* return_matcher_indices */ MatcherIndicesIndex(867),
+ /* num_parameters */ 1,
+ /* num_explicit_templates */ 1,
+ /* num_templates */ 7,
+ /* templates */ TemplateIndex(3),
+ /* parameters */ ParameterIndex(756),
+ /* return_matcher_indices */ MatcherIndicesIndex(21),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -9980,10 +9995,10 @@
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* num_parameters */ 2,
/* num_explicit_templates */ 0,
- /* num_templates */ 3,
- /* templates */ TemplateIndex(139),
- /* parameters */ ParameterIndex(724),
- /* return_matcher_indices */ MatcherIndicesIndex(879),
+ /* num_templates */ 4,
+ /* templates */ TemplateIndex(89),
+ /* parameters */ ParameterIndex(725),
+ /* return_matcher_indices */ MatcherIndicesIndex(867),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -9993,8 +10008,8 @@
/* num_explicit_templates */ 0,
/* num_templates */ 3,
/* templates */ TemplateIndex(139),
- /* parameters */ ParameterIndex(726),
- /* return_matcher_indices */ MatcherIndicesIndex(911),
+ /* parameters */ ParameterIndex(727),
+ /* return_matcher_indices */ MatcherIndicesIndex(879),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -10004,7 +10019,7 @@
/* num_explicit_templates */ 0,
/* num_templates */ 3,
/* templates */ TemplateIndex(139),
- /* parameters */ ParameterIndex(690),
+ /* parameters */ ParameterIndex(729),
/* return_matcher_indices */ MatcherIndicesIndex(911),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
@@ -10013,10 +10028,10 @@
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* num_parameters */ 2,
/* num_explicit_templates */ 0,
- /* num_templates */ 2,
+ /* num_templates */ 3,
/* templates */ TemplateIndex(139),
- /* parameters */ ParameterIndex(686),
- /* return_matcher_indices */ MatcherIndicesIndex(814),
+ /* parameters */ ParameterIndex(693),
+ /* return_matcher_indices */ MatcherIndicesIndex(911),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -10024,21 +10039,21 @@
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* num_parameters */ 2,
/* num_explicit_templates */ 0,
- /* num_templates */ 3,
+ /* num_templates */ 2,
/* templates */ TemplateIndex(139),
- /* parameters */ ParameterIndex(727),
- /* return_matcher_indices */ MatcherIndicesIndex(875),
+ /* parameters */ ParameterIndex(689),
+ /* return_matcher_indices */ MatcherIndicesIndex(814),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
/* [273] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
- /* num_parameters */ 3,
+ /* num_parameters */ 2,
/* num_explicit_templates */ 0,
- /* num_templates */ 0,
- /* templates */ TemplateIndex(/* invalid */),
- /* parameters */ ParameterIndex(299),
- /* return_matcher_indices */ MatcherIndicesIndex(32),
+ /* num_templates */ 3,
+ /* templates */ TemplateIndex(139),
+ /* parameters */ ParameterIndex(730),
+ /* return_matcher_indices */ MatcherIndicesIndex(875),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
@@ -10049,11 +10064,22 @@
/* num_templates */ 0,
/* templates */ TemplateIndex(/* invalid */),
/* parameters */ ParameterIndex(299),
- /* return_matcher_indices */ MatcherIndicesIndex(43),
+ /* return_matcher_indices */ MatcherIndicesIndex(32),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
/* [275] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
+ /* num_parameters */ 3,
+ /* num_explicit_templates */ 0,
+ /* num_templates */ 0,
+ /* templates */ TemplateIndex(/* invalid */),
+ /* parameters */ ParameterIndex(299),
+ /* return_matcher_indices */ MatcherIndicesIndex(43),
+ /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+ },
+ {
+ /* [276] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline),
/* num_parameters */ 4,
/* num_explicit_templates */ 1,
@@ -10064,7 +10090,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [276] */
+ /* [277] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline),
/* num_parameters */ 5,
/* num_explicit_templates */ 0,
@@ -10075,7 +10101,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
},
{
- /* [277] */
+ /* [278] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 4,
/* num_explicit_templates */ 0,
@@ -10095,116 +10121,116 @@
/* [0] */
/* fn array_length[I : u32, A : access](ptr<storage, struct_with_runtime_array, A>, I) -> u32 */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(262),
+ /* overloads */ OverloadIndex(263),
},
{
/* [1] */
/* fn atomic_load[T : iu32, U : u32, S : workgroup_or_storage](ptr<S, atomic<T>, read_write>, U, U) -> T */
/* fn atomic_load[T : iu32, U : u32, S : workgroup_or_storage](ptr<S, T, readable>, U, U) -> T */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(218),
+ /* overloads */ OverloadIndex(221),
},
{
/* [2] */
/* fn atomic_store[T : iu32, U : u32, S : workgroup_or_storage](ptr<S, atomic<T>, read_write>, U, U, T) */
/* fn atomic_store[T : iu32, U : u32, S : workgroup_or_storage](ptr<S, T, writable>, U, U, T) */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(220),
+ /* overloads */ OverloadIndex(223),
},
{
/* [3] */
/* fn atomic_exchange[T : iu32, U : u32, S : workgroup_or_storage](ptr<S, atomic<T>, read_write>, U, U, T) -> T */
/* fn atomic_exchange[T : iu32, U : u32, S : workgroup_or_storage](ptr<S, T, writable>, U, U, T) -> T */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(222),
+ /* overloads */ OverloadIndex(225),
},
{
/* [4] */
/* fn atomic_compare_exchange[T : iu32, U : u32, S : workgroup_or_storage](ptr<S, atomic<T>, read_write>, U, U, U, T, T) -> T */
/* fn atomic_compare_exchange[T : iu32, U : u32, S : workgroup_or_storage](ptr<S, T, writable>, U, U, U, T, T) -> T */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(224),
+ /* overloads */ OverloadIndex(227),
},
{
/* [5] */
/* fn atomic_i_add[T : iu32, U : u32, S : workgroup_or_storage](ptr<S, atomic<T>, read_write>, U, U, T) -> T */
/* fn atomic_i_add[T : iu32, U : u32, S : workgroup_or_storage](ptr<S, T, writable>, U, U, T) -> T */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(222),
+ /* overloads */ OverloadIndex(225),
},
{
/* [6] */
/* fn atomic_i_sub[T : iu32, U : u32, S : workgroup_or_storage](ptr<S, atomic<T>, read_write>, U, U, T) -> T */
/* fn atomic_i_sub[T : iu32, U : u32, S : workgroup_or_storage](ptr<S, T, writable>, U, U, T) -> T */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(222),
+ /* overloads */ OverloadIndex(225),
},
{
/* [7] */
/* fn atomic_s_max[T : iu32, U : u32, S : workgroup_or_storage](ptr<S, atomic<T>, read_write>, U, U, T) -> T */
/* fn atomic_s_max[T : iu32, U : u32, S : workgroup_or_storage](ptr<S, T, writable>, U, U, T) -> T */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(222),
+ /* overloads */ OverloadIndex(225),
},
{
/* [8] */
/* fn atomic_s_min[T : iu32, U : u32, S : workgroup_or_storage](ptr<S, atomic<T>, read_write>, U, U, T) -> T */
/* fn atomic_s_min[T : iu32, U : u32, S : workgroup_or_storage](ptr<S, T, writable>, U, U, T) -> T */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(222),
+ /* overloads */ OverloadIndex(225),
},
{
/* [9] */
/* fn atomic_u_max[T : iu32, U : u32, S : workgroup_or_storage](ptr<S, atomic<T>, read_write>, U, U, T) -> T */
/* fn atomic_u_max[T : iu32, U : u32, S : workgroup_or_storage](ptr<S, T, writable>, U, U, T) -> T */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(222),
+ /* overloads */ OverloadIndex(225),
},
{
/* [10] */
/* fn atomic_u_min[T : iu32, U : u32, S : workgroup_or_storage](ptr<S, atomic<T>, read_write>, U, U, T) -> T */
/* fn atomic_u_min[T : iu32, U : u32, S : workgroup_or_storage](ptr<S, T, writable>, U, U, T) -> T */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(222),
+ /* overloads */ OverloadIndex(225),
},
{
/* [11] */
/* fn atomic_and[T : iu32, U : u32, S : workgroup_or_storage](ptr<S, atomic<T>, read_write>, U, U, T) -> T */
/* fn atomic_and[T : iu32, U : u32, S : workgroup_or_storage](ptr<S, T, writable>, U, U, T) -> T */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(222),
+ /* overloads */ OverloadIndex(225),
},
{
/* [12] */
/* fn atomic_or[T : iu32, U : u32, S : workgroup_or_storage](ptr<S, atomic<T>, read_write>, U, U, T) -> T */
/* fn atomic_or[T : iu32, U : u32, S : workgroup_or_storage](ptr<S, T, writable>, U, U, T) -> T */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(222),
+ /* overloads */ OverloadIndex(225),
},
{
/* [13] */
/* fn atomic_xor[T : iu32, U : u32, S : workgroup_or_storage](ptr<S, atomic<T>, read_write>, U, U, T) -> T */
/* fn atomic_xor[T : iu32, U : u32, S : workgroup_or_storage](ptr<S, T, writable>, U, U, T) -> T */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(222),
+ /* overloads */ OverloadIndex(225),
},
{
/* [14] */
/* fn atomic_i_increment[T : iu32, U : u32, S : workgroup_or_storage](ptr<S, T, writable>, U, U) -> T */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(263),
+ /* overloads */ OverloadIndex(264),
},
{
/* [15] */
/* fn atomic_i_decrement[T : iu32, U : u32, S : workgroup_or_storage](ptr<S, T, writable>, U, U) -> T */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(263),
+ /* overloads */ OverloadIndex(264),
},
{
/* [16] */
/* fn dot[N : num, T : f32_f16](vec<N, T>, vec<N, T>) -> T */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(264),
+ /* overloads */ OverloadIndex(265),
},
{
/* [17] */
@@ -10291,13 +10317,13 @@
/* [22] */
/* fn image_query_levels<Z : iu32>[T : fiu32, D : depth, R : arrayed, S : sampled, F : texel_format, A : access](image: image<T, dim_1d_2d_3d_or_cube, D, R, single_sampled, S, F, A>) -> Z */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(265),
+ /* overloads */ OverloadIndex(266),
},
{
/* [23] */
/* fn image_query_samples<Z : iu32>[T : fiu32, D : depth, R : arrayed, S : sampled, F : texel_format, A : access](image: image<T, dim_2d, D, R, multi_sampled, S, F, A>) -> Z */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(266),
+ /* overloads */ OverloadIndex(267),
},
{
/* [24] */
@@ -10507,45 +10533,46 @@
/* [33] */
/* fn matrix_times_matrix[T : f32_f16, K : num, C : num, R : num](mat<K, R, T>, mat<C, K, T>) -> mat<C, R, T> */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(267),
+ /* overloads */ OverloadIndex(268),
},
{
/* [34] */
/* fn matrix_times_scalar[T : f32_f16, N : num, M : num](mat<N, M, T>, T) -> mat<N, M, T> */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(268),
+ /* overloads */ OverloadIndex(269),
},
{
/* [35] */
/* fn matrix_times_vector[T : f32_f16, N : num, M : num](mat<N, M, T>, vec<N, T>) -> vec<M, T> */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(269),
+ /* overloads */ OverloadIndex(270),
},
{
/* [36] */
/* fn select[T : scalar](bool, T, T) -> T */
+ /* fn select[N : num, T : scalar](bool, vec<N, T>, vec<N, T>) -> vec<N, T> */
/* fn select[N : num, T : scalar](vec<N, bool>, vec<N, T>, vec<N, T>) -> vec<N, T> */
- /* num overloads */ 2,
- /* overloads */ OverloadIndex(226),
+ /* num overloads */ 3,
+ /* overloads */ OverloadIndex(215),
},
{
/* [37] */
/* fn vector_times_matrix[T : f32_f16, N : num, M : num](vec<N, T>, mat<M, N, T>) -> vec<M, T> */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(270),
+ /* overloads */ OverloadIndex(271),
},
{
/* [38] */
/* fn vector_times_scalar[T : f32_f16, N : num](vec<N, T>, T) -> vec<N, T> */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(271),
+ /* overloads */ OverloadIndex(272),
},
{
/* [39] */
/* fn normalize[T : f32_f16](T) -> T */
/* fn normalize[N : num, T : f32_f16](vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(228),
+ /* overloads */ OverloadIndex(229),
},
{
/* [40] */
@@ -10553,379 +10580,379 @@
/* fn inverse[T : f32_f16](mat3x3<T>) -> mat3x3<T> */
/* fn inverse[T : f32_f16](mat4x4<T>) -> mat4x4<T> */
/* num overloads */ 3,
- /* overloads */ OverloadIndex(215),
+ /* overloads */ OverloadIndex(218),
},
{
/* [41] */
/* fn sign<R : iu32>[T : iu32](T) -> R */
/* fn sign<R : iu32>[T : iu32, N : num](vec<N, T>) -> vec<N, R> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(230),
+ /* overloads */ OverloadIndex(231),
},
{
/* [42] */
/* fn abs<R : iu32>[T : iu32](T) -> R */
/* fn abs<R : iu32>[T : iu32, N : num](vec<N, T>) -> vec<N, R> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(230),
+ /* overloads */ OverloadIndex(231),
},
{
/* [43] */
/* fn s_max<R : iu32>[T : iu32, U : iu32](T, U) -> R */
/* fn s_max<R : iu32>[T : iu32, U : iu32, N : num](vec<N, T>, vec<N, U>) -> vec<N, R> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(232),
+ /* overloads */ OverloadIndex(233),
},
{
/* [44] */
/* fn s_min<R : iu32>[T : iu32, U : iu32](T, U) -> R */
/* fn s_min<R : iu32>[T : iu32, U : iu32, N : num](vec<N, T>, vec<N, U>) -> vec<N, R> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(232),
+ /* overloads */ OverloadIndex(233),
},
{
/* [45] */
/* fn s_clamp<R : iu32>[T : iu32, U : iu32, V : iu32](T, U, V) -> R */
/* fn s_clamp<R : iu32>[T : iu32, U : iu32, V : iu32, N : num](vec<N, T>, vec<N, U>, vec<N, V>) -> vec<N, R> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(234),
+ /* overloads */ OverloadIndex(235),
},
{
/* [46] */
/* fn u_max<R : iu32>[T : iu32, U : iu32](T, U) -> R */
/* fn u_max<R : iu32>[T : iu32, U : iu32, N : num](vec<N, T>, vec<N, U>) -> vec<N, R> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(232),
+ /* overloads */ OverloadIndex(233),
},
{
/* [47] */
/* fn u_min<R : iu32>[T : iu32, U : iu32](T, U) -> R */
/* fn u_min<R : iu32>[T : iu32, U : iu32, N : num](vec<N, T>, vec<N, U>) -> vec<N, R> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(232),
+ /* overloads */ OverloadIndex(233),
},
{
/* [48] */
/* fn u_clamp<R : iu32>[T : iu32, U : iu32, V : iu32](T, U, V) -> R */
/* fn u_clamp<R : iu32>[T : iu32, U : iu32, V : iu32, N : num](vec<N, T>, vec<N, U>, vec<N, V>) -> vec<N, R> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(234),
+ /* overloads */ OverloadIndex(235),
},
{
/* [49] */
/* fn find_i_lsb<R : iu32>[T : iu32](T) -> R */
/* fn find_i_lsb<R : iu32>[T : iu32, N : num](vec<N, T>) -> vec<N, R> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(230),
+ /* overloads */ OverloadIndex(231),
},
{
/* [50] */
/* fn find_s_msb<R : iu32>[T : iu32](T) -> R */
/* fn find_s_msb<R : iu32>[T : iu32, N : num](vec<N, T>) -> vec<N, R> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(230),
+ /* overloads */ OverloadIndex(231),
},
{
/* [51] */
/* fn find_u_msb<R : iu32>[T : iu32](T) -> R */
/* fn find_u_msb<R : iu32>[T : iu32, N : num](vec<N, T>) -> vec<N, R> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(230),
+ /* overloads */ OverloadIndex(231),
},
{
/* [52] */
/* fn refract[T : f32_f16](T, T, T) -> T */
/* fn refract[T : f32_f16, N : num](vec<N, T>, vec<N, T>, T) -> vec<N, T> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(236),
+ /* overloads */ OverloadIndex(237),
},
{
/* [53] */
/* fn reflect[T : f32_f16](T, T) -> T */
/* fn reflect[T : f32_f16, N : num](vec<N, T>, vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(238),
+ /* overloads */ OverloadIndex(239),
},
{
/* [54] */
/* fn face_forward[T : f32_f16](T, T, T) -> T */
/* fn face_forward[T : f32_f16, N : num](vec<N, T>, vec<N, T>, vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(240),
+ /* overloads */ OverloadIndex(241),
},
{
/* [55] */
/* fn ldexp[T : f32_f16, U : iu32](T, U) -> T */
/* fn ldexp[N : num, T : f32_f16, U : iu32](vec<N, T>, vec<N, U>) -> vec<N, T> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(242),
+ /* overloads */ OverloadIndex(243),
},
{
/* [56] */
/* fn modf[T : f32_f16, S : function_private_workgroup_storage](x: T, i: ptr<S, T, writable>) -> T */
/* fn modf[T : f32_f16, N : num, S : function_private_workgroup_storage](x: vec<N, T>, i: ptr<S, vec<N, T>, writable>) -> vec<N, T> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(244),
+ /* overloads */ OverloadIndex(245),
},
{
/* [57] */
/* fn frexp[T : f32_f16, R : iu32, S : function_private_workgroup_storage](x: T, i: ptr<S, R, writable>) -> T */
/* fn frexp[T : f32_f16, R : iu32, N : num, S : function_private_workgroup_storage](x: vec<N, T>, i: ptr<S, vec<N, R>, writable>) -> vec<N, T> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(246),
+ /* overloads */ OverloadIndex(247),
},
{
/* [58] */
/* fn bit_count<R : iu32>[T : iu32](T) -> R */
/* fn bit_count<R : iu32>[T : iu32, N : num](vec<N, T>) -> vec<N, R> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(230),
+ /* overloads */ OverloadIndex(231),
},
{
/* [59] */
/* fn bit_field_insert[T : iu32](base: T, insert: T, offset: iu32, count: iu32) -> T */
/* fn bit_field_insert[T : iu32, N : num](base: vec<N, T>, insert: vec<N, T>, offset: iu32, count: iu32) -> vec<N, T> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(248),
+ /* overloads */ OverloadIndex(249),
},
{
/* [60] */
/* fn bit_field_s_extract[T : iu32](base: T, offset: iu32, count: iu32) -> T */
/* fn bit_field_s_extract[T : iu32, N : num](base: vec<N, T>, offset: iu32, count: iu32) -> vec<N, T> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(250),
+ /* overloads */ OverloadIndex(251),
},
{
/* [61] */
/* fn bit_field_u_extract[T : iu32](base: T, offset: iu32, count: iu32) -> T */
/* fn bit_field_u_extract[T : iu32, N : num](base: vec<N, T>, offset: iu32, count: iu32) -> vec<N, T> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(250),
+ /* overloads */ OverloadIndex(251),
},
{
/* [62] */
/* fn add<R : iu32>[A : iu32, B : iu32](A, B) -> R */
/* fn add<R : iu32>[A : iu32, B : iu32, N : num](vec<N, A>, vec<N, B>) -> vec<N, R> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(252),
+ /* overloads */ OverloadIndex(253),
},
{
/* [63] */
/* fn sub<R : iu32>[A : iu32, B : iu32](A, B) -> R */
/* fn sub<R : iu32>[A : iu32, B : iu32, N : num](vec<N, A>, vec<N, B>) -> vec<N, R> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(252),
+ /* overloads */ OverloadIndex(253),
},
{
/* [64] */
/* fn mul<R : iu32>[A : iu32, B : iu32](A, B) -> R */
/* fn mul<R : iu32>[A : iu32, B : iu32, N : num](vec<N, A>, vec<N, B>) -> vec<N, R> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(252),
+ /* overloads */ OverloadIndex(253),
},
{
/* [65] */
/* fn s_div<R : iu32>[A : iu32, B : iu32](A, B) -> R */
/* fn s_div<R : iu32>[A : iu32, B : iu32, N : num](vec<N, A>, vec<N, B>) -> vec<N, R> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(252),
+ /* overloads */ OverloadIndex(253),
},
{
/* [66] */
/* fn s_mod<R : iu32>[A : iu32, B : iu32](A, B) -> R */
/* fn s_mod<R : iu32>[A : iu32, B : iu32, N : num](vec<N, A>, vec<N, B>) -> vec<N, R> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(252),
+ /* overloads */ OverloadIndex(253),
},
{
/* [67] */
/* fn s_greater_than[A : iu32, B : iu32](A, B) -> bool */
/* fn s_greater_than[A : iu32, B : iu32, N : num](vec<N, A>, vec<N, B>) -> vec<N, bool> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(254),
+ /* overloads */ OverloadIndex(255),
},
{
/* [68] */
/* fn s_greater_than_equal[A : iu32, B : iu32](A, B) -> bool */
/* fn s_greater_than_equal[A : iu32, B : iu32, N : num](vec<N, A>, vec<N, B>) -> vec<N, bool> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(254),
+ /* overloads */ OverloadIndex(255),
},
{
/* [69] */
/* fn s_less_than[A : iu32, B : iu32](A, B) -> bool */
/* fn s_less_than[A : iu32, B : iu32, N : num](vec<N, A>, vec<N, B>) -> vec<N, bool> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(254),
+ /* overloads */ OverloadIndex(255),
},
{
/* [70] */
/* fn s_less_than_equal[A : iu32, B : iu32](A, B) -> bool */
/* fn s_less_than_equal[A : iu32, B : iu32, N : num](vec<N, A>, vec<N, B>) -> vec<N, bool> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(254),
+ /* overloads */ OverloadIndex(255),
},
{
/* [71] */
/* fn u_greater_than[A : iu32, B : iu32](A, B) -> bool */
/* fn u_greater_than[A : iu32, B : iu32, N : num](vec<N, A>, vec<N, B>) -> vec<N, bool> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(254),
+ /* overloads */ OverloadIndex(255),
},
{
/* [72] */
/* fn u_greater_than_equal[A : iu32, B : iu32](A, B) -> bool */
/* fn u_greater_than_equal[A : iu32, B : iu32, N : num](vec<N, A>, vec<N, B>) -> vec<N, bool> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(254),
+ /* overloads */ OverloadIndex(255),
},
{
/* [73] */
/* fn u_less_than[A : iu32, B : iu32](A, B) -> bool */
/* fn u_less_than[A : iu32, B : iu32, N : num](vec<N, A>, vec<N, B>) -> vec<N, bool> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(254),
+ /* overloads */ OverloadIndex(255),
},
{
/* [74] */
/* fn u_less_than_equal[A : iu32, B : iu32](A, B) -> bool */
/* fn u_less_than_equal[A : iu32, B : iu32, N : num](vec<N, A>, vec<N, B>) -> vec<N, bool> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(254),
+ /* overloads */ OverloadIndex(255),
},
{
/* [75] */
/* fn convert_f_to_s<R : iu32>[T : f32_f16](T) -> R */
/* fn convert_f_to_s<R : iu32>[T : f32_f16, N : num](vec<N, T>) -> vec<N, R> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(256),
+ /* overloads */ OverloadIndex(257),
},
{
/* [76] */
/* fn convert_s_to_f<R : f32_f16>[T : iu32](T) -> R */
/* fn convert_s_to_f<R : f32_f16>[T : iu32, N : num](vec<N, T>) -> vec<N, R> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(258),
+ /* overloads */ OverloadIndex(259),
},
{
/* [77] */
/* fn convert_u_to_f<R : f32_f16>[T : iu32](T) -> R */
/* fn convert_u_to_f<R : f32_f16>[T : iu32, N : num](vec<N, T>) -> vec<N, R> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(258),
+ /* overloads */ OverloadIndex(259),
},
{
/* [78] */
/* fn bitwise_and<R : iu32>[A : iu32, B : iu32](A, B) -> R */
/* fn bitwise_and<R : iu32>[A : iu32, B : iu32, N : num](vec<N, A>, vec<N, B>) -> vec<N, R> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(252),
+ /* overloads */ OverloadIndex(253),
},
{
/* [79] */
/* fn bitwise_or<R : iu32>[A : iu32, B : iu32](A, B) -> R */
/* fn bitwise_or<R : iu32>[A : iu32, B : iu32, N : num](vec<N, A>, vec<N, B>) -> vec<N, R> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(252),
+ /* overloads */ OverloadIndex(253),
},
{
/* [80] */
/* fn bitwise_xor<R : iu32>[A : iu32, B : iu32](A, B) -> R */
/* fn bitwise_xor<R : iu32>[A : iu32, B : iu32, N : num](vec<N, A>, vec<N, B>) -> vec<N, R> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(252),
+ /* overloads */ OverloadIndex(253),
},
{
/* [81] */
/* fn equal[A : iu32, B : iu32](A, B) -> bool */
/* fn equal[A : iu32, B : iu32, N : num](vec<N, A>, vec<N, B>) -> vec<N, bool> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(254),
+ /* overloads */ OverloadIndex(255),
},
{
/* [82] */
/* fn not_equal[A : iu32, B : iu32](A, B) -> bool */
/* fn not_equal[A : iu32, B : iu32, N : num](vec<N, A>, vec<N, B>) -> vec<N, bool> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(254),
+ /* overloads */ OverloadIndex(255),
},
{
/* [83] */
/* fn shift_left_logical<R : iu32>[A : iu32, B : iu32](A, B) -> R */
/* fn shift_left_logical<R : iu32>[A : iu32, B : iu32, N : num](vec<N, A>, vec<N, B>) -> vec<N, R> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(252),
+ /* overloads */ OverloadIndex(253),
},
{
/* [84] */
/* fn shift_right_logical<R : iu32>[A : iu32, B : iu32](A, B) -> R */
/* fn shift_right_logical<R : iu32>[A : iu32, B : iu32, N : num](vec<N, A>, vec<N, B>) -> vec<N, R> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(252),
+ /* overloads */ OverloadIndex(253),
},
{
/* [85] */
/* fn shift_right_arithmetic<R : iu32>[A : iu32, B : iu32](A, B) -> R */
/* fn shift_right_arithmetic<R : iu32>[A : iu32, B : iu32, N : num](vec<N, A>, vec<N, B>) -> vec<N, R> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(252),
+ /* overloads */ OverloadIndex(253),
},
{
/* [86] */
/* fn not<R : iu32>[A : iu32](A) -> R */
/* fn not<R : iu32>[A : iu32, N : num](vec<N, A>) -> vec<N, R> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(260),
+ /* overloads */ OverloadIndex(261),
},
{
/* [87] */
/* fn s_negate<R : iu32>[A : iu32](A) -> R */
/* fn s_negate<R : iu32>[A : iu32, N : num](vec<N, A>) -> vec<N, R> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(260),
+ /* overloads */ OverloadIndex(261),
},
{
/* [88] */
/* fn f_mod[T : f32_f16](T, T) -> T */
/* fn f_mod[T : f32_f16, N : num](vec<N, T>, vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
- /* overloads */ OverloadIndex(238),
+ /* overloads */ OverloadIndex(239),
},
{
/* [89] */
/* fn outer_product[T : f32_f16, N : num, M : num](vec<N, T>, vec<M, T>) -> mat<M, N, T> */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(272),
+ /* overloads */ OverloadIndex(273),
},
{
/* [90] */
/* fn s_dot(u32, u32, u32) -> i32 */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(273),
+ /* overloads */ OverloadIndex(274),
},
{
/* [91] */
/* fn u_dot(u32, u32, u32) -> u32 */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(274),
+ /* overloads */ OverloadIndex(275),
},
{
/* [92] */
/* fn cooperative_matrix_load<T : subgroup_matrix<K, S, C, R>>[K : subgroup_matrix_kind, S : fiu32_f16, C : num, R : num](ptr<workgroup_or_storage, S, readable>, u32, u32, u32) -> T */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(275),
+ /* overloads */ OverloadIndex(276),
},
{
/* [93] */
/* fn cooperative_matrix_store[K : subgroup_matrix_kind, S : fiu32_f16, C : num, R : num](ptr<workgroup_or_storage, S, writable>, subgroup_matrix<K, S, C, R>, u32, u32, u32) */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(276),
+ /* overloads */ OverloadIndex(277),
},
{
/* [94] */
/* fn cooperative_matrix_mul_add[T : subgroup_matrix_elements, TR : subgroup_matrix_elements, C : num, R : num, K : num](subgroup_matrix<subgroup_matrix_kind_left, T, K, R>, subgroup_matrix<subgroup_matrix_kind_right, T, C, K>, subgroup_matrix<subgroup_matrix_kind_result, TR, C, R>, u32) -> subgroup_matrix<subgroup_matrix_kind_result, TR, C, R> */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(277),
+ /* overloads */ OverloadIndex(278),
},
};
diff --git a/src/tint/lang/spirv/spirv.def b/src/tint/lang/spirv/spirv.def
index 4159981..58c945bf 100644
--- a/src/tint/lang/spirv/spirv.def
+++ b/src/tint/lang/spirv/spirv.def
@@ -1511,6 +1511,7 @@
implicit(T: scalar) fn select(bool, T, T) -> T
+implicit(N: num, T: scalar) fn select(bool, vec<N, T>, vec<N, T>) -> vec<N, T>
implicit(N: num, T: scalar) fn select(vec<N, bool>, vec<N, T>, vec<N, T>) -> vec<N, T>
implicit(T: f32_f16, N: num, M: num) fn vector_times_matrix(vec<N, T>, mat<M, N, T>) -> vec<M, T>
diff --git a/src/tint/lang/spirv/writer/raise/builtin_polyfill.cc b/src/tint/lang/spirv/writer/raise/builtin_polyfill.cc
index 537776f..a30117d 100644
--- a/src/tint/lang/spirv/writer/raise/builtin_polyfill.cc
+++ b/src/tint/lang/spirv/writer/raise/builtin_polyfill.cc
@@ -536,17 +536,19 @@
builtin->Args()[0],
};
- // If the condition is scalar and the objects are vectors, we need to splat the condition
- // into a vector of the same size.
- // TODO(jrprice): We don't need to do this if we're targeting SPIR-V 1.4 or newer.
- auto* vec = builtin->Result()->Type()->As<core::type::Vector>();
- if (vec && args[0]->Type()->Is<core::type::Scalar>()) {
- Vector<core::ir::Value*, 4> elements;
- elements.Resize(vec->Width(), args[0]);
+ if (config.version < SpvVersion::kSpv14) {
+ // If the condition is scalar and the objects are vectors, we need to splat the
+ // condition into a vector of the same size.
+ auto* vec = builtin->Result()->Type()->As<core::type::Vector>();
+ if (vec && args[0]->Type()->Is<core::type::Scalar>()) {
+ Vector<core::ir::Value*, 4> elements;
+ elements.Resize(vec->Width(), args[0]);
- auto* construct = b.Construct(ty.vec(ty.bool_(), vec->Width()), std::move(elements));
- construct->InsertBefore(builtin);
- args[0] = construct->Result();
+ auto* construct =
+ b.Construct(ty.vec(ty.bool_(), vec->Width()), std::move(elements));
+ construct->InsertBefore(builtin);
+ args[0] = construct->Result();
+ }
}
// Replace the builtin call with a call to the spirv.select intrinsic.
diff --git a/src/tint/lang/spirv/writer/raise/builtin_polyfill.h b/src/tint/lang/spirv/writer/raise/builtin_polyfill.h
index 8cf90ae..60ea101 100644
--- a/src/tint/lang/spirv/writer/raise/builtin_polyfill.h
+++ b/src/tint/lang/spirv/writer/raise/builtin_polyfill.h
@@ -28,6 +28,7 @@
#ifndef SRC_TINT_LANG_SPIRV_WRITER_RAISE_BUILTIN_POLYFILL_H_
#define SRC_TINT_LANG_SPIRV_WRITER_RAISE_BUILTIN_POLYFILL_H_
+#include "src/tint/lang/spirv/writer/common/options.h"
#include "src/tint/utils/result.h"
// Forward declarations.
@@ -41,6 +42,7 @@
struct PolyfillConfig {
bool use_vulkan_memory_model = false;
bool scalarize_clamp_builtin = false;
+ SpvVersion version = SpvVersion::kSpv13;
};
/// BuiltinPolyfill is a transform that replaces calls to builtins with polyfills and calls to
diff --git a/src/tint/lang/spirv/writer/raise/builtin_polyfill_test.cc b/src/tint/lang/spirv/writer/raise/builtin_polyfill_test.cc
index a67a4c8..591f9e7 100644
--- a/src/tint/lang/spirv/writer/raise/builtin_polyfill_test.cc
+++ b/src/tint/lang/spirv/writer/raise/builtin_polyfill_test.cc
@@ -1376,6 +1376,43 @@
EXPECT_EQ(expect, str());
}
+TEST_F(SpirvWriter_BuiltinPolyfillTest, Select_ScalarCondition_VectorOperands_Spv14) {
+ auto* argf = b.FunctionParam("argf", ty.vec4<i32>());
+ auto* argt = b.FunctionParam("argt", ty.vec4<i32>());
+ auto* cond = b.FunctionParam("cond", ty.bool_());
+ auto* func = b.Function("foo", ty.vec4<i32>());
+ func->SetParams({argf, argt, cond});
+
+ b.Append(func->Block(), [&] {
+ auto* result = b.Call(ty.vec4<i32>(), core::BuiltinFn::kSelect, argf, argt, cond);
+ b.Return(func, result);
+ });
+
+ auto* src = R"(
+%foo = func(%argf:vec4<i32>, %argt:vec4<i32>, %cond:bool):vec4<i32> {
+ $B1: {
+ %5:vec4<i32> = select %argf, %argt, %cond
+ ret %5
+ }
+}
+)";
+ EXPECT_EQ(src, str());
+
+ auto* expect = R"(
+%foo = func(%argf:vec4<i32>, %argt:vec4<i32>, %cond:bool):vec4<i32> {
+ $B1: {
+ %5:vec4<i32> = spirv.select %cond, %argt, %argf
+ ret %5
+ }
+}
+)";
+
+ PolyfillConfig config{.version = SpvVersion::kSpv14};
+ Run(BuiltinPolyfill, config);
+
+ EXPECT_EQ(expect, str());
+}
+
TEST_F(SpirvWriter_BuiltinPolyfillTest, TextureLoad_2D) {
auto* t = b.FunctionParam("t", ty.sampled_texture(core::type::TextureDimension::k2d, ty.f32()));
auto* coords = b.FunctionParam("coords", ty.vec2<i32>());
diff --git a/src/tint/lang/spirv/writer/raise/raise.cc b/src/tint/lang/spirv/writer/raise/raise.cc
index 2ff52ec..c9c6fbd 100644
--- a/src/tint/lang/spirv/writer/raise/raise.cc
+++ b/src/tint/lang/spirv/writer/raise/raise.cc
@@ -168,7 +168,8 @@
}
raise::PolyfillConfig config = {.use_vulkan_memory_model = options.use_vulkan_memory_model,
- .scalarize_clamp_builtin = options.scalarize_clamp_builtin};
+ .scalarize_clamp_builtin = options.scalarize_clamp_builtin,
+ .version = options.spirv_version};
RUN_TRANSFORM(raise::BuiltinPolyfill, module, config);
RUN_TRANSFORM(raise::ExpandImplicitSplats, module);
// kAllowAnyInputAttachmentIndexType required after ExpandImplicitSplats