writer/hlsl: Zero initialize with (T) 0

For structures and arrays.
This behaves identically to the per-element zero-initialization, but can be significantly less verbose.

Change-Id: I380ef86f16c2b3f37a9de2820e707f368955b761
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/56764
Auto-Submit: Ben Clayton <bclayton@google.com>
Reviewed-by: David Neto <dneto@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
This commit is contained in:
Ben Clayton 2021-07-02 19:27:42 +00:00
parent efc46c1873
commit 2bb45389b7
54 changed files with 132 additions and 158 deletions

View File

@ -2508,38 +2508,13 @@ bool GeneratorImpl::EmitZeroValue(std::ostream& out, const sem::Type* type) {
return false;
}
}
} else if (auto* str = type->As<sem::Struct>()) {
auto it = structure_builders_.find(str);
if (it != structure_builders_.end()) {
out << it->second << "(";
} else {
out << "{";
} else if (type->IsAnyOf<sem::Struct, sem::Array>()) {
out << "(";
if (!EmitType(out, type, ast::StorageClass::kNone, ast::Access::kUndefined,
"")) {
return false;
}
bool first = true;
for (auto* member : str->Members()) {
if (!first) {
out << ", ";
}
first = false;
if (!EmitZeroValue(out, member->Type())) {
return false;
}
}
out << (it != structure_builders_.end() ? ")" : "}");
} else if (auto* arr = type->As<sem::Array>()) {
out << "{";
auto* elem = arr->ElemType();
for (size_t i = 0; i < arr->Count(); i++) {
if (i > 0) {
out << ", ";
}
if (!EmitZeroValue(out, elem)) {
return false;
}
}
out << "}";
out << ")0";
} else {
diagnostics_.add_error(
diag::System::Writer,

View File

@ -233,7 +233,7 @@ TEST_F(HlslGeneratorImplTest_Constructor, EmitConstructor_Type_Struct_Empty) {
GeneratorImpl& gen = SanitizeAndBuild();
ASSERT_TRUE(gen.Generate()) << gen.error();
EXPECT_THAT(gen.result(), HasSubstr("{0, 0.0f, int3(0, 0, 0)}"));
EXPECT_THAT(gen.result(), HasSubstr("(S)0"));
}
} // namespace

View File

@ -784,7 +784,7 @@ struct tint_array_wrapper {
};
tint_array_wrapper my_func() {
const tint_array_wrapper tint_symbol = {{0.0f, 0.0f, 0.0f, 0.0f, 0.0f}};
const tint_array_wrapper tint_symbol = {(float[5])0};
return tint_symbol;
}
)"));

View File

@ -136,7 +136,7 @@ TEST_F(HlslGeneratorImplTest_MemberAccessor, EmitExpression_MemberAccessor) {
float mem;
};
static Data str = {0.0f};
static Data str = (Data)0;
[numthreads(1, 1, 1)]
void test_function() {

View File

@ -61,8 +61,7 @@ TEST_F(HlslGeneratorImplTest_VariableDecl, Emit_VariableDeclStatement_Array) {
gen.increment_indent();
ASSERT_TRUE(gen.Generate()) << gen.error();
EXPECT_THAT(gen.result(),
HasSubstr(" float a[5] = {0.0f, 0.0f, 0.0f, 0.0f, 0.0f};\n"));
EXPECT_THAT(gen.result(), HasSubstr(" float a[5] = (float[5])0;\n"));
}
TEST_F(HlslGeneratorImplTest_VariableDecl, Emit_VariableDeclStatement_Private) {

View File

@ -81,7 +81,7 @@ class TextGenerator {
~LineWriter();
/// @returns the ostringstream
operator std::ostream &() { return os; }
operator std::ostream&() { return os; }
/// @param rhs the value to write to the line
/// @returns the ostream so calls can be chained

View File

@ -27,7 +27,7 @@ tint_array_wrapper tint_symbol_4(RWByteAddressBuffer buffer, uint offset) {
return tint_symbol_6;
}
static tint_array_wrapper src_private = {{{0}, {0}, {0}, {0}}};
static tint_array_wrapper src_private = (tint_array_wrapper)0;
groupshared tint_array_wrapper src_workgroup;
cbuffer cbuffer_src_uniform : register(b0, space0) {
uint4 src_uniform[4];
@ -35,12 +35,12 @@ cbuffer cbuffer_src_uniform : register(b0, space0) {
RWByteAddressBuffer src_storage : register(u1, space0);
tint_array_wrapper ret_arr() {
const tint_array_wrapper tint_symbol_7 = {{{0}, {0}, {0}, {0}}};
const tint_array_wrapper tint_symbol_7 = {(tint_padded_array_element[4])0};
return tint_symbol_7;
}
S ret_struct_arr() {
const S tint_symbol_8 = {{{{0}, {0}, {0}, {0}}}};
const S tint_symbol_8 = (S)0;
return tint_symbol_8;
}
@ -55,13 +55,13 @@ struct tint_array_wrapper_1 {
};
void foo(tint_array_wrapper src_param) {
tint_array_wrapper src_function = {{{0}, {0}, {0}, {0}}};
tint_array_wrapper tint_symbol = {{{0}, {0}, {0}, {0}}};
tint_array_wrapper src_function = (tint_array_wrapper)0;
tint_array_wrapper tint_symbol = (tint_array_wrapper)0;
const tint_array_wrapper tint_symbol_9 = {{{1}, {2}, {3}, {3}}};
tint_symbol = tint_symbol_9;
tint_symbol = src_param;
tint_symbol = ret_arr();
const tint_array_wrapper src_let = {{{0}, {0}, {0}, {0}}};
const tint_array_wrapper src_let = {(tint_padded_array_element[4])0};
tint_symbol = src_let;
tint_symbol = src_function;
tint_symbol = src_private;
@ -69,7 +69,7 @@ void foo(tint_array_wrapper src_param) {
tint_symbol = ret_struct_arr().arr;
tint_symbol = tint_symbol_2(src_uniform, 0u);
tint_symbol = tint_symbol_4(src_storage, 0u);
tint_array_wrapper_1 dst_nested = {{{{{{0, 0}}, {{0, 0}}, {{0, 0}}}}, {{{{0, 0}}, {{0, 0}}, {{0, 0}}}}, {{{{0, 0}}, {{0, 0}}, {{0, 0}}}}, {{{{0, 0}}, {{0, 0}}, {{0, 0}}}}}};
tint_array_wrapper_1 src_nested = {{{{{{0, 0}}, {{0, 0}}, {{0, 0}}}}, {{{{0, 0}}, {{0, 0}}, {{0, 0}}}}, {{{{0, 0}}, {{0, 0}}, {{0, 0}}}}, {{{{0, 0}}, {{0, 0}}, {{0, 0}}}}}};
tint_array_wrapper_1 dst_nested = (tint_array_wrapper_1)0;
tint_array_wrapper_1 src_nested = (tint_array_wrapper_1)0;
dst_nested = src_nested;
}

View File

@ -27,13 +27,13 @@ tint_array_wrapper tint_symbol_4(RWByteAddressBuffer buffer, uint offset) {
return tint_symbol_6;
}
static tint_array_wrapper src_private = {{{0}, {0}, {0}, {0}}};
static tint_array_wrapper src_private = (tint_array_wrapper)0;
groupshared tint_array_wrapper src_workgroup;
cbuffer cbuffer_src_uniform : register(b0, space0) {
uint4 src_uniform[4];
};
RWByteAddressBuffer src_storage : register(u1, space0);
static tint_array_wrapper tint_symbol = {{{0}, {0}, {0}, {0}}};
static tint_array_wrapper tint_symbol = (tint_array_wrapper)0;
struct tint_array_wrapper_3 {
int arr[2];
@ -45,25 +45,25 @@ struct tint_array_wrapper_1 {
tint_array_wrapper_2 arr[4];
};
static tint_array_wrapper_1 dst_nested = {{{{{{0, 0}}, {{0, 0}}, {{0, 0}}}}, {{{{0, 0}}, {{0, 0}}, {{0, 0}}}}, {{{{0, 0}}, {{0, 0}}, {{0, 0}}}}, {{{{0, 0}}, {{0, 0}}, {{0, 0}}}}}};
static tint_array_wrapper_1 dst_nested = (tint_array_wrapper_1)0;
tint_array_wrapper ret_arr() {
const tint_array_wrapper tint_symbol_7 = {{{0}, {0}, {0}, {0}}};
const tint_array_wrapper tint_symbol_7 = {(tint_padded_array_element[4])0};
return tint_symbol_7;
}
S ret_struct_arr() {
const S tint_symbol_8 = {{{{0}, {0}, {0}, {0}}}};
const S tint_symbol_8 = (S)0;
return tint_symbol_8;
}
void foo(tint_array_wrapper src_param) {
tint_array_wrapper src_function = {{{0}, {0}, {0}, {0}}};
tint_array_wrapper src_function = (tint_array_wrapper)0;
const tint_array_wrapper tint_symbol_9 = {{{1}, {2}, {3}, {3}}};
tint_symbol = tint_symbol_9;
tint_symbol = src_param;
tint_symbol = ret_arr();
const tint_array_wrapper src_let = {{{0}, {0}, {0}, {0}}};
const tint_array_wrapper src_let = {(tint_padded_array_element[4])0};
tint_symbol = src_let;
tint_symbol = src_function;
tint_symbol = src_private;
@ -71,6 +71,6 @@ void foo(tint_array_wrapper src_param) {
tint_symbol = ret_struct_arr().arr;
tint_symbol = tint_symbol_2(src_uniform, 0u);
tint_symbol = tint_symbol_4(src_storage, 0u);
tint_array_wrapper_1 src_nested = {{{{{{0, 0}}, {{0, 0}}, {{0, 0}}}}, {{{{0, 0}}, {{0, 0}}, {{0, 0}}}}, {{{{0, 0}}, {{0, 0}}, {{0, 0}}}}, {{{{0, 0}}, {{0, 0}}, {{0, 0}}}}}};
tint_array_wrapper_1 src_nested = (tint_array_wrapper_1)0;
dst_nested = src_nested;
}

View File

@ -62,7 +62,7 @@ void tint_symbol_10(RWByteAddressBuffer buffer, uint offset, tint_array_wrapper_
tint_symbol_9(buffer, (offset + 72u), value.arr[3u]);
}
static tint_array_wrapper src_private = {{{0}, {0}, {0}, {0}}};
static tint_array_wrapper src_private = (tint_array_wrapper)0;
groupshared tint_array_wrapper src_workgroup;
cbuffer cbuffer_src_uniform : register(b0, space0) {
uint4 src_uniform[4];
@ -72,22 +72,22 @@ RWByteAddressBuffer tint_symbol : register(u2, space0);
RWByteAddressBuffer dst_nested : register(u3, space0);
tint_array_wrapper ret_arr() {
const tint_array_wrapper tint_symbol_13 = {{{0}, {0}, {0}, {0}}};
const tint_array_wrapper tint_symbol_13 = {(tint_padded_array_element[4])0};
return tint_symbol_13;
}
S ret_struct_arr() {
const S tint_symbol_14 = {{{{0}, {0}, {0}, {0}}}};
const S tint_symbol_14 = (S)0;
return tint_symbol_14;
}
void foo(tint_array_wrapper src_param) {
tint_array_wrapper src_function = {{{0}, {0}, {0}, {0}}};
tint_array_wrapper src_function = (tint_array_wrapper)0;
const tint_array_wrapper tint_symbol_15 = {{{1}, {2}, {3}, {3}}};
tint_symbol_6(tint_symbol, 0u, tint_symbol_15);
tint_symbol_6(tint_symbol, 0u, src_param);
tint_symbol_6(tint_symbol, 0u, ret_arr());
const tint_array_wrapper src_let = {{{0}, {0}, {0}, {0}}};
const tint_array_wrapper src_let = {(tint_padded_array_element[4])0};
tint_symbol_6(tint_symbol, 0u, src_let);
tint_symbol_6(tint_symbol, 0u, src_function);
tint_symbol_6(tint_symbol, 0u, src_private);
@ -95,6 +95,6 @@ void foo(tint_array_wrapper src_param) {
tint_symbol_6(tint_symbol, 0u, ret_struct_arr().arr);
tint_symbol_6(tint_symbol, 0u, tint_symbol_2(src_uniform, 0u));
tint_symbol_6(tint_symbol, 0u, tint_symbol_4(src_storage, 0u));
tint_array_wrapper_1 src_nested = {{{{{{0, 0}}, {{0, 0}}, {{0, 0}}}}, {{{{0, 0}}, {{0, 0}}, {{0, 0}}}}, {{{{0, 0}}, {{0, 0}}, {{0, 0}}}}, {{{{0, 0}}, {{0, 0}}, {{0, 0}}}}}};
tint_array_wrapper_1 src_nested = (tint_array_wrapper_1)0;
tint_symbol_10(dst_nested, 0u, src_nested);
}

View File

@ -14,10 +14,10 @@ struct tint_array_wrapper_1 {
};
void foo() {
const tint_array_wrapper src = {{0, 0, 0, 0}};
tint_array_wrapper tint_symbol = {{0, 0, 0, 0}};
S dst_struct = {{{0, 0, 0, 0}}};
tint_array_wrapper_1 dst_array = {{{{0, 0, 0, 0}}, {{0, 0, 0, 0}}}};
const tint_array_wrapper src = {(int[4])0};
tint_array_wrapper tint_symbol = (tint_array_wrapper)0;
S dst_struct = (S)0;
tint_array_wrapper_1 dst_array = (tint_array_wrapper_1)0;
dst_struct.arr = src;
dst_array.arr[1] = src;
tint_symbol = src;

View File

@ -27,7 +27,7 @@ tint_array_wrapper tint_symbol_4(RWByteAddressBuffer buffer, uint offset) {
return tint_symbol_6;
}
static tint_array_wrapper src_private = {{{0}, {0}, {0}, {0}}};
static tint_array_wrapper src_private = (tint_array_wrapper)0;
groupshared tint_array_wrapper src_workgroup;
cbuffer cbuffer_src_uniform : register(b0, space0) {
uint4 src_uniform[4];
@ -48,22 +48,22 @@ struct tint_array_wrapper_1 {
groupshared tint_array_wrapper_1 dst_nested;
tint_array_wrapper ret_arr() {
const tint_array_wrapper tint_symbol_7 = {{{0}, {0}, {0}, {0}}};
const tint_array_wrapper tint_symbol_7 = {(tint_padded_array_element[4])0};
return tint_symbol_7;
}
S ret_struct_arr() {
const S tint_symbol_8 = {{{{0}, {0}, {0}, {0}}}};
const S tint_symbol_8 = (S)0;
return tint_symbol_8;
}
void foo(tint_array_wrapper src_param) {
tint_array_wrapper src_function = {{{0}, {0}, {0}, {0}}};
tint_array_wrapper src_function = (tint_array_wrapper)0;
const tint_array_wrapper tint_symbol_9 = {{{1}, {2}, {3}, {3}}};
tint_symbol = tint_symbol_9;
tint_symbol = src_param;
tint_symbol = ret_arr();
const tint_array_wrapper src_let = {{{0}, {0}, {0}, {0}}};
const tint_array_wrapper src_let = {(tint_padded_array_element[4])0};
tint_symbol = src_let;
tint_symbol = src_function;
tint_symbol = src_private;
@ -71,6 +71,6 @@ void foo(tint_array_wrapper src_param) {
tint_symbol = ret_struct_arr().arr;
tint_symbol = tint_symbol_2(src_uniform, 0u);
tint_symbol = tint_symbol_4(src_storage, 0u);
tint_array_wrapper_1 src_nested = {{{{{{0, 0}}, {{0, 0}}, {{0, 0}}}}, {{{{0, 0}}, {{0, 0}}, {{0, 0}}}}, {{{{0, 0}}, {{0, 0}}, {{0, 0}}}}, {{{{0, 0}}, {{0, 0}}, {{0, 0}}}}}};
tint_array_wrapper_1 src_nested = (tint_array_wrapper_1)0;
dst_nested = src_nested;
}

View File

@ -24,9 +24,9 @@ float f3(tint_array_wrapper_2 a) {
[numthreads(1, 1, 1)]
void main() {
const tint_array_wrapper a1 = {{0.0f, 0.0f, 0.0f, 0.0f}};
const tint_array_wrapper_1 a2 = {{{{0.0f, 0.0f, 0.0f, 0.0f}}, {{0.0f, 0.0f, 0.0f, 0.0f}}, {{0.0f, 0.0f, 0.0f, 0.0f}}}};
const tint_array_wrapper_2 a3 = {{{{{{0.0f, 0.0f, 0.0f, 0.0f}}, {{0.0f, 0.0f, 0.0f, 0.0f}}, {{0.0f, 0.0f, 0.0f, 0.0f}}}}, {{{{0.0f, 0.0f, 0.0f, 0.0f}}, {{0.0f, 0.0f, 0.0f, 0.0f}}, {{0.0f, 0.0f, 0.0f, 0.0f}}}}}};
const tint_array_wrapper a1 = {(float[4])0};
const tint_array_wrapper_1 a2 = {(tint_array_wrapper[3])0};
const tint_array_wrapper_2 a3 = {(tint_array_wrapper_1[2])0};
const float v1 = f1(a1);
const float v2 = f2(a2);
const float v3 = f3(a3);

View File

@ -3,7 +3,7 @@ struct tint_array_wrapper {
};
tint_array_wrapper f1() {
const tint_array_wrapper tint_symbol = {{0.0f, 0.0f, 0.0f, 0.0f}};
const tint_array_wrapper tint_symbol = {(float[4])0};
return tint_symbol;
}

View File

@ -14,10 +14,10 @@ struct tint_array_wrapper_3 {
[numthreads(1, 1, 1)]
void main() {
const int x = 42;
const tint_array_wrapper empty = {{0, 0, 0, 0}};
const tint_array_wrapper empty = {(int[4])0};
const tint_array_wrapper nonempty = {{1, 2, 3, 4}};
const tint_array_wrapper nonempty_with_expr = {{1, x, (x + 1), nonempty.arr[3]}};
const tint_array_wrapper_1 nested_empty = {{{{{{0, 0, 0, 0}}, {{0, 0, 0, 0}}, {{0, 0, 0, 0}}}}, {{{{0, 0, 0, 0}}, {{0, 0, 0, 0}}, {{0, 0, 0, 0}}}}}};
const tint_array_wrapper_1 nested_empty = {(tint_array_wrapper_2[2])0};
const tint_array_wrapper tint_symbol = {{1, 2, 3, 4}};
const tint_array_wrapper tint_symbol_1 = {{5, 6, 7, 8}};
const tint_array_wrapper tint_symbol_2 = {{9, 10, 11, 12}};
@ -31,13 +31,13 @@ void main() {
const tint_array_wrapper tint_symbol_9 = {{5, 6, nonempty.arr[2], (nonempty.arr[3] + 1)}};
const tint_array_wrapper_2 tint_symbol_10 = {{tint_symbol_8, tint_symbol_9, nonempty}};
const tint_array_wrapper_1 nested_nonempty_with_expr = {{tint_symbol_10, nested_nonempty.arr[1]}};
const tint_array_wrapper tint_symbol_11 = {{0, 0, 0, 0}};
const tint_array_wrapper tint_symbol_11 = {(int[4])0};
const int subexpr_empty = tint_symbol_11.arr[1];
const tint_array_wrapper tint_symbol_12 = {{1, 2, 3, 4}};
const int subexpr_nonempty = tint_symbol_12.arr[2];
const tint_array_wrapper tint_symbol_13 = {{1, x, (x + 1), nonempty.arr[3]}};
const int subexpr_nonempty_with_expr = tint_symbol_13.arr[2];
const tint_array_wrapper_3 tint_symbol_14 = {{{{0, 0, 0, 0}}, {{0, 0, 0, 0}}}};
const tint_array_wrapper_3 tint_symbol_14 = {(tint_array_wrapper[2])0};
const tint_array_wrapper subexpr_nested_empty = tint_symbol_14.arr[1];
const tint_array_wrapper tint_symbol_15 = {{1, 2, 3, 4}};
const tint_array_wrapper tint_symbol_16 = {{5, 6, 7, 8}};

View File

@ -20,7 +20,7 @@ struct tint_array_wrapper {
tint_symbol_2 vs_main(tint_symbol_1 tint_symbol) {
const uint VertexIndex = tint_symbol.VertexIndex;
tint_array_wrapper texcoord = {{float2(-0.5f, 0.0f), float2(1.5f, 0.0f), float2(0.5f, 2.0f)}};
VertexOutputs output = {float2(0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)};
VertexOutputs output = (VertexOutputs)0;
output.position = float4(((texcoord.arr[VertexIndex] * 2.0f) - float2(1.0f, 1.0f)), 0.0f, 1.0f);
const int scalar_offset = (4u) / 4;
bool flipY = (asfloat(uniforms[scalar_offset / 4][scalar_offset % 4]) < 0.0f);

View File

@ -33,7 +33,7 @@ struct tint_array_wrapper {
tint_symbol_2 main(tint_symbol_1 tint_symbol) {
const uint gl_VertexIndex = tint_symbol.gl_VertexIndex;
tint_array_wrapper indexable = {{float2(0.0f, 0.0f), float2(0.0f, 0.0f), float2(0.0f, 0.0f)}};
tint_array_wrapper indexable = (tint_array_wrapper)0;
const float2x2 x_23 = tint_symbol_4(x_20, 0u);
const float2x2 x_28 = tint_symbol_6(x_26, 0u);
const uint x_46 = gl_VertexIndex;

View File

@ -5,7 +5,7 @@ struct QuicksortObject {
tint_array_wrapper numbers;
};
static QuicksortObject obj = {{{0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}};
static QuicksortObject obj = (QuicksortObject)0;
static float4 gl_FragCoord = float4(0.0f, 0.0f, 0.0f, 0.0f);
cbuffer cbuffer_x_188 : register(b0, space0) {
uint4 x_188[1];
@ -363,7 +363,7 @@ void quicksort_() {
int p = 0;
int l_1 = 0;
int top = 0;
tint_array_wrapper stack = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
tint_array_wrapper stack = (tint_array_wrapper)0;
int param_5 = 0;
l_1 = 0;
const int x_1007 = param_5;

View File

@ -8,7 +8,7 @@ struct tint_array_wrapper {
};
void foo() {
tint_array_wrapper tint_symbol = {{0, 0}};
tint_array_wrapper implict = {{0, 0}};
tint_array_wrapper tint_symbol = (tint_array_wrapper)0;
tint_array_wrapper implict = (tint_array_wrapper)0;
implict = tint_symbol;
}

View File

@ -22,7 +22,7 @@ tint_symbol_2 main(tint_symbol_1 tint_symbol) {
const uint InstanceIndex = tint_symbol.InstanceIndex;
tint_array_wrapper zv = {{float2(0.200000003f, 0.200000003f), float2(0.300000012f, 0.300000012f), float2(-0.100000001f, -0.100000001f), float2(1.100000024f, 1.100000024f)}};
const float z = zv.arr[InstanceIndex].x;
Output output = {float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)};
Output output = (Output)0;
output.Position = float4(0.5f, 0.5f, z, 1.0f);
tint_array_wrapper_1 colors = {{float4(1.0f, 0.0f, 0.0f, 1.0f), float4(0.0f, 1.0f, 0.0f, 1.0f), float4(0.0f, 0.0f, 1.0f, 1.0f), float4(1.0f, 1.0f, 1.0f, 1.0f)}};
output.color = colors.arr[InstanceIndex];

View File

@ -10,7 +10,7 @@ tint_array_wrapper tint_symbol_1(ByteAddressBuffer buffer, uint offset) {
ByteAddressBuffer sspp962805860buildInformation : register(t2, space0);
void main_1() {
tint_array_wrapper orientation = {{0, 0, 0, 0, 0, 0}};
tint_array_wrapper orientation = (tint_array_wrapper)0;
const tint_array_wrapper x_23 = tint_symbol_1(sspp962805860buildInformation, 36u);
orientation.arr[0] = x_23.arr[0u];
orientation.arr[1] = x_23.arr[1u];

File diff suppressed because one or more lines are too long

View File

@ -63,7 +63,7 @@ static float2 v_TexCoord = float2(0.0f, 0.0f);
static float4 gl_Position = float4(0.0f, 0.0f, 0.0f, 0.0f);
float3 Mat4x3GetCol0_(Mat4x3_ m) {
Mat4x3_ m1 = {float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)};
Mat4x3_ m1 = (Mat4x3_)0;
m1 = m;
const Mat4x3_ _e2 = m1;
const Mat4x3_ _e5 = m1;
@ -72,7 +72,7 @@ float3 Mat4x3GetCol0_(Mat4x3_ m) {
}
float3 Mat4x3GetCol1_(Mat4x3_ m2) {
Mat4x3_ m3 = {float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)};
Mat4x3_ m3 = (Mat4x3_)0;
m3 = m2;
const Mat4x3_ _e2 = m3;
const Mat4x3_ _e5 = m3;
@ -81,7 +81,7 @@ float3 Mat4x3GetCol1_(Mat4x3_ m2) {
}
float3 Mat4x3GetCol2_(Mat4x3_ m4) {
Mat4x3_ m5 = {float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)};
Mat4x3_ m5 = (Mat4x3_)0;
m5 = m4;
const Mat4x3_ _e2 = m5;
const Mat4x3_ _e5 = m5;
@ -90,7 +90,7 @@ float3 Mat4x3GetCol2_(Mat4x3_ m4) {
}
float3 Mat4x3GetCol3_(Mat4x3_ m6) {
Mat4x3_ m7 = {float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)};
Mat4x3_ m7 = (Mat4x3_)0;
m7 = m6;
const Mat4x3_ _e2 = m7;
const Mat4x3_ _e5 = m7;
@ -99,7 +99,7 @@ float3 Mat4x3GetCol3_(Mat4x3_ m6) {
}
float4 Mul(Mat4x4_ m8, float4 v) {
Mat4x4_ m9 = {float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)};
Mat4x4_ m9 = (Mat4x4_)0;
float4 v1 = float4(0.0f, 0.0f, 0.0f, 0.0f);
m9 = m8;
v1 = v;
@ -115,7 +115,7 @@ float4 Mul(Mat4x4_ m8, float4 v) {
}
float3 Mul1(Mat4x3_ m10, float4 v2) {
Mat4x3_ m11 = {float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)};
Mat4x3_ m11 = (Mat4x3_)0;
float4 v3 = float4(0.0f, 0.0f, 0.0f, 0.0f);
m11 = m10;
v3 = v2;
@ -129,7 +129,7 @@ float3 Mul1(Mat4x3_ m10, float4 v2) {
}
float2 Mul2(Mat4x2_ m12, float4 v4) {
Mat4x2_ m13 = {float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)};
Mat4x2_ m13 = (Mat4x2_)0;
float4 v5 = float4(0.0f, 0.0f, 0.0f, 0.0f);
m13 = m12;
v5 = v4;
@ -142,7 +142,7 @@ float2 Mul2(Mat4x2_ m12, float4 v4) {
float4 Mul3(float3 v6, Mat4x3_ m14) {
float3 v7 = float3(0.0f, 0.0f, 0.0f);
Mat4x3_ m15 = {float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)};
Mat4x3_ m15 = (Mat4x3_)0;
v7 = v6;
m15 = m14;
const Mat4x3_ _e5 = m15;
@ -162,7 +162,7 @@ float4 Mul3(float3 v6, Mat4x3_ m14) {
Mat4x4_ _Mat4x4_(float n) {
float n1 = 0.0f;
Mat4x4_ o = {float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)};
Mat4x4_ o = (Mat4x4_)0;
n1 = n;
const float _e4 = n1;
o.mx = float4(_e4, 0.0f, 0.0f, 0.0f);
@ -177,8 +177,8 @@ Mat4x4_ _Mat4x4_(float n) {
}
Mat4x4_ _Mat4x4_1(Mat4x3_ m16) {
Mat4x3_ m17 = {float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)};
Mat4x4_ o1 = {float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)};
Mat4x3_ m17 = (Mat4x3_)0;
Mat4x4_ o1 = (Mat4x4_)0;
m17 = m16;
const Mat4x4_ _e4 = _Mat4x4_(1.0f);
o1 = _e4;
@ -193,8 +193,8 @@ Mat4x4_ _Mat4x4_1(Mat4x3_ m16) {
}
Mat4x4_ _Mat4x4_2(Mat4x2_ m18) {
Mat4x2_ m19 = {float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)};
Mat4x4_ o2 = {float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)};
Mat4x2_ m19 = (Mat4x2_)0;
Mat4x4_ o2 = (Mat4x4_)0;
m19 = m18;
const Mat4x4_ _e4 = _Mat4x4_(1.0f);
o2 = _e4;
@ -208,7 +208,7 @@ Mat4x4_ _Mat4x4_2(Mat4x2_ m18) {
Mat4x3_ _Mat4x3_(float n2) {
float n3 = 0.0f;
Mat4x3_ o3 = {float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)};
Mat4x3_ o3 = (Mat4x3_)0;
n3 = n2;
const float _e4 = n3;
o3.mx = float4(_e4, 0.0f, 0.0f, 0.0f);
@ -221,8 +221,8 @@ Mat4x3_ _Mat4x3_(float n2) {
}
Mat4x3_ _Mat4x3_1(Mat4x4_ m20) {
Mat4x4_ m21 = {float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)};
Mat4x3_ o4 = {float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)};
Mat4x4_ m21 = (Mat4x4_)0;
Mat4x3_ o4 = (Mat4x3_)0;
m21 = m20;
const Mat4x4_ _e4 = m21;
o4.mx = _e4.mx;
@ -235,7 +235,7 @@ Mat4x3_ _Mat4x3_1(Mat4x4_ m20) {
}
void main1() {
Mat4x3_ t_PosMtx = {float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)};
Mat4x3_ t_PosMtx = (Mat4x3_)0;
float2 t_TexSpaceCoord = float2(0.0f, 0.0f);
const float _e15 = a_PosMtxIdx1;
const Mat4x3_ _e18 = tint_symbol_5(global2, (48u * uint(int(_e15))));

View File

@ -8,5 +8,5 @@ struct tint_array_wrapper {
};
void f() {
tint_array_wrapper v = {{false, false, false, false}};
tint_array_wrapper v = {(bool[4])0};
}

View File

@ -8,5 +8,5 @@ struct tint_array_wrapper {
};
void f() {
tint_array_wrapper v = {{0.0f, 0.0f, 0.0f, 0.0f}};
tint_array_wrapper v = {(float[4])0};
}

View File

@ -8,5 +8,5 @@ struct tint_array_wrapper {
};
void f() {
tint_array_wrapper v = {{0, 0, 0, 0}};
tint_array_wrapper v = {(int[4])0};
}

View File

@ -14,5 +14,5 @@ struct tint_array_wrapper {
};
void f() {
tint_array_wrapper v = {{{0, 0u, 0.0f, false}, {0, 0u, 0.0f, false}, {0, 0u, 0.0f, false}, {0, 0u, 0.0f, false}}};
tint_array_wrapper v = {(S[4])0};
}

View File

@ -8,5 +8,5 @@ struct tint_array_wrapper {
};
void f() {
tint_array_wrapper v = {{0u, 0u, 0u, 0u}};
tint_array_wrapper v = {(uint[4])0};
}

View File

@ -11,5 +11,5 @@ struct S {
};
void f() {
S v = {{{0.0f, 0.0f, 0.0f, 0.0f}}};
S v = (S)0;
}

View File

@ -11,5 +11,5 @@ struct S {
};
void f() {
S v = {0, 0u, 0.0f, false};
S v = (S)0;
}

View File

@ -2,7 +2,7 @@ struct S {
int i;
};
static S V = {0};
static S V = (S)0;
void main_1() {
int i = 0;

View File

@ -2,7 +2,7 @@ struct S {
int i;
};
static S V = {0};
static S V = (S)0;
[numthreads(1, 1, 1)]
void main() {

View File

@ -4,7 +4,7 @@ struct S {
void main_1() {
int i = 0;
S V = {0};
S V = (S)0;
const int x_14 = V.i;
i = x_14;
return;

View File

@ -4,7 +4,7 @@ struct S {
[numthreads(1, 1, 1)]
void main() {
S V = {0};
S V = (S)0;
int i = V.i;
return;
}

View File

@ -2,7 +2,7 @@ struct S {
int i;
};
static S V = {0};
static S V = (S)0;
void main_1() {
V.i = 5;

View File

@ -3,7 +3,7 @@ struct S {
};
void main_1() {
S V = {0};
S V = (S)0;
V.i = 5;
return;
}

View File

@ -29,7 +29,7 @@ struct tint_symbol_2 {
tint_symbol_2 vtx_main(tint_symbol_1 tint_symbol) {
const VertexInput input = {tint_symbol.cur_position, tint_symbol.color};
VertexOutput output = {float4(0.0f, 0.0f, 0.0f, 0.0f), float4(0.0f, 0.0f, 0.0f, 0.0f)};
VertexOutput output = (VertexOutput)0;
output.Position = mul(input.cur_position, tint_symbol_7(uniforms, 0u));
output.vtxFragColor = input.color;
const tint_symbol_2 tint_symbol_8 = {output.vtxFragColor, output.Position};

View File

@ -14,7 +14,7 @@ struct tint_symbol {
};
tint_symbol vert_main() {
const Interface tint_symbol_1 = {0, 0u, int4(0, 0, 0, 0), uint4(0u, 0u, 0u, 0u), float4(0.0f, 0.0f, 0.0f, 0.0f)};
const Interface tint_symbol_1 = (Interface)0;
const tint_symbol tint_symbol_5 = {tint_symbol_1.i, tint_symbol_1.u, tint_symbol_1.vi, tint_symbol_1.vu, tint_symbol_1.pos};
return tint_symbol_5;
}

View File

@ -22,7 +22,7 @@ struct tint_symbol {
};
tint_symbol main() {
const Out tint_symbol_1 = {float4(0.0f, 0.0f, 0.0f, 0.0f), 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f};
const Out tint_symbol_1 = (Out)0;
const tint_symbol tint_symbol_2 = {tint_symbol_1.none, tint_symbol_1.flat, tint_symbol_1.perspective_center, tint_symbol_1.perspective_centroid, tint_symbol_1.perspective_sample, tint_symbol_1.linear_center, tint_symbol_1.linear_centroid, tint_symbol_1.linear_sample, tint_symbol_1.pos};
return tint_symbol_2;
}

View File

@ -26,10 +26,10 @@ struct tint_array_wrapper_1 {
[numthreads(1, 1, 1)]
void main() {
const int x = 42;
const S1 empty = {0, 0, 0, 0};
const S1 empty = (S1)0;
const S1 nonempty = {1, 2, 3, 4};
const S1 nonempty_with_expr = {1, x, (x + 1), nonempty.d};
const S3 nested_empty = {0, {0, 0, 0, 0}, {0, {0, 0, 0, 0}}};
const S3 nested_empty = (S3)0;
const S1 tint_symbol = {2, 3, 4, 5};
const S1 tint_symbol_1 = {7, 8, 9, 10};
const S2 tint_symbol_2 = {6, tint_symbol_1};
@ -37,13 +37,13 @@ void main() {
const S1 tint_symbol_3 = {2, x, (x + 1), nested_nonempty.i.f.d};
const S2 tint_symbol_4 = {6, nonempty};
const S3 nested_nonempty_with_expr = {1, tint_symbol_3, tint_symbol_4};
const S1 tint_symbol_5 = {0, 0, 0, 0};
const S1 tint_symbol_5 = (S1)0;
const int subexpr_empty = tint_symbol_5.a;
const S1 tint_symbol_6 = {1, 2, 3, 4};
const int subexpr_nonempty = tint_symbol_6.b;
const S1 tint_symbol_7 = {1, x, (x + 1), nonempty.d};
const int subexpr_nonempty_with_expr = tint_symbol_7.c;
const S2 tint_symbol_8 = {0, {0, 0, 0, 0}};
const S2 tint_symbol_8 = (S2)0;
const S1 subexpr_nested_empty = tint_symbol_8.f;
const S1 tint_symbol_9 = {2, 3, 4, 5};
const S2 tint_symbol_10 = {1, tint_symbol_9};
@ -51,7 +51,7 @@ void main() {
const S1 tint_symbol_11 = {2, x, (x + 1), nested_nonempty.i.f.d};
const S2 tint_symbol_12 = {1, tint_symbol_11};
const S1 subexpr_nested_nonempty_with_expr = tint_symbol_12.f;
const tint_array_wrapper_1 aosoa_empty = {{{{{0, 0}}}, {{{0, 0}}}}};
const tint_array_wrapper_1 aosoa_empty = {(T[2])0};
const tint_array_wrapper tint_symbol_13 = {{1, 2}};
const T tint_symbol_14 = {tint_symbol_13};
const tint_array_wrapper tint_symbol_15 = {{3, 4}};

View File

@ -23,9 +23,9 @@ void main() {
const float4 v4f32_let = float4(0.0f, 0.0f, 0.0f, 0.0f);
float2x3 m2x3_var = float2x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
const float3x4 m3x4_let = float3x4(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
tint_array_wrapper arr_var = {{0.0f, 0.0f, 0.0f, 0.0f}};
const tint_array_wrapper arr_let = {{0.0f, 0.0f, 0.0f, 0.0f}};
S struct_var = {0.0f};
const S struct_let = {0.0f};
tint_array_wrapper arr_var = {(float[4])0};
const tint_array_wrapper arr_let = {(float[4])0};
S struct_var = (S)0;
const S struct_let = (S)0;
return;
}

View File

@ -15,8 +15,8 @@ struct tint_array_wrapper {
float arr[4];
};
static const tint_array_wrapper arr_let = {{0.0f, 0.0f, 0.0f, 0.0f}};
static const S struct_let = {0.0f};
static const tint_array_wrapper arr_let = {(float[4])0};
static const S struct_let = (S)0;
[numthreads(1, 1, 1)]
void main() {

View File

@ -15,8 +15,8 @@ struct tint_array_wrapper {
float arr[4];
};
static tint_array_wrapper arr_var = {{0.0f, 0.0f, 0.0f, 0.0f}};
static S struct_var = {0.0f};
static tint_array_wrapper arr_var = (tint_array_wrapper)0;
static S struct_var = (S)0;
[numthreads(1, 1, 1)]
void main() {
@ -28,9 +28,9 @@ void main() {
v3u32_var = uint3(0u, 0u, 0u);
v4f32_var = float4(0.0f, 0.0f, 0.0f, 0.0f);
m2x3_var = float2x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
const tint_array_wrapper tint_symbol = {{0.0f, 0.0f, 0.0f, 0.0f}};
const tint_array_wrapper tint_symbol = {(float[4])0};
arr_var = tint_symbol;
const S tint_symbol_1 = {0.0f};
const S tint_symbol_1 = (S)0;
struct_var = tint_symbol_1;
return;
}

View File

@ -15,8 +15,8 @@ struct tint_array_wrapper {
float arr[4];
};
static tint_array_wrapper arr_var = {{0.0f, 0.0f, 0.0f, 0.0f}};
static S struct_var = {0.0f};
static tint_array_wrapper arr_var = {(float[4])0};
static S struct_var = (S)0;
[numthreads(1, 1, 1)]
void main() {
@ -28,9 +28,9 @@ void main() {
v3u32_var = uint3(0u, 0u, 0u);
v4f32_var = float4(0.0f, 0.0f, 0.0f, 0.0f);
m2x3_var = float2x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
const tint_array_wrapper tint_symbol = {{0.0f, 0.0f, 0.0f, 0.0f}};
const tint_array_wrapper tint_symbol = {(float[4])0};
arr_var = tint_symbol;
const S tint_symbol_1 = {0.0f};
const S tint_symbol_1 = (S)0;
struct_var = tint_symbol_1;
return;
}

View File

@ -39,12 +39,12 @@ struct tint_array_wrapper {
};
tint_array_wrapper ret_arr() {
const tint_array_wrapper tint_symbol = {{0.0f, 0.0f, 0.0f, 0.0f}};
const tint_array_wrapper tint_symbol = {(float[4])0};
return tint_symbol;
}
S ret_struct() {
const S tint_symbol_1 = {0.0f};
const S tint_symbol_1 = (S)0;
return tint_symbol_1;
}

View File

@ -19,6 +19,6 @@ struct S {
[numthreads(1, 1, 1)]
void main() {
const S s = {false, 0, 0u, 0.0f, int2(0, 0), uint3(0u, 0u, 0u), float4(0.0f, 0.0f, 0.0f, 0.0f), float2x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f), {{0.0f, 0.0f, 0.0f, 0.0f}}, {0.0f}};
const S s = (S)0;
return;
}

View File

@ -18,12 +18,12 @@ float ret_f32() {
}
MyStruct ret_MyStruct() {
const MyStruct tint_symbol_1 = {0.0f};
const MyStruct tint_symbol_1 = (MyStruct)0;
return tint_symbol_1;
}
tint_array_wrapper ret_MyArray() {
const tint_array_wrapper tint_symbol_2 = {{0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}};
const tint_array_wrapper tint_symbol_2 = {(float[10])0};
return tint_symbol_2;
}
@ -36,7 +36,7 @@ void let_decls() {
const float3 v6 = float3(1.0f, 1.0f, 1.0f);
const float3x3 v7 = float3x3(v6, v6, v6);
const MyStruct v8 = {1.0f};
const tint_array_wrapper v9 = {{0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}};
const tint_array_wrapper v9 = {(float[10])0};
const int v10 = ret_i32();
const uint v11 = ret_u32();
const float v12 = ret_f32();

View File

@ -18,12 +18,12 @@ float ret_f32() {
}
MyStruct ret_MyStruct() {
const MyStruct tint_symbol_1 = {0.0f};
const MyStruct tint_symbol_1 = (MyStruct)0;
return tint_symbol_1;
}
tint_array_wrapper ret_MyArray() {
const tint_array_wrapper tint_symbol_2 = {{0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}};
const tint_array_wrapper tint_symbol_2 = {(float[10])0};
return tint_symbol_2;
}
@ -36,7 +36,7 @@ void var_decls() {
float3 v6 = float3(1.0f, 1.0f, 1.0f);
float3x3 v7 = float3x3(v6, v6, v6);
MyStruct v8 = {1.0f};
tint_array_wrapper v9 = {{0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}};
tint_array_wrapper v9 = {(float[10])0};
int v10 = ret_i32();
uint v11 = ret_u32();
float v12 = ret_f32();

View File

@ -12,8 +12,8 @@ static const int3 v4 = int3(1, 1, 1);
static const uint3 v5 = uint3(1u, 1u, 1u);
static const float3 v6 = float3(1.0f, 1.0f, 1.0f);
static const float3x3 v7 = float3x3(float3(1.0f, 1.0f, 1.0f), float3(1.0f, 1.0f, 1.0f), float3(1.0f, 1.0f, 1.0f));
static const MyStruct v8 = {0.0f};
static const tint_array_wrapper v9 = {{0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f}};
static const MyStruct v8 = (MyStruct)0;
static const tint_array_wrapper v9 = {(float[10])0};
struct tint_symbol {
float4 value : SV_Target0;

View File

@ -4,7 +4,7 @@ struct tint_array_wrapper {
[numthreads(1, 1, 1)]
void main() {
tint_array_wrapper v = {{0, 0, 0}};
tint_array_wrapper v = (tint_array_wrapper)0;
v;
return;
}

View File

@ -5,7 +5,7 @@ struct S {
[numthreads(1, 1, 1)]
void main() {
S v = {0, 0.0f};
S v = (S)0;
v;
return;
}

View File

@ -2,7 +2,7 @@ struct tint_array_wrapper {
int arr[3];
};
static tint_array_wrapper v = {{0, 0, 0}};
static tint_array_wrapper v = (tint_array_wrapper)0;
[numthreads(1, 1, 1)]
void main() {

View File

@ -3,7 +3,7 @@ struct S {
float b;
};
static S v = {0, 0.0f};
static S v = (S)0;
[numthreads(1, 1, 1)]
void main() {

View File

@ -12,7 +12,7 @@ struct tint_symbol_1 {
void main(tint_symbol_1 tint_symbol) {
const uint local_invocation_index = tint_symbol.local_invocation_index;
if ((local_invocation_index == 0u)) {
const tint_array_wrapper tint_symbol_2 = {{0, 0, 0}};
const tint_array_wrapper tint_symbol_2 = {(int[3])0};
v = tint_symbol_2;
}
GroupMemoryBarrierWithGroupSync();

View File

@ -13,7 +13,7 @@ struct tint_symbol_1 {
void main(tint_symbol_1 tint_symbol) {
const uint local_invocation_index = tint_symbol.local_invocation_index;
if ((local_invocation_index == 0u)) {
const S tint_symbol_2 = {0, 0.0f};
const S tint_symbol_2 = (S)0;
v = tint_symbol_2;
}
GroupMemoryBarrierWithGroupSync();