writer/hlsl: Don't wrap arrays in structures
FXC has trouble dealing with these.
This was originally added to handle returning arrays as structures.
HLSL supports typedefs, which is a much simpiler solution, and doesn't upset FXC.
Bug: tint:848
Bug: tint:904
Change-Id: Ie841c9c454461a885a35c41476fd4d05d3f34cbf
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/56774
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Antonio Maiorano <amaiorano@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
diff --git a/src/transform/hlsl.cc b/src/transform/hlsl.cc
index 8889fed..823f2b5 100644
--- a/src/transform/hlsl.cc
+++ b/src/transform/hlsl.cc
@@ -28,7 +28,6 @@
#include "src/transform/pad_array_elements.h"
#include "src/transform/promote_initializers_to_const_var.h"
#include "src/transform/simplify.h"
-#include "src/transform/wrap_arrays_in_structs.h"
#include "src/transform/zero_init_workgroup_memory.h"
TINT_INSTANTIATE_TYPEINFO(tint::transform::Hlsl);
@@ -66,7 +65,6 @@
manager.Add<CalculateArrayLength>();
manager.Add<ExternalTextureTransform>();
manager.Add<PromoteInitializersToConstVar>();
- manager.Add<WrapArraysInStructs>();
manager.Add<PadArrayElements>();
data.Add<CanonicalizeEntryPointIO::Config>(
CanonicalizeEntryPointIO::BuiltinStyle::kStructMember);
diff --git a/src/writer/hlsl/generator_impl.cc b/src/writer/hlsl/generator_impl.cc
index 550b675..57cb704 100644
--- a/src/writer/hlsl/generator_impl.cc
+++ b/src/writer/hlsl/generator_impl.cc
@@ -2109,12 +2109,27 @@
{
auto out = line();
- if (!EmitType(out, sem->ReturnType(), ast::StorageClass::kNone,
- ast::Access::kReadWrite, "")) {
- return false;
+ auto name = builder_.Symbols().NameFor(func->symbol());
+ // If the function returns an array, then we need to declare a typedef for
+ // this.
+ if (sem->ReturnType()->Is<sem::Array>()) {
+ auto typedef_name = UniqueIdentifier(name + "_ret");
+ auto pre = line();
+ pre << "typedef ";
+ if (!EmitTypeAndName(pre, sem->ReturnType(), ast::StorageClass::kNone,
+ ast::Access::kReadWrite, typedef_name)) {
+ return false;
+ }
+ pre << ";";
+ out << typedef_name;
+ } else {
+ if (!EmitType(out, sem->ReturnType(), ast::StorageClass::kNone,
+ ast::Access::kReadWrite, "")) {
+ return false;
+ }
}
- out << " " << builder_.Symbols().NameFor(func->symbol()) << "(";
+ out << " " << name << "(";
bool first = true;
diff --git a/src/writer/hlsl/generator_impl_function_test.cc b/src/writer/hlsl/generator_impl_function_test.cc
index 5b0ac96..1499596 100644
--- a/src/writer/hlsl/generator_impl_function_test.cc
+++ b/src/writer/hlsl/generator_impl_function_test.cc
@@ -755,18 +755,13 @@
Return(),
});
- GeneratorImpl& gen = SanitizeAndBuild();
+ GeneratorImpl& gen = Build();
ASSERT_TRUE(gen.Generate()) << gen.error();
- EXPECT_THAT(gen.result(), HasSubstr(R"(
-struct tint_array_wrapper {
- float arr[5];
-};
-
-void my_func(tint_array_wrapper a) {
+ EXPECT_EQ(gen.result(), R"(void my_func(float a[5]) {
return;
}
-)"));
+)");
}
TEST_F(HlslGeneratorImplTest_Function, Emit_Function_WithArrayReturn) {
@@ -775,19 +770,14 @@
Return(Construct(ty.array<f32, 5>())),
});
- GeneratorImpl& gen = SanitizeAndBuild();
+ GeneratorImpl& gen = Build();
ASSERT_TRUE(gen.Generate()) << gen.error();
- EXPECT_THAT(gen.result(), HasSubstr(R"(
-struct tint_array_wrapper {
- float arr[5];
-};
-
-tint_array_wrapper my_func() {
- const tint_array_wrapper tint_symbol = {(float[5])0};
- return tint_symbol;
+ EXPECT_EQ(gen.result(), R"(typedef float my_func_ret[5];
+my_func_ret my_func() {
+ return (float[5])0;
}
-)"));
+)");
}
// https://crbug.com/tint/297
diff --git a/src/writer/hlsl/generator_impl_sanitizer_test.cc b/src/writer/hlsl/generator_impl_sanitizer_test.cc
index 99cd52a..33c2cce 100644
--- a/src/writer/hlsl/generator_impl_sanitizer_test.cc
+++ b/src/writer/hlsl/generator_impl_sanitizer_test.cc
@@ -162,13 +162,9 @@
ASSERT_TRUE(gen.Generate()) << gen.error();
auto got = gen.result();
- auto* expect = R"(struct tint_array_wrapper {
- int arr[4];
-};
-
-void main() {
- const tint_array_wrapper tint_symbol = {{1, 2, 3, 4}};
- int pos = tint_symbol.arr[3];
+ auto* expect = R"(void main() {
+ const int tint_symbol[4] = {1, 2, 3, 4};
+ int pos = tint_symbol[3];
return;
}
)";
diff --git a/test/array/assign_to_function_var.wgsl.expected.hlsl b/test/array/assign_to_function_var.wgsl.expected.hlsl
index e40aa79..7fc6d52 100644
--- a/test/array/assign_to_function_var.wgsl.expected.hlsl
+++ b/test/array/assign_to_function_var.wgsl.expected.hlsl
@@ -6,36 +6,36 @@
struct tint_padded_array_element {
int el;
};
-struct tint_array_wrapper {
+struct S {
tint_padded_array_element arr[4];
};
-struct S {
- tint_array_wrapper arr;
-};
-tint_array_wrapper tint_symbol_2(uint4 buffer[4], uint offset) {
+typedef tint_padded_array_element tint_symbol_2_ret[4];
+tint_symbol_2_ret tint_symbol_2(uint4 buffer[4], uint offset) {
const uint scalar_offset = ((offset + 0u)) / 4;
const uint scalar_offset_1 = ((offset + 16u)) / 4;
const uint scalar_offset_2 = ((offset + 32u)) / 4;
const uint scalar_offset_3 = ((offset + 48u)) / 4;
- const tint_array_wrapper tint_symbol_5 = {{{asint(buffer[scalar_offset / 4][scalar_offset % 4])}, {asint(buffer[scalar_offset_1 / 4][scalar_offset_1 % 4])}, {asint(buffer[scalar_offset_2 / 4][scalar_offset_2 % 4])}, {asint(buffer[scalar_offset_3 / 4][scalar_offset_3 % 4])}}};
+ const tint_padded_array_element tint_symbol_5[4] = {{asint(buffer[scalar_offset / 4][scalar_offset % 4])}, {asint(buffer[scalar_offset_1 / 4][scalar_offset_1 % 4])}, {asint(buffer[scalar_offset_2 / 4][scalar_offset_2 % 4])}, {asint(buffer[scalar_offset_3 / 4][scalar_offset_3 % 4])}};
return tint_symbol_5;
}
-tint_array_wrapper tint_symbol_4(RWByteAddressBuffer buffer, uint offset) {
- const tint_array_wrapper tint_symbol_6 = {{{asint(buffer.Load((offset + 0u)))}, {asint(buffer.Load((offset + 16u)))}, {asint(buffer.Load((offset + 32u)))}, {asint(buffer.Load((offset + 48u)))}}};
+typedef tint_padded_array_element tint_symbol_4_ret[4];
+tint_symbol_4_ret tint_symbol_4(RWByteAddressBuffer buffer, uint offset) {
+ const tint_padded_array_element tint_symbol_6[4] = {{asint(buffer.Load((offset + 0u)))}, {asint(buffer.Load((offset + 16u)))}, {asint(buffer.Load((offset + 32u)))}, {asint(buffer.Load((offset + 48u)))}};
return tint_symbol_6;
}
-static tint_array_wrapper src_private = (tint_array_wrapper)0;
-groupshared tint_array_wrapper src_workgroup;
+static tint_padded_array_element src_private[4] = (tint_padded_array_element[4])0;
+groupshared tint_padded_array_element src_workgroup[4];
cbuffer cbuffer_src_uniform : register(b0, space0) {
uint4 src_uniform[4];
};
RWByteAddressBuffer src_storage : register(u1, space0);
-tint_array_wrapper ret_arr() {
- const tint_array_wrapper tint_symbol_7 = {(tint_padded_array_element[4])0};
+typedef tint_padded_array_element ret_arr_ret[4];
+ret_arr_ret ret_arr() {
+ const tint_padded_array_element tint_symbol_7[4] = (tint_padded_array_element[4])0;
return tint_symbol_7;
}
@@ -44,24 +44,14 @@
return tint_symbol_8;
}
-struct tint_array_wrapper_3 {
- int arr[2];
-};
-struct tint_array_wrapper_2 {
- tint_array_wrapper_3 arr[3];
-};
-struct tint_array_wrapper_1 {
- tint_array_wrapper_2 arr[4];
-};
-
-void foo(tint_array_wrapper src_param) {
- 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}}};
+void foo(tint_padded_array_element src_param[4]) {
+ tint_padded_array_element src_function[4] = (tint_padded_array_element[4])0;
+ tint_padded_array_element tint_symbol[4] = (tint_padded_array_element[4])0;
+ const tint_padded_array_element tint_symbol_9[4] = {{1}, {2}, {3}, {3}};
tint_symbol = tint_symbol_9;
tint_symbol = src_param;
tint_symbol = ret_arr();
- const tint_array_wrapper src_let = {(tint_padded_array_element[4])0};
+ const tint_padded_array_element src_let[4] = (tint_padded_array_element[4])0;
tint_symbol = src_let;
tint_symbol = src_function;
tint_symbol = src_private;
@@ -69,7 +59,7 @@
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 = (tint_array_wrapper_1)0;
- tint_array_wrapper_1 src_nested = (tint_array_wrapper_1)0;
+ int dst_nested[4][3][2] = (int[4][3][2])0;
+ int src_nested[4][3][2] = (int[4][3][2])0;
dst_nested = src_nested;
}
diff --git a/test/array/assign_to_private_var.wgsl.expected.hlsl b/test/array/assign_to_private_var.wgsl.expected.hlsl
index 060ef83..55e7cc6 100644
--- a/test/array/assign_to_private_var.wgsl.expected.hlsl
+++ b/test/array/assign_to_private_var.wgsl.expected.hlsl
@@ -6,49 +6,38 @@
struct tint_padded_array_element {
int el;
};
-struct tint_array_wrapper {
+struct S {
tint_padded_array_element arr[4];
};
-struct S {
- tint_array_wrapper arr;
-};
-tint_array_wrapper tint_symbol_2(uint4 buffer[4], uint offset) {
+typedef tint_padded_array_element tint_symbol_2_ret[4];
+tint_symbol_2_ret tint_symbol_2(uint4 buffer[4], uint offset) {
const uint scalar_offset = ((offset + 0u)) / 4;
const uint scalar_offset_1 = ((offset + 16u)) / 4;
const uint scalar_offset_2 = ((offset + 32u)) / 4;
const uint scalar_offset_3 = ((offset + 48u)) / 4;
- const tint_array_wrapper tint_symbol_5 = {{{asint(buffer[scalar_offset / 4][scalar_offset % 4])}, {asint(buffer[scalar_offset_1 / 4][scalar_offset_1 % 4])}, {asint(buffer[scalar_offset_2 / 4][scalar_offset_2 % 4])}, {asint(buffer[scalar_offset_3 / 4][scalar_offset_3 % 4])}}};
+ const tint_padded_array_element tint_symbol_5[4] = {{asint(buffer[scalar_offset / 4][scalar_offset % 4])}, {asint(buffer[scalar_offset_1 / 4][scalar_offset_1 % 4])}, {asint(buffer[scalar_offset_2 / 4][scalar_offset_2 % 4])}, {asint(buffer[scalar_offset_3 / 4][scalar_offset_3 % 4])}};
return tint_symbol_5;
}
-tint_array_wrapper tint_symbol_4(RWByteAddressBuffer buffer, uint offset) {
- const tint_array_wrapper tint_symbol_6 = {{{asint(buffer.Load((offset + 0u)))}, {asint(buffer.Load((offset + 16u)))}, {asint(buffer.Load((offset + 32u)))}, {asint(buffer.Load((offset + 48u)))}}};
+typedef tint_padded_array_element tint_symbol_4_ret[4];
+tint_symbol_4_ret tint_symbol_4(RWByteAddressBuffer buffer, uint offset) {
+ const tint_padded_array_element tint_symbol_6[4] = {{asint(buffer.Load((offset + 0u)))}, {asint(buffer.Load((offset + 16u)))}, {asint(buffer.Load((offset + 32u)))}, {asint(buffer.Load((offset + 48u)))}};
return tint_symbol_6;
}
-static tint_array_wrapper src_private = (tint_array_wrapper)0;
-groupshared tint_array_wrapper src_workgroup;
+static tint_padded_array_element src_private[4] = (tint_padded_array_element[4])0;
+groupshared tint_padded_array_element src_workgroup[4];
cbuffer cbuffer_src_uniform : register(b0, space0) {
uint4 src_uniform[4];
};
RWByteAddressBuffer src_storage : register(u1, space0);
-static tint_array_wrapper tint_symbol = (tint_array_wrapper)0;
+static tint_padded_array_element tint_symbol[4] = (tint_padded_array_element[4])0;
+static int dst_nested[4][3][2] = (int[4][3][2])0;
-struct tint_array_wrapper_3 {
- int arr[2];
-};
-struct tint_array_wrapper_2 {
- tint_array_wrapper_3 arr[3];
-};
-struct tint_array_wrapper_1 {
- tint_array_wrapper_2 arr[4];
-};
-
-static tint_array_wrapper_1 dst_nested = (tint_array_wrapper_1)0;
-
-tint_array_wrapper ret_arr() {
- const tint_array_wrapper tint_symbol_7 = {(tint_padded_array_element[4])0};
+typedef tint_padded_array_element ret_arr_ret[4];
+ret_arr_ret ret_arr() {
+ const tint_padded_array_element tint_symbol_7[4] = (tint_padded_array_element[4])0;
return tint_symbol_7;
}
@@ -57,13 +46,13 @@
return tint_symbol_8;
}
-void foo(tint_array_wrapper src_param) {
- tint_array_wrapper src_function = (tint_array_wrapper)0;
- const tint_array_wrapper tint_symbol_9 = {{{1}, {2}, {3}, {3}}};
+void foo(tint_padded_array_element src_param[4]) {
+ tint_padded_array_element src_function[4] = (tint_padded_array_element[4])0;
+ const tint_padded_array_element tint_symbol_9[4] = {{1}, {2}, {3}, {3}};
tint_symbol = tint_symbol_9;
tint_symbol = src_param;
tint_symbol = ret_arr();
- const tint_array_wrapper src_let = {(tint_padded_array_element[4])0};
+ const tint_padded_array_element src_let[4] = (tint_padded_array_element[4])0;
tint_symbol = src_let;
tint_symbol = src_function;
tint_symbol = src_private;
@@ -71,6 +60,6 @@
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 = (tint_array_wrapper_1)0;
+ int src_nested[4][3][2] = (int[4][3][2])0;
dst_nested = src_nested;
}
diff --git a/test/array/assign_to_storage_var.wgsl.expected.hlsl b/test/array/assign_to_storage_var.wgsl.expected.hlsl
index 0730f24..bf9232b 100644
--- a/test/array/assign_to_storage_var.wgsl.expected.hlsl
+++ b/test/array/assign_to_storage_var.wgsl.expected.hlsl
@@ -6,64 +6,53 @@
struct tint_padded_array_element {
int el;
};
-struct tint_array_wrapper {
+struct S {
tint_padded_array_element arr[4];
};
-struct S {
- tint_array_wrapper arr;
-};
-tint_array_wrapper tint_symbol_2(uint4 buffer[4], uint offset) {
+typedef tint_padded_array_element tint_symbol_2_ret[4];
+tint_symbol_2_ret tint_symbol_2(uint4 buffer[4], uint offset) {
const uint scalar_offset = ((offset + 0u)) / 4;
const uint scalar_offset_1 = ((offset + 16u)) / 4;
const uint scalar_offset_2 = ((offset + 32u)) / 4;
const uint scalar_offset_3 = ((offset + 48u)) / 4;
- const tint_array_wrapper tint_symbol_11 = {{{asint(buffer[scalar_offset / 4][scalar_offset % 4])}, {asint(buffer[scalar_offset_1 / 4][scalar_offset_1 % 4])}, {asint(buffer[scalar_offset_2 / 4][scalar_offset_2 % 4])}, {asint(buffer[scalar_offset_3 / 4][scalar_offset_3 % 4])}}};
+ const tint_padded_array_element tint_symbol_11[4] = {{asint(buffer[scalar_offset / 4][scalar_offset % 4])}, {asint(buffer[scalar_offset_1 / 4][scalar_offset_1 % 4])}, {asint(buffer[scalar_offset_2 / 4][scalar_offset_2 % 4])}, {asint(buffer[scalar_offset_3 / 4][scalar_offset_3 % 4])}};
return tint_symbol_11;
}
-tint_array_wrapper tint_symbol_4(RWByteAddressBuffer buffer, uint offset) {
- const tint_array_wrapper tint_symbol_12 = {{{asint(buffer.Load((offset + 0u)))}, {asint(buffer.Load((offset + 16u)))}, {asint(buffer.Load((offset + 32u)))}, {asint(buffer.Load((offset + 48u)))}}};
+typedef tint_padded_array_element tint_symbol_4_ret[4];
+tint_symbol_4_ret tint_symbol_4(RWByteAddressBuffer buffer, uint offset) {
+ const tint_padded_array_element tint_symbol_12[4] = {{asint(buffer.Load((offset + 0u)))}, {asint(buffer.Load((offset + 16u)))}, {asint(buffer.Load((offset + 32u)))}, {asint(buffer.Load((offset + 48u)))}};
return tint_symbol_12;
}
-void tint_symbol_6(RWByteAddressBuffer buffer, uint offset, tint_array_wrapper value) {
- buffer.Store((offset + 0u), asuint(value.arr[0u].el));
- buffer.Store((offset + 16u), asuint(value.arr[1u].el));
- buffer.Store((offset + 32u), asuint(value.arr[2u].el));
- buffer.Store((offset + 48u), asuint(value.arr[3u].el));
+void tint_symbol_6(RWByteAddressBuffer buffer, uint offset, tint_padded_array_element value[4]) {
+ buffer.Store((offset + 0u), asuint(value[0u].el));
+ buffer.Store((offset + 16u), asuint(value[1u].el));
+ buffer.Store((offset + 32u), asuint(value[2u].el));
+ buffer.Store((offset + 48u), asuint(value[3u].el));
}
-struct tint_array_wrapper_3 {
- int arr[2];
-};
-struct tint_array_wrapper_2 {
- tint_array_wrapper_3 arr[3];
-};
-struct tint_array_wrapper_1 {
- tint_array_wrapper_2 arr[4];
-};
-
-void tint_symbol_8(RWByteAddressBuffer buffer, uint offset, tint_array_wrapper_3 value) {
- buffer.Store((offset + 0u), asuint(value.arr[0u]));
- buffer.Store((offset + 4u), asuint(value.arr[1u]));
+void tint_symbol_8(RWByteAddressBuffer buffer, uint offset, int value[2]) {
+ buffer.Store((offset + 0u), asuint(value[0u]));
+ buffer.Store((offset + 4u), asuint(value[1u]));
}
-void tint_symbol_9(RWByteAddressBuffer buffer, uint offset, tint_array_wrapper_2 value) {
- tint_symbol_8(buffer, (offset + 0u), value.arr[0u]);
- tint_symbol_8(buffer, (offset + 8u), value.arr[1u]);
- tint_symbol_8(buffer, (offset + 16u), value.arr[2u]);
+void tint_symbol_9(RWByteAddressBuffer buffer, uint offset, int value[3][2]) {
+ tint_symbol_8(buffer, (offset + 0u), value[0u]);
+ tint_symbol_8(buffer, (offset + 8u), value[1u]);
+ tint_symbol_8(buffer, (offset + 16u), value[2u]);
}
-void tint_symbol_10(RWByteAddressBuffer buffer, uint offset, tint_array_wrapper_1 value) {
- tint_symbol_9(buffer, (offset + 0u), value.arr[0u]);
- tint_symbol_9(buffer, (offset + 24u), value.arr[1u]);
- tint_symbol_9(buffer, (offset + 48u), value.arr[2u]);
- tint_symbol_9(buffer, (offset + 72u), value.arr[3u]);
+void tint_symbol_10(RWByteAddressBuffer buffer, uint offset, int value[4][3][2]) {
+ tint_symbol_9(buffer, (offset + 0u), value[0u]);
+ tint_symbol_9(buffer, (offset + 24u), value[1u]);
+ tint_symbol_9(buffer, (offset + 48u), value[2u]);
+ tint_symbol_9(buffer, (offset + 72u), value[3u]);
}
-static tint_array_wrapper src_private = (tint_array_wrapper)0;
-groupshared tint_array_wrapper src_workgroup;
+static tint_padded_array_element src_private[4] = (tint_padded_array_element[4])0;
+groupshared tint_padded_array_element src_workgroup[4];
cbuffer cbuffer_src_uniform : register(b0, space0) {
uint4 src_uniform[4];
};
@@ -71,8 +60,9 @@
RWByteAddressBuffer tint_symbol : register(u2, space0);
RWByteAddressBuffer dst_nested : register(u3, space0);
-tint_array_wrapper ret_arr() {
- const tint_array_wrapper tint_symbol_13 = {(tint_padded_array_element[4])0};
+typedef tint_padded_array_element ret_arr_ret[4];
+ret_arr_ret ret_arr() {
+ const tint_padded_array_element tint_symbol_13[4] = (tint_padded_array_element[4])0;
return tint_symbol_13;
}
@@ -81,13 +71,13 @@
return tint_symbol_14;
}
-void foo(tint_array_wrapper src_param) {
- tint_array_wrapper src_function = (tint_array_wrapper)0;
- const tint_array_wrapper tint_symbol_15 = {{{1}, {2}, {3}, {3}}};
+void foo(tint_padded_array_element src_param[4]) {
+ tint_padded_array_element src_function[4] = (tint_padded_array_element[4])0;
+ const tint_padded_array_element tint_symbol_15[4] = {{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 = {(tint_padded_array_element[4])0};
+ const tint_padded_array_element src_let[4] = (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 +85,6 @@
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 = (tint_array_wrapper_1)0;
+ int src_nested[4][3][2] = (int[4][3][2])0;
tint_symbol_10(dst_nested, 0u, src_nested);
}
diff --git a/test/array/assign_to_subexpr.wgsl.expected.hlsl b/test/array/assign_to_subexpr.wgsl.expected.hlsl
index a4596c3..38802ee 100644
--- a/test/array/assign_to_subexpr.wgsl.expected.hlsl
+++ b/test/array/assign_to_subexpr.wgsl.expected.hlsl
@@ -3,24 +3,18 @@
return;
}
-struct tint_array_wrapper {
- int arr[4];
-};
struct S {
- tint_array_wrapper arr;
-};
-struct tint_array_wrapper_1 {
- tint_array_wrapper arr[2];
+ int arr[4];
};
void foo() {
- const tint_array_wrapper src = {(int[4])0};
- tint_array_wrapper tint_symbol = (tint_array_wrapper)0;
+ const int src[4] = (int[4])0;
+ int tint_symbol[4] = (int[4])0;
S dst_struct = (S)0;
- tint_array_wrapper_1 dst_array = (tint_array_wrapper_1)0;
+ int dst_array[2][4] = (int[2][4])0;
dst_struct.arr = src;
- dst_array.arr[1] = src;
+ dst_array[1] = src;
tint_symbol = src;
dst_struct.arr = src;
- dst_array.arr[0] = src;
+ dst_array[0] = src;
}
diff --git a/test/array/assign_to_workgroup_var.wgsl.expected.hlsl b/test/array/assign_to_workgroup_var.wgsl.expected.hlsl
index 52d8984..65d3fc9 100644
--- a/test/array/assign_to_workgroup_var.wgsl.expected.hlsl
+++ b/test/array/assign_to_workgroup_var.wgsl.expected.hlsl
@@ -6,49 +6,38 @@
struct tint_padded_array_element {
int el;
};
-struct tint_array_wrapper {
+struct S {
tint_padded_array_element arr[4];
};
-struct S {
- tint_array_wrapper arr;
-};
-tint_array_wrapper tint_symbol_2(uint4 buffer[4], uint offset) {
+typedef tint_padded_array_element tint_symbol_2_ret[4];
+tint_symbol_2_ret tint_symbol_2(uint4 buffer[4], uint offset) {
const uint scalar_offset = ((offset + 0u)) / 4;
const uint scalar_offset_1 = ((offset + 16u)) / 4;
const uint scalar_offset_2 = ((offset + 32u)) / 4;
const uint scalar_offset_3 = ((offset + 48u)) / 4;
- const tint_array_wrapper tint_symbol_5 = {{{asint(buffer[scalar_offset / 4][scalar_offset % 4])}, {asint(buffer[scalar_offset_1 / 4][scalar_offset_1 % 4])}, {asint(buffer[scalar_offset_2 / 4][scalar_offset_2 % 4])}, {asint(buffer[scalar_offset_3 / 4][scalar_offset_3 % 4])}}};
+ const tint_padded_array_element tint_symbol_5[4] = {{asint(buffer[scalar_offset / 4][scalar_offset % 4])}, {asint(buffer[scalar_offset_1 / 4][scalar_offset_1 % 4])}, {asint(buffer[scalar_offset_2 / 4][scalar_offset_2 % 4])}, {asint(buffer[scalar_offset_3 / 4][scalar_offset_3 % 4])}};
return tint_symbol_5;
}
-tint_array_wrapper tint_symbol_4(RWByteAddressBuffer buffer, uint offset) {
- const tint_array_wrapper tint_symbol_6 = {{{asint(buffer.Load((offset + 0u)))}, {asint(buffer.Load((offset + 16u)))}, {asint(buffer.Load((offset + 32u)))}, {asint(buffer.Load((offset + 48u)))}}};
+typedef tint_padded_array_element tint_symbol_4_ret[4];
+tint_symbol_4_ret tint_symbol_4(RWByteAddressBuffer buffer, uint offset) {
+ const tint_padded_array_element tint_symbol_6[4] = {{asint(buffer.Load((offset + 0u)))}, {asint(buffer.Load((offset + 16u)))}, {asint(buffer.Load((offset + 32u)))}, {asint(buffer.Load((offset + 48u)))}};
return tint_symbol_6;
}
-static tint_array_wrapper src_private = (tint_array_wrapper)0;
-groupshared tint_array_wrapper src_workgroup;
+static tint_padded_array_element src_private[4] = (tint_padded_array_element[4])0;
+groupshared tint_padded_array_element src_workgroup[4];
cbuffer cbuffer_src_uniform : register(b0, space0) {
uint4 src_uniform[4];
};
RWByteAddressBuffer src_storage : register(u1, space0);
-groupshared tint_array_wrapper tint_symbol;
+groupshared tint_padded_array_element tint_symbol[4];
+groupshared int dst_nested[4][3][2];
-struct tint_array_wrapper_3 {
- int arr[2];
-};
-struct tint_array_wrapper_2 {
- tint_array_wrapper_3 arr[3];
-};
-struct tint_array_wrapper_1 {
- tint_array_wrapper_2 arr[4];
-};
-
-groupshared tint_array_wrapper_1 dst_nested;
-
-tint_array_wrapper ret_arr() {
- const tint_array_wrapper tint_symbol_7 = {(tint_padded_array_element[4])0};
+typedef tint_padded_array_element ret_arr_ret[4];
+ret_arr_ret ret_arr() {
+ const tint_padded_array_element tint_symbol_7[4] = (tint_padded_array_element[4])0;
return tint_symbol_7;
}
@@ -57,13 +46,13 @@
return tint_symbol_8;
}
-void foo(tint_array_wrapper src_param) {
- tint_array_wrapper src_function = (tint_array_wrapper)0;
- const tint_array_wrapper tint_symbol_9 = {{{1}, {2}, {3}, {3}}};
+void foo(tint_padded_array_element src_param[4]) {
+ tint_padded_array_element src_function[4] = (tint_padded_array_element[4])0;
+ const tint_padded_array_element tint_symbol_9[4] = {{1}, {2}, {3}, {3}};
tint_symbol = tint_symbol_9;
tint_symbol = src_param;
tint_symbol = ret_arr();
- const tint_array_wrapper src_let = {(tint_padded_array_element[4])0};
+ const tint_padded_array_element src_let[4] = (tint_padded_array_element[4])0;
tint_symbol = src_let;
tint_symbol = src_function;
tint_symbol = src_private;
@@ -71,6 +60,6 @@
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 = (tint_array_wrapper_1)0;
+ int src_nested[4][3][2] = (int[4][3][2])0;
dst_nested = src_nested;
}
diff --git a/test/array/function_parameter.wgsl.expected.hlsl b/test/array/function_parameter.wgsl.expected.hlsl
index d7c86d7..b2e7f41 100644
--- a/test/array/function_parameter.wgsl.expected.hlsl
+++ b/test/array/function_parameter.wgsl.expected.hlsl
@@ -1,32 +1,20 @@
-struct tint_array_wrapper {
- float arr[4];
-};
-
-float f1(tint_array_wrapper a) {
- return a.arr[3];
+float f1(float a[4]) {
+ return a[3];
}
-struct tint_array_wrapper_1 {
- tint_array_wrapper arr[3];
-};
-
-float f2(tint_array_wrapper_1 a) {
- return a.arr[2].arr[3];
+float f2(float a[3][4]) {
+ return a[2][3];
}
-struct tint_array_wrapper_2 {
- tint_array_wrapper_1 arr[2];
-};
-
-float f3(tint_array_wrapper_2 a) {
- return a.arr[1].arr[2].arr[3];
+float f3(float a[2][3][4]) {
+ return a[1][2][3];
}
[numthreads(1, 1, 1)]
void main() {
- 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 a1[4] = (float[4])0;
+ const float a2[3][4] = (float[3][4])0;
+ const float a3[2][3][4] = (float[2][3][4])0;
const float v1 = f1(a1);
const float v2 = f2(a2);
const float v3 = f3(a3);
diff --git a/test/array/function_return_type.wgsl.expected.hlsl b/test/array/function_return_type.wgsl.expected.hlsl
index c0b9630..8ec30b6 100644
--- a/test/array/function_return_type.wgsl.expected.hlsl
+++ b/test/array/function_return_type.wgsl.expected.hlsl
@@ -1,34 +1,25 @@
-struct tint_array_wrapper {
- float arr[4];
-};
-
-tint_array_wrapper f1() {
- const tint_array_wrapper tint_symbol = {(float[4])0};
+typedef float f1_ret[4];
+f1_ret f1() {
+ const float tint_symbol[4] = (float[4])0;
return tint_symbol;
}
-struct tint_array_wrapper_1 {
- tint_array_wrapper arr[3];
-};
-
-tint_array_wrapper_1 f2() {
- const tint_array_wrapper_1 tint_symbol_1 = {{f1(), f1(), f1()}};
+typedef float f2_ret[3][4];
+f2_ret f2() {
+ const float tint_symbol_1[3][4] = {f1(), f1(), f1()};
return tint_symbol_1;
}
-struct tint_array_wrapper_2 {
- tint_array_wrapper_1 arr[2];
-};
-
-tint_array_wrapper_2 f3() {
- const tint_array_wrapper_2 tint_symbol_2 = {{f2(), f2()}};
+typedef float f3_ret[2][3][4];
+f3_ret f3() {
+ const float tint_symbol_2[2][3][4] = {f2(), f2()};
return tint_symbol_2;
}
[numthreads(1, 1, 1)]
void main() {
- const tint_array_wrapper a1 = f1();
- const tint_array_wrapper_1 a2 = f2();
- const tint_array_wrapper_2 a3 = f3();
+ const float a1[4] = f1();
+ const float a2[3][4] = f2();
+ const float a3[2][3][4] = f3();
return;
}
diff --git a/test/array/type_constructor.wgsl.expected.hlsl b/test/array/type_constructor.wgsl.expected.hlsl
index ddf6220..8640324 100644
--- a/test/array/type_constructor.wgsl.expected.hlsl
+++ b/test/array/type_constructor.wgsl.expected.hlsl
@@ -1,50 +1,37 @@
-struct tint_array_wrapper {
- int arr[4];
-};
-struct tint_array_wrapper_2 {
- tint_array_wrapper arr[3];
-};
-struct tint_array_wrapper_1 {
- tint_array_wrapper_2 arr[2];
-};
-struct tint_array_wrapper_3 {
- tint_array_wrapper arr[2];
-};
-
[numthreads(1, 1, 1)]
void main() {
const int x = 42;
- 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 = {(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}};
- const tint_array_wrapper_2 tint_symbol_3 = {{tint_symbol, tint_symbol_1, tint_symbol_2}};
- const tint_array_wrapper tint_symbol_4 = {{13, 14, 15, 16}};
- const tint_array_wrapper tint_symbol_5 = {{17, 18, 19, 20}};
- const tint_array_wrapper tint_symbol_6 = {{21, 22, 23, 24}};
- const tint_array_wrapper_2 tint_symbol_7 = {{tint_symbol_4, tint_symbol_5, tint_symbol_6}};
- const tint_array_wrapper_1 nested_nonempty = {{tint_symbol_3, tint_symbol_7}};
- const tint_array_wrapper tint_symbol_8 = {{1, 2, x, (x + 1)}};
- 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 = {(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 = {(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}};
- const tint_array_wrapper_3 tint_symbol_17 = {{tint_symbol_15, tint_symbol_16}};
- const tint_array_wrapper subexpr_nested_nonempty = tint_symbol_17.arr[1];
- const tint_array_wrapper tint_symbol_18 = {{1, x, (x + 1), nonempty.arr[3]}};
- const tint_array_wrapper_3 tint_symbol_19 = {{tint_symbol_18, nested_nonempty.arr[1].arr[2]}};
- const tint_array_wrapper subexpr_nested_nonempty_with_expr = tint_symbol_19.arr[1];
+ const int empty[4] = (int[4])0;
+ const int nonempty[4] = {1, 2, 3, 4};
+ const int nonempty_with_expr[4] = {1, x, (x + 1), nonempty[3]};
+ const int nested_empty[2][3][4] = (int[2][3][4])0;
+ const int tint_symbol[4] = {1, 2, 3, 4};
+ const int tint_symbol_1[4] = {5, 6, 7, 8};
+ const int tint_symbol_2[4] = {9, 10, 11, 12};
+ const int tint_symbol_3[3][4] = {tint_symbol, tint_symbol_1, tint_symbol_2};
+ const int tint_symbol_4[4] = {13, 14, 15, 16};
+ const int tint_symbol_5[4] = {17, 18, 19, 20};
+ const int tint_symbol_6[4] = {21, 22, 23, 24};
+ const int tint_symbol_7[3][4] = {tint_symbol_4, tint_symbol_5, tint_symbol_6};
+ const int nested_nonempty[2][3][4] = {tint_symbol_3, tint_symbol_7};
+ const int tint_symbol_8[4] = {1, 2, x, (x + 1)};
+ const int tint_symbol_9[4] = {5, 6, nonempty[2], (nonempty[3] + 1)};
+ const int tint_symbol_10[3][4] = {tint_symbol_8, tint_symbol_9, nonempty};
+ const int nested_nonempty_with_expr[2][3][4] = {tint_symbol_10, nested_nonempty[1]};
+ const int tint_symbol_11[4] = (int[4])0;
+ const int subexpr_empty = tint_symbol_11[1];
+ const int tint_symbol_12[4] = {1, 2, 3, 4};
+ const int subexpr_nonempty = tint_symbol_12[2];
+ const int tint_symbol_13[4] = {1, x, (x + 1), nonempty[3]};
+ const int subexpr_nonempty_with_expr = tint_symbol_13[2];
+ const int tint_symbol_14[2][4] = (int[2][4])0;
+ const int subexpr_nested_empty[4] = tint_symbol_14[1];
+ const int tint_symbol_15[4] = {1, 2, 3, 4};
+ const int tint_symbol_16[4] = {5, 6, 7, 8};
+ const int tint_symbol_17[2][4] = {tint_symbol_15, tint_symbol_16};
+ const int subexpr_nested_nonempty[4] = tint_symbol_17[1];
+ const int tint_symbol_18[4] = {1, x, (x + 1), nonempty[3]};
+ const int tint_symbol_19[2][4] = {tint_symbol_18, nested_nonempty[1][2]};
+ const int subexpr_nested_nonempty_with_expr[4] = tint_symbol_19[1];
return;
}
diff --git a/test/bug/dawn/947.wgsl.expected.hlsl b/test/bug/dawn/947.wgsl.expected.hlsl
index a8e164a..a65f3b1 100644
--- a/test/bug/dawn/947.wgsl.expected.hlsl
+++ b/test/bug/dawn/947.wgsl.expected.hlsl
@@ -13,15 +13,12 @@
float2 texcoords : TEXCOORD0;
float4 position : SV_Position;
};
-struct tint_array_wrapper {
- float2 arr[3];
-};
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)}};
+ float2 texcoord[3] = {float2(-0.5f, 0.0f), float2(1.5f, 0.0f), float2(0.5f, 2.0f)};
VertexOutputs output = (VertexOutputs)0;
- output.position = float4(((texcoord.arr[VertexIndex] * 2.0f) - float2(1.0f, 1.0f)), 0.0f, 1.0f);
+ output.position = float4(((texcoord[VertexIndex] * 2.0f) - float2(1.0f, 1.0f)), 0.0f, 1.0f);
const uint scalar_offset = (4u) / 4;
bool flipY = (asfloat(uniforms[scalar_offset / 4][scalar_offset % 4]) < 0.0f);
if (flipY) {
@@ -29,13 +26,13 @@
uint4 ubo_load = uniforms[scalar_offset_1 / 4];
const uint scalar_offset_2 = (8u) / 4;
uint4 ubo_load_1 = uniforms[scalar_offset_2 / 4];
- output.texcoords = ((((texcoord.arr[VertexIndex] * asfloat(((scalar_offset_1 & 2) ? ubo_load.zw : ubo_load.xy))) + asfloat(((scalar_offset_2 & 2) ? ubo_load_1.zw : ubo_load_1.xy))) * float2(1.0f, -1.0f)) + float2(0.0f, 1.0f));
+ output.texcoords = ((((texcoord[VertexIndex] * asfloat(((scalar_offset_1 & 2) ? ubo_load.zw : ubo_load.xy))) + asfloat(((scalar_offset_2 & 2) ? ubo_load_1.zw : ubo_load_1.xy))) * float2(1.0f, -1.0f)) + float2(0.0f, 1.0f));
} else {
const uint scalar_offset_3 = (0u) / 4;
uint4 ubo_load_2 = uniforms[scalar_offset_3 / 4];
const uint scalar_offset_4 = (8u) / 4;
uint4 ubo_load_3 = uniforms[scalar_offset_4 / 4];
- output.texcoords = ((((texcoord.arr[VertexIndex] * float2(1.0f, -1.0f)) + float2(0.0f, 1.0f)) * asfloat(((scalar_offset_3 & 2) ? ubo_load_2.zw : ubo_load_2.xy))) + asfloat(((scalar_offset_4 & 2) ? ubo_load_3.zw : ubo_load_3.xy)));
+ output.texcoords = ((((texcoord[VertexIndex] * float2(1.0f, -1.0f)) + float2(0.0f, 1.0f)) * asfloat(((scalar_offset_3 & 2) ? ubo_load_2.zw : ubo_load_2.xy))) + asfloat(((scalar_offset_4 & 2) ? ubo_load_3.zw : ubo_load_3.xy)));
}
const tint_symbol_2 tint_symbol_8 = {output.texcoords, output.position};
return tint_symbol_8;
diff --git a/test/bug/tint/403.wgsl.expected.hlsl b/test/bug/tint/403.wgsl.expected.hlsl
index 5076215..51b6d4e 100644
--- a/test/bug/tint/403.wgsl.expected.hlsl
+++ b/test/bug/tint/403.wgsl.expected.hlsl
@@ -27,19 +27,16 @@
struct tint_symbol_2 {
float4 value : SV_Position;
};
-struct tint_array_wrapper {
- float2 arr[3];
-};
tint_symbol_2 main(tint_symbol_1 tint_symbol) {
const uint gl_VertexIndex = tint_symbol.gl_VertexIndex;
- tint_array_wrapper indexable = (tint_array_wrapper)0;
+ float2 indexable[3] = (float2[3])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;
- const tint_array_wrapper tint_symbol_7 = {{float2(-1.0f, 1.0f), float2(1.0f, 1.0f), float2(-1.0f, -1.0f)}};
+ const float2 tint_symbol_7[3] = {float2(-1.0f, 1.0f), float2(1.0f, 1.0f), float2(-1.0f, -1.0f)};
indexable = tint_symbol_7;
- const float2 x_51 = indexable.arr[x_46];
+ const float2 x_51 = indexable[x_46];
const float2 x_52 = mul(x_51, float2x2((x_23[0u] + x_28[0u]), (x_23[1u] + x_28[1u])));
const tint_symbol_2 tint_symbol_8 = {float4(x_52.x, x_52.y, 0.0f, 1.0f)};
return tint_symbol_8;
diff --git a/test/bug/tint/749.spvasm.expected.hlsl b/test/bug/tint/749.spvasm.expected.hlsl
index af27660..5d8b15b 100644
--- a/test/bug/tint/749.spvasm.expected.hlsl
+++ b/test/bug/tint/749.spvasm.expected.hlsl
@@ -1,8 +1,5 @@
-struct tint_array_wrapper {
- int arr[10];
-};
struct QuicksortObject {
- tint_array_wrapper numbers;
+ int numbers[10];
};
static QuicksortObject obj = (QuicksortObject)0;
@@ -30,10 +27,10 @@
temp = 0;
temp = x_935;
const int x_30_save = x_28;
- const int x_936 = obj.numbers.arr[x_30_save];
- obj.numbers.arr[x_30_save] = 0;
- obj.numbers.arr[x_30_save] = x_936;
- const int x_31 = obj.numbers.arr[x_30_save];
+ const int x_936 = obj.numbers[x_30_save];
+ obj.numbers[x_30_save] = 0;
+ obj.numbers[x_30_save] = x_936;
+ const int x_31 = obj.numbers[x_30_save];
const int x_937 = temp;
temp = 0;
temp = x_937;
@@ -46,30 +43,30 @@
i = 0;
i = x_939;
const int x_32 = i;
- const int x_940 = obj.numbers.arr[x_30_save];
- obj.numbers.arr[x_30_save] = 0;
- obj.numbers.arr[x_30_save] = x_940;
+ const int x_940 = obj.numbers[x_30_save];
+ obj.numbers[x_30_save] = 0;
+ obj.numbers[x_30_save] = x_940;
const int x_33 = j;
const int x_941 = i;
i = 0;
i = x_941;
const float3 x_526 = float3(x_525.x, x_525.z, x_525.z);
- const int x_942 = obj.numbers.arr[x_30_save];
- obj.numbers.arr[x_30_save] = 0;
- obj.numbers.arr[x_30_save] = x_942;
+ const int x_942 = obj.numbers[x_30_save];
+ obj.numbers[x_30_save] = 0;
+ obj.numbers[x_30_save] = x_942;
const int x_34_save = x_33;
- const int x_35 = obj.numbers.arr[x_34_save];
+ const int x_35 = obj.numbers[x_34_save];
const QuicksortObject x_943 = obj;
- const tint_array_wrapper tint_symbol_5 = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
+ const int tint_symbol_5[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
const QuicksortObject tint_symbol_6 = {tint_symbol_5};
obj = tint_symbol_6;
obj = x_943;
const float2 x_527 = float2(x_526.x, x_526.x);
const int x_36_save = x_32;
const float3 x_528 = float3(x_524.x, x_524.z, x_524.x);
- obj.numbers.arr[x_36_save] = x_35;
+ obj.numbers[x_36_save] = x_35;
const QuicksortObject x_944 = obj;
- const tint_array_wrapper tint_symbol_7 = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
+ const int tint_symbol_7[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
const QuicksortObject tint_symbol_8 = {tint_symbol_7};
obj = tint_symbol_8;
obj = x_944;
@@ -82,27 +79,27 @@
temp = 0;
temp = x_946;
const float2 x_530 = float2(x_529.z, x_529.y);
- const int x_947 = obj.numbers.arr[x_34_save];
- obj.numbers.arr[x_34_save] = 0;
- obj.numbers.arr[x_34_save] = x_947;
+ const int x_947 = obj.numbers[x_34_save];
+ obj.numbers[x_34_save] = 0;
+ obj.numbers[x_34_save] = x_947;
const int x_38 = temp;
const int x_948 = j;
j = 0;
j = x_948;
const float3 x_531 = float3(x_527.x, x_526.y, x_526.x);
- const int x_949 = obj.numbers.arr[x_36_save];
- obj.numbers.arr[x_36_save] = 0;
- obj.numbers.arr[x_36_save] = x_949;
+ const int x_949 = obj.numbers[x_36_save];
+ obj.numbers[x_36_save] = 0;
+ obj.numbers[x_36_save] = x_949;
const QuicksortObject x_950 = obj;
- const tint_array_wrapper tint_symbol_9 = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
+ const int tint_symbol_9[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
const QuicksortObject tint_symbol_10 = {tint_symbol_9};
obj = tint_symbol_10;
obj = x_950;
const float3 x_532 = float3(x_528.x, x_528.y, x_528.x);
- const int x_951 = obj.numbers.arr[x_34_save];
- obj.numbers.arr[x_34_save] = 0;
- obj.numbers.arr[x_34_save] = x_951;
- obj.numbers.arr[x_37] = x_38;
+ const int x_951 = obj.numbers[x_34_save];
+ obj.numbers[x_34_save] = 0;
+ obj.numbers[x_34_save] = x_951;
+ obj.numbers[x_37] = x_38;
return;
}
@@ -124,10 +121,10 @@
l = 0;
l = x_953;
const int x_42_save = x_41;
- const int x_954 = obj.numbers.arr[x_42_save];
- obj.numbers.arr[x_42_save] = 0;
- obj.numbers.arr[x_42_save] = x_954;
- const int x_43 = obj.numbers.arr[x_42_save];
+ const int x_954 = obj.numbers[x_42_save];
+ obj.numbers[x_42_save] = 0;
+ obj.numbers[x_42_save] = x_954;
+ const int x_43 = obj.numbers[x_42_save];
const int x_955 = param_3;
param_3 = 0;
param_3 = x_955;
@@ -152,7 +149,7 @@
const float3 x_536 = float3(x_534.x, x_534.z, x_535.x);
j_1 = 10;
const QuicksortObject x_960 = obj;
- const tint_array_wrapper tint_symbol_11 = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
+ const int tint_symbol_11[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
const QuicksortObject tint_symbol_12 = {tint_symbol_11};
obj = tint_symbol_12;
obj = x_960;
@@ -169,7 +166,7 @@
pivot = x_963;
x_537 = float2(float3(1.0f, 2.0f, 3.0f).y, float3(1.0f, 2.0f, 3.0f).z);
const QuicksortObject x_964 = obj;
- const tint_array_wrapper tint_symbol_13 = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
+ const int tint_symbol_13[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
const QuicksortObject tint_symbol_14 = {tint_symbol_13};
obj = tint_symbol_14;
obj = x_964;
@@ -192,9 +189,9 @@
break;
}
const int x_60 = j_1;
- const int x_969 = obj.numbers.arr[x_42_save];
- obj.numbers.arr[x_42_save] = 0;
- obj.numbers.arr[x_42_save] = x_969;
+ const int x_969 = obj.numbers[x_42_save];
+ obj.numbers[x_42_save] = 0;
+ obj.numbers[x_42_save] = x_969;
const int x_61_save = x_60;
const int x_970 = h;
h = 0;
@@ -203,9 +200,9 @@
const int x_971 = param_1;
param_1 = 0;
param_1 = x_971;
- const int x_62 = obj.numbers.arr[x_61_save];
+ const int x_62 = obj.numbers[x_61_save];
const QuicksortObject x_972 = obj;
- const tint_array_wrapper tint_symbol_15 = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
+ const int tint_symbol_15[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
const QuicksortObject tint_symbol_16 = {tint_symbol_15};
obj = tint_symbol_16;
obj = x_972;
@@ -265,7 +262,7 @@
param_1 = x_985;
}
const QuicksortObject x_986 = obj;
- const tint_array_wrapper tint_symbol_17 = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
+ const int tint_symbol_17[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
const QuicksortObject tint_symbol_18 = {tint_symbol_17};
obj = tint_symbol_18;
obj = x_986;
@@ -278,9 +275,9 @@
h = 0;
h = x_988;
const float3 x_547 = float3(x_539.x, x_541.z, x_541.z);
- const int x_989 = obj.numbers.arr[x_61_save];
- obj.numbers.arr[x_61_save] = 0;
- obj.numbers.arr[x_61_save] = x_989;
+ const int x_989 = obj.numbers[x_61_save];
+ obj.numbers[x_61_save] = 0;
+ obj.numbers[x_61_save] = x_989;
const int x_990 = param;
param = 0;
param = x_990;
@@ -289,18 +286,18 @@
param_1 = 0;
param_1 = x_991;
const float3 x_548 = float3(x_541.y, x_541.z, x_541.x);
- const int x_992 = obj.numbers.arr[x_61_save];
- obj.numbers.arr[x_61_save] = 0;
- obj.numbers.arr[x_61_save] = x_992;
+ const int x_992 = obj.numbers[x_61_save];
+ obj.numbers[x_61_save] = 0;
+ obj.numbers[x_61_save] = x_992;
}
}
const int x_76 = i_1;
- const int x_993 = obj.numbers.arr[x_42_save];
- obj.numbers.arr[x_42_save] = 0;
- obj.numbers.arr[x_42_save] = x_993;
+ const int x_993 = obj.numbers[x_42_save];
+ obj.numbers[x_42_save] = 0;
+ obj.numbers[x_42_save] = x_993;
const float2 x_549 = float2(x_534.x, x_534.y);
const QuicksortObject x_994 = obj;
- const tint_array_wrapper tint_symbol_19 = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
+ const int tint_symbol_19[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
const QuicksortObject tint_symbol_20 = {tint_symbol_19};
obj = tint_symbol_20;
obj = x_994;
@@ -362,15 +359,15 @@
int p = 0;
int l_1 = 0;
int top = 0;
- tint_array_wrapper stack = (tint_array_wrapper)0;
+ int stack[10] = (int[10])0;
int param_5 = 0;
l_1 = 0;
const int x_1007 = param_5;
param_5 = 0;
param_5 = x_1007;
h_1 = 9;
- const tint_array_wrapper x_1008 = stack;
- const tint_array_wrapper tint_symbol_21 = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
+ const int x_1008[10] = stack;
+ const int tint_symbol_21[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
stack = tint_symbol_21;
stack = x_1008;
const float2 x_556 = float2(float3(1.0f, 2.0f, 3.0f).y, float3(1.0f, 2.0f, 3.0f).y);
@@ -404,21 +401,21 @@
param_4 = x_1015;
const int x_95 = l_1;
const QuicksortObject x_1016 = obj;
- const tint_array_wrapper tint_symbol_22 = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
+ const int tint_symbol_22[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
const QuicksortObject tint_symbol_23 = {tint_symbol_22};
obj = tint_symbol_23;
obj = x_1016;
const float3 x_560 = float3(x_559.y, x_559.x, x_557.x);
const int x_96_save = x_94;
- const tint_array_wrapper x_1017 = stack;
- const tint_array_wrapper tint_symbol_24 = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
+ const int x_1017[10] = stack;
+ const int tint_symbol_24[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
stack = tint_symbol_24;
stack = x_1017;
const float3 x_561 = float3(x_556.y, x_556.y, x_556.y);
const int x_1018 = l_1;
l_1 = 0;
l_1 = 0;
- stack.arr[x_96_save] = x_95;
+ stack[x_96_save] = x_95;
const int x_1019 = param_5;
param_5 = 0;
param_5 = x_1019;
@@ -427,13 +424,13 @@
param_4 = 0;
param_4 = x_1020;
const float3 x_562 = float3(float3(1.0f, 2.0f, 3.0f).z, x_558.y, float3(1.0f, 2.0f, 3.0f).y);
- const int x_1021 = stack.arr[x_96_save];
- stack.arr[x_96_save] = 0;
- stack.arr[x_96_save] = x_1021;
+ const int x_1021 = stack[x_96_save];
+ stack[x_96_save] = 0;
+ stack[x_96_save] = x_1021;
const int x_98 = (x_97 + 1);
- const int x_1022 = stack.arr[x_96_save];
- stack.arr[x_96_save] = 0;
- stack.arr[x_96_save] = x_1022;
+ const int x_1022 = stack[x_96_save];
+ stack[x_96_save] = 0;
+ stack[x_96_save] = x_1022;
const float3 x_563 = float3(x_559.x, x_559.z, x_556.y);
top = x_98;
const int x_1023 = param_4;
@@ -455,19 +452,19 @@
const int x_1027 = p;
p = 0;
p = x_1027;
- stack.arr[x_100_save] = x_99;
+ stack[x_100_save] = x_99;
while (true) {
const float3 x_566 = float3(x_563.x, x_563.x, x_563.x);
const int x_1028 = h_1;
h_1 = 0;
h_1 = x_1028;
- const tint_array_wrapper x_1029 = stack;
- const tint_array_wrapper tint_symbol_25 = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
+ const int x_1029[10] = stack;
+ const int tint_symbol_25[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
stack = tint_symbol_25;
stack = x_1029;
const int x_106 = top;
- const tint_array_wrapper x_1030 = stack;
- const tint_array_wrapper tint_symbol_26 = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
+ const int x_1030[10] = stack;
+ const int tint_symbol_26[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
stack = tint_symbol_26;
stack = x_1030;
const float2 x_567 = float2(x_558.x, x_564.z);
@@ -479,7 +476,7 @@
break;
}
const QuicksortObject x_1032 = obj;
- const tint_array_wrapper tint_symbol_27 = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
+ const int tint_symbol_27[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
const QuicksortObject tint_symbol_28 = {tint_symbol_27};
obj = tint_symbol_28;
obj = x_1032;
@@ -501,12 +498,12 @@
p = 0;
p = x_1036;
const int x_110_save = x_108;
- const int x_1037 = stack.arr[x_96_save];
- stack.arr[x_96_save] = 0;
- stack.arr[x_96_save] = x_1037;
- const int x_111 = stack.arr[x_110_save];
- const tint_array_wrapper x_1038 = stack;
- const tint_array_wrapper tint_symbol_29 = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
+ const int x_1037 = stack[x_96_save];
+ stack[x_96_save] = 0;
+ stack[x_96_save] = x_1037;
+ const int x_111 = stack[x_110_save];
+ const int x_1038[10] = stack;
+ const int tint_symbol_29[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
stack = tint_symbol_29;
stack = x_1038;
const float3 x_571 = float3(x_559.y, x_559.x, x_564.y);
@@ -514,8 +511,8 @@
l_1 = 0;
l_1 = x_1039;
h_1 = x_111;
- const tint_array_wrapper x_1040 = stack;
- const tint_array_wrapper tint_symbol_30 = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
+ const int x_1040[10] = stack;
+ const int tint_symbol_30[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
stack = tint_symbol_30;
stack = x_1040;
const float2 x_572 = float2(x_562.y, x_561.y);
@@ -526,9 +523,9 @@
const int x_1042 = param_4;
param_4 = 0;
param_4 = x_1042;
- const int x_1043 = stack.arr[x_100_save];
- stack.arr[x_100_save] = 0;
- stack.arr[x_100_save] = x_1043;
+ const int x_1043 = stack[x_100_save];
+ stack[x_100_save] = 0;
+ stack[x_100_save] = x_1043;
const float2 x_573 = float2(float3(1.0f, 2.0f, 3.0f).y, float3(1.0f, 2.0f, 3.0f).z);
top = (x_112 - 1);
const int x_1044 = param_5;
@@ -540,10 +537,10 @@
h_1 = x_1045;
const int x_114_save = x_112;
const float2 x_575 = float2(x_564.y, x_564.z);
- const int x_1046 = stack.arr[x_100_save];
- stack.arr[x_100_save] = 0;
- stack.arr[x_100_save] = x_1046;
- const int x_115 = stack.arr[x_114_save];
+ const int x_1046 = stack[x_100_save];
+ stack[x_100_save] = 0;
+ stack[x_100_save] = x_1046;
+ const int x_115 = stack[x_114_save];
const int x_1047 = p;
p = 0;
p = x_1047;
@@ -556,16 +553,16 @@
top = 0;
top = x_1049;
param_4 = l_1;
- const int x_1050 = stack.arr[x_110_save];
- stack.arr[x_110_save] = 0;
- stack.arr[x_110_save] = x_1050;
+ const int x_1050 = stack[x_110_save];
+ stack[x_110_save] = 0;
+ stack[x_110_save] = x_1050;
const float2 x_577 = float2(x_569.y, x_569.z);
const int x_120 = h_1;
const float2 x_578 = float2(x_558.x, float3(1.0f, 2.0f, 3.0f).y);
param_5 = x_120;
- const int x_1051 = stack.arr[x_100_save];
- stack.arr[x_100_save] = 0;
- stack.arr[x_100_save] = x_1051;
+ const int x_1051 = stack[x_100_save];
+ stack[x_100_save] = 0;
+ stack[x_100_save] = x_1051;
const int x_121 = performPartition_i1_i1_(param_4, param_5);
const float2 x_579 = float2(x_567.x, x_568.x);
const int x_1052 = param_5;
@@ -587,140 +584,140 @@
h_1 = 0;
h_1 = x_1056;
const int x_124 = l_1;
- const int x_1057 = stack.arr[x_110_save];
- stack.arr[x_110_save] = 0;
- stack.arr[x_110_save] = x_1057;
+ const int x_1057 = stack[x_110_save];
+ stack[x_110_save] = 0;
+ stack[x_110_save] = x_1057;
const int x_1058 = h_1;
h_1 = 0;
h_1 = x_1058;
const float2 x_582 = float2(x_567.y, x_573.x);
- const int x_1059 = stack.arr[x_100_save];
- stack.arr[x_100_save] = 0;
- stack.arr[x_100_save] = x_1059;
+ const int x_1059 = stack[x_100_save];
+ stack[x_100_save] = 0;
+ stack[x_100_save] = x_1059;
if (((x_122 - asint(1u)) > x_124)) {
const int x_1060 = param_4;
param_4 = 0;
param_4 = x_1060;
const int x_128 = top;
const float2 x_583 = float2(x_571.y, x_556.y);
- const int x_1061 = stack.arr[x_100_save];
- stack.arr[x_100_save] = 0;
- stack.arr[x_100_save] = x_1061;
- const tint_array_wrapper x_1062 = stack;
- const tint_array_wrapper tint_symbol_31 = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
+ const int x_1061 = stack[x_100_save];
+ stack[x_100_save] = 0;
+ stack[x_100_save] = x_1061;
+ const int x_1062[10] = stack;
+ const int tint_symbol_31[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
stack = tint_symbol_31;
stack = x_1062;
const float2 x_584 = float2(x_569.z, x_569.y);
const float3 x_585 = float3(x_580.y, x_577.x, x_577.x);
const int x_130 = l_1;
- const int x_1063 = stack.arr[x_114_save];
- stack.arr[x_114_save] = 0;
- stack.arr[x_114_save] = x_1063;
+ const int x_1063 = stack[x_114_save];
+ stack[x_114_save] = 0;
+ stack[x_114_save] = x_1063;
const float2 x_586 = float2(x_564.x, x_585.x);
const int x_1064 = param_5;
param_5 = 0;
param_5 = x_1064;
const int x_131_save = (1 + x_128);
- const int x_1065 = stack.arr[x_110_save];
- stack.arr[x_110_save] = 0;
- stack.arr[x_110_save] = x_1065;
+ const int x_1065 = stack[x_110_save];
+ stack[x_110_save] = 0;
+ stack[x_110_save] = x_1065;
const float3 x_587 = float3(x_566.y, x_566.y, x_563.x);
const int x_1066 = param_5;
param_5 = 0;
param_5 = x_1066;
- stack.arr[x_131_save] = x_130;
+ stack[x_131_save] = x_130;
const int x_132 = top;
- const int x_1067 = stack.arr[x_100_save];
- stack.arr[x_100_save] = 0;
- stack.arr[x_100_save] = x_1067;
+ const int x_1067 = stack[x_100_save];
+ stack[x_100_save] = 0;
+ stack[x_100_save] = x_1067;
const float2 x_588 = float2(x_575.y, x_575.x);
- const int x_1068 = stack.arr[x_131_save];
- stack.arr[x_131_save] = 0;
- stack.arr[x_131_save] = x_1068;
+ const int x_1068 = stack[x_131_save];
+ stack[x_131_save] = 0;
+ stack[x_131_save] = x_1068;
const int x_133 = asint((1u + asuint(x_132)));
- const int x_1069 = stack.arr[x_100_save];
- stack.arr[x_100_save] = 0;
- stack.arr[x_100_save] = x_1069;
+ const int x_1069 = stack[x_100_save];
+ stack[x_100_save] = 0;
+ stack[x_100_save] = x_1069;
const float3 x_589 = float3(x_576.z, x_588.y, x_576.z);
const int x_1070 = h_1;
h_1 = 0;
h_1 = x_1070;
top = x_133;
- const tint_array_wrapper x_1071 = stack;
- const tint_array_wrapper tint_symbol_32 = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
+ const int x_1071[10] = stack;
+ const int tint_symbol_32[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
stack = tint_symbol_32;
stack = x_1071;
const int x_134 = p;
const float2 x_590 = float2(x_576.x, x_573.y);
- const int x_1072 = stack.arr[x_114_save];
- stack.arr[x_114_save] = 0;
- stack.arr[x_114_save] = x_1072;
+ const int x_1072 = stack[x_114_save];
+ stack[x_114_save] = 0;
+ stack[x_114_save] = x_1072;
const int x_136_save = x_133;
- const int x_1073 = stack.arr[x_114_save];
- stack.arr[x_114_save] = 0;
- stack.arr[x_114_save] = x_1073;
- stack.arr[x_136_save] = (x_134 - asint(1u));
- const int x_1074 = stack.arr[x_96_save];
- stack.arr[x_96_save] = 0;
- stack.arr[x_96_save] = x_1074;
+ const int x_1073 = stack[x_114_save];
+ stack[x_114_save] = 0;
+ stack[x_114_save] = x_1073;
+ stack[x_136_save] = (x_134 - asint(1u));
+ const int x_1074 = stack[x_96_save];
+ stack[x_96_save] = 0;
+ stack[x_96_save] = x_1074;
const float2 x_591 = float2(x_569.z, x_569.y);
- const int x_1075 = stack.arr[x_136_save];
- stack.arr[x_136_save] = 0;
- stack.arr[x_136_save] = x_1075;
+ const int x_1075 = stack[x_136_save];
+ stack[x_136_save] = 0;
+ stack[x_136_save] = x_1075;
}
- const int x_1076 = stack.arr[x_96_save];
- stack.arr[x_96_save] = 0;
- stack.arr[x_96_save] = x_1076;
+ const int x_1076 = stack[x_96_save];
+ stack[x_96_save] = 0;
+ stack[x_96_save] = x_1076;
const float2 x_592 = float2(float3(1.0f, 2.0f, 3.0f).x, float3(1.0f, 2.0f, 3.0f).y);
const QuicksortObject x_1077 = obj;
- const tint_array_wrapper tint_symbol_33 = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
+ const int tint_symbol_33[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
const QuicksortObject tint_symbol_34 = {tint_symbol_33};
obj = tint_symbol_34;
obj = x_1077;
const int x_137 = p;
- const int x_1078 = stack.arr[x_114_save];
- stack.arr[x_114_save] = 0;
- stack.arr[x_114_save] = x_1078;
+ const int x_1078 = stack[x_114_save];
+ stack[x_114_save] = 0;
+ stack[x_114_save] = x_1078;
const float3 x_593 = float3(x_571.z, x_556.x, x_556.y);
const int x_1079 = p;
p = 0;
p = x_1079;
const float3 x_594 = float3(x_563.z, x_563.x, x_575.x);
- const int x_1080 = stack.arr[x_114_save];
- stack.arr[x_114_save] = 0;
- stack.arr[x_114_save] = x_1080;
+ const int x_1080 = stack[x_114_save];
+ stack[x_114_save] = 0;
+ stack[x_114_save] = x_1080;
const int x_139 = h_1;
const int x_1081 = top;
top = 0;
top = x_1081;
const float3 x_595 = float3(x_560.z, x_568.x, x_560.x);
- const int x_1082 = stack.arr[x_100_save];
- stack.arr[x_100_save] = 0;
- stack.arr[x_100_save] = x_1082;
+ const int x_1082 = stack[x_100_save];
+ stack[x_100_save] = 0;
+ stack[x_100_save] = x_1082;
const int x_1083 = p;
p = 0;
p = x_1083;
if ((asint((1u + asuint(x_137))) < x_139)) {
- const int x_1084 = stack.arr[x_114_save];
- stack.arr[x_114_save] = 0;
- stack.arr[x_114_save] = x_1084;
+ const int x_1084 = stack[x_114_save];
+ stack[x_114_save] = 0;
+ stack[x_114_save] = x_1084;
const float2 x_596 = float2(x_592.y, x_582.x);
const int x_1085 = l_1;
l_1 = 0;
l_1 = x_1085;
const int x_143 = top;
- const int x_1086 = stack.arr[x_114_save];
- stack.arr[x_114_save] = 0;
- stack.arr[x_114_save] = x_1086;
+ const int x_1086 = stack[x_114_save];
+ stack[x_114_save] = 0;
+ stack[x_114_save] = x_1086;
const float3 x_597 = float3(x_562.y, x_560.y, x_560.y);
const int x_144 = (x_143 + 1);
const int x_1087 = param_5;
param_5 = 0;
param_5 = x_1087;
top = x_144;
- const int x_1088 = stack.arr[x_114_save];
- stack.arr[x_114_save] = 0;
- stack.arr[x_114_save] = x_1088;
+ const int x_1088 = stack[x_114_save];
+ stack[x_114_save] = 0;
+ stack[x_114_save] = x_1088;
const int x_145 = p;
const int x_1089 = param_5;
param_5 = 0;
@@ -730,62 +727,62 @@
p = 0;
p = x_1090;
const float3 x_600 = float3(x_556.x, x_580.x, x_580.x);
- const int x_1091 = stack.arr[x_100_save];
- stack.arr[x_100_save] = 0;
- stack.arr[x_100_save] = x_1091;
+ const int x_1091 = stack[x_100_save];
+ stack[x_100_save] = 0;
+ stack[x_100_save] = x_1091;
const int x_147_save = x_144;
- const int x_1092 = stack.arr[x_110_save];
- stack.arr[x_110_save] = 0;
- stack.arr[x_110_save] = x_1092;
+ const int x_1092 = stack[x_110_save];
+ stack[x_110_save] = 0;
+ stack[x_110_save] = x_1092;
const float2 x_601 = float2(x_563.x, x_563.y);
- stack.arr[x_147_save] = asint((1u + asuint(x_145)));
- const tint_array_wrapper x_1093 = stack;
- const tint_array_wrapper tint_symbol_35 = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
+ stack[x_147_save] = asint((1u + asuint(x_145)));
+ const int x_1093[10] = stack;
+ const int tint_symbol_35[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
stack = tint_symbol_35;
stack = x_1093;
const int x_148 = top;
- const int x_1094 = stack.arr[x_114_save];
- stack.arr[x_114_save] = 0;
- stack.arr[x_114_save] = x_1094;
+ const int x_1094 = stack[x_114_save];
+ stack[x_114_save] = 0;
+ stack[x_114_save] = x_1094;
const float2 x_602 = float2(x_565.y, x_599.y);
- const tint_array_wrapper x_1095 = stack;
- const tint_array_wrapper tint_symbol_36 = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
+ const int x_1095[10] = stack;
+ const int tint_symbol_36[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
stack = tint_symbol_36;
stack = x_1095;
const int x_149 = (x_148 + asint(1u));
- const int x_1096 = stack.arr[x_147_save];
- stack.arr[x_147_save] = 0;
- stack.arr[x_147_save] = x_1096;
+ const int x_1096 = stack[x_147_save];
+ stack[x_147_save] = 0;
+ stack[x_147_save] = x_1096;
top = x_149;
const int x_1097 = param_4;
param_4 = 0;
param_4 = x_1097;
const int x_150 = h_1;
- const int x_1098 = stack.arr[x_100_save];
- stack.arr[x_100_save] = 0;
- stack.arr[x_100_save] = x_1098;
- const int x_1099 = stack.arr[x_96_save];
- stack.arr[x_96_save] = 0;
- stack.arr[x_96_save] = x_1099;
- stack.arr[x_149] = x_150;
- const int x_1100 = stack.arr[x_114_save];
- stack.arr[x_114_save] = 0;
- stack.arr[x_114_save] = x_1100;
+ const int x_1098 = stack[x_100_save];
+ stack[x_100_save] = 0;
+ stack[x_100_save] = x_1098;
+ const int x_1099 = stack[x_96_save];
+ stack[x_96_save] = 0;
+ stack[x_96_save] = x_1099;
+ stack[x_149] = x_150;
+ const int x_1100 = stack[x_114_save];
+ stack[x_114_save] = 0;
+ stack[x_114_save] = x_1100;
const float3 x_603 = float3(x_568.y, x_564.x, x_564.x);
const int x_1101 = l_1;
l_1 = 0;
l_1 = x_1101;
}
- const int x_1102 = stack.arr[x_100_save];
- stack.arr[x_100_save] = 0;
- stack.arr[x_100_save] = x_1102;
+ const int x_1102 = stack[x_100_save];
+ stack[x_100_save] = 0;
+ stack[x_100_save] = x_1102;
{
const int x_1103 = l_1;
l_1 = 0;
l_1 = x_1103;
const float2 x_604 = float2(x_563.z, x_564.x);
const QuicksortObject x_1104 = obj;
- const tint_array_wrapper tint_symbol_37 = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
+ const int tint_symbol_37[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
const QuicksortObject tint_symbol_38 = {tint_symbol_37};
obj = tint_symbol_38;
obj = x_1104;
@@ -806,13 +803,13 @@
uv = x_717;
i_2 = 0;
const QuicksortObject x_721 = obj;
- const tint_array_wrapper tint_symbol_39 = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
+ const int tint_symbol_39[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
const QuicksortObject tint_symbol_40 = {tint_symbol_39};
obj = tint_symbol_40;
obj = x_721;
if (true) {
const QuicksortObject x_722 = obj;
- const tint_array_wrapper tint_symbol_41 = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
+ const int tint_symbol_41[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
const QuicksortObject tint_symbol_42 = {tint_symbol_41};
obj = tint_symbol_42;
obj = x_722;
@@ -826,13 +823,13 @@
color = x_725;
const float2 x_432 = float2(x_431.y, x_431.y);
const QuicksortObject x_726 = obj;
- const tint_array_wrapper tint_symbol_43 = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
+ const int tint_symbol_43[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
const QuicksortObject tint_symbol_44 = {tint_symbol_43};
obj = tint_symbol_44;
obj = x_726;
}
const QuicksortObject x_756 = obj;
- const tint_array_wrapper tint_symbol_45 = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
+ const int tint_symbol_45[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
const QuicksortObject tint_symbol_46 = {tint_symbol_45};
obj = tint_symbol_46;
obj = x_756;
@@ -842,7 +839,7 @@
i_2 = x_757;
quicksort_();
const QuicksortObject x_758 = obj;
- const tint_array_wrapper tint_symbol_47 = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
+ const int tint_symbol_47[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
const QuicksortObject tint_symbol_48 = {tint_symbol_47};
obj = tint_symbol_48;
obj = x_758;
@@ -857,7 +854,7 @@
const float2 x_185 = float2(x_184.x, x_184.y);
const float3 x_448 = float3(x_185.y, x_446.y, x_446.y);
const QuicksortObject x_761 = obj;
- const tint_array_wrapper tint_symbol_49 = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
+ const int tint_symbol_49[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
const QuicksortObject tint_symbol_50 = {tint_symbol_49};
obj = tint_symbol_50;
obj = x_761;
@@ -868,7 +865,7 @@
uint4 ubo_load = x_188[scalar_offset / 4];
const float2 x_191 = asfloat(((scalar_offset & 2) ? ubo_load.zw : ubo_load.xy));
const QuicksortObject x_763 = obj;
- const tint_array_wrapper tint_symbol_51 = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
+ const int tint_symbol_51[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
const QuicksortObject tint_symbol_52 = {tint_symbol_51};
obj = tint_symbol_52;
obj = x_763;
@@ -878,7 +875,7 @@
color = x_764;
const float2 x_192 = (x_185 / x_191);
const QuicksortObject x_765 = obj;
- const tint_array_wrapper tint_symbol_53 = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
+ const int tint_symbol_53[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
const QuicksortObject tint_symbol_54 = {tint_symbol_53};
obj = tint_symbol_54;
obj = x_765;
@@ -896,22 +893,22 @@
color = x_768;
const float3 x_451 = float3(x_185.x, x_185.y, x_446.y);
const QuicksortObject x_769 = obj;
- const tint_array_wrapper tint_symbol_55 = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
+ const int tint_symbol_55[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
const QuicksortObject tint_symbol_56 = {tint_symbol_55};
obj = tint_symbol_56;
obj = x_769;
- const int x_770 = obj.numbers.arr[0u];
- obj.numbers.arr[0u] = 0;
- obj.numbers.arr[0u] = x_770;
- const int x_201 = obj.numbers.arr[0u];
+ const int x_770 = obj.numbers[0u];
+ obj.numbers[0u] = 0;
+ obj.numbers[0u] = x_770;
+ const int x_201 = obj.numbers[0u];
const QuicksortObject x_771 = obj;
- const tint_array_wrapper tint_symbol_57 = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
+ const int tint_symbol_57[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
const QuicksortObject tint_symbol_58 = {tint_symbol_57};
obj = tint_symbol_58;
obj = x_771;
- const int x_772 = obj.numbers.arr[0u];
- obj.numbers.arr[0u] = 0;
- obj.numbers.arr[0u] = x_772;
+ const int x_772 = obj.numbers[0u];
+ obj.numbers[0u] = 0;
+ obj.numbers[0u] = x_772;
const float x_206 = color.x;
const float x_773 = color.x;
color.x = 0.0f;
@@ -921,7 +918,7 @@
i_2 = 0;
i_2 = x_774;
const QuicksortObject x_775 = obj;
- const tint_array_wrapper tint_symbol_59 = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
+ const int tint_symbol_59[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
const QuicksortObject tint_symbol_60 = {tint_symbol_59};
obj = tint_symbol_60;
obj = x_775;
@@ -940,7 +937,7 @@
uv.x = 0.0f;
uv.x = x_778;
const QuicksortObject x_779 = obj;
- const tint_array_wrapper tint_symbol_61 = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
+ const int tint_symbol_61[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
const QuicksortObject tint_symbol_62 = {tint_symbol_61};
obj = tint_symbol_62;
obj = x_779;
@@ -948,16 +945,16 @@
const int x_780 = i_2;
i_2 = 0;
i_2 = x_780;
- const int x_781 = obj.numbers.arr[0u];
- obj.numbers.arr[0u] = 0;
- obj.numbers.arr[0u] = x_781;
+ const int x_781 = obj.numbers[0u];
+ obj.numbers[0u] = 0;
+ obj.numbers[0u] = x_781;
const float3 x_456 = float3(float2(0.0f, 0.0f).y, x_448.y, x_448.y);
const float x_782 = uv.x;
uv.x = 0.0f;
uv.x = x_782;
- const int x_216 = obj.numbers.arr[1];
+ const int x_216 = obj.numbers[1];
const QuicksortObject x_783 = obj;
- const tint_array_wrapper tint_symbol_63 = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
+ const int tint_symbol_63[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
const QuicksortObject tint_symbol_64 = {tint_symbol_63};
obj = tint_symbol_64;
obj = x_783;
@@ -966,7 +963,7 @@
uv = float2(0.0f, 0.0f);
uv = x_784;
const QuicksortObject x_785 = obj;
- const tint_array_wrapper tint_symbol_65 = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
+ const int tint_symbol_65[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
const QuicksortObject tint_symbol_66 = {tint_symbol_65};
obj = tint_symbol_66;
obj = x_785;
@@ -989,9 +986,9 @@
color[0] = 0.0f;
color[0] = x_790;
color.x = (float(x_216) + x_219);
- const int x_791 = obj.numbers.arr[0u];
- obj.numbers.arr[0u] = 0;
- obj.numbers.arr[0u] = x_791;
+ const int x_791 = obj.numbers[0u];
+ obj.numbers[0u] = 0;
+ obj.numbers[0u] = x_791;
}
const float x_792 = uv.x;
uv.x = 0.0f;
@@ -1029,24 +1026,24 @@
const float x_801 = color.x;
color.x = 0.0f;
color.x = x_801;
- const int x_230 = obj.numbers.arr[2u];
+ const int x_230 = obj.numbers[2u];
const float x_802 = uv.x;
uv.x = 0.0f;
uv.x = x_802;
const float x_803 = color.x;
color.x = 0.0f;
color.x = x_803;
- const int x_804 = obj.numbers.arr[2u];
- obj.numbers.arr[2u] = 0;
- obj.numbers.arr[2u] = x_804;
+ const int x_804 = obj.numbers[2u];
+ obj.numbers[2u] = 0;
+ obj.numbers[2u] = x_804;
const float2 x_464 = float2(x_450.y, x_191.x);
const float x_805 = color.y;
color.y = 0.0f;
color.y = x_805;
const float x_234 = color.y;
- const int x_806 = obj.numbers.arr[2u];
- obj.numbers.arr[2u] = 0;
- obj.numbers.arr[2u] = x_806;
+ const int x_806 = obj.numbers[2u];
+ obj.numbers[2u] = 0;
+ obj.numbers[2u] = x_806;
const float2 x_465 = float2(x_463.x, x_185.x);
const float x_807 = color.x;
color.x = 0.0f;
@@ -1081,12 +1078,12 @@
const float x_815 = color.x;
color.x = 0.0f;
color.x = x_815;
- const int x_245 = obj.numbers.arr[3];
+ const int x_245 = obj.numbers[3];
const float x_816 = color.x;
color.x = 0.0f;
color.x = x_816;
const QuicksortObject x_817 = obj;
- const tint_array_wrapper tint_symbol_67 = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
+ const int tint_symbol_67[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
const QuicksortObject tint_symbol_68 = {tint_symbol_67};
obj = tint_symbol_68;
obj = x_817;
@@ -1105,9 +1102,9 @@
const float x_821 = color.z;
color.z = 0.0f;
color.z = x_821;
- const int x_822 = obj.numbers.arr[0u];
- obj.numbers.arr[0u] = 0;
- obj.numbers.arr[0u] = x_822;
+ const int x_822 = obj.numbers[0u];
+ obj.numbers[0u] = 0;
+ obj.numbers[0u] = x_822;
const float2 x_470 = float2(float2(0.0f, 0.0f).x, float2(0.0f, 0.0f).y);
const float x_823 = color.z;
color.z = 0.0f;
@@ -1122,7 +1119,7 @@
uv[0] = 0.0f;
uv[0] = x_825;
const float3 x_472 = float3(x_454.x, x_454.y, x_454.y);
- const int x_254 = obj.numbers.arr[4];
+ const int x_254 = obj.numbers[4];
const float x_826 = uv[0];
uv[0] = 0.0f;
uv[0] = x_826;
@@ -1130,9 +1127,9 @@
color = float3(0.0f, 0.0f, 0.0f);
color = x_827;
const float3 x_473 = float3(x_446.y, x_453.x, x_453.x);
- const int x_828 = obj.numbers.arr[4];
- obj.numbers.arr[4] = 0;
- obj.numbers.arr[4] = x_828;
+ const int x_828 = obj.numbers[4];
+ obj.numbers[4] = 0;
+ obj.numbers[4] = x_828;
const float2 x_474 = float2(x_191.x, x_184.z);
const float x_829 = uv.x;
uv.x = 0.0f;
@@ -1166,9 +1163,9 @@
i_2 = 0;
i_2 = x_836;
const float3 x_479 = float3(float2(0.0f, 0.0f).y, x_454.y, float2(0.0f, 0.0f).x);
- const int x_837 = obj.numbers.arr[0u];
- obj.numbers.arr[0u] = 0;
- obj.numbers.arr[0u] = x_837;
+ const int x_837 = obj.numbers[0u];
+ obj.numbers[0u] = 0;
+ obj.numbers[0u] = x_837;
const float x_838 = color.y;
color.y = 0.0f;
color.y = x_838;
@@ -1181,7 +1178,7 @@
const float3 x_840 = color;
color = float3(0.0f, 0.0f, 0.0f);
color = x_840;
- const int x_267 = obj.numbers.arr[5u];
+ const int x_267 = obj.numbers[5u];
const float x_841 = color.x;
color.x = 0.0f;
color.x = x_841;
@@ -1197,7 +1194,7 @@
uv[0] = x_844;
const float3 x_482 = float3(x_455.x, x_475.y, x_455.y);
const QuicksortObject x_845 = obj;
- const tint_array_wrapper tint_symbol_69 = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
+ const int tint_symbol_69[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
const QuicksortObject tint_symbol_70 = {tint_symbol_69};
obj = tint_symbol_70;
obj = x_845;
@@ -1224,13 +1221,13 @@
const float x_851 = uv.y;
uv.y = 0.0f;
uv.y = x_851;
- const int x_852 = obj.numbers.arr[4];
- obj.numbers.arr[4] = 0;
- obj.numbers.arr[4] = x_852;
+ const int x_852 = obj.numbers[4];
+ obj.numbers[4] = 0;
+ obj.numbers[4] = x_852;
const float x_274 = uv.y;
- const int x_853 = obj.numbers.arr[0u];
- obj.numbers.arr[0u] = 0;
- obj.numbers.arr[0u] = x_853;
+ const int x_853 = obj.numbers[0u];
+ obj.numbers[0u] = 0;
+ obj.numbers[0u] = x_853;
if ((x_274 > 0.5f)) {
const float x_854 = uv.x;
uv.x = 0.0f;
@@ -1243,16 +1240,16 @@
const float x_856 = uv.y;
uv.y = 0.0f;
uv.y = x_856;
- const int x_280 = obj.numbers.arr[6u];
+ const int x_280 = obj.numbers[6u];
const float x_857 = uv.y;
uv.y = 0.0f;
uv.y = x_857;
const int x_858 = i_2;
i_2 = 0;
i_2 = x_858;
- const int x_859 = obj.numbers.arr[4];
- obj.numbers.arr[4] = 0;
- obj.numbers.arr[4] = x_859;
+ const int x_859 = obj.numbers[4];
+ obj.numbers[4] = 0;
+ obj.numbers[4] = x_859;
const float2 x_488 = float2(x_473.z, x_473.y);
const float x_283 = color.y;
const float2 x_860 = uv;
@@ -1262,15 +1259,15 @@
color.x = 0.0f;
color.x = x_861;
const float2 x_489 = float2(x_475.y, x_475.x);
- const int x_862 = obj.numbers.arr[6u];
- obj.numbers.arr[6u] = 0;
- obj.numbers.arr[6u] = x_862;
- const int x_863 = obj.numbers.arr[6u];
- obj.numbers.arr[6u] = 0;
- obj.numbers.arr[6u] = x_863;
+ const int x_862 = obj.numbers[6u];
+ obj.numbers[6u] = 0;
+ obj.numbers[6u] = x_862;
+ const int x_863 = obj.numbers[6u];
+ obj.numbers[6u] = 0;
+ obj.numbers[6u] = x_863;
const float2 x_490 = float2(x_480.z, x_480.z);
const QuicksortObject x_864 = obj;
- const tint_array_wrapper tint_symbol_71 = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
+ const int tint_symbol_71[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
const QuicksortObject tint_symbol_72 = {tint_symbol_71};
obj = tint_symbol_72;
obj = x_864;
@@ -1289,7 +1286,7 @@
color.x = x_867;
const float x_287 = uv.y;
const QuicksortObject x_868 = obj;
- const tint_array_wrapper tint_symbol_73 = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
+ const int tint_symbol_73[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
const QuicksortObject tint_symbol_74 = {tint_symbol_73};
obj = tint_symbol_74;
obj = x_868;
@@ -1301,9 +1298,9 @@
color.y = 0.0f;
color.y = x_870;
const float3 x_494 = float3(x_191.x, x_191.y, x_191.y);
- const int x_871 = obj.numbers.arr[4];
- obj.numbers.arr[4] = 0;
- obj.numbers.arr[4] = x_871;
+ const int x_871 = obj.numbers[4];
+ obj.numbers[4] = 0;
+ obj.numbers[4] = x_871;
if ((x_287 > 0.75f)) {
const float3 x_872 = color;
color = float3(0.0f, 0.0f, 0.0f);
@@ -1315,7 +1312,7 @@
const float3 x_874 = color;
color = float3(0.0f, 0.0f, 0.0f);
color = x_874;
- const int x_293 = obj.numbers.arr[7];
+ const int x_293 = obj.numbers[7];
const float x_875 = uv.x;
uv.x = 0.0f;
uv.x = x_875;
@@ -1324,9 +1321,9 @@
color.y = 0.0f;
color.y = x_876;
const float2 x_497 = float2(x_477.x, x_461.y);
- const int x_877 = obj.numbers.arr[0u];
- obj.numbers.arr[0u] = 0;
- obj.numbers.arr[0u] = x_877;
+ const int x_877 = obj.numbers[0u];
+ obj.numbers[0u] = 0;
+ obj.numbers[0u] = x_877;
const float x_878 = color.y;
color.y = 0.0f;
color.y = x_878;
@@ -1368,14 +1365,14 @@
const float2 x_888 = uv;
uv = float2(0.0f, 0.0f);
uv = x_888;
- const int x_301 = obj.numbers.arr[8];
+ const int x_301 = obj.numbers[8];
const int x_889 = i_2;
i_2 = 0;
i_2 = x_889;
const float2 x_503 = float2(x_185.x, x_451.z);
- const int x_890 = obj.numbers.arr[8];
- obj.numbers.arr[8] = 0;
- obj.numbers.arr[8] = x_890;
+ const int x_890 = obj.numbers[8];
+ obj.numbers[8] = 0;
+ obj.numbers[8] = x_890;
const float x_891 = color.y;
color.y = 0.0f;
color.y = x_891;
@@ -1392,9 +1389,9 @@
color.x = 0.0f;
color.x = x_894;
const float2 x_506 = float2(x_493.x, x_492.x);
- const int x_895 = obj.numbers.arr[4];
- obj.numbers.arr[4] = 0;
- obj.numbers.arr[4] = x_895;
+ const int x_895 = obj.numbers[4];
+ obj.numbers[4] = 0;
+ obj.numbers[4] = x_895;
const float x_896 = uv.y;
uv.y = 0.0f;
uv.y = x_896;
@@ -1443,23 +1440,23 @@
uv.y = 0.0f;
uv.y = x_908;
const float3 x_512 = float3(x_455.y, x_455.y, x_455.y);
- const int x_909 = obj.numbers.arr[4];
- obj.numbers.arr[4] = 0;
- obj.numbers.arr[4] = x_909;
+ const int x_909 = obj.numbers[4];
+ obj.numbers[4] = 0;
+ obj.numbers[4] = x_909;
if ((abs((x_308 - x_310)) < 0.25f)) {
const float x_910 = uv.x;
uv.x = 0.0f;
uv.x = x_910;
const QuicksortObject x_911 = obj;
- const tint_array_wrapper tint_symbol_75 = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
+ const int tint_symbol_75[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
const QuicksortObject tint_symbol_76 = {tint_symbol_75};
obj = tint_symbol_76;
obj = x_911;
const float3 x_513 = float3(x_505.z, x_505.x, x_448.x);
- const int x_912 = obj.numbers.arr[8];
- obj.numbers.arr[8] = 0;
- obj.numbers.arr[8] = x_912;
- const int x_317 = obj.numbers.arr[9u];
+ const int x_912 = obj.numbers[8];
+ obj.numbers[8] = 0;
+ obj.numbers[8] = x_912;
+ const int x_317 = obj.numbers[9u];
const float3 x_514 = float3(x_474.y, x_474.y, x_474.y);
const float x_913 = uv.y;
uv.y = 0.0f;
@@ -1505,12 +1502,12 @@
uv.x = 0.0f;
uv.x = x_923;
const QuicksortObject x_924 = obj;
- const tint_array_wrapper tint_symbol_77 = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
+ const int tint_symbol_77[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
const QuicksortObject tint_symbol_78 = {tint_symbol_77};
obj = tint_symbol_78;
obj = x_924;
const QuicksortObject x_925 = obj;
- const tint_array_wrapper tint_symbol_79 = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
+ const int tint_symbol_79[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
const QuicksortObject tint_symbol_80 = {tint_symbol_79};
obj = tint_symbol_80;
obj = x_925;
@@ -1531,7 +1528,7 @@
uv.x = x_929;
x_GLF_color = x_330;
const QuicksortObject x_930 = obj;
- const tint_array_wrapper tint_symbol_81 = {{0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
+ const int tint_symbol_81[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
const QuicksortObject tint_symbol_82 = {tint_symbol_81};
obj = tint_symbol_82;
obj = x_930;
diff --git a/test/bug/tint/782.wgsl.expected.hlsl b/test/bug/tint/782.wgsl.expected.hlsl
index 1066622..59bb8da 100644
--- a/test/bug/tint/782.wgsl.expected.hlsl
+++ b/test/bug/tint/782.wgsl.expected.hlsl
@@ -3,12 +3,8 @@
return;
}
-struct tint_array_wrapper {
- int arr[2];
-};
-
void foo() {
- tint_array_wrapper tint_symbol = (tint_array_wrapper)0;
- tint_array_wrapper implict = (tint_array_wrapper)0;
+ int tint_symbol[2] = (int[2])0;
+ int implict[2] = (int[2])0;
implict = tint_symbol;
}
diff --git a/test/bug/tint/824.wgsl.expected.hlsl b/test/bug/tint/824.wgsl.expected.hlsl
index 28fcb45..a1d0cab 100644
--- a/test/bug/tint/824.wgsl.expected.hlsl
+++ b/test/bug/tint/824.wgsl.expected.hlsl
@@ -10,22 +10,16 @@
float4 color : TEXCOORD0;
float4 Position : SV_Position;
};
-struct tint_array_wrapper {
- float2 arr[4];
-};
-struct tint_array_wrapper_1 {
- float4 arr[4];
-};
tint_symbol_2 main(tint_symbol_1 tint_symbol) {
const uint VertexIndex = tint_symbol.VertexIndex;
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;
+ float2 zv[4] = {float2(0.200000003f, 0.200000003f), float2(0.300000012f, 0.300000012f), float2(-0.100000001f, -0.100000001f), float2(1.100000024f, 1.100000024f)};
+ const float z = zv[InstanceIndex].x;
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];
+ float4 colors[4] = {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[InstanceIndex];
const tint_symbol_2 tint_symbol_3 = {output.color, output.Position};
return tint_symbol_3;
}
diff --git a/test/bug/tint/870.spvasm.expected.hlsl b/test/bug/tint/870.spvasm.expected.hlsl
index 922ff09..db135e6 100644
--- a/test/bug/tint/870.spvasm.expected.hlsl
+++ b/test/bug/tint/870.spvasm.expected.hlsl
@@ -1,23 +1,20 @@
-struct tint_array_wrapper {
- int arr[6];
-};
-
-tint_array_wrapper tint_symbol_1(ByteAddressBuffer buffer, uint offset) {
- const tint_array_wrapper tint_symbol_2 = {{asint(buffer.Load((offset + 0u))), asint(buffer.Load((offset + 4u))), asint(buffer.Load((offset + 8u))), asint(buffer.Load((offset + 12u))), asint(buffer.Load((offset + 16u))), asint(buffer.Load((offset + 20u)))}};
+typedef int tint_symbol_1_ret[6];
+tint_symbol_1_ret tint_symbol_1(ByteAddressBuffer buffer, uint offset) {
+ const int tint_symbol_2[6] = {asint(buffer.Load((offset + 0u))), asint(buffer.Load((offset + 4u))), asint(buffer.Load((offset + 8u))), asint(buffer.Load((offset + 12u))), asint(buffer.Load((offset + 16u))), asint(buffer.Load((offset + 20u)))};
return tint_symbol_2;
}
ByteAddressBuffer sspp962805860buildInformation : register(t2, space0);
void main_1() {
- 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];
- orientation.arr[2] = x_23.arr[2u];
- orientation.arr[3] = x_23.arr[3u];
- orientation.arr[4] = x_23.arr[4u];
- orientation.arr[5] = x_23.arr[5u];
+ int orientation[6] = (int[6])0;
+ const int x_23[6] = tint_symbol_1(sspp962805860buildInformation, 36u);
+ orientation[0] = x_23[0u];
+ orientation[1] = x_23[1u];
+ orientation[2] = x_23[2u];
+ orientation[3] = x_23[3u];
+ orientation[4] = x_23[4u];
+ orientation[5] = x_23[5u];
return;
}
diff --git a/test/bug/tint/914.wgsl.expected.hlsl b/test/bug/tint/914.wgsl.expected.hlsl
index 7aef00e..4030d77 100644
--- a/test/bug/tint/914.wgsl.expected.hlsl
+++ b/test/bug/tint/914.wgsl.expected.hlsl
@@ -54,28 +54,14 @@
static const uint TileAOuter = 64u;
static const uint TileBOuter = 64u;
static const uint TileInner = 64u;
-
-struct tint_array_wrapper_1 {
- float arr[64];
-};
-struct tint_array_wrapper {
- tint_array_wrapper_1 arr[64];
-};
-
-groupshared tint_array_wrapper mm_Asub;
-groupshared tint_array_wrapper mm_Bsub;
+groupshared float mm_Asub[64][64];
+groupshared float mm_Bsub[64][64];
struct tint_symbol_1 {
uint3 local_id : SV_GroupThreadID;
uint local_invocation_index : SV_GroupIndex;
uint3 global_id : SV_DispatchThreadID;
};
-struct tint_array_wrapper_2 {
- float arr[16];
-};
-struct tint_array_wrapper_3 {
- float arr[4];
-};
[numthreads(16, 16, 1)]
void main(tint_symbol_1 tint_symbol) {
@@ -83,9 +69,9 @@
const uint3 global_id = tint_symbol.global_id;
const uint local_invocation_index = tint_symbol.local_invocation_index;
if ((local_invocation_index == 0u)) {
- const tint_array_wrapper tint_symbol_5 = {(tint_array_wrapper_1[64])0};
+ const float tint_symbol_5[64][64] = (float[64][64])0;
mm_Asub = tint_symbol_5;
- const tint_array_wrapper tint_symbol_6 = {(tint_array_wrapper_1[64])0};
+ const float tint_symbol_6[64][64] = (float[64][64])0;
mm_Bsub = tint_symbol_6;
}
GroupMemoryBarrierWithGroupSync();
@@ -95,13 +81,13 @@
const uint globalCol = (global_id.x * ColPerThread);
const uint scalar_offset_9 = (4u) / 4;
const uint numTiles = (((uniforms[scalar_offset_9 / 4][scalar_offset_9 % 4] - 1u) / TileInner) + 1u);
- tint_array_wrapper_2 acc = (tint_array_wrapper_2)0;
+ float acc[16] = (float[16])0;
float ACached = 0.0f;
- tint_array_wrapper_3 BCached = (tint_array_wrapper_3)0;
+ float BCached[4] = (float[4])0;
{
uint index = 0u;
for(; !(!((index < (RowPerThread * ColPerThread)))); index = (index + 1u)) {
- acc.arr[index] = 0.0f;
+ acc[index] = 0.0f;
}
}
const uint ColPerThreadA = (TileInner / 16u);
@@ -119,7 +105,7 @@
for(; !(!((innerCol < ColPerThreadA))); innerCol = (innerCol + 1u)) {
const uint inputRow = (tileRow + innerRow);
const uint inputCol = (tileColA + innerCol);
- mm_Asub.arr[inputRow].arr[inputCol] = mm_readA((globalRow + innerRow), ((t * TileInner) + inputCol));
+ mm_Asub[inputRow][inputCol] = mm_readA((globalRow + innerRow), ((t * TileInner) + inputCol));
}
}
}
@@ -132,7 +118,7 @@
for(; !(!((innerCol < ColPerThread))); innerCol = (innerCol + 1u)) {
const uint inputRow = (tileRowB + innerRow);
const uint inputCol = (tileCol + innerCol);
- mm_Bsub.arr[innerCol].arr[inputCol] = mm_readB(((t * TileInner) + inputRow), (globalCol + innerCol));
+ mm_Bsub[innerCol][inputCol] = mm_readB(((t * TileInner) + inputRow), (globalCol + innerCol));
}
}
}
@@ -144,18 +130,18 @@
{
uint inner = 0u;
for(; !(!((inner < ColPerThread))); inner = (inner + 1u)) {
- BCached.arr[inner] = mm_Bsub.arr[k].arr[(tileCol + inner)];
+ BCached[inner] = mm_Bsub[k][(tileCol + inner)];
}
}
{
uint innerRow = 0u;
for(; !(!((innerRow < RowPerThread))); innerRow = (innerRow + 1u)) {
- ACached = mm_Asub.arr[(tileRow + innerRow)].arr[k];
+ ACached = mm_Asub[(tileRow + innerRow)][k];
{
uint innerCol = 0u;
for(; !(!((innerCol < ColPerThread))); innerCol = (innerCol + 1u)) {
const uint index = ((innerRow * ColPerThread) + innerCol);
- acc.arr[index] = (acc.arr[index] + (ACached * BCached.arr[innerCol]));
+ acc[index] = (acc[index] + (ACached * BCached[innerCol]));
}
}
}
@@ -172,7 +158,7 @@
uint innerCol = 0u;
for(; !(!((innerCol < ColPerThread))); innerCol = (innerCol + 1u)) {
const uint index = ((innerRow * ColPerThread) + innerCol);
- mm_write((globalRow + innerRow), (globalCol + innerCol), acc.arr[index]);
+ mm_write((globalRow + innerRow), (globalCol + innerCol), acc[index]);
}
}
}
diff --git a/test/bug/tint/943.spvasm.expected.hlsl b/test/bug/tint/943.spvasm.expected.hlsl
index 0bf03e3..a2192d2 100644
--- a/test/bug/tint/943.spvasm.expected.hlsl
+++ b/test/bug/tint/943.spvasm.expected.hlsl
@@ -7,24 +7,8 @@
RWByteAddressBuffer x_54 : register(u0, space0);
static uint3 gl_LocalInvocationID = uint3(0u, 0u, 0u);
static uint3 gl_GlobalInvocationID = uint3(0u, 0u, 0u);
-
-struct tint_array_wrapper_1 {
- float arr[64];
-};
-struct tint_array_wrapper {
- tint_array_wrapper_1 arr[64];
-};
-
-groupshared tint_array_wrapper mm_Asub;
-
-struct tint_array_wrapper_3 {
- float arr[1];
-};
-struct tint_array_wrapper_2 {
- tint_array_wrapper_3 arr[64];
-};
-
-groupshared tint_array_wrapper_2 mm_Bsub;
+groupshared float mm_Asub[64][64];
+groupshared float mm_Bsub[64][1];
ByteAddressBuffer x_165 : register(t1, space0);
static int batch = 0;
ByteAddressBuffer x_185 : register(t2, space0);
@@ -161,10 +145,6 @@
return;
}
-struct tint_array_wrapper_4 {
- tint_array_wrapper_3 arr[1];
-};
-
void mm_matMul_i1_i1_i1_(inout int dimAOuter, inout int dimInner, inout int dimBOuter) {
int tileRow = 0;
int tileCol = 0;
@@ -173,7 +153,7 @@
int numTiles = 0;
int innerRow = 0;
int innerCol = 0;
- tint_array_wrapper_4 acc = (tint_array_wrapper_4)0;
+ float acc[1][1] = (float[1][1])0;
int tileColA = 0;
int tileRowB = 0;
int t = 0;
@@ -191,7 +171,7 @@
int param_6 = 0;
int k = 0;
int inner = 0;
- tint_array_wrapper_3 BCached = (tint_array_wrapper_3)0;
+ float BCached[1] = (float[1])0;
int innerRow_3 = 0;
float ACached = 0.0f;
int innerCol_3 = 0;
@@ -214,7 +194,7 @@
for(; (innerRow < 1); innerRow = (innerRow + 1)) {
innerCol = 0;
for(; (innerCol < 1); innerCol = (innerCol + 1)) {
- acc.arr[innerRow].arr[innerCol] = 0.0f;
+ acc[innerRow][innerCol] = 0.0f;
}
}
const uint x_187 = gl_LocalInvocationID.x;
@@ -236,7 +216,7 @@
param_3 = (globalRow + innerRow_1);
param_4 = ((x_238 * 64) + x_240);
const float x_244 = mm_readA_i1_i1_(param_3, param_4);
- mm_Asub.arr[x_233].arr[x_234] = x_244;
+ mm_Asub[x_233][x_234] = x_244;
}
}
innerRow_2 = 0;
@@ -252,7 +232,7 @@
param_5 = ((t * 64) + inputRow_1);
param_6 = (x_284 + x_285);
const float x_289 = mm_readB_i1_i1_(param_5, param_6);
- mm_Bsub.arr[x_278].arr[x_279] = x_289;
+ mm_Bsub[x_278][x_279] = x_289;
}
}
GroupMemoryBarrierWithGroupSync();
@@ -261,21 +241,21 @@
inner = 0;
for(; (inner < 1); inner = (inner + 1)) {
const int x_314 = inner;
- const float x_320 = mm_Bsub.arr[k].arr[(tileCol + inner)];
- BCached.arr[x_314] = x_320;
+ const float x_320 = mm_Bsub[k][(tileCol + inner)];
+ BCached[x_314] = x_320;
}
innerRow_3 = 0;
for(; (innerRow_3 < 1); innerRow_3 = (innerRow_3 + 1)) {
- const float x_338 = mm_Asub.arr[(tileRow + innerRow_3)].arr[k];
+ const float x_338 = mm_Asub[(tileRow + innerRow_3)][k];
ACached = x_338;
innerCol_3 = 0;
for(; (innerCol_3 < 1); innerCol_3 = (innerCol_3 + 1)) {
const int x_347 = innerRow_3;
const int x_348 = innerCol_3;
const float x_349 = ACached;
- const float x_352 = BCached.arr[innerCol_3];
- const float x_355 = acc.arr[x_347].arr[x_348];
- acc.arr[x_347].arr[x_348] = (x_355 + (x_349 * x_352));
+ const float x_352 = BCached[innerCol_3];
+ const float x_355 = acc[x_347][x_348];
+ acc[x_347][x_348] = (x_355 + (x_349 * x_352));
}
}
}
@@ -310,7 +290,7 @@
const int x_404 = innerCol_4;
param_7 = (globalRow + innerRow_4);
param_8 = (x_400 + x_401);
- const float x_409 = acc.arr[x_403].arr[x_404];
+ const float x_409 = acc[x_403][x_404];
param_9 = x_409;
mm_write_i1_i1_f1_(param_7, param_8, param_9);
}
@@ -356,9 +336,9 @@
const uint3 gl_GlobalInvocationID_param = tint_symbol.gl_GlobalInvocationID_param;
const uint local_invocation_index = tint_symbol.local_invocation_index;
if ((local_invocation_index == 0u)) {
- const tint_array_wrapper tint_symbol_6 = {(tint_array_wrapper_1[64])0};
+ const float tint_symbol_6[64][64] = (float[64][64])0;
mm_Asub = tint_symbol_6;
- const tint_array_wrapper_2 tint_symbol_7 = {(tint_array_wrapper_3[64])0};
+ const float tint_symbol_7[64][1] = (float[64][1])0;
mm_Bsub = tint_symbol_7;
}
GroupMemoryBarrierWithGroupSync();
diff --git a/test/expressions/zero_init/array/bool.wgsl.expected.hlsl b/test/expressions/zero_init/array/bool.wgsl.expected.hlsl
index bb059a1..7231ab6 100644
--- a/test/expressions/zero_init/array/bool.wgsl.expected.hlsl
+++ b/test/expressions/zero_init/array/bool.wgsl.expected.hlsl
@@ -3,10 +3,6 @@
return;
}
-struct tint_array_wrapper {
- bool arr[4];
-};
-
void f() {
- tint_array_wrapper v = {(bool[4])0};
+ bool v[4] = (bool[4])0;
}
diff --git a/test/expressions/zero_init/array/f32.wgsl.expected.hlsl b/test/expressions/zero_init/array/f32.wgsl.expected.hlsl
index 6e095b3..fdd7f6f 100644
--- a/test/expressions/zero_init/array/f32.wgsl.expected.hlsl
+++ b/test/expressions/zero_init/array/f32.wgsl.expected.hlsl
@@ -3,10 +3,6 @@
return;
}
-struct tint_array_wrapper {
- float arr[4];
-};
-
void f() {
- tint_array_wrapper v = {(float[4])0};
+ float v[4] = (float[4])0;
}
diff --git a/test/expressions/zero_init/array/i32.wgsl.expected.hlsl b/test/expressions/zero_init/array/i32.wgsl.expected.hlsl
index 8ba61ef..0b0cdfc 100644
--- a/test/expressions/zero_init/array/i32.wgsl.expected.hlsl
+++ b/test/expressions/zero_init/array/i32.wgsl.expected.hlsl
@@ -3,10 +3,6 @@
return;
}
-struct tint_array_wrapper {
- int arr[4];
-};
-
void f() {
- tint_array_wrapper v = {(int[4])0};
+ int v[4] = (int[4])0;
}
diff --git a/test/expressions/zero_init/array/struct.wgsl.expected.hlsl b/test/expressions/zero_init/array/struct.wgsl.expected.hlsl
index 8d7f4e4..f8250ba 100644
--- a/test/expressions/zero_init/array/struct.wgsl.expected.hlsl
+++ b/test/expressions/zero_init/array/struct.wgsl.expected.hlsl
@@ -9,10 +9,7 @@
float f;
bool b;
};
-struct tint_array_wrapper {
- S arr[4];
-};
void f() {
- tint_array_wrapper v = {(S[4])0};
+ S v[4] = (S[4])0;
}
diff --git a/test/expressions/zero_init/array/u32.wgsl.expected.hlsl b/test/expressions/zero_init/array/u32.wgsl.expected.hlsl
index b3253f8..acb74fc 100644
--- a/test/expressions/zero_init/array/u32.wgsl.expected.hlsl
+++ b/test/expressions/zero_init/array/u32.wgsl.expected.hlsl
@@ -3,10 +3,6 @@
return;
}
-struct tint_array_wrapper {
- uint arr[4];
-};
-
void f() {
- tint_array_wrapper v = {(uint[4])0};
+ uint v[4] = (uint[4])0;
}
diff --git a/test/expressions/zero_init/struct/array.wgsl.expected.hlsl b/test/expressions/zero_init/struct/array.wgsl.expected.hlsl
index c514b14..6b9d582 100644
--- a/test/expressions/zero_init/struct/array.wgsl.expected.hlsl
+++ b/test/expressions/zero_init/struct/array.wgsl.expected.hlsl
@@ -3,11 +3,8 @@
return;
}
-struct tint_array_wrapper {
- float arr[4];
-};
struct S {
- tint_array_wrapper a;
+ float a[4];
};
void f() {
diff --git a/test/samples/triangle.wgsl.expected.hlsl b/test/samples/triangle.wgsl.expected.hlsl
index 29fc958..21724d6 100644
--- a/test/samples/triangle.wgsl.expected.hlsl
+++ b/test/samples/triangle.wgsl.expected.hlsl
@@ -4,14 +4,11 @@
struct tint_symbol_2 {
float4 value : SV_Position;
};
-struct tint_array_wrapper {
- float2 arr[3];
-};
tint_symbol_2 vtx_main(tint_symbol_1 tint_symbol) {
const uint VertexIndex = tint_symbol.VertexIndex;
- tint_array_wrapper pos = {{float2(0.0f, 0.5f), float2(-0.5f, -0.5f), float2(0.5f, -0.5f)}};
- const tint_symbol_2 tint_symbol_4 = {float4(pos.arr[VertexIndex], 0.0f, 1.0f)};
+ float2 pos[3] = {float2(0.0f, 0.5f), float2(-0.5f, -0.5f), float2(0.5f, -0.5f)};
+ const tint_symbol_2 tint_symbol_4 = {float4(pos[VertexIndex], 0.0f, 1.0f)};
return tint_symbol_4;
}
diff --git a/test/struct/type_constructor.wgsl.expected.hlsl b/test/struct/type_constructor.wgsl.expected.hlsl
index dc1dd7a..f6285aa 100644
--- a/test/struct/type_constructor.wgsl.expected.hlsl
+++ b/test/struct/type_constructor.wgsl.expected.hlsl
@@ -13,14 +13,8 @@
S1 h;
S2 i;
};
-struct tint_array_wrapper {
- int arr[2];
-};
struct T {
- tint_array_wrapper a;
-};
-struct tint_array_wrapper_1 {
- T arr[2];
+ int a[2];
};
[numthreads(1, 1, 1)]
@@ -51,14 +45,14 @@
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 = {(T[2])0};
- const tint_array_wrapper tint_symbol_13 = {{1, 2}};
+ const T aosoa_empty[2] = (T[2])0;
+ const int tint_symbol_13[2] = {1, 2};
const T tint_symbol_14 = {tint_symbol_13};
- const tint_array_wrapper tint_symbol_15 = {{3, 4}};
+ const int tint_symbol_15[2] = {3, 4};
const T tint_symbol_16 = {tint_symbol_15};
- const tint_array_wrapper_1 aosoa_nonempty = {{tint_symbol_14, tint_symbol_16}};
- const tint_array_wrapper tint_symbol_17 = {{1, (aosoa_nonempty.arr[0].a.arr[0] + 1)}};
+ const T aosoa_nonempty[2] = {tint_symbol_14, tint_symbol_16};
+ const int tint_symbol_17[2] = {1, (aosoa_nonempty[0].a[0] + 1)};
const T tint_symbol_18 = {tint_symbol_17};
- const tint_array_wrapper_1 aosoa_nonempty_with_expr = {{tint_symbol_18, aosoa_nonempty.arr[1]}};
+ const T aosoa_nonempty_with_expr[2] = {tint_symbol_18, aosoa_nonempty[1]};
return;
}
diff --git a/test/types/function_scope_declarations.wgsl.expected.hlsl b/test/types/function_scope_declarations.wgsl.expected.hlsl
index aae4fe9..c120722 100644
--- a/test/types/function_scope_declarations.wgsl.expected.hlsl
+++ b/test/types/function_scope_declarations.wgsl.expected.hlsl
@@ -1,9 +1,6 @@
struct S {
float a;
};
-struct tint_array_wrapper {
- float arr[4];
-};
[numthreads(1, 1, 1)]
void main() {
@@ -23,8 +20,8 @@
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 = {(float[4])0};
- const tint_array_wrapper arr_let = {(float[4])0};
+ float arr_var[4] = (float[4])0;
+ const float arr_let[4] = (float[4])0;
S struct_var = (S)0;
const S struct_let = (S)0;
return;
diff --git a/test/types/module_scope_let.wgsl.expected.hlsl b/test/types/module_scope_let.wgsl.expected.hlsl
index db17206..d62a81d 100644
--- a/test/types/module_scope_let.wgsl.expected.hlsl
+++ b/test/types/module_scope_let.wgsl.expected.hlsl
@@ -10,12 +10,7 @@
static const uint3 v3u32_let = uint3(0u, 0u, 0u);
static const float4 v4f32_let = float4(0.0f, 0.0f, 0.0f, 0.0f);
static 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);
-
-struct tint_array_wrapper {
- float arr[4];
-};
-
-static const tint_array_wrapper arr_let = {(float[4])0};
+static const float arr_let[4] = (float[4])0;
static const S struct_let = (S)0;
[numthreads(1, 1, 1)]
diff --git a/test/types/module_scope_var.wgsl.expected.hlsl b/test/types/module_scope_var.wgsl.expected.hlsl
index 1fc2b00..fefdd19 100644
--- a/test/types/module_scope_var.wgsl.expected.hlsl
+++ b/test/types/module_scope_var.wgsl.expected.hlsl
@@ -10,12 +10,7 @@
static uint3 v3u32_var = uint3(0u, 0u, 0u);
static float4 v4f32_var = float4(0.0f, 0.0f, 0.0f, 0.0f);
static float2x3 m2x3_var = float2x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
-
-struct tint_array_wrapper {
- float arr[4];
-};
-
-static tint_array_wrapper arr_var = (tint_array_wrapper)0;
+static float arr_var[4] = (float[4])0;
static S struct_var = (S)0;
[numthreads(1, 1, 1)]
@@ -28,7 +23,7 @@
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 = {(float[4])0};
+ const float tint_symbol[4] = (float[4])0;
arr_var = tint_symbol;
const S tint_symbol_1 = (S)0;
struct_var = tint_symbol_1;
diff --git a/test/types/module_scope_var_initializers.wgsl.expected.hlsl b/test/types/module_scope_var_initializers.wgsl.expected.hlsl
index 337afc2..fefdd19 100644
--- a/test/types/module_scope_var_initializers.wgsl.expected.hlsl
+++ b/test/types/module_scope_var_initializers.wgsl.expected.hlsl
@@ -10,12 +10,7 @@
static uint3 v3u32_var = uint3(0u, 0u, 0u);
static float4 v4f32_var = float4(0.0f, 0.0f, 0.0f, 0.0f);
static float2x3 m2x3_var = float2x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
-
-struct tint_array_wrapper {
- float arr[4];
-};
-
-static tint_array_wrapper arr_var = {(float[4])0};
+static float arr_var[4] = (float[4])0;
static S struct_var = (S)0;
[numthreads(1, 1, 1)]
@@ -28,7 +23,7 @@
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 = {(float[4])0};
+ const float tint_symbol[4] = (float[4])0;
arr_var = tint_symbol;
const S tint_symbol_1 = (S)0;
struct_var = tint_symbol_1;
diff --git a/test/types/parameters.wgsl.expected.hlsl b/test/types/parameters.wgsl.expected.hlsl
index 2950517..10704a7 100644
--- a/test/types/parameters.wgsl.expected.hlsl
+++ b/test/types/parameters.wgsl.expected.hlsl
@@ -1,11 +1,8 @@
struct S {
float a;
};
-struct tint_array_wrapper {
- float arr[4];
-};
-void foo(bool param_bool, int param_i32, uint param_u32, float param_f32, int2 param_v2i32, uint3 param_v3u32, float4 param_v4f32, float2x3 param_m2x3, tint_array_wrapper param_arr, S param_struct, inout float param_ptr_f32, inout float4 param_ptr_vec, inout tint_array_wrapper param_ptr_arr) {
+void foo(bool param_bool, int param_i32, uint param_u32, float param_f32, int2 param_v2i32, uint3 param_v3u32, float4 param_v4f32, float2x3 param_m2x3, float param_arr[4], S param_struct, inout float param_ptr_f32, inout float4 param_ptr_vec, inout float param_ptr_arr[4]) {
}
[numthreads(1, 1, 1)]
diff --git a/test/types/return_types.wgsl.expected.hlsl b/test/types/return_types.wgsl.expected.hlsl
index 453c90d..1d057d4 100644
--- a/test/types/return_types.wgsl.expected.hlsl
+++ b/test/types/return_types.wgsl.expected.hlsl
@@ -34,12 +34,9 @@
return float2x3(0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f);
}
-struct tint_array_wrapper {
- float arr[4];
-};
-
-tint_array_wrapper ret_arr() {
- const tint_array_wrapper tint_symbol = {(float[4])0};
+typedef float ret_arr_ret[4];
+ret_arr_ret ret_arr() {
+ const float tint_symbol[4] = (float[4])0;
return tint_symbol;
}
diff --git a/test/types/struct_members.wgsl.expected.hlsl b/test/types/struct_members.wgsl.expected.hlsl
index b3ec0b1..671d9af 100644
--- a/test/types/struct_members.wgsl.expected.hlsl
+++ b/test/types/struct_members.wgsl.expected.hlsl
@@ -1,9 +1,6 @@
struct S_inner {
float a;
};
-struct tint_array_wrapper {
- float arr[4];
-};
struct S {
bool member_bool;
int member_i32;
@@ -13,7 +10,7 @@
uint3 member_v3u32;
float4 member_v4f32;
float2x3 member_m2x3;
- tint_array_wrapper member_arr;
+ float member_arr[4];
S_inner member_struct;
};
diff --git a/test/var/inferred/function-let.wgsl.expected.hlsl b/test/var/inferred/function-let.wgsl.expected.hlsl
index f43f9b9..98f4667 100644
--- a/test/var/inferred/function-let.wgsl.expected.hlsl
+++ b/test/var/inferred/function-let.wgsl.expected.hlsl
@@ -1,9 +1,6 @@
struct MyStruct {
float f1;
};
-struct tint_array_wrapper {
- float arr[10];
-};
int ret_i32() {
return 1;
@@ -22,8 +19,9 @@
return tint_symbol_1;
}
-tint_array_wrapper ret_MyArray() {
- const tint_array_wrapper tint_symbol_2 = {(float[10])0};
+typedef float ret_MyArray_ret[10];
+ret_MyArray_ret ret_MyArray() {
+ const float tint_symbol_2[10] = (float[10])0;
return tint_symbol_2;
}
@@ -36,13 +34,13 @@
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 = {(float[10])0};
+ const float v9[10] = (float[10])0;
const int v10 = ret_i32();
const uint v11 = ret_u32();
const float v12 = ret_f32();
const MyStruct v13 = ret_MyStruct();
const MyStruct v14 = ret_MyStruct();
- const tint_array_wrapper v15 = ret_MyArray();
+ const float v15[10] = ret_MyArray();
}
struct tint_symbol {
diff --git a/test/var/inferred/function-var.wgsl.expected.hlsl b/test/var/inferred/function-var.wgsl.expected.hlsl
index 6619cd7..f91c6ec 100644
--- a/test/var/inferred/function-var.wgsl.expected.hlsl
+++ b/test/var/inferred/function-var.wgsl.expected.hlsl
@@ -1,9 +1,6 @@
struct MyStruct {
float f1;
};
-struct tint_array_wrapper {
- float arr[10];
-};
int ret_i32() {
return 1;
@@ -22,8 +19,9 @@
return tint_symbol_1;
}
-tint_array_wrapper ret_MyArray() {
- const tint_array_wrapper tint_symbol_2 = {(float[10])0};
+typedef float ret_MyArray_ret[10];
+ret_MyArray_ret ret_MyArray() {
+ const float tint_symbol_2[10] = (float[10])0;
return tint_symbol_2;
}
@@ -36,13 +34,13 @@
float3 v6 = float3(1.0f, 1.0f, 1.0f);
float3x3 v7 = float3x3(v6, v6, v6);
MyStruct v8 = {1.0f};
- tint_array_wrapper v9 = {(float[10])0};
+ float v9[10] = (float[10])0;
int v10 = ret_i32();
uint v11 = ret_u32();
float v12 = ret_f32();
MyStruct v13 = ret_MyStruct();
MyStruct v14 = ret_MyStruct();
- tint_array_wrapper v15 = ret_MyArray();
+ float v15[10] = ret_MyArray();
}
struct tint_symbol {
diff --git a/test/var/inferred/global-let.wgsl.expected.hlsl b/test/var/inferred/global-let.wgsl.expected.hlsl
index 70b351b..4784df7 100644
--- a/test/var/inferred/global-let.wgsl.expected.hlsl
+++ b/test/var/inferred/global-let.wgsl.expected.hlsl
@@ -1,9 +1,6 @@
struct MyStruct {
float f1;
};
-struct tint_array_wrapper {
- float arr[10];
-};
static const int v1 = 1;
static const uint v2 = 1u;
@@ -13,7 +10,7 @@
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 = (MyStruct)0;
-static const tint_array_wrapper v9 = {(float[10])0};
+static const float v9[10] = (float[10])0;
struct tint_symbol {
float4 value : SV_Target0;
diff --git a/test/var/initialization/function/array.wgsl.expected.hlsl b/test/var/initialization/function/array.wgsl.expected.hlsl
index db08453..921ae91 100644
--- a/test/var/initialization/function/array.wgsl.expected.hlsl
+++ b/test/var/initialization/function/array.wgsl.expected.hlsl
@@ -1,10 +1,6 @@
-struct tint_array_wrapper {
- int arr[3];
-};
-
[numthreads(1, 1, 1)]
void main() {
- tint_array_wrapper v = (tint_array_wrapper)0;
+ int v[3] = (int[3])0;
v;
return;
}
diff --git a/test/var/initialization/private/array.wgsl.expected.hlsl b/test/var/initialization/private/array.wgsl.expected.hlsl
index 4957baf..48b2b5b 100644
--- a/test/var/initialization/private/array.wgsl.expected.hlsl
+++ b/test/var/initialization/private/array.wgsl.expected.hlsl
@@ -1,8 +1,4 @@
-struct tint_array_wrapper {
- int arr[3];
-};
-
-static tint_array_wrapper v = (tint_array_wrapper)0;
+static int v[3] = (int[3])0;
[numthreads(1, 1, 1)]
void main() {
diff --git a/test/var/initialization/workgroup/array.wgsl.expected.hlsl b/test/var/initialization/workgroup/array.wgsl.expected.hlsl
index 768b850..625ed65 100644
--- a/test/var/initialization/workgroup/array.wgsl.expected.hlsl
+++ b/test/var/initialization/workgroup/array.wgsl.expected.hlsl
@@ -1,8 +1,4 @@
-struct tint_array_wrapper {
- int arr[3];
-};
-
-groupshared tint_array_wrapper v;
+groupshared int v[3];
struct tint_symbol_1 {
uint local_invocation_index : SV_GroupIndex;
@@ -12,7 +8,7 @@
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 = {(int[3])0};
+ const int tint_symbol_2[3] = (int[3])0;
v = tint_symbol_2;
}
GroupMemoryBarrierWithGroupSync();