Add subgroupBroadcast to intrinsics.def
Bug: tint:2041
Change-Id: I19d153bc67ab2851ee28247f3cf80f8253bb062f
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/151580
Reviewed-by: Ben Clayton <bclayton@google.com>
Auto-Submit: David Neto <dneto@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: James Price <jrprice@google.com>
Commit-Queue: David Neto <dneto@google.com>
diff --git a/src/tint/lang/core/core.def b/src/tint/lang/core/core.def
index de0c81e..639eba7 100644
--- a/src/tint/lang/core/core.def
+++ b/src/tint/lang/core/core.def
@@ -17,6 +17,10 @@
// //
// This file is used to generate parts of the Tint BuiltinTable, various //
// enum definition files, as well as test .wgsl files. //
+// //
+// After modifying this file, run: //
+// tools/run gen //
+// from the Dawn source directory. //
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
@@ -910,6 +914,7 @@
@stage("fragment", "compute") fn atomicCompareExchangeWeak<T: iu32, S: workgroup_or_storage>(ptr<S, atomic<T>, read_write>, T, T) -> __atomic_compare_exchange_result<T>
@must_use @stage("compute") fn subgroupBallot() -> vec4<u32>
+@must_use @stage("compute") fn subgroupBroadcast<T: fiu32, L: iu32>(value: T, @const sourceLaneIndex: L) -> T
////////////////////////////////////////////////////////////////////////////////
// Value constructors //
diff --git a/src/tint/lang/core/function.cc b/src/tint/lang/core/function.cc
index 1e636b3..afa1150 100644
--- a/src/tint/lang/core/function.cc
+++ b/src/tint/lang/core/function.cc
@@ -371,6 +371,9 @@
if (name == "subgroupBallot") {
return Function::kSubgroupBallot;
}
+ if (name == "subgroupBroadcast") {
+ return Function::kSubgroupBroadcast;
+ }
if (name == "_tint_materialize") {
return Function::kTintMaterialize;
}
@@ -611,6 +614,8 @@
return "atomicCompareExchangeWeak";
case Function::kSubgroupBallot:
return "subgroupBallot";
+ case Function::kSubgroupBroadcast:
+ return "subgroupBroadcast";
case Function::kTintMaterialize:
return "_tint_materialize";
}
@@ -679,7 +684,7 @@
}
bool IsSubgroupBuiltin(Function f) {
- return f == Function::kSubgroupBallot;
+ return f == Function::kSubgroupBallot || f == Function::kSubgroupBroadcast;
}
bool HasSideEffects(Function f) {
diff --git a/src/tint/lang/core/function.cc.tmpl b/src/tint/lang/core/function.cc.tmpl
index 32ed851..e594eb6 100644
--- a/src/tint/lang/core/function.cc.tmpl
+++ b/src/tint/lang/core/function.cc.tmpl
@@ -105,7 +105,7 @@
}
bool IsSubgroupBuiltin(Function f) {
- return f == Function::kSubgroupBallot;
+ return f == Function::kSubgroupBallot || f == Function::kSubgroupBroadcast;
}
bool HasSideEffects(Function f) {
diff --git a/src/tint/lang/core/function.h b/src/tint/lang/core/function.h
index 4347af9..e9b52fa 100644
--- a/src/tint/lang/core/function.h
+++ b/src/tint/lang/core/function.h
@@ -149,6 +149,7 @@
kAtomicExchange,
kAtomicCompareExchangeWeak,
kSubgroupBallot,
+ kSubgroupBroadcast,
kTintMaterialize,
kNone,
};
@@ -287,6 +288,7 @@
Function::kAtomicExchange,
Function::kAtomicCompareExchangeWeak,
Function::kSubgroupBallot,
+ Function::kSubgroupBroadcast,
Function::kTintMaterialize,
};
@@ -407,6 +409,7 @@
"atomicExchange",
"atomicCompareExchangeWeak",
"subgroupBallot",
+ "subgroupBroadcast",
"_tint_materialize",
};
diff --git a/src/tint/lang/core/intrinsic/data/data.cc b/src/tint/lang/core/intrinsic/data/data.cc
index d423120..5f92989 100644
--- a/src/tint/lang/core/intrinsic/data/data.cc
+++ b/src/tint/lang/core/intrinsic/data/data.cc
@@ -4141,39 +4141,39 @@
},
{
/* [348] */
- /* usage */ core::ParameterUsage::kNone,
+ /* usage */ core::ParameterUsage::kValue,
/* type_matcher_indices */ TypeMatcherIndicesIndex(2),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [349] */
+ /* usage */ core::ParameterUsage::kSourceLaneIndex,
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(21),
+ /* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ },
+ {
+ /* [350] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(2),
+ /* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ },
+ {
+ /* [351] */
/* usage */ core::ParameterUsage::kNone,
/* type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* number_matcher_indices */ NumberMatcherIndicesIndex(1),
},
{
- /* [350] */
+ /* [352] */
/* usage */ core::ParameterUsage::kNone,
/* type_matcher_indices */ TypeMatcherIndicesIndex(82),
/* number_matcher_indices */ NumberMatcherIndicesIndex(1),
},
{
- /* [351] */
- /* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(12),
- /* number_matcher_indices */ NumberMatcherIndicesIndex(2),
- },
- {
- /* [352] */
- /* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(12),
- /* number_matcher_indices */ NumberMatcherIndicesIndex(2),
- },
- {
/* [353] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(2),
- /* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(12),
+ /* number_matcher_indices */ NumberMatcherIndicesIndex(2),
},
{
/* [354] */
@@ -4184,323 +4184,335 @@
{
/* [355] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(6),
- /* number_matcher_indices */ NumberMatcherIndicesIndex(1),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(2),
+ /* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
/* [356] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(6),
- /* number_matcher_indices */ NumberMatcherIndicesIndex(3),
- },
- {
- /* [357] */
- /* usage */ core::ParameterUsage::kNone,
/* type_matcher_indices */ TypeMatcherIndicesIndex(12),
/* number_matcher_indices */ NumberMatcherIndicesIndex(2),
},
{
+ /* [357] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(6),
+ /* number_matcher_indices */ NumberMatcherIndicesIndex(1),
+ },
+ {
/* [358] */
/* usage */ core::ParameterUsage::kNone,
- /* type_matcher_indices */ TypeMatcherIndicesIndex(12),
- /* number_matcher_indices */ NumberMatcherIndicesIndex(22),
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(6),
+ /* number_matcher_indices */ NumberMatcherIndicesIndex(3),
},
{
/* [359] */
/* usage */ core::ParameterUsage::kNone,
/* type_matcher_indices */ TypeMatcherIndicesIndex(12),
- /* number_matcher_indices */ NumberMatcherIndicesIndex(3),
+ /* number_matcher_indices */ NumberMatcherIndicesIndex(2),
},
{
/* [360] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(12),
+ /* number_matcher_indices */ NumberMatcherIndicesIndex(22),
+ },
+ {
+ /* [361] */
+ /* usage */ core::ParameterUsage::kNone,
+ /* type_matcher_indices */ TypeMatcherIndicesIndex(12),
+ /* number_matcher_indices */ NumberMatcherIndicesIndex(3),
+ },
+ {
+ /* [362] */
/* usage */ core::ParameterUsage::kXy,
/* type_matcher_indices */ TypeMatcherIndicesIndex(70),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
- /* [361] */
+ /* [363] */
/* usage */ core::ParameterUsage::kZw,
/* type_matcher_indices */ TypeMatcherIndicesIndex(70),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
- /* [362] */
+ /* [364] */
/* usage */ core::ParameterUsage::kXyz,
/* type_matcher_indices */ TypeMatcherIndicesIndex(10),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
- /* [363] */
+ /* [365] */
/* usage */ core::ParameterUsage::kW,
/* type_matcher_indices */ TypeMatcherIndicesIndex(2),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
- /* [364] */
+ /* [366] */
/* usage */ core::ParameterUsage::kX,
/* type_matcher_indices */ TypeMatcherIndicesIndex(2),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
- /* [365] */
+ /* [367] */
/* usage */ core::ParameterUsage::kZyw,
/* type_matcher_indices */ TypeMatcherIndicesIndex(10),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
- /* [366] */
+ /* [368] */
/* usage */ core::ParameterUsage::kNone,
/* type_matcher_indices */ TypeMatcherIndicesIndex(0),
/* number_matcher_indices */ NumberMatcherIndicesIndex(0),
},
{
- /* [367] */
+ /* [369] */
/* usage */ core::ParameterUsage::kNone,
/* type_matcher_indices */ TypeMatcherIndicesIndex(12),
/* number_matcher_indices */ NumberMatcherIndicesIndex(1),
},
{
- /* [368] */
+ /* [370] */
/* usage */ core::ParameterUsage::kNone,
/* type_matcher_indices */ TypeMatcherIndicesIndex(15),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
- /* [369] */
+ /* [371] */
/* usage */ core::ParameterUsage::kNone,
/* type_matcher_indices */ TypeMatcherIndicesIndex(14),
/* number_matcher_indices */ NumberMatcherIndicesIndex(1),
},
{
- /* [370] */
+ /* [372] */
/* usage */ core::ParameterUsage::kNone,
/* type_matcher_indices */ TypeMatcherIndicesIndex(26),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
- /* [371] */
+ /* [373] */
/* usage */ core::ParameterUsage::kNone,
/* type_matcher_indices */ TypeMatcherIndicesIndex(28),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
- /* [372] */
+ /* [374] */
/* usage */ core::ParameterUsage::kNone,
/* type_matcher_indices */ TypeMatcherIndicesIndex(30),
/* number_matcher_indices */ NumberMatcherIndicesIndex(6),
},
{
- /* [373] */
+ /* [375] */
/* usage */ core::ParameterUsage::kTexture,
/* type_matcher_indices */ TypeMatcherIndicesIndex(165),
/* number_matcher_indices */ NumberMatcherIndicesIndex(2),
},
{
- /* [374] */
+ /* [376] */
/* usage */ core::ParameterUsage::kTexture,
/* type_matcher_indices */ TypeMatcherIndicesIndex(166),
/* number_matcher_indices */ NumberMatcherIndicesIndex(2),
},
{
- /* [375] */
+ /* [377] */
/* usage */ core::ParameterUsage::kTexture,
/* type_matcher_indices */ TypeMatcherIndicesIndex(167),
/* number_matcher_indices */ NumberMatcherIndicesIndex(2),
},
{
- /* [376] */
+ /* [378] */
/* usage */ core::ParameterUsage::kTexture,
/* type_matcher_indices */ TypeMatcherIndicesIndex(168),
/* number_matcher_indices */ NumberMatcherIndicesIndex(2),
},
{
- /* [377] */
+ /* [379] */
/* usage */ core::ParameterUsage::kNone,
/* type_matcher_indices */ TypeMatcherIndicesIndex(53),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
- /* [378] */
+ /* [380] */
/* usage */ core::ParameterUsage::kNone,
/* type_matcher_indices */ TypeMatcherIndicesIndex(87),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
- /* [379] */
+ /* [381] */
/* usage */ core::ParameterUsage::kNone,
/* type_matcher_indices */ TypeMatcherIndicesIndex(76),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
- /* [380] */
+ /* [382] */
/* usage */ core::ParameterUsage::kNone,
/* type_matcher_indices */ TypeMatcherIndicesIndex(78),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
- /* [381] */
+ /* [383] */
/* usage */ core::ParameterUsage::kNone,
/* type_matcher_indices */ TypeMatcherIndicesIndex(98),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
- /* [382] */
+ /* [384] */
/* usage */ core::ParameterUsage::kNone,
/* type_matcher_indices */ TypeMatcherIndicesIndex(104),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
- /* [383] */
+ /* [385] */
/* usage */ core::ParameterUsage::kNone,
/* type_matcher_indices */ TypeMatcherIndicesIndex(108),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
- /* [384] */
+ /* [386] */
/* usage */ core::ParameterUsage::kNone,
/* type_matcher_indices */ TypeMatcherIndicesIndex(106),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
- /* [385] */
+ /* [387] */
/* usage */ core::ParameterUsage::kNone,
/* type_matcher_indices */ TypeMatcherIndicesIndex(110),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
- /* [386] */
+ /* [388] */
/* usage */ core::ParameterUsage::kNone,
/* type_matcher_indices */ TypeMatcherIndicesIndex(114),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
- /* [387] */
+ /* [389] */
/* usage */ core::ParameterUsage::kNone,
/* type_matcher_indices */ TypeMatcherIndicesIndex(112),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
- /* [388] */
+ /* [390] */
/* usage */ core::ParameterUsage::kNone,
/* type_matcher_indices */ TypeMatcherIndicesIndex(116),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
- /* [389] */
+ /* [391] */
/* usage */ core::ParameterUsage::kNone,
/* type_matcher_indices */ TypeMatcherIndicesIndex(120),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
- /* [390] */
+ /* [392] */
/* usage */ core::ParameterUsage::kNone,
/* type_matcher_indices */ TypeMatcherIndicesIndex(118),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
- /* [391] */
+ /* [393] */
/* usage */ core::ParameterUsage::kNone,
/* type_matcher_indices */ TypeMatcherIndicesIndex(122),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
- /* [392] */
+ /* [394] */
/* usage */ core::ParameterUsage::kNone,
/* type_matcher_indices */ TypeMatcherIndicesIndex(126),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
- /* [393] */
+ /* [395] */
/* usage */ core::ParameterUsage::kNone,
/* type_matcher_indices */ TypeMatcherIndicesIndex(124),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
- /* [394] */
+ /* [396] */
/* usage */ core::ParameterUsage::kNone,
/* type_matcher_indices */ TypeMatcherIndicesIndex(128),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
- /* [395] */
+ /* [397] */
/* usage */ core::ParameterUsage::kNone,
/* type_matcher_indices */ TypeMatcherIndicesIndex(132),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
- /* [396] */
+ /* [398] */
/* usage */ core::ParameterUsage::kNone,
/* type_matcher_indices */ TypeMatcherIndicesIndex(130),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
- /* [397] */
+ /* [399] */
/* usage */ core::ParameterUsage::kNone,
/* type_matcher_indices */ TypeMatcherIndicesIndex(134),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
- /* [398] */
+ /* [400] */
/* usage */ core::ParameterUsage::kNone,
/* type_matcher_indices */ TypeMatcherIndicesIndex(138),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
- /* [399] */
+ /* [401] */
/* usage */ core::ParameterUsage::kNone,
/* type_matcher_indices */ TypeMatcherIndicesIndex(136),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
- /* [400] */
+ /* [402] */
/* usage */ core::ParameterUsage::kNone,
/* type_matcher_indices */ TypeMatcherIndicesIndex(140),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
- /* [401] */
+ /* [403] */
/* usage */ core::ParameterUsage::kNone,
/* type_matcher_indices */ TypeMatcherIndicesIndex(144),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
- /* [402] */
+ /* [404] */
/* usage */ core::ParameterUsage::kNone,
/* type_matcher_indices */ TypeMatcherIndicesIndex(142),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
- /* [403] */
+ /* [405] */
/* usage */ core::ParameterUsage::kNone,
/* type_matcher_indices */ TypeMatcherIndicesIndex(146),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
- /* [404] */
+ /* [406] */
/* usage */ core::ParameterUsage::kNone,
/* type_matcher_indices */ TypeMatcherIndicesIndex(150),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
- /* [405] */
+ /* [407] */
/* usage */ core::ParameterUsage::kNone,
/* type_matcher_indices */ TypeMatcherIndicesIndex(148),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
- /* [406] */
+ /* [408] */
/* usage */ core::ParameterUsage::kNone,
/* type_matcher_indices */ TypeMatcherIndicesIndex(152),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
- /* [407] */
+ /* [409] */
/* usage */ core::ParameterUsage::kNone,
/* type_matcher_indices */ TypeMatcherIndicesIndex(156),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
},
{
- /* [408] */
+ /* [410] */
/* usage */ core::ParameterUsage::kNone,
/* type_matcher_indices */ TypeMatcherIndicesIndex(154),
/* number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
@@ -5158,7 +5170,7 @@
/* num_template_numbers */ 2,
/* template_types */ TemplateTypeIndex(/* invalid */),
/* template_numbers */ TemplateNumberIndex(6),
- /* parameters */ ParameterIndex(373),
+ /* parameters */ ParameterIndex(375),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(35),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
@@ -5171,7 +5183,7 @@
/* num_template_numbers */ 2,
/* template_types */ TemplateTypeIndex(/* invalid */),
/* template_numbers */ TemplateNumberIndex(6),
- /* parameters */ ParameterIndex(374),
+ /* parameters */ ParameterIndex(376),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(34),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
@@ -5184,7 +5196,7 @@
/* num_template_numbers */ 2,
/* template_types */ TemplateTypeIndex(/* invalid */),
/* template_numbers */ TemplateNumberIndex(6),
- /* parameters */ ParameterIndex(375),
+ /* parameters */ ParameterIndex(377),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(34),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
@@ -5197,7 +5209,7 @@
/* num_template_numbers */ 2,
/* template_types */ TemplateTypeIndex(/* invalid */),
/* template_numbers */ TemplateNumberIndex(6),
- /* parameters */ ParameterIndex(376),
+ /* parameters */ ParameterIndex(378),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(40),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
@@ -5600,7 +5612,7 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(27),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(360),
+ /* parameters */ ParameterIndex(362),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(50),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(102),
@@ -5613,7 +5625,7 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(27),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(362),
+ /* parameters */ ParameterIndex(364),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(50),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(102),
@@ -5626,7 +5638,7 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(27),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(364),
+ /* parameters */ ParameterIndex(366),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(50),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(102),
@@ -5639,7 +5651,7 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(14),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(381),
+ /* parameters */ ParameterIndex(383),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(28),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(99),
@@ -5652,7 +5664,7 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(16),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(381),
+ /* parameters */ ParameterIndex(383),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(100),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(99),
@@ -5665,7 +5677,7 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(18),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(381),
+ /* parameters */ ParameterIndex(383),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(72),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(99),
@@ -5678,7 +5690,7 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(20),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(381),
+ /* parameters */ ParameterIndex(383),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(74),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(99),
@@ -5691,7 +5703,7 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(22),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(381),
+ /* parameters */ ParameterIndex(383),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(102),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(99),
@@ -6484,7 +6496,7 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(14),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(380),
+ /* parameters */ ParameterIndex(382),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(54),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(99),
@@ -6497,7 +6509,7 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(16),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(380),
+ /* parameters */ ParameterIndex(382),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(92),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(99),
@@ -6510,7 +6522,7 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(18),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(380),
+ /* parameters */ ParameterIndex(382),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(64),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(99),
@@ -6523,7 +6535,7 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(20),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(380),
+ /* parameters */ ParameterIndex(382),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(40),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(99),
@@ -6536,7 +6548,7 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(22),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(380),
+ /* parameters */ ParameterIndex(382),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(94),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(99),
@@ -6744,7 +6756,7 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(14),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(379),
+ /* parameters */ ParameterIndex(381),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(26),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(99),
@@ -6757,7 +6769,7 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(16),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(379),
+ /* parameters */ ParameterIndex(381),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(86),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(99),
@@ -6770,7 +6782,7 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(18),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(379),
+ /* parameters */ ParameterIndex(381),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(52),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(99),
@@ -6783,7 +6795,7 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(20),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(379),
+ /* parameters */ ParameterIndex(381),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(34),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(99),
@@ -6796,7 +6808,7 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(22),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(379),
+ /* parameters */ ParameterIndex(381),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(88),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(99),
@@ -6848,7 +6860,7 @@
/* num_template_numbers */ 1,
/* template_types */ TemplateTypeIndex(24),
/* template_numbers */ TemplateNumberIndex(4),
- /* parameters */ ParameterIndex(348),
+ /* parameters */ ParameterIndex(350),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
/* const_eval_fn */ ConstEvalFunctionIndex(79),
@@ -6861,7 +6873,7 @@
/* num_template_numbers */ 2,
/* template_types */ TemplateTypeIndex(10),
/* template_numbers */ TemplateNumberIndex(4),
- /* parameters */ ParameterIndex(353),
+ /* parameters */ ParameterIndex(355),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(12),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(2),
/* const_eval_fn */ ConstEvalFunctionIndex(79),
@@ -6874,7 +6886,7 @@
/* num_template_numbers */ 2,
/* template_types */ TemplateTypeIndex(10),
/* template_numbers */ TemplateNumberIndex(4),
- /* parameters */ ParameterIndex(352),
+ /* parameters */ ParameterIndex(354),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(12),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(2),
/* const_eval_fn */ ConstEvalFunctionIndex(79),
@@ -6887,7 +6899,7 @@
/* num_template_numbers */ 2,
/* template_types */ TemplateTypeIndex(10),
/* template_numbers */ TemplateNumberIndex(1),
- /* parameters */ ParameterIndex(354),
+ /* parameters */ ParameterIndex(356),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(3),
/* const_eval_fn */ ConstEvalFunctionIndex(80),
@@ -6900,7 +6912,7 @@
/* num_template_numbers */ 2,
/* template_types */ TemplateTypeIndex(10),
/* template_numbers */ TemplateNumberIndex(1),
- /* parameters */ ParameterIndex(356),
+ /* parameters */ ParameterIndex(358),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
/* const_eval_fn */ ConstEvalFunctionIndex(81),
@@ -6913,7 +6925,7 @@
/* num_template_numbers */ 3,
/* template_types */ TemplateTypeIndex(10),
/* template_numbers */ TemplateNumberIndex(0),
- /* parameters */ ParameterIndex(358),
+ /* parameters */ ParameterIndex(360),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(12),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(20),
/* const_eval_fn */ ConstEvalFunctionIndex(82),
@@ -7381,7 +7393,7 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(36),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(382),
+ /* parameters */ ParameterIndex(384),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(104),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(73),
@@ -7420,7 +7432,7 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(16),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(383),
+ /* parameters */ ParameterIndex(385),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(106),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(99),
@@ -7433,7 +7445,7 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(14),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(384),
+ /* parameters */ ParameterIndex(386),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(108),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(99),
@@ -7459,7 +7471,7 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(36),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(385),
+ /* parameters */ ParameterIndex(387),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(110),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(73),
@@ -7498,7 +7510,7 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(16),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(386),
+ /* parameters */ ParameterIndex(388),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(112),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(99),
@@ -7511,7 +7523,7 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(14),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(387),
+ /* parameters */ ParameterIndex(389),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(114),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(99),
@@ -7537,7 +7549,7 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(36),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(388),
+ /* parameters */ ParameterIndex(390),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(116),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(73),
@@ -7576,7 +7588,7 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(16),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(389),
+ /* parameters */ ParameterIndex(391),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(118),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(99),
@@ -7589,7 +7601,7 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(14),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(390),
+ /* parameters */ ParameterIndex(392),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(120),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(99),
@@ -7615,7 +7627,7 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(36),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(391),
+ /* parameters */ ParameterIndex(393),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(122),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(73),
@@ -7654,7 +7666,7 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(16),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(392),
+ /* parameters */ ParameterIndex(394),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(124),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(99),
@@ -7667,7 +7679,7 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(14),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(393),
+ /* parameters */ ParameterIndex(395),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(126),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(99),
@@ -7693,7 +7705,7 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(36),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(394),
+ /* parameters */ ParameterIndex(396),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(128),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(73),
@@ -7732,7 +7744,7 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(16),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(395),
+ /* parameters */ ParameterIndex(397),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(130),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(99),
@@ -7745,7 +7757,7 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(14),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(396),
+ /* parameters */ ParameterIndex(398),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(132),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(99),
@@ -7771,7 +7783,7 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(36),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(397),
+ /* parameters */ ParameterIndex(399),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(134),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(73),
@@ -7810,7 +7822,7 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(16),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(398),
+ /* parameters */ ParameterIndex(400),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(136),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(99),
@@ -7823,7 +7835,7 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(14),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(399),
+ /* parameters */ ParameterIndex(401),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(138),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(99),
@@ -7849,7 +7861,7 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(36),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(400),
+ /* parameters */ ParameterIndex(402),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(140),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(73),
@@ -7888,7 +7900,7 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(16),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(401),
+ /* parameters */ ParameterIndex(403),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(142),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(99),
@@ -7901,7 +7913,7 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(14),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(402),
+ /* parameters */ ParameterIndex(404),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(144),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(99),
@@ -7927,7 +7939,7 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(36),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(403),
+ /* parameters */ ParameterIndex(405),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(146),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(73),
@@ -7966,7 +7978,7 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(16),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(404),
+ /* parameters */ ParameterIndex(406),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(148),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(99),
@@ -7979,7 +7991,7 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(14),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(405),
+ /* parameters */ ParameterIndex(407),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(150),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(99),
@@ -8005,7 +8017,7 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(36),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(406),
+ /* parameters */ ParameterIndex(408),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(152),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(73),
@@ -8044,7 +8056,7 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(16),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(407),
+ /* parameters */ ParameterIndex(409),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(154),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(99),
@@ -8057,7 +8069,7 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(14),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(408),
+ /* parameters */ ParameterIndex(410),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(156),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(99),
@@ -8122,7 +8134,7 @@
/* num_template_numbers */ 2,
/* template_types */ TemplateTypeIndex(/* invalid */),
/* template_numbers */ TemplateNumberIndex(6),
- /* parameters */ ParameterIndex(375),
+ /* parameters */ ParameterIndex(377),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(35),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
@@ -8174,7 +8186,7 @@
/* num_template_numbers */ 1,
/* template_types */ TemplateTypeIndex(24),
/* template_numbers */ TemplateNumberIndex(4),
- /* parameters */ ParameterIndex(348),
+ /* parameters */ ParameterIndex(350),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
/* const_eval_fn */ ConstEvalFunctionIndex(77),
@@ -8187,7 +8199,7 @@
/* num_template_numbers */ 2,
/* template_types */ TemplateTypeIndex(10),
/* template_numbers */ TemplateNumberIndex(4),
- /* parameters */ ParameterIndex(351),
+ /* parameters */ ParameterIndex(353),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(12),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(2),
/* const_eval_fn */ ConstEvalFunctionIndex(77),
@@ -8239,7 +8251,7 @@
/* num_template_numbers */ 1,
/* template_types */ TemplateTypeIndex(24),
/* template_numbers */ TemplateNumberIndex(4),
- /* parameters */ ParameterIndex(348),
+ /* parameters */ ParameterIndex(350),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
/* const_eval_fn */ ConstEvalFunctionIndex(78),
@@ -8252,7 +8264,7 @@
/* num_template_numbers */ 2,
/* template_types */ TemplateTypeIndex(10),
/* template_numbers */ TemplateNumberIndex(4),
- /* parameters */ ParameterIndex(351),
+ /* parameters */ ParameterIndex(353),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(12),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(2),
/* const_eval_fn */ ConstEvalFunctionIndex(78),
@@ -8304,7 +8316,7 @@
/* num_template_numbers */ 1,
/* template_types */ TemplateTypeIndex(24),
/* template_numbers */ TemplateNumberIndex(4),
- /* parameters */ ParameterIndex(348),
+ /* parameters */ ParameterIndex(350),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
/* const_eval_fn */ ConstEvalFunctionIndex(83),
@@ -8356,7 +8368,7 @@
/* num_template_numbers */ 1,
/* template_types */ TemplateTypeIndex(24),
/* template_numbers */ TemplateNumberIndex(4),
- /* parameters */ ParameterIndex(348),
+ /* parameters */ ParameterIndex(350),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
/* const_eval_fn */ ConstEvalFunctionIndex(84),
@@ -8564,7 +8576,7 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(/* invalid */),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(377),
+ /* parameters */ ParameterIndex(379),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(53),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(73),
@@ -8642,7 +8654,7 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(/* invalid */),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(368),
+ /* parameters */ ParameterIndex(370),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(15),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(73),
@@ -8681,7 +8693,7 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(/* invalid */),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(378),
+ /* parameters */ ParameterIndex(380),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(87),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(73),
@@ -9240,7 +9252,7 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(/* invalid */),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(368),
+ /* parameters */ ParameterIndex(370),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(15),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
@@ -9253,7 +9265,7 @@
/* num_template_numbers */ 1,
/* template_types */ TemplateTypeIndex(/* invalid */),
/* template_numbers */ TemplateNumberIndex(4),
- /* parameters */ ParameterIndex(369),
+ /* parameters */ ParameterIndex(371),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(14),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
@@ -9760,7 +9772,7 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(/* invalid */),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(368),
+ /* parameters */ ParameterIndex(370),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(15),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(49),
@@ -9773,7 +9785,7 @@
/* num_template_numbers */ 1,
/* template_types */ TemplateTypeIndex(/* invalid */),
/* template_numbers */ TemplateNumberIndex(4),
- /* parameters */ ParameterIndex(369),
+ /* parameters */ ParameterIndex(371),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(14),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
/* const_eval_fn */ ConstEvalFunctionIndex(49),
@@ -10449,7 +10461,7 @@
/* num_template_numbers */ 1,
/* template_types */ TemplateTypeIndex(29),
/* template_numbers */ TemplateNumberIndex(4),
- /* parameters */ ParameterIndex(349),
+ /* parameters */ ParameterIndex(351),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
/* const_eval_fn */ ConstEvalFunctionIndex(96),
@@ -10475,7 +10487,7 @@
/* num_template_numbers */ 1,
/* template_types */ TemplateTypeIndex(29),
/* template_numbers */ TemplateNumberIndex(4),
- /* parameters */ ParameterIndex(349),
+ /* parameters */ ParameterIndex(351),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(6),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(1),
/* const_eval_fn */ ConstEvalFunctionIndex(97),
@@ -10488,7 +10500,7 @@
/* num_template_numbers */ 1,
/* template_types */ TemplateTypeIndex(25),
/* template_numbers */ TemplateNumberIndex(7),
- /* parameters */ ParameterIndex(366),
+ /* parameters */ ParameterIndex(368),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(35),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
@@ -10514,7 +10526,7 @@
/* num_template_numbers */ 1,
/* template_types */ TemplateTypeIndex(10),
/* template_numbers */ TemplateNumberIndex(4),
- /* parameters */ ParameterIndex(367),
+ /* parameters */ ParameterIndex(369),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(19),
@@ -10592,7 +10604,7 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(/* invalid */),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(370),
+ /* parameters */ ParameterIndex(372),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(35),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(43),
@@ -10605,7 +10617,7 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(/* invalid */),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(370),
+ /* parameters */ ParameterIndex(372),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(35),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(44),
@@ -10618,7 +10630,7 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(/* invalid */),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(370),
+ /* parameters */ ParameterIndex(372),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(35),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(45),
@@ -10631,7 +10643,7 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(/* invalid */),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(371),
+ /* parameters */ ParameterIndex(373),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(35),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(46),
@@ -10644,7 +10656,7 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(/* invalid */),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(371),
+ /* parameters */ ParameterIndex(373),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(35),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(47),
@@ -10696,7 +10708,7 @@
/* num_template_numbers */ 2,
/* template_types */ TemplateTypeIndex(10),
/* template_numbers */ TemplateNumberIndex(3),
- /* parameters */ ParameterIndex(351),
+ /* parameters */ ParameterIndex(353),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(12),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(3),
/* const_eval_fn */ ConstEvalFunctionIndex(66),
@@ -10774,7 +10786,7 @@
/* num_template_numbers */ 0,
/* template_types */ TemplateTypeIndex(25),
/* template_numbers */ TemplateNumberIndex(/* invalid */),
- /* parameters */ ParameterIndex(372),
+ /* parameters */ ParameterIndex(374),
/* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
/* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
/* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
@@ -10846,6 +10858,19 @@
},
{
/* [460] */
+ /* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
+ /* num_parameters */ 2,
+ /* num_template_types */ 2,
+ /* num_template_numbers */ 0,
+ /* template_types */ TemplateTypeIndex(12),
+ /* template_numbers */ TemplateNumberIndex(/* invalid */),
+ /* parameters */ ParameterIndex(348),
+ /* return_type_matcher_indices */ TypeMatcherIndicesIndex(2),
+ /* return_number_matcher_indices */ NumberMatcherIndicesIndex(/* invalid */),
+ /* const_eval_fn */ ConstEvalFunctionIndex(/* invalid */),
+ },
+ {
+ /* [461] */
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* num_parameters */ 1,
/* num_template_types */ 1,
@@ -10858,7 +10883,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(73),
},
{
- /* [461] */
+ /* [462] */
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
/* num_template_types */ 0,
@@ -10871,7 +10896,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(88),
},
{
- /* [462] */
+ /* [463] */
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 2,
/* num_template_types */ 0,
@@ -10884,7 +10909,7 @@
/* const_eval_fn */ ConstEvalFunctionIndex(89),
},
{
- /* [463] */
+ /* [464] */
/* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline, OverloadFlag::kMustUse),
/* num_parameters */ 1,
/* num_template_types */ 1,
@@ -11798,10 +11823,16 @@
},
{
/* [115] */
- /* fn _tint_materialize<T>(T) -> T */
+ /* fn subgroupBroadcast<T : fiu32, L : iu32>(value: T, @const sourceLaneIndex: L) -> T */
/* num overloads */ 1,
/* overloads */ OverloadIndex(460),
},
+ {
+ /* [116] */
+ /* fn _tint_materialize<T>(T) -> T */
+ /* num overloads */ 1,
+ /* overloads */ OverloadIndex(461),
+ },
};
constexpr IntrinsicInfo kUnaryOperators[] = {
@@ -11913,13 +11944,13 @@
/* [8] */
/* op &&(bool, bool) -> bool */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(461),
+ /* overloads */ OverloadIndex(462),
},
{
/* [9] */
/* op ||(bool, bool) -> bool */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(462),
+ /* overloads */ OverloadIndex(463),
},
{
/* [10] */
@@ -12194,7 +12225,7 @@
/* [17] */
/* conv packedVec3<T : concrete_scalar>(vec3<T>) -> packedVec3<T> */
/* num overloads */ 1,
- /* overloads */ OverloadIndex(463),
+ /* overloads */ OverloadIndex(464),
},
};
diff --git a/src/tint/lang/core/parameter_usage.cc b/src/tint/lang/core/parameter_usage.cc
index 2a42c49..c5ddc1c 100644
--- a/src/tint/lang/core/parameter_usage.cc
+++ b/src/tint/lang/core/parameter_usage.cc
@@ -51,6 +51,8 @@
return "sample_index";
case ParameterUsage::kSampler:
return "sampler";
+ case ParameterUsage::kSourceLaneIndex:
+ return "sourceLaneIndex";
case ParameterUsage::kTexture:
return "texture";
case ParameterUsage::kValue:
diff --git a/src/tint/lang/core/parameter_usage.h b/src/tint/lang/core/parameter_usage.h
index 39e0207..fdf355c 100644
--- a/src/tint/lang/core/parameter_usage.h
+++ b/src/tint/lang/core/parameter_usage.h
@@ -45,6 +45,7 @@
kOffset,
kSampleIndex,
kSampler,
+ kSourceLaneIndex,
kTexture,
kValue,
kW,
diff --git a/test/tint/builtins/gen/gen.wgsl.tmpl b/test/tint/builtins/gen/gen.wgsl.tmpl
index a9d5718..921bdeb 100644
--- a/test/tint/builtins/gen/gen.wgsl.tmpl
+++ b/test/tint/builtins/gen/gen.wgsl.tmpl
@@ -203,7 +203,7 @@
{{ end -}}
{{- /* Check and emit chromium_experimental_subgroups */ -}}
-{{- if (eq "subgroupBallot" $builtin_name)}}
+{{- if or (eq "subgroupBallot" $builtin_name) (eq "subgroupBroadcast" $builtin_name)}}
enable chromium_experimental_subgroups;
{{ end -}}
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/08beca.wgsl b/test/tint/builtins/gen/literal/subgroupBroadcast/08beca.wgsl
new file mode 100644
index 0000000..3eff109
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/08beca.wgsl
@@ -0,0 +1,37 @@
+// Copyright 2023 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+// test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+enable chromium_experimental_subgroups;
+
+// fn subgroupBroadcast(value: f32, @const sourceLaneIndex: u32) -> f32
+fn subgroupBroadcast_08beca() {
+ var res: f32 = subgroupBroadcast(1.f, 1u);
+ prevent_dce = res;
+}
+@group(2) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupBroadcast_08beca();
+}
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/08beca.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupBroadcast/08beca.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..9f667dd
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/08beca.wgsl.expected.dxc.hlsl
@@ -0,0 +1,9 @@
+SKIP: FAILED
+
+/build/dawn/src/tint/lang/hlsl/writer/ast_printer/ast_printer.cc:2510 internal compiler error: TINT_UNREACHABLE unexpected subgroup builtin type subgroupBroadcast
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/08beca.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupBroadcast/08beca.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..9f667dd
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/08beca.wgsl.expected.fxc.hlsl
@@ -0,0 +1,9 @@
+SKIP: FAILED
+
+/build/dawn/src/tint/lang/hlsl/writer/ast_printer/ast_printer.cc:2510 internal compiler error: TINT_UNREACHABLE unexpected subgroup builtin type subgroupBroadcast
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/08beca.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupBroadcast/08beca.wgsl.expected.glsl
new file mode 100644
index 0000000..e13703d
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/08beca.wgsl.expected.glsl
@@ -0,0 +1,21 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroups;
+
+fn subgroupBroadcast_08beca() {
+ var res : f32 = subgroupBroadcast(1.0f, 1u);
+ prevent_dce = res;
+}
+
+@group(2) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupBroadcast_08beca();
+}
+
+Failed to generate: test/tint/builtins/gen/literal/subgroupBroadcast/08beca.wgsl:25:8 error: GLSL backend does not support extension 'chromium_experimental_subgroups'
+enable chromium_experimental_subgroups;
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/08beca.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupBroadcast/08beca.wgsl.expected.msl
new file mode 100644
index 0000000..e959257
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/08beca.wgsl.expected.msl
@@ -0,0 +1,18 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroups;
+
+fn subgroupBroadcast_08beca() {
+ var res : f32 = subgroupBroadcast(1.0f, 1u);
+ prevent_dce = res;
+}
+
+@group(2) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupBroadcast_08beca();
+}
+
+Failed to generate: error: Unknown import method: subgroupBroadcast
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/08beca.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupBroadcast/08beca.wgsl.expected.spvasm
new file mode 100644
index 0000000..eed3359
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/08beca.wgsl.expected.spvasm
@@ -0,0 +1,9 @@
+SKIP: FAILED
+
+/build/dawn/src/tint/lang/spirv/writer/ast_printer/builder.cc:2580 internal compiler error: unknown method subgroupBroadcast
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/08beca.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupBroadcast/08beca.wgsl.expected.wgsl
new file mode 100644
index 0000000..665982c
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/08beca.wgsl.expected.wgsl
@@ -0,0 +1,15 @@
+SKIP: FAILED
+
+enable chromium_experimental_subgroups;
+
+fn subgroupBroadcast_08beca() {
+ var res : f32 = subgroupBroadcast(1.0f, 1u);
+ prevent_dce = res;
+}
+
+@group(2) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupBroadcast_08beca();
+}
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/1d79c7.wgsl b/test/tint/builtins/gen/literal/subgroupBroadcast/1d79c7.wgsl
new file mode 100644
index 0000000..08f443e
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/1d79c7.wgsl
@@ -0,0 +1,37 @@
+// Copyright 2023 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+// test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+enable chromium_experimental_subgroups;
+
+// fn subgroupBroadcast(value: i32, @const sourceLaneIndex: u32) -> i32
+fn subgroupBroadcast_1d79c7() {
+ var res: i32 = subgroupBroadcast(1i, 1u);
+ prevent_dce = res;
+}
+@group(2) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupBroadcast_1d79c7();
+}
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/1d79c7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupBroadcast/1d79c7.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..9f667dd
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/1d79c7.wgsl.expected.dxc.hlsl
@@ -0,0 +1,9 @@
+SKIP: FAILED
+
+/build/dawn/src/tint/lang/hlsl/writer/ast_printer/ast_printer.cc:2510 internal compiler error: TINT_UNREACHABLE unexpected subgroup builtin type subgroupBroadcast
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/1d79c7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupBroadcast/1d79c7.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..9f667dd
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/1d79c7.wgsl.expected.fxc.hlsl
@@ -0,0 +1,9 @@
+SKIP: FAILED
+
+/build/dawn/src/tint/lang/hlsl/writer/ast_printer/ast_printer.cc:2510 internal compiler error: TINT_UNREACHABLE unexpected subgroup builtin type subgroupBroadcast
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/1d79c7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupBroadcast/1d79c7.wgsl.expected.glsl
new file mode 100644
index 0000000..ad32a6b
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/1d79c7.wgsl.expected.glsl
@@ -0,0 +1,21 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroups;
+
+fn subgroupBroadcast_1d79c7() {
+ var res : i32 = subgroupBroadcast(1i, 1u);
+ prevent_dce = res;
+}
+
+@group(2) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupBroadcast_1d79c7();
+}
+
+Failed to generate: test/tint/builtins/gen/literal/subgroupBroadcast/1d79c7.wgsl:25:8 error: GLSL backend does not support extension 'chromium_experimental_subgroups'
+enable chromium_experimental_subgroups;
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/1d79c7.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupBroadcast/1d79c7.wgsl.expected.msl
new file mode 100644
index 0000000..bd8e5d7
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/1d79c7.wgsl.expected.msl
@@ -0,0 +1,18 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroups;
+
+fn subgroupBroadcast_1d79c7() {
+ var res : i32 = subgroupBroadcast(1i, 1u);
+ prevent_dce = res;
+}
+
+@group(2) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupBroadcast_1d79c7();
+}
+
+Failed to generate: error: Unknown import method: subgroupBroadcast
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/1d79c7.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupBroadcast/1d79c7.wgsl.expected.spvasm
new file mode 100644
index 0000000..eed3359
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/1d79c7.wgsl.expected.spvasm
@@ -0,0 +1,9 @@
+SKIP: FAILED
+
+/build/dawn/src/tint/lang/spirv/writer/ast_printer/builder.cc:2580 internal compiler error: unknown method subgroupBroadcast
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/1d79c7.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupBroadcast/1d79c7.wgsl.expected.wgsl
new file mode 100644
index 0000000..e350734
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/1d79c7.wgsl.expected.wgsl
@@ -0,0 +1,15 @@
+SKIP: FAILED
+
+enable chromium_experimental_subgroups;
+
+fn subgroupBroadcast_1d79c7() {
+ var res : i32 = subgroupBroadcast(1i, 1u);
+ prevent_dce = res;
+}
+
+@group(2) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupBroadcast_1d79c7();
+}
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/49de94.wgsl b/test/tint/builtins/gen/literal/subgroupBroadcast/49de94.wgsl
new file mode 100644
index 0000000..6fec1bf
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/49de94.wgsl
@@ -0,0 +1,37 @@
+// Copyright 2023 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+// test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+enable chromium_experimental_subgroups;
+
+// fn subgroupBroadcast(value: u32, @const sourceLaneIndex: i32) -> u32
+fn subgroupBroadcast_49de94() {
+ var res: u32 = subgroupBroadcast(1u, 1i);
+ prevent_dce = res;
+}
+@group(2) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupBroadcast_49de94();
+}
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/49de94.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupBroadcast/49de94.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..9f667dd
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/49de94.wgsl.expected.dxc.hlsl
@@ -0,0 +1,9 @@
+SKIP: FAILED
+
+/build/dawn/src/tint/lang/hlsl/writer/ast_printer/ast_printer.cc:2510 internal compiler error: TINT_UNREACHABLE unexpected subgroup builtin type subgroupBroadcast
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/49de94.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupBroadcast/49de94.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..9f667dd
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/49de94.wgsl.expected.fxc.hlsl
@@ -0,0 +1,9 @@
+SKIP: FAILED
+
+/build/dawn/src/tint/lang/hlsl/writer/ast_printer/ast_printer.cc:2510 internal compiler error: TINT_UNREACHABLE unexpected subgroup builtin type subgroupBroadcast
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/49de94.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupBroadcast/49de94.wgsl.expected.glsl
new file mode 100644
index 0000000..3d60509
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/49de94.wgsl.expected.glsl
@@ -0,0 +1,21 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroups;
+
+fn subgroupBroadcast_49de94() {
+ var res : u32 = subgroupBroadcast(1u, 1i);
+ prevent_dce = res;
+}
+
+@group(2) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupBroadcast_49de94();
+}
+
+Failed to generate: test/tint/builtins/gen/literal/subgroupBroadcast/49de94.wgsl:25:8 error: GLSL backend does not support extension 'chromium_experimental_subgroups'
+enable chromium_experimental_subgroups;
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/49de94.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupBroadcast/49de94.wgsl.expected.msl
new file mode 100644
index 0000000..75e4432
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/49de94.wgsl.expected.msl
@@ -0,0 +1,18 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroups;
+
+fn subgroupBroadcast_49de94() {
+ var res : u32 = subgroupBroadcast(1u, 1i);
+ prevent_dce = res;
+}
+
+@group(2) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupBroadcast_49de94();
+}
+
+Failed to generate: error: Unknown import method: subgroupBroadcast
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/49de94.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupBroadcast/49de94.wgsl.expected.spvasm
new file mode 100644
index 0000000..eed3359
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/49de94.wgsl.expected.spvasm
@@ -0,0 +1,9 @@
+SKIP: FAILED
+
+/build/dawn/src/tint/lang/spirv/writer/ast_printer/builder.cc:2580 internal compiler error: unknown method subgroupBroadcast
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/49de94.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupBroadcast/49de94.wgsl.expected.wgsl
new file mode 100644
index 0000000..0f89e43
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/49de94.wgsl.expected.wgsl
@@ -0,0 +1,15 @@
+SKIP: FAILED
+
+enable chromium_experimental_subgroups;
+
+fn subgroupBroadcast_49de94() {
+ var res : u32 = subgroupBroadcast(1u, 1i);
+ prevent_dce = res;
+}
+
+@group(2) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupBroadcast_49de94();
+}
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/867093.wgsl b/test/tint/builtins/gen/literal/subgroupBroadcast/867093.wgsl
new file mode 100644
index 0000000..bd09824
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/867093.wgsl
@@ -0,0 +1,37 @@
+// Copyright 2023 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+// test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+enable chromium_experimental_subgroups;
+
+// fn subgroupBroadcast(value: f32, @const sourceLaneIndex: i32) -> f32
+fn subgroupBroadcast_867093() {
+ var res: f32 = subgroupBroadcast(1.f, 1i);
+ prevent_dce = res;
+}
+@group(2) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupBroadcast_867093();
+}
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/867093.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupBroadcast/867093.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..9f667dd
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/867093.wgsl.expected.dxc.hlsl
@@ -0,0 +1,9 @@
+SKIP: FAILED
+
+/build/dawn/src/tint/lang/hlsl/writer/ast_printer/ast_printer.cc:2510 internal compiler error: TINT_UNREACHABLE unexpected subgroup builtin type subgroupBroadcast
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/867093.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupBroadcast/867093.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..9f667dd
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/867093.wgsl.expected.fxc.hlsl
@@ -0,0 +1,9 @@
+SKIP: FAILED
+
+/build/dawn/src/tint/lang/hlsl/writer/ast_printer/ast_printer.cc:2510 internal compiler error: TINT_UNREACHABLE unexpected subgroup builtin type subgroupBroadcast
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/867093.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupBroadcast/867093.wgsl.expected.glsl
new file mode 100644
index 0000000..1fdc5ef
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/867093.wgsl.expected.glsl
@@ -0,0 +1,21 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroups;
+
+fn subgroupBroadcast_867093() {
+ var res : f32 = subgroupBroadcast(1.0f, 1i);
+ prevent_dce = res;
+}
+
+@group(2) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupBroadcast_867093();
+}
+
+Failed to generate: test/tint/builtins/gen/literal/subgroupBroadcast/867093.wgsl:25:8 error: GLSL backend does not support extension 'chromium_experimental_subgroups'
+enable chromium_experimental_subgroups;
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/867093.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupBroadcast/867093.wgsl.expected.msl
new file mode 100644
index 0000000..d12b73b
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/867093.wgsl.expected.msl
@@ -0,0 +1,18 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroups;
+
+fn subgroupBroadcast_867093() {
+ var res : f32 = subgroupBroadcast(1.0f, 1i);
+ prevent_dce = res;
+}
+
+@group(2) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupBroadcast_867093();
+}
+
+Failed to generate: error: Unknown import method: subgroupBroadcast
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/867093.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupBroadcast/867093.wgsl.expected.spvasm
new file mode 100644
index 0000000..eed3359
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/867093.wgsl.expected.spvasm
@@ -0,0 +1,9 @@
+SKIP: FAILED
+
+/build/dawn/src/tint/lang/spirv/writer/ast_printer/builder.cc:2580 internal compiler error: unknown method subgroupBroadcast
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/867093.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupBroadcast/867093.wgsl.expected.wgsl
new file mode 100644
index 0000000..54a63f6
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/867093.wgsl.expected.wgsl
@@ -0,0 +1,15 @@
+SKIP: FAILED
+
+enable chromium_experimental_subgroups;
+
+fn subgroupBroadcast_867093() {
+ var res : f32 = subgroupBroadcast(1.0f, 1i);
+ prevent_dce = res;
+}
+
+@group(2) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupBroadcast_867093();
+}
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/9ccdca.wgsl b/test/tint/builtins/gen/literal/subgroupBroadcast/9ccdca.wgsl
new file mode 100644
index 0000000..018e064
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/9ccdca.wgsl
@@ -0,0 +1,37 @@
+// Copyright 2023 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+// test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+enable chromium_experimental_subgroups;
+
+// fn subgroupBroadcast(value: i32, @const sourceLaneIndex: i32) -> i32
+fn subgroupBroadcast_9ccdca() {
+ var res: i32 = subgroupBroadcast(1i, 1i);
+ prevent_dce = res;
+}
+@group(2) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupBroadcast_9ccdca();
+}
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/9ccdca.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupBroadcast/9ccdca.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..9f667dd
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/9ccdca.wgsl.expected.dxc.hlsl
@@ -0,0 +1,9 @@
+SKIP: FAILED
+
+/build/dawn/src/tint/lang/hlsl/writer/ast_printer/ast_printer.cc:2510 internal compiler error: TINT_UNREACHABLE unexpected subgroup builtin type subgroupBroadcast
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/9ccdca.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupBroadcast/9ccdca.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..9f667dd
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/9ccdca.wgsl.expected.fxc.hlsl
@@ -0,0 +1,9 @@
+SKIP: FAILED
+
+/build/dawn/src/tint/lang/hlsl/writer/ast_printer/ast_printer.cc:2510 internal compiler error: TINT_UNREACHABLE unexpected subgroup builtin type subgroupBroadcast
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/9ccdca.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupBroadcast/9ccdca.wgsl.expected.glsl
new file mode 100644
index 0000000..f4b6e1d
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/9ccdca.wgsl.expected.glsl
@@ -0,0 +1,21 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroups;
+
+fn subgroupBroadcast_9ccdca() {
+ var res : i32 = subgroupBroadcast(1i, 1i);
+ prevent_dce = res;
+}
+
+@group(2) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupBroadcast_9ccdca();
+}
+
+Failed to generate: test/tint/builtins/gen/literal/subgroupBroadcast/9ccdca.wgsl:25:8 error: GLSL backend does not support extension 'chromium_experimental_subgroups'
+enable chromium_experimental_subgroups;
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/9ccdca.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupBroadcast/9ccdca.wgsl.expected.msl
new file mode 100644
index 0000000..09f24c7
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/9ccdca.wgsl.expected.msl
@@ -0,0 +1,18 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroups;
+
+fn subgroupBroadcast_9ccdca() {
+ var res : i32 = subgroupBroadcast(1i, 1i);
+ prevent_dce = res;
+}
+
+@group(2) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupBroadcast_9ccdca();
+}
+
+Failed to generate: error: Unknown import method: subgroupBroadcast
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/9ccdca.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupBroadcast/9ccdca.wgsl.expected.spvasm
new file mode 100644
index 0000000..eed3359
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/9ccdca.wgsl.expected.spvasm
@@ -0,0 +1,9 @@
+SKIP: FAILED
+
+/build/dawn/src/tint/lang/spirv/writer/ast_printer/builder.cc:2580 internal compiler error: unknown method subgroupBroadcast
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/9ccdca.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupBroadcast/9ccdca.wgsl.expected.wgsl
new file mode 100644
index 0000000..c41d39f
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/9ccdca.wgsl.expected.wgsl
@@ -0,0 +1,15 @@
+SKIP: FAILED
+
+enable chromium_experimental_subgroups;
+
+fn subgroupBroadcast_9ccdca() {
+ var res : i32 = subgroupBroadcast(1i, 1i);
+ prevent_dce = res;
+}
+
+@group(2) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupBroadcast_9ccdca();
+}
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/c36fe1.wgsl b/test/tint/builtins/gen/literal/subgroupBroadcast/c36fe1.wgsl
new file mode 100644
index 0000000..64b988e
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/c36fe1.wgsl
@@ -0,0 +1,37 @@
+// Copyright 2023 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+// test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+enable chromium_experimental_subgroups;
+
+// fn subgroupBroadcast(value: u32, @const sourceLaneIndex: u32) -> u32
+fn subgroupBroadcast_c36fe1() {
+ var res: u32 = subgroupBroadcast(1u, 1u);
+ prevent_dce = res;
+}
+@group(2) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupBroadcast_c36fe1();
+}
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/c36fe1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/literal/subgroupBroadcast/c36fe1.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..9f667dd
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/c36fe1.wgsl.expected.dxc.hlsl
@@ -0,0 +1,9 @@
+SKIP: FAILED
+
+/build/dawn/src/tint/lang/hlsl/writer/ast_printer/ast_printer.cc:2510 internal compiler error: TINT_UNREACHABLE unexpected subgroup builtin type subgroupBroadcast
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/c36fe1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/literal/subgroupBroadcast/c36fe1.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..9f667dd
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/c36fe1.wgsl.expected.fxc.hlsl
@@ -0,0 +1,9 @@
+SKIP: FAILED
+
+/build/dawn/src/tint/lang/hlsl/writer/ast_printer/ast_printer.cc:2510 internal compiler error: TINT_UNREACHABLE unexpected subgroup builtin type subgroupBroadcast
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/c36fe1.wgsl.expected.glsl b/test/tint/builtins/gen/literal/subgroupBroadcast/c36fe1.wgsl.expected.glsl
new file mode 100644
index 0000000..fa525a1
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/c36fe1.wgsl.expected.glsl
@@ -0,0 +1,21 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroups;
+
+fn subgroupBroadcast_c36fe1() {
+ var res : u32 = subgroupBroadcast(1u, 1u);
+ prevent_dce = res;
+}
+
+@group(2) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupBroadcast_c36fe1();
+}
+
+Failed to generate: test/tint/builtins/gen/literal/subgroupBroadcast/c36fe1.wgsl:25:8 error: GLSL backend does not support extension 'chromium_experimental_subgroups'
+enable chromium_experimental_subgroups;
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/c36fe1.wgsl.expected.msl b/test/tint/builtins/gen/literal/subgroupBroadcast/c36fe1.wgsl.expected.msl
new file mode 100644
index 0000000..1b1de1d
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/c36fe1.wgsl.expected.msl
@@ -0,0 +1,18 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroups;
+
+fn subgroupBroadcast_c36fe1() {
+ var res : u32 = subgroupBroadcast(1u, 1u);
+ prevent_dce = res;
+}
+
+@group(2) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupBroadcast_c36fe1();
+}
+
+Failed to generate: error: Unknown import method: subgroupBroadcast
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/c36fe1.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/subgroupBroadcast/c36fe1.wgsl.expected.spvasm
new file mode 100644
index 0000000..eed3359
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/c36fe1.wgsl.expected.spvasm
@@ -0,0 +1,9 @@
+SKIP: FAILED
+
+/build/dawn/src/tint/lang/spirv/writer/ast_printer/builder.cc:2580 internal compiler error: unknown method subgroupBroadcast
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
diff --git a/test/tint/builtins/gen/literal/subgroupBroadcast/c36fe1.wgsl.expected.wgsl b/test/tint/builtins/gen/literal/subgroupBroadcast/c36fe1.wgsl.expected.wgsl
new file mode 100644
index 0000000..a448f05
--- /dev/null
+++ b/test/tint/builtins/gen/literal/subgroupBroadcast/c36fe1.wgsl.expected.wgsl
@@ -0,0 +1,15 @@
+SKIP: FAILED
+
+enable chromium_experimental_subgroups;
+
+fn subgroupBroadcast_c36fe1() {
+ var res : u32 = subgroupBroadcast(1u, 1u);
+ prevent_dce = res;
+}
+
+@group(2) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupBroadcast_c36fe1();
+}
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/08beca.wgsl b/test/tint/builtins/gen/var/subgroupBroadcast/08beca.wgsl
new file mode 100644
index 0000000..7dfbc17
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/08beca.wgsl
@@ -0,0 +1,39 @@
+// Copyright 2023 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+// test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+enable chromium_experimental_subgroups;
+
+// fn subgroupBroadcast(value: f32, @const sourceLaneIndex: u32) -> f32
+fn subgroupBroadcast_08beca() {
+ var arg_0 = 1.f;
+ const arg_1 = 1u;
+ var res: f32 = subgroupBroadcast(arg_0, arg_1);
+ prevent_dce = res;
+}
+@group(2) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupBroadcast_08beca();
+}
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/08beca.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupBroadcast/08beca.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..9f667dd
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/08beca.wgsl.expected.dxc.hlsl
@@ -0,0 +1,9 @@
+SKIP: FAILED
+
+/build/dawn/src/tint/lang/hlsl/writer/ast_printer/ast_printer.cc:2510 internal compiler error: TINT_UNREACHABLE unexpected subgroup builtin type subgroupBroadcast
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/08beca.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupBroadcast/08beca.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..9f667dd
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/08beca.wgsl.expected.fxc.hlsl
@@ -0,0 +1,9 @@
+SKIP: FAILED
+
+/build/dawn/src/tint/lang/hlsl/writer/ast_printer/ast_printer.cc:2510 internal compiler error: TINT_UNREACHABLE unexpected subgroup builtin type subgroupBroadcast
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/08beca.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupBroadcast/08beca.wgsl.expected.glsl
new file mode 100644
index 0000000..696d739
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/08beca.wgsl.expected.glsl
@@ -0,0 +1,23 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroups;
+
+fn subgroupBroadcast_08beca() {
+ var arg_0 = 1.0f;
+ const arg_1 = 1u;
+ var res : f32 = subgroupBroadcast(arg_0, arg_1);
+ prevent_dce = res;
+}
+
+@group(2) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupBroadcast_08beca();
+}
+
+Failed to generate: test/tint/builtins/gen/var/subgroupBroadcast/08beca.wgsl:25:8 error: GLSL backend does not support extension 'chromium_experimental_subgroups'
+enable chromium_experimental_subgroups;
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/08beca.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupBroadcast/08beca.wgsl.expected.msl
new file mode 100644
index 0000000..3bb9248
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/08beca.wgsl.expected.msl
@@ -0,0 +1,20 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroups;
+
+fn subgroupBroadcast_08beca() {
+ var arg_0 = 1.0f;
+ const arg_1 = 1u;
+ var res : f32 = subgroupBroadcast(arg_0, arg_1);
+ prevent_dce = res;
+}
+
+@group(2) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupBroadcast_08beca();
+}
+
+Failed to generate: error: Unknown import method: subgroupBroadcast
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/08beca.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupBroadcast/08beca.wgsl.expected.spvasm
new file mode 100644
index 0000000..eed3359
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/08beca.wgsl.expected.spvasm
@@ -0,0 +1,9 @@
+SKIP: FAILED
+
+/build/dawn/src/tint/lang/spirv/writer/ast_printer/builder.cc:2580 internal compiler error: unknown method subgroupBroadcast
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/1d79c7.wgsl b/test/tint/builtins/gen/var/subgroupBroadcast/1d79c7.wgsl
new file mode 100644
index 0000000..f59a4b9
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/1d79c7.wgsl
@@ -0,0 +1,39 @@
+// Copyright 2023 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+// test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+enable chromium_experimental_subgroups;
+
+// fn subgroupBroadcast(value: i32, @const sourceLaneIndex: u32) -> i32
+fn subgroupBroadcast_1d79c7() {
+ var arg_0 = 1i;
+ const arg_1 = 1u;
+ var res: i32 = subgroupBroadcast(arg_0, arg_1);
+ prevent_dce = res;
+}
+@group(2) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupBroadcast_1d79c7();
+}
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/1d79c7.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupBroadcast/1d79c7.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..9f667dd
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/1d79c7.wgsl.expected.dxc.hlsl
@@ -0,0 +1,9 @@
+SKIP: FAILED
+
+/build/dawn/src/tint/lang/hlsl/writer/ast_printer/ast_printer.cc:2510 internal compiler error: TINT_UNREACHABLE unexpected subgroup builtin type subgroupBroadcast
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/1d79c7.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupBroadcast/1d79c7.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..9f667dd
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/1d79c7.wgsl.expected.fxc.hlsl
@@ -0,0 +1,9 @@
+SKIP: FAILED
+
+/build/dawn/src/tint/lang/hlsl/writer/ast_printer/ast_printer.cc:2510 internal compiler error: TINT_UNREACHABLE unexpected subgroup builtin type subgroupBroadcast
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/1d79c7.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupBroadcast/1d79c7.wgsl.expected.glsl
new file mode 100644
index 0000000..a7d7786
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/1d79c7.wgsl.expected.glsl
@@ -0,0 +1,23 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroups;
+
+fn subgroupBroadcast_1d79c7() {
+ var arg_0 = 1i;
+ const arg_1 = 1u;
+ var res : i32 = subgroupBroadcast(arg_0, arg_1);
+ prevent_dce = res;
+}
+
+@group(2) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupBroadcast_1d79c7();
+}
+
+Failed to generate: test/tint/builtins/gen/var/subgroupBroadcast/1d79c7.wgsl:25:8 error: GLSL backend does not support extension 'chromium_experimental_subgroups'
+enable chromium_experimental_subgroups;
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/1d79c7.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupBroadcast/1d79c7.wgsl.expected.msl
new file mode 100644
index 0000000..c022db4
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/1d79c7.wgsl.expected.msl
@@ -0,0 +1,20 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroups;
+
+fn subgroupBroadcast_1d79c7() {
+ var arg_0 = 1i;
+ const arg_1 = 1u;
+ var res : i32 = subgroupBroadcast(arg_0, arg_1);
+ prevent_dce = res;
+}
+
+@group(2) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupBroadcast_1d79c7();
+}
+
+Failed to generate: error: Unknown import method: subgroupBroadcast
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/1d79c7.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupBroadcast/1d79c7.wgsl.expected.spvasm
new file mode 100644
index 0000000..eed3359
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/1d79c7.wgsl.expected.spvasm
@@ -0,0 +1,9 @@
+SKIP: FAILED
+
+/build/dawn/src/tint/lang/spirv/writer/ast_printer/builder.cc:2580 internal compiler error: unknown method subgroupBroadcast
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/49de94.wgsl b/test/tint/builtins/gen/var/subgroupBroadcast/49de94.wgsl
new file mode 100644
index 0000000..a5f1175
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/49de94.wgsl
@@ -0,0 +1,39 @@
+// Copyright 2023 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+// test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+enable chromium_experimental_subgroups;
+
+// fn subgroupBroadcast(value: u32, @const sourceLaneIndex: i32) -> u32
+fn subgroupBroadcast_49de94() {
+ var arg_0 = 1u;
+ const arg_1 = 1i;
+ var res: u32 = subgroupBroadcast(arg_0, arg_1);
+ prevent_dce = res;
+}
+@group(2) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupBroadcast_49de94();
+}
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/49de94.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupBroadcast/49de94.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..9f667dd
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/49de94.wgsl.expected.dxc.hlsl
@@ -0,0 +1,9 @@
+SKIP: FAILED
+
+/build/dawn/src/tint/lang/hlsl/writer/ast_printer/ast_printer.cc:2510 internal compiler error: TINT_UNREACHABLE unexpected subgroup builtin type subgroupBroadcast
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/49de94.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupBroadcast/49de94.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..9f667dd
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/49de94.wgsl.expected.fxc.hlsl
@@ -0,0 +1,9 @@
+SKIP: FAILED
+
+/build/dawn/src/tint/lang/hlsl/writer/ast_printer/ast_printer.cc:2510 internal compiler error: TINT_UNREACHABLE unexpected subgroup builtin type subgroupBroadcast
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/49de94.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupBroadcast/49de94.wgsl.expected.glsl
new file mode 100644
index 0000000..57d45ee
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/49de94.wgsl.expected.glsl
@@ -0,0 +1,23 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroups;
+
+fn subgroupBroadcast_49de94() {
+ var arg_0 = 1u;
+ const arg_1 = 1i;
+ var res : u32 = subgroupBroadcast(arg_0, arg_1);
+ prevent_dce = res;
+}
+
+@group(2) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupBroadcast_49de94();
+}
+
+Failed to generate: test/tint/builtins/gen/var/subgroupBroadcast/49de94.wgsl:25:8 error: GLSL backend does not support extension 'chromium_experimental_subgroups'
+enable chromium_experimental_subgroups;
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/49de94.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupBroadcast/49de94.wgsl.expected.msl
new file mode 100644
index 0000000..ba5e419
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/49de94.wgsl.expected.msl
@@ -0,0 +1,20 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroups;
+
+fn subgroupBroadcast_49de94() {
+ var arg_0 = 1u;
+ const arg_1 = 1i;
+ var res : u32 = subgroupBroadcast(arg_0, arg_1);
+ prevent_dce = res;
+}
+
+@group(2) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupBroadcast_49de94();
+}
+
+Failed to generate: error: Unknown import method: subgroupBroadcast
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/49de94.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupBroadcast/49de94.wgsl.expected.spvasm
new file mode 100644
index 0000000..eed3359
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/49de94.wgsl.expected.spvasm
@@ -0,0 +1,9 @@
+SKIP: FAILED
+
+/build/dawn/src/tint/lang/spirv/writer/ast_printer/builder.cc:2580 internal compiler error: unknown method subgroupBroadcast
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/867093.wgsl b/test/tint/builtins/gen/var/subgroupBroadcast/867093.wgsl
new file mode 100644
index 0000000..e6352b9
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/867093.wgsl
@@ -0,0 +1,39 @@
+// Copyright 2023 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+// test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+enable chromium_experimental_subgroups;
+
+// fn subgroupBroadcast(value: f32, @const sourceLaneIndex: i32) -> f32
+fn subgroupBroadcast_867093() {
+ var arg_0 = 1.f;
+ const arg_1 = 1i;
+ var res: f32 = subgroupBroadcast(arg_0, arg_1);
+ prevent_dce = res;
+}
+@group(2) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupBroadcast_867093();
+}
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/867093.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupBroadcast/867093.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..9f667dd
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/867093.wgsl.expected.dxc.hlsl
@@ -0,0 +1,9 @@
+SKIP: FAILED
+
+/build/dawn/src/tint/lang/hlsl/writer/ast_printer/ast_printer.cc:2510 internal compiler error: TINT_UNREACHABLE unexpected subgroup builtin type subgroupBroadcast
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/867093.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupBroadcast/867093.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..9f667dd
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/867093.wgsl.expected.fxc.hlsl
@@ -0,0 +1,9 @@
+SKIP: FAILED
+
+/build/dawn/src/tint/lang/hlsl/writer/ast_printer/ast_printer.cc:2510 internal compiler error: TINT_UNREACHABLE unexpected subgroup builtin type subgroupBroadcast
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/867093.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupBroadcast/867093.wgsl.expected.glsl
new file mode 100644
index 0000000..9649d0b
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/867093.wgsl.expected.glsl
@@ -0,0 +1,23 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroups;
+
+fn subgroupBroadcast_867093() {
+ var arg_0 = 1.0f;
+ const arg_1 = 1i;
+ var res : f32 = subgroupBroadcast(arg_0, arg_1);
+ prevent_dce = res;
+}
+
+@group(2) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupBroadcast_867093();
+}
+
+Failed to generate: test/tint/builtins/gen/var/subgroupBroadcast/867093.wgsl:25:8 error: GLSL backend does not support extension 'chromium_experimental_subgroups'
+enable chromium_experimental_subgroups;
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/867093.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupBroadcast/867093.wgsl.expected.msl
new file mode 100644
index 0000000..650c431
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/867093.wgsl.expected.msl
@@ -0,0 +1,20 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroups;
+
+fn subgroupBroadcast_867093() {
+ var arg_0 = 1.0f;
+ const arg_1 = 1i;
+ var res : f32 = subgroupBroadcast(arg_0, arg_1);
+ prevent_dce = res;
+}
+
+@group(2) @binding(0) var<storage, read_write> prevent_dce : f32;
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupBroadcast_867093();
+}
+
+Failed to generate: error: Unknown import method: subgroupBroadcast
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/867093.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupBroadcast/867093.wgsl.expected.spvasm
new file mode 100644
index 0000000..eed3359
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/867093.wgsl.expected.spvasm
@@ -0,0 +1,9 @@
+SKIP: FAILED
+
+/build/dawn/src/tint/lang/spirv/writer/ast_printer/builder.cc:2580 internal compiler error: unknown method subgroupBroadcast
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/9ccdca.wgsl b/test/tint/builtins/gen/var/subgroupBroadcast/9ccdca.wgsl
new file mode 100644
index 0000000..c0e9958
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/9ccdca.wgsl
@@ -0,0 +1,39 @@
+// Copyright 2023 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+// test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+enable chromium_experimental_subgroups;
+
+// fn subgroupBroadcast(value: i32, @const sourceLaneIndex: i32) -> i32
+fn subgroupBroadcast_9ccdca() {
+ var arg_0 = 1i;
+ const arg_1 = 1i;
+ var res: i32 = subgroupBroadcast(arg_0, arg_1);
+ prevent_dce = res;
+}
+@group(2) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupBroadcast_9ccdca();
+}
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/9ccdca.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupBroadcast/9ccdca.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..9f667dd
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/9ccdca.wgsl.expected.dxc.hlsl
@@ -0,0 +1,9 @@
+SKIP: FAILED
+
+/build/dawn/src/tint/lang/hlsl/writer/ast_printer/ast_printer.cc:2510 internal compiler error: TINT_UNREACHABLE unexpected subgroup builtin type subgroupBroadcast
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/9ccdca.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupBroadcast/9ccdca.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..9f667dd
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/9ccdca.wgsl.expected.fxc.hlsl
@@ -0,0 +1,9 @@
+SKIP: FAILED
+
+/build/dawn/src/tint/lang/hlsl/writer/ast_printer/ast_printer.cc:2510 internal compiler error: TINT_UNREACHABLE unexpected subgroup builtin type subgroupBroadcast
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/9ccdca.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupBroadcast/9ccdca.wgsl.expected.glsl
new file mode 100644
index 0000000..a8d2d1e
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/9ccdca.wgsl.expected.glsl
@@ -0,0 +1,23 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroups;
+
+fn subgroupBroadcast_9ccdca() {
+ var arg_0 = 1i;
+ const arg_1 = 1i;
+ var res : i32 = subgroupBroadcast(arg_0, arg_1);
+ prevent_dce = res;
+}
+
+@group(2) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupBroadcast_9ccdca();
+}
+
+Failed to generate: test/tint/builtins/gen/var/subgroupBroadcast/9ccdca.wgsl:25:8 error: GLSL backend does not support extension 'chromium_experimental_subgroups'
+enable chromium_experimental_subgroups;
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/9ccdca.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupBroadcast/9ccdca.wgsl.expected.msl
new file mode 100644
index 0000000..421c573
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/9ccdca.wgsl.expected.msl
@@ -0,0 +1,20 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroups;
+
+fn subgroupBroadcast_9ccdca() {
+ var arg_0 = 1i;
+ const arg_1 = 1i;
+ var res : i32 = subgroupBroadcast(arg_0, arg_1);
+ prevent_dce = res;
+}
+
+@group(2) @binding(0) var<storage, read_write> prevent_dce : i32;
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupBroadcast_9ccdca();
+}
+
+Failed to generate: error: Unknown import method: subgroupBroadcast
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/9ccdca.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupBroadcast/9ccdca.wgsl.expected.spvasm
new file mode 100644
index 0000000..eed3359
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/9ccdca.wgsl.expected.spvasm
@@ -0,0 +1,9 @@
+SKIP: FAILED
+
+/build/dawn/src/tint/lang/spirv/writer/ast_printer/builder.cc:2580 internal compiler error: unknown method subgroupBroadcast
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/c36fe1.wgsl b/test/tint/builtins/gen/var/subgroupBroadcast/c36fe1.wgsl
new file mode 100644
index 0000000..017d7e1
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/c36fe1.wgsl
@@ -0,0 +1,39 @@
+// Copyright 2023 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+////////////////////////////////////////////////////////////////////////////////
+// File generated by 'tools/src/cmd/gen' using the template:
+// test/tint/builtins/gen/gen.wgsl.tmpl
+//
+// To regenerate run: './tools/run gen'
+//
+// Do not modify this file directly
+////////////////////////////////////////////////////////////////////////////////
+
+
+enable chromium_experimental_subgroups;
+
+// fn subgroupBroadcast(value: u32, @const sourceLaneIndex: u32) -> u32
+fn subgroupBroadcast_c36fe1() {
+ var arg_0 = 1u;
+ const arg_1 = 1u;
+ var res: u32 = subgroupBroadcast(arg_0, arg_1);
+ prevent_dce = res;
+}
+@group(2) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupBroadcast_c36fe1();
+}
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/c36fe1.wgsl.expected.dxc.hlsl b/test/tint/builtins/gen/var/subgroupBroadcast/c36fe1.wgsl.expected.dxc.hlsl
new file mode 100644
index 0000000..9f667dd
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/c36fe1.wgsl.expected.dxc.hlsl
@@ -0,0 +1,9 @@
+SKIP: FAILED
+
+/build/dawn/src/tint/lang/hlsl/writer/ast_printer/ast_printer.cc:2510 internal compiler error: TINT_UNREACHABLE unexpected subgroup builtin type subgroupBroadcast
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/c36fe1.wgsl.expected.fxc.hlsl b/test/tint/builtins/gen/var/subgroupBroadcast/c36fe1.wgsl.expected.fxc.hlsl
new file mode 100644
index 0000000..9f667dd
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/c36fe1.wgsl.expected.fxc.hlsl
@@ -0,0 +1,9 @@
+SKIP: FAILED
+
+/build/dawn/src/tint/lang/hlsl/writer/ast_printer/ast_printer.cc:2510 internal compiler error: TINT_UNREACHABLE unexpected subgroup builtin type subgroupBroadcast
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/c36fe1.wgsl.expected.glsl b/test/tint/builtins/gen/var/subgroupBroadcast/c36fe1.wgsl.expected.glsl
new file mode 100644
index 0000000..9a7ae8f
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/c36fe1.wgsl.expected.glsl
@@ -0,0 +1,23 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroups;
+
+fn subgroupBroadcast_c36fe1() {
+ var arg_0 = 1u;
+ const arg_1 = 1u;
+ var res : u32 = subgroupBroadcast(arg_0, arg_1);
+ prevent_dce = res;
+}
+
+@group(2) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupBroadcast_c36fe1();
+}
+
+Failed to generate: test/tint/builtins/gen/var/subgroupBroadcast/c36fe1.wgsl:25:8 error: GLSL backend does not support extension 'chromium_experimental_subgroups'
+enable chromium_experimental_subgroups;
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/c36fe1.wgsl.expected.msl b/test/tint/builtins/gen/var/subgroupBroadcast/c36fe1.wgsl.expected.msl
new file mode 100644
index 0000000..c4a291c
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/c36fe1.wgsl.expected.msl
@@ -0,0 +1,20 @@
+SKIP: FAILED
+
+
+enable chromium_experimental_subgroups;
+
+fn subgroupBroadcast_c36fe1() {
+ var arg_0 = 1u;
+ const arg_1 = 1u;
+ var res : u32 = subgroupBroadcast(arg_0, arg_1);
+ prevent_dce = res;
+}
+
+@group(2) @binding(0) var<storage, read_write> prevent_dce : u32;
+
+@compute @workgroup_size(1)
+fn compute_main() {
+ subgroupBroadcast_c36fe1();
+}
+
+Failed to generate: error: Unknown import method: subgroupBroadcast
diff --git a/test/tint/builtins/gen/var/subgroupBroadcast/c36fe1.wgsl.expected.spvasm b/test/tint/builtins/gen/var/subgroupBroadcast/c36fe1.wgsl.expected.spvasm
new file mode 100644
index 0000000..eed3359
--- /dev/null
+++ b/test/tint/builtins/gen/var/subgroupBroadcast/c36fe1.wgsl.expected.spvasm
@@ -0,0 +1,9 @@
+SKIP: FAILED
+
+/build/dawn/src/tint/lang/spirv/writer/ast_printer/builder.cc:2580 internal compiler error: unknown method subgroupBroadcast
+********************************************************************
+* The tint shader compiler has encountered an unexpected error. *
+* *
+* Please help us fix this issue by submitting a bug report at *
+* crbug.com/tint with the source program that triggered the bug. *
+********************************************************************