From 663271dca4c3abcdeb28c205c18c8f3a8db25ad6 Mon Sep 17 00:00:00 2001 From: Ben Clayton Date: Mon, 21 Jun 2021 08:49:27 +0000 Subject: [PATCH] writer/msl: Fix continuing block emission Inline the `continuing` block in the places where `continue` is called. Simplifies the emission, and fixes emission of `let` statements in the loop. This fix matches the same approach in writer/hlsl. See: https://dawn-review.googlesource.com/c/tint/+/51784 Fixed: tint:833 Fixed: tint:914 Change-Id: If4d8cde62dfaf8efa24272854ca7ff5edc0a8234 Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/55341 Commit-Queue: Ben Clayton Kokoro: Kokoro Reviewed-by: David Neto --- src/writer/msl/generator_impl.cc | 143 +- src/writer/msl/generator_impl.h | 14 +- .../msl/generator_impl_continue_test.cc | 11 +- src/writer/msl/generator_impl_loop_test.cc | 56 +- test/bug/tint/221.wgsl.expected.msl | 46 +- test/bug/tint/744.wgsl.expected.msl | 58 +- test/bug/tint/749.spvasm.expected.msl | 3280 ++++++++--------- test/bug/tint/757.wgsl.expected.msl | 19 +- test/bug/tint/914.wgsl.expected.msl | 290 +- .../gen/arrayLength/1588cd.wgsl.expected.msl | 44 +- .../gen/arrayLength/61b1c7.wgsl.expected.msl | 44 +- .../gen/arrayLength/a0f5ca.wgsl.expected.msl | 44 +- .../gen/arrayLength/cdd123.wgsl.expected.msl | 44 +- .../gen/arrayLength/cfca0a.wgsl.expected.msl | 44 +- .../gen/arrayLength/eb510f.wgsl.expected.msl | 44 +- test/samples/compute_boids.wgsl.expected.msl | 48 +- 16 files changed, 2061 insertions(+), 2168 deletions(-) diff --git a/src/writer/msl/generator_impl.cc b/src/writer/msl/generator_impl.cc index 9868ed9c8c..cfc51cc8d8 100644 --- a/src/writer/msl/generator_impl.cc +++ b/src/writer/msl/generator_impl.cc @@ -50,6 +50,7 @@ #include "src/sem/variable.h" #include "src/sem/vector_type.h" #include "src/sem/void_type.h" +#include "src/utils/scoped_assignment.h" #include "src/writer/float_to_string.h" namespace tint { @@ -875,6 +876,9 @@ bool GeneratorImpl::EmitConstructor(ast::ConstructorExpression* expr) { } bool GeneratorImpl::EmitContinue(ast::ContinueStatement*) { + if (!emit_continuing_()) { + return false; + } make_indent(); out_ << "continue;" << std::endl; return true; @@ -1279,91 +1283,30 @@ bool GeneratorImpl::EmitIdentifier(ast::IdentifierExpression* expr) { } bool GeneratorImpl::EmitLoop(ast::LoopStatement* stmt) { - loop_emission_counter_++; - - std::string guard = - "tint_msl_is_first_" + std::to_string(loop_emission_counter_); - - if (stmt->has_continuing()) { - make_indent(); - - // Continuing variables get their own scope. - out_ << "{" << std::endl; - increment_indent(); - - make_indent(); - out_ << "bool " << guard << " = true;" << std::endl; - - // A continuing block may use variables declared in the method body. As a - // first pass, if we have a continuing, we pull all declarations outside - // the for loop into the continuing scope. Then, the variable declarations - // will be turned into assignments. - for (auto* s : *(stmt->body())) { - if (auto* decl = s->As()) { - if (!EmitVariable(program_->Sem().Get(decl->variable()), true)) { - return false; - } - } - } - } - make_indent(); - out_ << "for(;;) {" << std::endl; - increment_indent(); - if (stmt->has_continuing()) { - make_indent(); - out_ << "if (!" << guard << ") "; - - if (!EmitBlockAndNewline(stmt->continuing())) { - return false; - } - - make_indent(); - out_ << guard << " = false;" << std::endl; - out_ << std::endl; - } - - for (auto* s : *(stmt->body())) { - // If we have a continuing block we've already emitted the variable - // declaration before the loop, so treat it as an assignment. - auto* decl = s->As(); - if (decl != nullptr && stmt->has_continuing()) { + auto emit_continuing = [this, stmt]() { + if (stmt->has_continuing()) { make_indent(); - - auto* var = decl->variable(); - out_ << program_->Symbols().NameFor(var->symbol()) << " = "; - if (var->constructor() != nullptr) { - if (!EmitExpression(var->constructor())) { - return false; - } - } else { - auto* type = program_->Sem().Get(var)->Type()->UnwrapRef(); - if (!EmitZeroValue(type)) { - return false; - } + if (!EmitBlock(stmt->continuing())) { + return false; } - out_ << ";" << std::endl; - continue; + out_ << std::endl; } + return true; + }; - if (!EmitStatement(s)) { - return false; + TINT_SCOPED_ASSIGNMENT(emit_continuing_, emit_continuing); + bool ok = EmitBlockBraces("while (true)", [&] { + for (auto* s : stmt->body()->statements()) { + if (!EmitStatement(s)) { + return false; + } } - } - - decrement_indent(); - make_indent(); - out_ << "}" << std::endl; - - // Close the scope for any continuing variables. - if (stmt->has_continuing()) { - decrement_indent(); - make_indent(); - out_ << "}" << std::endl; - } - - return true; + return emit_continuing(); + }); + out_ << std::endl; + return ok; } bool GeneratorImpl::EmitDiscard(ast::DiscardStatement*) { @@ -1530,7 +1473,7 @@ bool GeneratorImpl::EmitStatement(ast::Statement* stmt) { } if (auto* v = stmt->As()) { auto* var = program_->Sem().Get(v->variable()); - return EmitVariable(var, false); + return EmitVariable(var); } diagnostics_.add_error("unknown statement type: " + program_->str(stmt)); @@ -1882,8 +1825,7 @@ bool GeneratorImpl::EmitUnaryOp(ast::UnaryOpExpression* expr) { return true; } -bool GeneratorImpl::EmitVariable(const sem::Variable* var, - bool skip_constructor) { +bool GeneratorImpl::EmitVariable(const sem::Variable* var) { make_indent(); auto* decl = var->Declaration(); @@ -1925,19 +1867,17 @@ bool GeneratorImpl::EmitVariable(const sem::Variable* var, out_ << " " << name; } - if (!skip_constructor) { - if (decl->constructor() != nullptr) { - out_ << " = "; - if (!EmitExpression(decl->constructor())) { - return false; - } - } else if (var->StorageClass() == ast::StorageClass::kPrivate || - var->StorageClass() == ast::StorageClass::kFunction || - var->StorageClass() == ast::StorageClass::kNone) { - out_ << " = "; - if (!EmitZeroValue(type)) { - return false; - } + if (decl->constructor() != nullptr) { + out_ << " = "; + if (!EmitExpression(decl->constructor())) { + return false; + } + } else if (var->StorageClass() == ast::StorageClass::kPrivate || + var->StorageClass() == ast::StorageClass::kFunction || + var->StorageClass() == ast::StorageClass::kNone) { + out_ << " = "; + if (!EmitZeroValue(type)) { + return false; } } out_ << ";" << std::endl; @@ -2046,6 +1986,21 @@ GeneratorImpl::SizeAndAlign GeneratorImpl::MslPackedTypeSizeAndAlign( return {}; } +template +bool GeneratorImpl::EmitBlockBraces(const std::string& prefix, F&& cb) { + out_ << prefix << (prefix.empty() ? "{" : " {") << std::endl; + increment_indent(); + + if (!cb()) { + return false; + } + + decrement_indent(); + make_indent(); + out_ << "}"; + return true; +} + } // namespace msl } // namespace writer } // namespace tint diff --git a/src/writer/msl/generator_impl.h b/src/writer/msl/generator_impl.h index 32660f6b6a..7ce7a657e3 100644 --- a/src/writer/msl/generator_impl.h +++ b/src/writer/msl/generator_impl.h @@ -209,9 +209,8 @@ class GeneratorImpl : public TextGenerator { bool EmitUnaryOp(ast::UnaryOpExpression* expr); /// Handles generating a variable /// @param var the variable to generate - /// @param skip_constructor set true if the constructor should be skipped /// @returns true if the variable was emitted - bool EmitVariable(const sem::Variable* var, bool skip_constructor); + bool EmitVariable(const sem::Variable* var); /// Handles generating a program scope constant variable /// @param var the variable to emit /// @returns true if the variable was emitted @@ -260,8 +259,17 @@ class GeneratorImpl : public TextGenerator { /// type. SizeAndAlign MslPackedTypeSizeAndAlign(const sem::Type* ty); + /// Emits `prefix`, followed by an opening brace `{`, then calls `cb` to emit + /// the block body, then finally emits the closing brace `}`. + /// @param prefix the string to emit before the opening brace + /// @param cb a function or function-like object with the signature `bool()` + /// that emits the block body. + /// @returns the return value of `cb`. + template + bool EmitBlockBraces(const std::string& prefix, F&& cb); + const Program* program_ = nullptr; - uint32_t loop_emission_counter_ = 0; + std::function emit_continuing_; }; } // namespace msl diff --git a/src/writer/msl/generator_impl_continue_test.cc b/src/writer/msl/generator_impl_continue_test.cc index 1b490472e7..72eb505513 100644 --- a/src/writer/msl/generator_impl_continue_test.cc +++ b/src/writer/msl/generator_impl_continue_test.cc @@ -22,15 +22,18 @@ namespace { using MslGeneratorImplTest = TestHelper; TEST_F(MslGeneratorImplTest, Emit_Continue) { - auto* c = create(); - WrapInFunction(Loop(Block(c))); + auto* loop = Loop(Block(create())); + WrapInFunction(loop); GeneratorImpl& gen = Build(); gen.increment_indent(); - ASSERT_TRUE(gen.EmitStatement(c)) << gen.error(); - EXPECT_EQ(gen.result(), " continue;\n"); + ASSERT_TRUE(gen.EmitStatement(loop)) << gen.error(); + EXPECT_EQ(gen.result(), R"( while (true) { + continue; + } +)"); } } // namespace diff --git a/src/writer/msl/generator_impl_loop_test.cc b/src/writer/msl/generator_impl_loop_test.cc index d91f5093df..0d18299812 100644 --- a/src/writer/msl/generator_impl_loop_test.cc +++ b/src/writer/msl/generator_impl_loop_test.cc @@ -33,7 +33,7 @@ TEST_F(MslGeneratorImplTest, Emit_Loop) { gen.increment_indent(); ASSERT_TRUE(gen.EmitStatement(l)) << gen.error(); - EXPECT_EQ(gen.result(), R"( for(;;) { + EXPECT_EQ(gen.result(), R"( while (true) { discard_fragment(); } )"); @@ -50,15 +50,10 @@ TEST_F(MslGeneratorImplTest, Emit_LoopWithContinuing) { gen.increment_indent(); ASSERT_TRUE(gen.EmitStatement(l)) << gen.error(); - EXPECT_EQ(gen.result(), R"( { - bool tint_msl_is_first_1 = true; - for(;;) { - if (!tint_msl_is_first_1) { - return; - } - tint_msl_is_first_1 = false; - - discard_fragment(); + EXPECT_EQ(gen.result(), R"( while (true) { + discard_fragment(); + { + return; } } )"); @@ -84,26 +79,16 @@ TEST_F(MslGeneratorImplTest, Emit_LoopNestedWithContinuing) { gen.increment_indent(); ASSERT_TRUE(gen.EmitStatement(outer)) << gen.error(); - EXPECT_EQ(gen.result(), R"( { - bool tint_msl_is_first_1 = true; - for(;;) { - if (!tint_msl_is_first_1) { - lhs = rhs; - } - tint_msl_is_first_1 = false; - + EXPECT_EQ(gen.result(), R"( while (true) { + while (true) { + discard_fragment(); { - bool tint_msl_is_first_2 = true; - for(;;) { - if (!tint_msl_is_first_2) { - return; - } - tint_msl_is_first_2 = false; - - discard_fragment(); - } + return; } } + { + lhs = rhs; + } } )"); } @@ -146,18 +131,11 @@ TEST_F(MslGeneratorImplTest, Emit_LoopWithVarUsedInContinuing) { gen.increment_indent(); ASSERT_TRUE(gen.EmitStatement(outer)) << gen.error(); - EXPECT_EQ(gen.result(), R"( { - bool tint_msl_is_first_1 = true; - float lhs; - float other; - for(;;) { - if (!tint_msl_is_first_1) { - lhs = rhs; - } - tint_msl_is_first_1 = false; - - lhs = 2.400000095f; - other = 0.0f; + EXPECT_EQ(gen.result(), R"( while (true) { + float lhs = 2.400000095f; + float other = 0.0f; + { + lhs = rhs; } } )"); diff --git a/test/bug/tint/221.wgsl.expected.msl b/test/bug/tint/221.wgsl.expected.msl index 1d53865666..e23d4940cb 100644 --- a/test/bug/tint/221.wgsl.expected.msl +++ b/test/bug/tint/221.wgsl.expected.msl @@ -1,18 +1,34 @@ -SKIP: FAILED +#include +using namespace metal; +struct tint_array_wrapper { + /* 0x0000 */ uint arr[50]; +}; +struct Buf { + /* 0x0000 */ uint count; + /* 0x0004 */ tint_array_wrapper data; +}; +kernel void tint_symbol(device Buf& b [[buffer(0)]]) { + uint i = 0u; + while (true) { + if ((i >= b.count)) { + break; + } + uint const p_save = i; + if (((i % 2u) == 0u)) { + { + b.data.arr[p_save] = (b.data.arr[p_save] * 2u); + i = (i + 1u); + } + continue; + } + b.data.arr[p_save] = 0u; + { + b.data.arr[p_save] = (b.data.arr[p_save] * 2u); + i = (i + 1u); + } + } + return; +} -Validation Failure: - -Compilation failed: - -program_source:16:24: error: default initialization of an object of const type 'device uint *const' (aka 'device unsigned int *const') - device uint* const p; - ^ - = nullptr -program_source:27:9: error: cannot assign to variable 'p' with const-qualified type 'device uint *const' (aka 'device unsigned int *const') - p = &(b.data.array[i]); - ~ ^ -program_source:16:24: note: variable 'p' declared const here - device uint* const p; - ~~~~~~~~~~~~~~~~~~~^ diff --git a/test/bug/tint/744.wgsl.expected.msl b/test/bug/tint/744.wgsl.expected.msl index 95ce93c8b3..7855d18d57 100644 --- a/test/bug/tint/744.wgsl.expected.msl +++ b/test/bug/tint/744.wgsl.expected.msl @@ -1,28 +1,36 @@ -SKIP: FAILED +#include +using namespace metal; +struct Uniforms { + /* 0x0000 */ packed_uint2 aShape; + /* 0x0008 */ packed_uint2 bShape; + /* 0x0010 */ packed_uint2 outShape; +}; +struct Matrix { + /* 0x0000 */ uint numbers[1]; +}; +kernel void tint_symbol(uint3 global_id [[thread_position_in_grid]], constant Uniforms& uniforms [[buffer(3)]], const device Matrix& firstMatrix [[buffer(0)]], const device Matrix& secondMatrix [[buffer(1)]], device Matrix& resultMatrix [[buffer(2)]]) { + uint2 const resultCell = uint2(global_id.y, global_id.x); + uint const dimInner = uniforms.aShape.y; + uint const dimOutter = uniforms.outShape.y; + uint result = 0u; + { + uint i = 0u; + while (true) { + if (!((i < dimInner))) { + break; + } + uint const a = (i + (resultCell.x * dimInner)); + uint const b = (resultCell.y + (i * dimOutter)); + result = (result + (firstMatrix.numbers[a] * secondMatrix.numbers[b])); + { + i = (i + 1u); + } + } + } + uint const index = (resultCell.y + (resultCell.x * dimOutter)); + resultMatrix.numbers[index] = result; + return; +} -Validation Failure: - -Compilation failed: - -program_source:22:18: error: default initialization of an object of const type 'const uint' (aka 'const unsigned int') - uint const a; - ^ - = 0 -program_source:23:18: error: default initialization of an object of const type 'const uint' (aka 'const unsigned int') - uint const b; - ^ - = 0 -program_source:33:11: error: cannot assign to variable 'a' with const-qualified type 'const uint' (aka 'const unsigned int') - a = (i + (resultCell.x * dimInner)); - ~ ^ -program_source:22:18: note: variable 'a' declared const here - uint const a; - ~~~~~~~~~~~^ -program_source:34:11: error: cannot assign to variable 'b' with const-qualified type 'const uint' (aka 'const unsigned int') - b = (resultCell.y + (i * dimOutter)); - ~ ^ -program_source:23:18: note: variable 'b' declared const here - uint const b; - ~~~~~~~~~~~^ diff --git a/test/bug/tint/749.spvasm.expected.msl b/test/bug/tint/749.spvasm.expected.msl index 90b143c867..1e5e8500d6 100644 --- a/test/bug/tint/749.spvasm.expected.msl +++ b/test/bug/tint/749.spvasm.expected.msl @@ -1,1750 +1,1560 @@ -SKIP: FAILED +#include +using namespace metal; +struct tint_array_wrapper { + int arr[10]; +}; +struct QuicksortObject { + tint_array_wrapper numbers; +}; +struct buf0 { + /* 0x0000 */ packed_float2 resolution; +}; +struct main_out { + float4 x_GLF_color; +}; +struct tint_symbol_2 { + float4 x_GLF_color [[color(0)]]; +}; - -Validation Failure: - -Compilation failed: - -program_source:66:47: warning: suggest braces around initialization of subobject - tint_array_wrapper_0 const tint_symbol_1 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; - ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ - { } -program_source:75:47: warning: suggest braces around initialization of subobject - tint_array_wrapper_0 const tint_symbol_3 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; - ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ - { } -program_source:100:47: warning: suggest braces around initialization of subobject - tint_array_wrapper_0 const tint_symbol_5 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; - ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ - { } -program_source:104:16: warning: unused variable 'x_532' - float3 const x_532 = float3(x_528.x, x_528.y, x_528.x); - ^ -program_source:95:16: warning: unused variable 'x_531' - float3 const x_531 = float3(x_527.x, x_526.y, x_526.x); - ^ -program_source:87:16: warning: unused variable 'x_530' +void swap_i1_i1_(thread int* const i, thread int* const j, thread QuicksortObject* const tint_symbol_83) { + int temp = 0; + int const x_932 = temp; + temp = 0; + temp = x_932; + float3 const x_523 = float3(float3(1.0f, 2.0f, 3.0f).z, float3(1.0f, 2.0f, 3.0f).y, float3(1.0f, 2.0f, 3.0f).z); + int const x_933 = *(i); + *(i) = 0; + *(i) = x_933; + int const x_28 = *(i); + int const x_934 = *(j); + *(j) = 0; + *(j) = x_934; + float3 const x_524 = float3(x_523.y, x_523.x, x_523.y); + int const x_935 = temp; + temp = 0; + temp = x_935; + int const x_30_save = x_28; + int const x_936 = (*(tint_symbol_83)).numbers.arr[x_30_save]; + (*(tint_symbol_83)).numbers.arr[x_30_save] = 0; + (*(tint_symbol_83)).numbers.arr[x_30_save] = x_936; + int const x_31 = (*(tint_symbol_83)).numbers.arr[x_30_save]; + int const x_937 = temp; + temp = 0; + temp = x_937; + temp = x_31; + int const x_938 = *(j); + *(j) = 0; + *(j) = x_938; + float3 const x_525 = float3(x_523.z, float3(1.0f, 2.0f, 3.0f).x, x_523.y); + int const x_939 = *(i); + *(i) = 0; + *(i) = x_939; + int const x_32 = *(i); + int const x_940 = (*(tint_symbol_83)).numbers.arr[x_30_save]; + (*(tint_symbol_83)).numbers.arr[x_30_save] = 0; + (*(tint_symbol_83)).numbers.arr[x_30_save] = x_940; + int const x_33 = *(j); + int const x_941 = *(i); + *(i) = 0; + *(i) = x_941; + float3 const x_526 = float3(x_525.x, x_525.z, x_525.z); + int const x_942 = (*(tint_symbol_83)).numbers.arr[x_30_save]; + (*(tint_symbol_83)).numbers.arr[x_30_save] = 0; + (*(tint_symbol_83)).numbers.arr[x_30_save] = x_942; + int const x_34_save = x_33; + int const x_35 = (*(tint_symbol_83)).numbers.arr[x_34_save]; + QuicksortObject const x_943 = *(tint_symbol_83); + tint_array_wrapper const tint_symbol_4 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + QuicksortObject const tint_symbol_5 = {.numbers=tint_symbol_4}; + *(tint_symbol_83) = tint_symbol_5; + *(tint_symbol_83) = x_943; + float2 const x_527 = float2(x_526.x, x_526.x); + int const x_36_save = x_32; + float3 const x_528 = float3(x_524.x, x_524.z, x_524.x); + (*(tint_symbol_83)).numbers.arr[x_36_save] = x_35; + QuicksortObject const x_944 = *(tint_symbol_83); + tint_array_wrapper const tint_symbol_6 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + QuicksortObject const tint_symbol_7 = {.numbers=tint_symbol_6}; + *(tint_symbol_83) = tint_symbol_7; + *(tint_symbol_83) = x_944; + float3 const x_529 = float3(x_526.y, x_526.z, x_526.x); + int const x_945 = *(i); + *(i) = 0; + *(i) = x_945; + int const x_37 = *(j); + int const x_946 = temp; + temp = 0; + temp = x_946; float2 const x_530 = float2(x_529.z, x_529.y); - ^ -program_source:158:47: warning: suggest braces around initialization of subobject - tint_array_wrapper_0 const tint_symbol_7 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; - ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ - { } -program_source:164:15: error: default initialization of an object of const type 'const int' - int const x_961; - ^ - = 0 -program_source:165:15: error: default initialization of an object of const type 'const int' - int const x_962; - ^ - = 0 -program_source:166:15: error: default initialization of an object of const type 'const int' - int const x_55; - ^ - = 0 -program_source:167:15: error: default initialization of an object of const type 'const int' - int const x_963; - ^ - = 0 -program_source:168:27: error: default initialization of an object of const type 'const QuicksortObject' without a user-provided default constructor - QuicksortObject const x_964; - ^ - {} -program_source:169:32: error: default initialization of an object of const type 'const tint_array_wrapper_0' without a user-provided default constructor - tint_array_wrapper_0 const tint_symbol_9; - ^ - {} -program_source:170:27: error: default initialization of an object of const type 'const QuicksortObject' without a user-provided default constructor - QuicksortObject const tint_symbol_10; - ^ - {} -program_source:171:15: error: default initialization of an object of const type 'const int' - int const x_56; - ^ - = 0 -program_source:172:15: error: default initialization of an object of const type 'const int' - int const x_965; - ^ - = 0 -program_source:173:15: error: default initialization of an object of const type 'const int' - int const x_966; - ^ - = 0 -program_source:174:15: error: default initialization of an object of const type 'const int' - int const x_967; - ^ - = 0 -program_source:175:15: error: default initialization of an object of const type 'const int' - int const x_968; - ^ - = 0 -program_source:176:15: error: default initialization of an object of const type 'const int' - int const x_60; - ^ - = 0 -program_source:177:15: error: default initialization of an object of const type 'const int' - int const x_969; - ^ - = 0 -program_source:178:23: error: default initialization of an object of const type 'int *const' - thread int* const x_61; - ^ - = nullptr -program_source:179:15: error: default initialization of an object of const type 'const int' - int const x_970; - ^ - = 0 -program_source:180:18: error: default initialization of an object of const type 'const float3' (vector of 3 'float' values) - float3 const x_539; - ^ -program_source:181:15: error: default initialization of an object of const type 'const int' - int const x_971; - ^ - = 0 -program_source:182:15: error: default initialization of an object of const type 'const int' - int const x_62; - ^ - = 0 -program_source:183:27: error: default initialization of an object of const type 'const QuicksortObject' without a user-provided default constructor - QuicksortObject const x_972; - ^ - {} -program_source:184:32: error: default initialization of an object of const type 'const tint_array_wrapper_0' without a user-provided default constructor - tint_array_wrapper_0 const tint_symbol_11; - ^ - {} -program_source:185:27: error: default initialization of an object of const type 'const QuicksortObject' without a user-provided default constructor - QuicksortObject const tint_symbol_12; - ^ - {} -program_source:186:15: error: default initialization of an object of const type 'const int' - int const x_63; - ^ - = 0 -program_source:187:18: error: default initialization of an object of const type 'const float2' (vector of 2 'float' values) - float2 const x_540; - ^ -program_source:188:15: error: default initialization of an object of const type 'const int' - int const x_973; - ^ - = 0 -program_source:189:15: error: default initialization of an object of const type 'const int' - int const x_974; - ^ - = 0 -program_source:190:18: error: default initialization of an object of const type 'const float3' (vector of 3 'float' values) - float3 const x_541; - ^ -program_source:191:15: error: default initialization of an object of const type 'const int' - int const x_975; - ^ - = 0 -program_source:192:27: error: default initialization of an object of const type 'const QuicksortObject' without a user-provided default constructor - QuicksortObject const x_986; - ^ - {} -program_source:193:32: error: default initialization of an object of const type 'const tint_array_wrapper_0' without a user-provided default constructor - tint_array_wrapper_0 const tint_symbol_13; - ^ - {} -program_source:194:27: error: default initialization of an object of const type 'const QuicksortObject' without a user-provided default constructor - QuicksortObject const tint_symbol_14; - ^ - {} -program_source:204:22: warning: unused variable 'x_547' - float3 const x_547 = float3(x_539.x, x_541.z, x_541.z); - ^ -program_source:215:22: warning: unused variable 'x_548' - float3 const x_548 = float3(x_541.y, x_541.z, x_541.x); - ^ -program_source:222:13: error: cannot assign to variable 'x_961' with const-qualified type 'const int' - x_961 = pivot; - ~~~~~ ^ -program_source:164:15: note: variable 'x_961' declared const here - int const x_961; - ~~~~~~~~~~^~~~~ -program_source:225:13: error: cannot assign to variable 'x_962' with const-qualified type 'const int' - x_962 = param_1; - ~~~~~ ^ -program_source:165:15: note: variable 'x_962' declared const here - int const x_962; - ~~~~~~~~~~^~~~~ -program_source:228:12: error: cannot assign to variable 'x_55' with const-qualified type 'const int' - x_55 = j_1; - ~~~~ ^ -program_source:166:15: note: variable 'x_55' declared const here - int const x_55; - ~~~~~~~~~~^~~~ -program_source:229:13: error: cannot assign to variable 'x_963' with const-qualified type 'const int' - x_963 = pivot; - ~~~~~ ^ -program_source:167:15: note: variable 'x_963' declared const here - int const x_963; - ~~~~~~~~~~^~~~~ -program_source:233:13: error: no viable overloaded '=' - x_964 = *(tint_symbol_80); - ~~~~~ ^ ~~~~~~~~~~~~~~~~~ -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const QuicksortObject', but method is not marked const -struct QuicksortObject { - ^ -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space device -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space threadgroup -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const QuicksortObject', but method is not marked const -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const QuicksortObject', but method is not marked const -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const QuicksortObject', but method is not marked const -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space device -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space device -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space device -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space threadgroup -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space threadgroup -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space threadgroup -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument has type 'const QuicksortObject', but method is not marked const -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument has type 'const QuicksortObject', but method is not marked const -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument has type 'const QuicksortObject', but method is not marked const -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space device -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space device -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space device -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space threadgroup -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space threadgroup -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space threadgroup -program_source:234:21: error: no viable overloaded '=' - tint_symbol_9 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; - ~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -struct tint_array_wrapper_0 { - ^ -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:235:22: error: no viable overloaded '=' - tint_symbol_10 = {.numbers=tint_symbol_9}; - ~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~ -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const QuicksortObject', but method is not marked const -struct QuicksortObject { - ^ -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space device -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space threadgroup -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const QuicksortObject', but method is not marked const -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const QuicksortObject', but method is not marked const -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const QuicksortObject', but method is not marked const -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space device -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space device -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space device -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space threadgroup -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space threadgroup -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space threadgroup -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument has type 'const QuicksortObject', but method is not marked const -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument has type 'const QuicksortObject', but method is not marked const -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument has type 'const QuicksortObject', but method is not marked const -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space device -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space device -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space device -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space threadgroup -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space threadgroup -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space threadgroup -program_source:238:12: error: cannot assign to variable 'x_56' with const-qualified type 'const int' - x_56 = *(h); - ~~~~ ^ -program_source:171:15: note: variable 'x_56' declared const here - int const x_56; - ~~~~~~~~~~^~~~ -program_source:239:13: error: cannot assign to variable 'x_965' with const-qualified type 'const int' - x_965 = *(h); - ~~~~~ ^ -program_source:172:15: note: variable 'x_965' declared const here - int const x_965; - ~~~~~~~~~~^~~~~ -program_source:242:13: error: cannot assign to variable 'x_966' with const-qualified type 'const int' - x_966 = param; - ~~~~~ ^ -program_source:173:15: note: variable 'x_966' declared const here - int const x_966; - ~~~~~~~~~~^~~~~ -program_source:245:13: error: cannot assign to variable 'x_967' with const-qualified type 'const int' - x_967 = j_1; - ~~~~~ ^ -program_source:174:15: note: variable 'x_967' declared const here - int const x_967; - ~~~~~~~~~~^~~~~ -program_source:249:13: error: cannot assign to variable 'x_968' with const-qualified type 'const int' - x_968 = param; - ~~~~~ ^ -program_source:175:15: note: variable 'x_968' declared const here - int const x_968; - ~~~~~~~~~~^~~~~ -program_source:256:12: error: cannot assign to variable 'x_60' with const-qualified type 'const int' - x_60 = j_1; - ~~~~ ^ -program_source:176:15: note: variable 'x_60' declared const here - int const x_60; - ~~~~~~~~~~^~~~ -program_source:257:13: error: cannot assign to variable 'x_969' with const-qualified type 'const int' - x_969 = *(x_42); - ~~~~~ ^ -program_source:177:15: note: variable 'x_969' declared const here - int const x_969; - ~~~~~~~~~~^~~~~ -program_source:260:12: error: cannot assign to variable 'x_61' with const-qualified type 'int *const' - x_61 = &((*(tint_symbol_80)).numbers.array[x_60]); - ~~~~ ^ -program_source:178:23: note: variable 'x_61' declared const here - thread int* const x_61; - ~~~~~~~~~~~~~~~~~~^~~~ -program_source:261:13: error: cannot assign to variable 'x_970' with const-qualified type 'const int' - x_970 = *(h); - ~~~~~ ^ -program_source:179:15: note: variable 'x_970' declared const here - int const x_970; - ~~~~~~~~~~^~~~~ -program_source:265:13: error: cannot assign to variable 'x_971' with const-qualified type 'const int' - x_971 = param_1; - ~~~~~ ^ -program_source:181:15: note: variable 'x_971' declared const here - int const x_971; - ~~~~~~~~~~^~~~~ -program_source:268:12: error: cannot assign to variable 'x_62' with const-qualified type 'const int' - x_62 = *(x_61); - ~~~~ ^ -program_source:182:15: note: variable 'x_62' declared const here - int const x_62; - ~~~~~~~~~~^~~~ -program_source:269:13: error: no viable overloaded '=' - x_972 = *(tint_symbol_80); - ~~~~~ ^ ~~~~~~~~~~~~~~~~~ -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const QuicksortObject', but method is not marked const -struct QuicksortObject { - ^ -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space device -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space threadgroup -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const QuicksortObject', but method is not marked const -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const QuicksortObject', but method is not marked const -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const QuicksortObject', but method is not marked const -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space device -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space device -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space device -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space threadgroup -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space threadgroup -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space threadgroup -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument has type 'const QuicksortObject', but method is not marked const -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument has type 'const QuicksortObject', but method is not marked const -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument has type 'const QuicksortObject', but method is not marked const -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space device -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space device -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space device -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space threadgroup -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space threadgroup -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space threadgroup -program_source:270:22: error: no viable overloaded '=' - tint_symbol_11 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; - ~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -struct tint_array_wrapper_0 { - ^ -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:271:22: error: no viable overloaded '=' - tint_symbol_12 = {.numbers=tint_symbol_11}; - ~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~ -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const QuicksortObject', but method is not marked const -struct QuicksortObject { - ^ -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space device -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space threadgroup -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const QuicksortObject', but method is not marked const -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const QuicksortObject', but method is not marked const -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const QuicksortObject', but method is not marked const -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space device -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space device -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space device -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space threadgroup -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space threadgroup -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space threadgroup -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument has type 'const QuicksortObject', but method is not marked const -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument has type 'const QuicksortObject', but method is not marked const -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument has type 'const QuicksortObject', but method is not marked const -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space device -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space device -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space device -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space threadgroup -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space threadgroup -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space threadgroup -program_source:274:12: error: cannot assign to variable 'x_63' with const-qualified type 'const int' - x_63 = pivot; - ~~~~ ^ -program_source:186:15: note: variable 'x_63' declared const here - int const x_63; - ~~~~~~~~~~^~~~ -program_source:276:13: error: cannot assign to variable 'x_973' with const-qualified type 'const int' - x_973 = i_1; - ~~~~~ ^ -program_source:188:15: note: variable 'x_973' declared const here - int const x_973; - ~~~~~~~~~~^~~~~ -program_source:279:13: error: cannot assign to variable 'x_974' with const-qualified type 'const int' - x_974 = *(l); - ~~~~~ ^ -program_source:189:15: note: variable 'x_974' declared const here - int const x_974; - ~~~~~~~~~~^~~~~ -program_source:283:13: error: cannot assign to variable 'x_975' with const-qualified type 'const int' - x_975 = pivot; - ~~~~~ ^ -program_source:191:15: note: variable 'x_975' declared const here - int const x_975; - ~~~~~~~~~~^~~~~ -program_source:287:22: warning: unused variable 'x_542' - float3 const x_542 = float3(x_541.z, x_541.x, x_541.x); - ^ -program_source:295:22: warning: unused variable 'x_543' - float2 const x_543 = float2(x_539.x, x_541.y); - ^ -program_source:306:22: warning: unused variable 'x_544' - float3 const x_544 = float3(float3(1.0f, 2.0f, 3.0f).z, float3(1.0f, 2.0f, 3.0f).y, x_540.x); - ^ -program_source:316:22: warning: unused variable 'x_546' - float2 const x_546 = float2(x_545.x, x_545.x); - ^ -program_source:330:13: error: no viable overloaded '=' - x_986 = *(tint_symbol_80); - ~~~~~ ^ ~~~~~~~~~~~~~~~~~ -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const QuicksortObject', but method is not marked const -struct QuicksortObject { - ^ -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space device -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space threadgroup -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const QuicksortObject', but method is not marked const -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const QuicksortObject', but method is not marked const -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const QuicksortObject', but method is not marked const -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space device -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space device -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space device -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space threadgroup -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space threadgroup -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space threadgroup -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument has type 'const QuicksortObject', but method is not marked const -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument has type 'const QuicksortObject', but method is not marked const -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument has type 'const QuicksortObject', but method is not marked const -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space device -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space device -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space device -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space threadgroup -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space threadgroup -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space threadgroup -program_source:331:22: error: no viable overloaded '=' - tint_symbol_13 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; - ~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -struct tint_array_wrapper_0 { - ^ -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:332:22: error: no viable overloaded '=' - tint_symbol_14 = {.numbers=tint_symbol_13}; - ~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~ -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const QuicksortObject', but method is not marked const -struct QuicksortObject { - ^ -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space device -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space threadgroup -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const QuicksortObject', but method is not marked const -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const QuicksortObject', but method is not marked const -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const QuicksortObject', but method is not marked const -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space device -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space device -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space device -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space threadgroup -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space threadgroup -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space threadgroup -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument has type 'const QuicksortObject', but method is not marked const -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument has type 'const QuicksortObject', but method is not marked const -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument has type 'const QuicksortObject', but method is not marked const -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space device -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space device -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space device -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space threadgroup -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space threadgroup -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space threadgroup -program_source:343:48: warning: suggest braces around initialization of subobject - tint_array_wrapper_0 const tint_symbol_15 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; - ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ - { } -program_source:405:33: warning: suggest braces around initialization of subobject - tint_array_wrapper_0 stack = {0}; - ^ - {} -program_source:413:48: warning: suggest braces around initialization of subobject - tint_array_wrapper_0 const tint_symbol_17 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; - ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ - { } -program_source:447:48: warning: suggest braces around initialization of subobject - tint_array_wrapper_0 const tint_symbol_18 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; - ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ - { } -program_source:454:48: warning: suggest braces around initialization of subobject - tint_array_wrapper_0 const tint_symbol_20 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; - ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ - { } -program_source:501:18: error: default initialization of an object of const type 'const float3' (vector of 3 'float' values) - float3 const x_566; - ^ -program_source:502:15: error: default initialization of an object of const type 'const int' - int const x_1028; - ^ - = 0 -program_source:503:32: error: default initialization of an object of const type 'const tint_array_wrapper_0' without a user-provided default constructor - tint_array_wrapper_0 const x_1029; - ^ - {} -program_source:504:32: error: default initialization of an object of const type 'const tint_array_wrapper_0' without a user-provided default constructor - tint_array_wrapper_0 const tint_symbol_21; - ^ - {} -program_source:505:15: error: default initialization of an object of const type 'const int' - int const x_106; - ^ - = 0 -program_source:506:32: error: default initialization of an object of const type 'const tint_array_wrapper_0' without a user-provided default constructor - tint_array_wrapper_0 const x_1030; - ^ - {} -program_source:507:32: error: default initialization of an object of const type 'const tint_array_wrapper_0' without a user-provided default constructor - tint_array_wrapper_0 const tint_symbol_22; - ^ - {} -program_source:508:18: error: default initialization of an object of const type 'const float2' (vector of 2 'float' values) - float2 const x_567; - ^ -program_source:509:15: error: default initialization of an object of const type 'const int' - int const x_1031; - ^ - = 0 -program_source:510:27: error: default initialization of an object of const type 'const QuicksortObject' without a user-provided default constructor - QuicksortObject const x_1032; - ^ - {} -program_source:511:32: error: default initialization of an object of const type 'const tint_array_wrapper_0' without a user-provided default constructor - tint_array_wrapper_0 const tint_symbol_23; - ^ - {} -program_source:512:27: error: default initialization of an object of const type 'const QuicksortObject' without a user-provided default constructor - QuicksortObject const tint_symbol_24; - ^ - {} -program_source:513:18: error: default initialization of an object of const type 'const float3' (vector of 3 'float' values) - float3 const x_568; - ^ -program_source:514:15: error: default initialization of an object of const type 'const int' - int const x_1033; - ^ - = 0 -program_source:515:15: error: default initialization of an object of const type 'const int' - int const x_108; - ^ - = 0 -program_source:516:18: error: default initialization of an object of const type 'const float3' (vector of 3 'float' values) - float3 const x_569; - ^ -program_source:517:15: error: default initialization of an object of const type 'const int' - int const x_1034; - ^ - = 0 -program_source:518:18: error: default initialization of an object of const type 'const float2' (vector of 2 'float' values) - float2 const x_570; - ^ -program_source:519:15: error: default initialization of an object of const type 'const int' - int const x_1035; - ^ - = 0 -program_source:520:15: error: default initialization of an object of const type 'const int' - int const x_1036; - ^ - = 0 -program_source:521:23: error: default initialization of an object of const type 'int *const' - thread int* const x_110; - ^ - = nullptr -program_source:522:15: error: default initialization of an object of const type 'const int' - int const x_1037; - ^ - = 0 -program_source:523:15: error: default initialization of an object of const type 'const int' - int const x_111; - ^ - = 0 -program_source:524:32: error: default initialization of an object of const type 'const tint_array_wrapper_0' without a user-provided default constructor - tint_array_wrapper_0 const x_1038; - ^ - {} -program_source:525:32: error: default initialization of an object of const type 'const tint_array_wrapper_0' without a user-provided default constructor - tint_array_wrapper_0 const tint_symbol_25; - ^ - {} -program_source:526:18: error: default initialization of an object of const type 'const float3' (vector of 3 'float' values) - float3 const x_571; - ^ -program_source:527:15: error: default initialization of an object of const type 'const int' - int const x_1039; - ^ - = 0 -program_source:528:32: error: default initialization of an object of const type 'const tint_array_wrapper_0' without a user-provided default constructor - tint_array_wrapper_0 const x_1040; - ^ - {} -program_source:529:32: error: default initialization of an object of const type 'const tint_array_wrapper_0' without a user-provided default constructor - tint_array_wrapper_0 const tint_symbol_26; - ^ - {} -program_source:530:18: error: default initialization of an object of const type 'const float2' (vector of 2 'float' values) - float2 const x_572; - ^ -program_source:531:15: error: default initialization of an object of const type 'const int' - int const x_1041; - ^ - = 0 -program_source:532:15: error: default initialization of an object of const type 'const int' - int const x_112; - ^ - = 0 -program_source:533:15: error: default initialization of an object of const type 'const int' - int const x_1042; - ^ - = 0 -program_source:534:15: error: default initialization of an object of const type 'const int' - int const x_1043; - ^ - = 0 -program_source:535:18: error: default initialization of an object of const type 'const float2' (vector of 2 'float' values) - float2 const x_573; - ^ -program_source:536:15: error: default initialization of an object of const type 'const int' - int const x_1044; - ^ - = 0 -program_source:537:18: error: default initialization of an object of const type 'const float3' (vector of 3 'float' values) - float3 const x_574; - ^ -program_source:538:15: error: default initialization of an object of const type 'const int' - int const x_1045; - ^ - = 0 -program_source:539:23: error: default initialization of an object of const type 'int *const' - thread int* const x_114; - ^ - = nullptr -program_source:540:18: error: default initialization of an object of const type 'const float2' (vector of 2 'float' values) - float2 const x_575; - ^ -program_source:541:15: error: default initialization of an object of const type 'const int' - int const x_1046; - ^ - = 0 -program_source:542:15: error: default initialization of an object of const type 'const int' - int const x_115; - ^ - = 0 -program_source:543:15: error: default initialization of an object of const type 'const int' - int const x_1047; - ^ - = 0 -program_source:544:18: error: default initialization of an object of const type 'const float3' (vector of 3 'float' values) - float3 const x_576; - ^ -program_source:545:15: error: default initialization of an object of const type 'const int' - int const x_1048; - ^ - = 0 -program_source:546:15: error: default initialization of an object of const type 'const int' - int const x_1049; - ^ - = 0 -program_source:547:15: error: default initialization of an object of const type 'const int' - int const x_118; - ^ - = 0 -program_source:548:15: error: default initialization of an object of const type 'const int' - int const x_1050; - ^ - = 0 -program_source:549:18: error: default initialization of an object of const type 'const float2' (vector of 2 'float' values) - float2 const x_577; - ^ -program_source:550:15: error: default initialization of an object of const type 'const int' - int const x_120; - ^ - = 0 -program_source:551:18: error: default initialization of an object of const type 'const float2' (vector of 2 'float' values) - float2 const x_578; - ^ -program_source:552:15: error: default initialization of an object of const type 'const int' - int const x_1051; - ^ - = 0 -program_source:553:15: error: default initialization of an object of const type 'const int' - int const x_121; - ^ - = 0 -program_source:554:18: error: default initialization of an object of const type 'const float2' (vector of 2 'float' values) - float2 const x_579; - ^ -program_source:555:15: error: default initialization of an object of const type 'const int' - int const x_1052; - ^ - = 0 -program_source:556:15: error: default initialization of an object of const type 'const int' - int const x_1053; - ^ - = 0 -program_source:557:15: error: default initialization of an object of const type 'const int' - int const x_122; - ^ - = 0 -program_source:558:15: error: default initialization of an object of const type 'const int' - int const x_1054; - ^ - = 0 -program_source:559:18: error: default initialization of an object of const type 'const float2' (vector of 2 'float' values) - float2 const x_580; - ^ -program_source:560:15: error: default initialization of an object of const type 'const int' - int const x_1055; - ^ - = 0 -program_source:561:15: error: default initialization of an object of const type 'const int' - int const x_1056; - ^ - = 0 -program_source:562:15: error: default initialization of an object of const type 'const int' - int const x_124; - ^ - = 0 -program_source:563:15: error: default initialization of an object of const type 'const int' - int const x_1057; - ^ - = 0 -program_source:564:15: error: default initialization of an object of const type 'const int' - int const x_1058; - ^ - = 0 -program_source:565:18: error: default initialization of an object of const type 'const float2' (vector of 2 'float' values) - float2 const x_582; - ^ -program_source:566:15: error: default initialization of an object of const type 'const int' - int const x_1059; - ^ - = 0 -program_source:567:15: error: default initialization of an object of const type 'const int' - int const x_1076; - ^ - = 0 -program_source:568:18: error: default initialization of an object of const type 'const float2' (vector of 2 'float' values) - float2 const x_592; - ^ -program_source:569:27: error: default initialization of an object of const type 'const QuicksortObject' without a user-provided default constructor - QuicksortObject const x_1077; - ^ - {} -program_source:570:32: error: default initialization of an object of const type 'const tint_array_wrapper_0' without a user-provided default constructor - tint_array_wrapper_0 const tint_symbol_29; - ^ - {} -program_source:571:27: error: default initialization of an object of const type 'const QuicksortObject' without a user-provided default constructor - QuicksortObject const tint_symbol_30; - ^ - {} -program_source:572:15: error: default initialization of an object of const type 'const int' - int const x_137; - ^ - = 0 -program_source:573:15: error: default initialization of an object of const type 'const int' - int const x_1078; - ^ - = 0 -program_source:574:18: error: default initialization of an object of const type 'const float3' (vector of 3 'float' values) - float3 const x_593; - ^ -program_source:575:15: error: default initialization of an object of const type 'const int' - int const x_1079; - ^ - = 0 -program_source:576:18: error: default initialization of an object of const type 'const float3' (vector of 3 'float' values) - float3 const x_594; - ^ -program_source:577:15: error: default initialization of an object of const type 'const int' - int const x_1080; - ^ - = 0 -program_source:578:15: error: default initialization of an object of const type 'const int' - int const x_139; - ^ - = 0 -program_source:579:15: error: default initialization of an object of const type 'const int' - int const x_1081; - ^ - = 0 -program_source:580:18: error: default initialization of an object of const type 'const float3' (vector of 3 'float' values) - float3 const x_595; - ^ -program_source:581:15: error: default initialization of an object of const type 'const int' - int const x_1082; - ^ - = 0 -program_source:582:15: error: default initialization of an object of const type 'const int' - int const x_1083; - ^ - = 0 -program_source:583:15: error: default initialization of an object of const type 'const int' - int const x_1102; - ^ - = 0 -program_source:591:54: warning: suggest braces around initialization of subobject - tint_array_wrapper_0 const tint_symbol_33 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; - ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ - { } -program_source:589:22: warning: unused variable 'x_604' - float2 const x_604 = float2(x_563.z, x_564.x); - ^ -program_source:599:14: error: cannot assign to variable 'x_1028' with const-qualified type 'const int' - x_1028 = h_1; - ~~~~~~ ^ -program_source:502:15: note: variable 'x_1028' declared const here - int const x_1028; - ~~~~~~~~~~^~~~~~ -program_source:602:14: error: no viable overloaded '=' - x_1029 = stack; - ~~~~~~ ^ ~~~~~ -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -struct tint_array_wrapper_0 { - ^ -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:603:22: error: no viable overloaded '=' - tint_symbol_21 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; - ~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -struct tint_array_wrapper_0 { - ^ -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:606:13: error: cannot assign to variable 'x_106' with const-qualified type 'const int' - x_106 = top; - ~~~~~ ^ -program_source:505:15: note: variable 'x_106' declared const here - int const x_106; - ~~~~~~~~~~^~~~~ -program_source:607:14: error: no viable overloaded '=' - x_1030 = stack; - ~~~~~~ ^ ~~~~~ -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -struct tint_array_wrapper_0 { - ^ -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:608:22: error: no viable overloaded '=' - tint_symbol_22 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; - ~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -struct tint_array_wrapper_0 { - ^ -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:612:14: error: cannot assign to variable 'x_1031' with const-qualified type 'const int' - x_1031 = param_4; - ~~~~~~ ^ -program_source:509:15: note: variable 'x_1031' declared const here - int const x_1031; - ~~~~~~~~~~^~~~~~ -program_source:619:14: error: no viable overloaded '=' - x_1032 = *(tint_symbol_81); - ~~~~~~ ^ ~~~~~~~~~~~~~~~~~ -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const QuicksortObject', but method is not marked const -struct QuicksortObject { - ^ -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space device -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space threadgroup -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const QuicksortObject', but method is not marked const -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const QuicksortObject', but method is not marked const -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const QuicksortObject', but method is not marked const -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space device -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space device -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space device -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space threadgroup -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space threadgroup -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space threadgroup -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument has type 'const QuicksortObject', but method is not marked const -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument has type 'const QuicksortObject', but method is not marked const -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument has type 'const QuicksortObject', but method is not marked const -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space device -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space device -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space device -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space threadgroup -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space threadgroup -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space threadgroup -program_source:620:22: error: no viable overloaded '=' - tint_symbol_23 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; - ~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -struct tint_array_wrapper_0 { - ^ -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:621:22: error: no viable overloaded '=' - tint_symbol_24 = {.numbers=tint_symbol_23}; - ~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~ -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const QuicksortObject', but method is not marked const -struct QuicksortObject { - ^ -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space device -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space threadgroup -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const QuicksortObject', but method is not marked const -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const QuicksortObject', but method is not marked const -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const QuicksortObject', but method is not marked const -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space device -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space device -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space device -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space threadgroup -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space threadgroup -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space threadgroup -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument has type 'const QuicksortObject', but method is not marked const -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument has type 'const QuicksortObject', but method is not marked const -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument has type 'const QuicksortObject', but method is not marked const -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space device -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space device -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space device -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space threadgroup -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space threadgroup -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space threadgroup -program_source:625:14: error: cannot assign to variable 'x_1033' with const-qualified type 'const int' - x_1033 = param_4; - ~~~~~~ ^ -program_source:514:15: note: variable 'x_1033' declared const here - int const x_1033; - ~~~~~~~~~~^~~~~~ -program_source:628:13: error: cannot assign to variable 'x_108' with const-qualified type 'const int' - x_108 = top; - ~~~~~ ^ -program_source:515:15: note: variable 'x_108' declared const here - int const x_108; - ~~~~~~~~~~^~~~~ -program_source:630:14: error: cannot assign to variable 'x_1034' with const-qualified type 'const int' - x_1034 = h_1; - ~~~~~~ ^ -program_source:517:15: note: variable 'x_1034' declared const here - int const x_1034; - ~~~~~~~~~~^~~~~~ -program_source:634:14: error: cannot assign to variable 'x_1035' with const-qualified type 'const int' - x_1035 = p; - ~~~~~~ ^ -program_source:519:15: note: variable 'x_1035' declared const here - int const x_1035; - ~~~~~~~~~~^~~~~~ -program_source:638:14: error: cannot assign to variable 'x_1036' with const-qualified type 'const int' - x_1036 = p; - ~~~~~~ ^ -program_source:520:15: note: variable 'x_1036' declared const here - int const x_1036; - ~~~~~~~~~~^~~~~~ -program_source:641:13: error: cannot assign to variable 'x_110' with const-qualified type 'int *const' - x_110 = &(stack.array[x_108]); - ~~~~~ ^ -program_source:521:23: note: variable 'x_110' declared const here - thread int* const x_110; - ~~~~~~~~~~~~~~~~~~^~~~~ -program_source:642:14: error: cannot assign to variable 'x_1037' with const-qualified type 'const int' - x_1037 = *(x_96); - ~~~~~~ ^ -program_source:522:15: note: variable 'x_1037' declared const here - int const x_1037; - ~~~~~~~~~~^~~~~~ -program_source:645:13: error: cannot assign to variable 'x_111' with const-qualified type 'const int' - x_111 = *(x_110); - ~~~~~ ^ -program_source:523:15: note: variable 'x_111' declared const here - int const x_111; - ~~~~~~~~~~^~~~~ -program_source:646:14: error: no viable overloaded '=' - x_1038 = stack; - ~~~~~~ ^ ~~~~~ -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -struct tint_array_wrapper_0 { - ^ -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:647:22: error: no viable overloaded '=' - tint_symbol_25 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; - ~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -struct tint_array_wrapper_0 { - ^ -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:651:14: error: cannot assign to variable 'x_1039' with const-qualified type 'const int' - x_1039 = l_1; - ~~~~~~ ^ -program_source:527:15: note: variable 'x_1039' declared const here - int const x_1039; - ~~~~~~~~~~^~~~~~ -program_source:655:14: error: no viable overloaded '=' - x_1040 = stack; - ~~~~~~ ^ ~~~~~ -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -struct tint_array_wrapper_0 { - ^ -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:656:22: error: no viable overloaded '=' - tint_symbol_26 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; - ~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -struct tint_array_wrapper_0 { - ^ -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:660:14: error: cannot assign to variable 'x_1041' with const-qualified type 'const int' - x_1041 = p; - ~~~~~~ ^ -program_source:531:15: note: variable 'x_1041' declared const here - int const x_1041; - ~~~~~~~~~~^~~~~~ -program_source:663:13: error: cannot assign to variable 'x_112' with const-qualified type 'const int' - x_112 = top; - ~~~~~ ^ -program_source:532:15: note: variable 'x_112' declared const here - int const x_112; - ~~~~~~~~~~^~~~~ -program_source:664:14: error: cannot assign to variable 'x_1042' with const-qualified type 'const int' - x_1042 = param_4; - ~~~~~~ ^ -program_source:533:15: note: variable 'x_1042' declared const here - int const x_1042; - ~~~~~~~~~~^~~~~~ -program_source:667:14: error: cannot assign to variable 'x_1043' with const-qualified type 'const int' - x_1043 = *(x_100); - ~~~~~~ ^ -program_source:534:15: note: variable 'x_1043' declared const here - int const x_1043; - ~~~~~~~~~~^~~~~~ -program_source:672:14: error: cannot assign to variable 'x_1044' with const-qualified type 'const int' - x_1044 = param_5; - ~~~~~~ ^ -program_source:536:15: note: variable 'x_1044' declared const here - int const x_1044; - ~~~~~~~~~~^~~~~~ -program_source:676:14: error: cannot assign to variable 'x_1045' with const-qualified type 'const int' - x_1045 = h_1; - ~~~~~~ ^ -program_source:538:15: note: variable 'x_1045' declared const here - int const x_1045; - ~~~~~~~~~~^~~~~~ -program_source:679:13: error: cannot assign to variable 'x_114' with const-qualified type 'int *const' - x_114 = &(stack.array[x_112]); - ~~~~~ ^ -program_source:539:23: note: variable 'x_114' declared const here - thread int* const x_114; - ~~~~~~~~~~~~~~~~~~^~~~~ -program_source:681:14: error: cannot assign to variable 'x_1046' with const-qualified type 'const int' - x_1046 = *(x_100); - ~~~~~~ ^ -program_source:541:15: note: variable 'x_1046' declared const here - int const x_1046; - ~~~~~~~~~~^~~~~~ -program_source:684:13: error: cannot assign to variable 'x_115' with const-qualified type 'const int' - x_115 = *(x_114); - ~~~~~ ^ -program_source:542:15: note: variable 'x_115' declared const here - int const x_115; - ~~~~~~~~~~^~~~~ -program_source:685:14: error: cannot assign to variable 'x_1047' with const-qualified type 'const int' - x_1047 = p; - ~~~~~~ ^ -program_source:543:15: note: variable 'x_1047' declared const here - int const x_1047; - ~~~~~~~~~~^~~~~~ -program_source:689:14: error: cannot assign to variable 'x_1048' with const-qualified type 'const int' - x_1048 = param_5; - ~~~~~~ ^ -program_source:545:15: note: variable 'x_1048' declared const here - int const x_1048; - ~~~~~~~~~~^~~~~~ -program_source:693:14: error: cannot assign to variable 'x_1049' with const-qualified type 'const int' - x_1049 = top; - ~~~~~~ ^ -program_source:546:15: note: variable 'x_1049' declared const here - int const x_1049; - ~~~~~~~~~~^~~~~~ -program_source:696:13: error: cannot assign to variable 'x_118' with const-qualified type 'const int' - x_118 = l_1; - ~~~~~ ^ -program_source:547:15: note: variable 'x_118' declared const here - int const x_118; - ~~~~~~~~~~^~~~~ -program_source:698:14: error: cannot assign to variable 'x_1050' with const-qualified type 'const int' - x_1050 = *(x_110); - ~~~~~~ ^ -program_source:548:15: note: variable 'x_1050' declared const here - int const x_1050; - ~~~~~~~~~~^~~~~~ -program_source:702:13: error: cannot assign to variable 'x_120' with const-qualified type 'const int' - x_120 = h_1; - ~~~~~ ^ -program_source:550:15: note: variable 'x_120' declared const here - int const x_120; - ~~~~~~~~~~^~~~~ -program_source:705:14: error: cannot assign to variable 'x_1051' with const-qualified type 'const int' - x_1051 = *(x_100); - ~~~~~~ ^ -program_source:552:15: note: variable 'x_1051' declared const here - int const x_1051; - ~~~~~~~~~~^~~~~~ -program_source:708:13: error: cannot assign to variable 'x_121' with const-qualified type 'const int' - x_121 = performPartition_i1_i1_(&(param_4), &(param_5), tint_symbol_81); - ~~~~~ ^ -program_source:553:15: note: variable 'x_121' declared const here - int const x_121; - ~~~~~~~~~~^~~~~ -program_source:710:14: error: cannot assign to variable 'x_1052' with const-qualified type 'const int' - x_1052 = param_5; - ~~~~~~ ^ -program_source:555:15: note: variable 'x_1052' declared const here - int const x_1052; - ~~~~~~~~~~^~~~~~ -program_source:714:14: error: cannot assign to variable 'x_1053' with const-qualified type 'const int' - x_1053 = param_4; - ~~~~~~ ^ -program_source:556:15: note: variable 'x_1053' declared const here - int const x_1053; - ~~~~~~~~~~^~~~~~ -program_source:717:13: error: cannot assign to variable 'x_122' with const-qualified type 'const int' - x_122 = p; - ~~~~~ ^ -program_source:557:15: note: variable 'x_122' declared const here - int const x_122; - ~~~~~~~~~~^~~~~ -program_source:718:14: error: cannot assign to variable 'x_1054' with const-qualified type 'const int' - x_1054 = h_1; - ~~~~~~ ^ -program_source:558:15: note: variable 'x_1054' declared const here - int const x_1054; - ~~~~~~~~~~^~~~~~ -program_source:722:14: error: cannot assign to variable 'x_1055' with const-qualified type 'const int' - x_1055 = l_1; - ~~~~~~ ^ -program_source:560:15: note: variable 'x_1055' declared const here - int const x_1055; - ~~~~~~~~~~^~~~~~ -program_source:725:14: error: cannot assign to variable 'x_1056' with const-qualified type 'const int' - x_1056 = h_1; - ~~~~~~ ^ -program_source:561:15: note: variable 'x_1056' declared const here - int const x_1056; - ~~~~~~~~~~^~~~~~ -program_source:728:13: error: cannot assign to variable 'x_124' with const-qualified type 'const int' - x_124 = l_1; - ~~~~~ ^ -program_source:562:15: note: variable 'x_124' declared const here - int const x_124; - ~~~~~~~~~~^~~~~ -program_source:729:14: error: cannot assign to variable 'x_1057' with const-qualified type 'const int' - x_1057 = *(x_110); - ~~~~~~ ^ -program_source:563:15: note: variable 'x_1057' declared const here - int const x_1057; - ~~~~~~~~~~^~~~~~ -program_source:732:14: error: cannot assign to variable 'x_1058' with const-qualified type 'const int' - x_1058 = h_1; - ~~~~~~ ^ -program_source:564:15: note: variable 'x_1058' declared const here - int const x_1058; - ~~~~~~~~~~^~~~~~ -program_source:736:14: error: cannot assign to variable 'x_1059' with const-qualified type 'const int' - x_1059 = *(x_100); - ~~~~~~ ^ -program_source:566:15: note: variable 'x_1059' declared const here - int const x_1059; - ~~~~~~~~~~^~~~~~ -program_source:749:54: warning: suggest braces around initialization of subobject - tint_array_wrapper_0 const tint_symbol_27 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; - ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ - { } -program_source:789:54: warning: suggest braces around initialization of subobject - tint_array_wrapper_0 const tint_symbol_28 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; - ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ - { } -program_source:758:22: warning: unused variable 'x_586' - float2 const x_586 = float2(x_564.x, x_585.x); - ^ -program_source:793:22: warning: unused variable 'x_590' - float2 const x_590 = float2(x_576.x, x_573.y); - ^ -program_source:766:22: warning: unused variable 'x_587' - float3 const x_587 = float3(x_566.y, x_566.y, x_563.x); - ^ -program_source:744:22: warning: unused variable 'x_583' - float2 const x_583 = float2(x_571.y, x_556.y); - ^ -program_source:805:22: warning: unused variable 'x_591' - float2 const x_591 = float2(x_569.z, x_569.y); - ^ -program_source:752:22: warning: unused variable 'x_584' - float2 const x_584 = float2(x_569.z, x_569.y); - ^ -program_source:783:22: warning: unused variable 'x_589' - float3 const x_589 = float3(x_576.z, x_588.y, x_576.z); - ^ -program_source:810:14: error: cannot assign to variable 'x_1076' with const-qualified type 'const int' - x_1076 = *(x_96); - ~~~~~~ ^ -program_source:567:15: note: variable 'x_1076' declared const here - int const x_1076; - ~~~~~~~~~~^~~~~~ -program_source:814:14: error: no viable overloaded '=' - x_1077 = *(tint_symbol_81); - ~~~~~~ ^ ~~~~~~~~~~~~~~~~~ -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const QuicksortObject', but method is not marked const -struct QuicksortObject { - ^ -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space device -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space threadgroup -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const QuicksortObject', but method is not marked const -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const QuicksortObject', but method is not marked const -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const QuicksortObject', but method is not marked const -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space device -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space device -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space device -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space threadgroup -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space threadgroup -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space threadgroup -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument has type 'const QuicksortObject', but method is not marked const -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument has type 'const QuicksortObject', but method is not marked const -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument has type 'const QuicksortObject', but method is not marked const -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space device -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space device -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space device -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space threadgroup -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space threadgroup -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space threadgroup -program_source:815:22: error: no viable overloaded '=' - tint_symbol_29 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; - ~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -struct tint_array_wrapper_0 { - ^ -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:4:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument has type 'const tint_array_wrapper_0', but method is not marked const -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space device -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:4:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const tint_array_wrapper_0') is in address space 0, but parameter must be in address space threadgroup -program_source:816:22: error: no viable overloaded '=' - tint_symbol_30 = {.numbers=tint_symbol_29}; - ~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~ -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const QuicksortObject', but method is not marked const -struct QuicksortObject { - ^ -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space device -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space threadgroup -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const QuicksortObject', but method is not marked const -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const QuicksortObject', but method is not marked const -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument has type 'const QuicksortObject', but method is not marked const -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space device -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space device -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space device -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space threadgroup -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space threadgroup -program_source:7:8: note: candidate function (the implicit copy assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space threadgroup -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument has type 'const QuicksortObject', but method is not marked const -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument has type 'const QuicksortObject', but method is not marked const -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument has type 'const QuicksortObject', but method is not marked const -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space device -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space device -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space device -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space threadgroup -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space threadgroup -program_source:7:8: note: candidate function (the implicit move assignment operator) not viable: 'this' argument ('const QuicksortObject') is in address space 0, but parameter must be in address space threadgroup -program_source:819:13: error: cannot assign to variable 'x_137' with const-qualified type 'const int' - x_137 = p; - ~~~~~ ^ -program_source:572:15: note: variable 'x_137' declared const here - int const x_137; - ~~~~~~~~~~^~~~~ -program_source:820:14: error: cannot assign to variable 'x_1078' with const-qualified type 'const int' - x_1078 = *(x_114); - ~~~~~~ ^ -program_source:573:15: note: variable 'x_1078' declared const here - int const x_1078; - ~~~~~~~~~~^~~~~~ -program_source:824:14: error: cannot assign to variable 'x_1079' with const-qualified type 'const int' - x_1079 = p; - ~~~~~~ ^ -program_source:575:15: note: variable 'x_1079' declared const here - int const x_1079; - ~~~~~~~~~~^~~~~~ -program_source:828:14: error: cannot assign to variable 'x_1080' with const-qualified type 'const int' - x_1080 = *(x_114); - ~~~~~~ ^ -program_source:577:15: note: variable 'x_1080' declared const here - int const x_1080; - ~~~~~~~~~~^~~~~~ -program_source:831:13: error: cannot assign to variable 'x_139' with const-qualified type 'const int' - x_139 = h_1; - ~~~~~ ^ -program_source:578:15: note: variable 'x_139' declared const here - int const x_139; - ~~~~~~~~~~^~~~~ -program_source:832:14: error: cannot assign to variable 'x_1081' with const-qualified type 'const int' - x_1081 = top; - ~~~~~~ ^ -program_source:579:15: note: variable 'x_1081' declared const here - int const x_1081; - ~~~~~~~~~~^~~~~~ -program_source:836:14: error: cannot assign to variable 'x_1082' with const-qualified type 'const int' - x_1082 = *(x_100); - ~~~~~~ ^ -program_source:581:15: note: variable 'x_1082' declared const here - int const x_1082; - ~~~~~~~~~~^~~~~~ -program_source:839:14: error: cannot assign to variable 'x_1083' with const-qualified type 'const int' - x_1083 = p; - ~~~~~~ ^ -program_source:582:15: note: variable 'x_1083' declared const here - int const x_1083; - ~~~~~~~~~~^~~~~~ -program_source:882:54: warning: suggest braces around initialization of subobject - tint_array_wrapper_0 const tint_symbol_31 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; - ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ - { } -program_source:891:54: warning: suggest braces around initialization of subobject - tint_array_wrapper_0 const tint_symbol_32 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; - ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ - { } -program_source:889:22: warning: unused variable 'x_602' - float2 const x_602 = float2(x_565.y, x_599.y); - ^ -program_source:871:22: warning: unused variable 'x_600' - float3 const x_600 = float3(x_556.x, x_580.x, x_580.x); - ^ -program_source:879:22: warning: unused variable 'x_601' - float2 const x_601 = float2(x_563.x, x_563.y); - ^ -program_source:846:22: warning: unused variable 'x_596' - float2 const x_596 = float2(x_592.y, x_582.x); - ^ -program_source:913:22: warning: unused variable 'x_603' - float3 const x_603 = float3(x_568.y, x_564.x, x_564.x); - ^ -program_source:854:22: warning: unused variable 'x_597' - float3 const x_597 = float3(x_562.y, x_560.y, x_560.y); - ^ -program_source:918:14: error: cannot assign to variable 'x_1102' with const-qualified type 'const int' - x_1102 = *(x_100); - ~~~~~~ ^ -program_source:583:15: note: variable 'x_1102' declared const here - int const x_1102; - ~~~~~~~~~~^~~~~~ -program_source:941:48: warning: suggest braces around initialization of subobject - tint_array_wrapper_0 const tint_symbol_35 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; - ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ - { } -program_source:947:50: warning: suggest braces around initialization of subobject - tint_array_wrapper_0 const tint_symbol_37 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; - ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ - { } -program_source:961:50: warning: suggest braces around initialization of subobject - tint_array_wrapper_0 const tint_symbol_39 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; - ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ - { } -program_source:952:15: warning: unused variable 'x_158' + int const x_947 = (*(tint_symbol_83)).numbers.arr[x_34_save]; + (*(tint_symbol_83)).numbers.arr[x_34_save] = 0; + (*(tint_symbol_83)).numbers.arr[x_34_save] = x_947; + int const x_38 = temp; + int const x_948 = *(j); + *(j) = 0; + *(j) = x_948; + float3 const x_531 = float3(x_527.x, x_526.y, x_526.x); + int const x_949 = (*(tint_symbol_83)).numbers.arr[x_36_save]; + (*(tint_symbol_83)).numbers.arr[x_36_save] = 0; + (*(tint_symbol_83)).numbers.arr[x_36_save] = x_949; + QuicksortObject const x_950 = *(tint_symbol_83); + tint_array_wrapper const tint_symbol_8 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + QuicksortObject const tint_symbol_9 = {.numbers=tint_symbol_8}; + *(tint_symbol_83) = tint_symbol_9; + *(tint_symbol_83) = x_950; + float3 const x_532 = float3(x_528.x, x_528.y, x_528.x); + int const x_951 = (*(tint_symbol_83)).numbers.arr[x_34_save]; + (*(tint_symbol_83)).numbers.arr[x_34_save] = 0; + (*(tint_symbol_83)).numbers.arr[x_34_save] = x_951; + (*(tint_symbol_83)).numbers.arr[x_37] = x_38; + return; +} + +int performPartition_i1_i1_(thread int* const l, thread int* const h, thread QuicksortObject* const tint_symbol_84) { + int param_3 = 0; + int i_1 = 0; + int j_1 = 0; + int param_2 = 0; + int param_1 = 0; + int param = 0; + int pivot = 0; + float2 x_537 = 0.0f; + float3 x_538 = 0.0f; + int const x_952 = *(h); + *(h) = 0; + *(h) = x_952; + int const x_41 = *(h); + int const x_953 = *(l); + *(l) = 0; + *(l) = x_953; + int const x_42_save = x_41; + int const x_954 = (*(tint_symbol_84)).numbers.arr[x_42_save]; + (*(tint_symbol_84)).numbers.arr[x_42_save] = 0; + (*(tint_symbol_84)).numbers.arr[x_42_save] = x_954; + int const x_43 = (*(tint_symbol_84)).numbers.arr[x_42_save]; + int const x_955 = param_3; + param_3 = 0; + param_3 = x_955; + float3 const x_534 = float3(float3(1.0f, 2.0f, 3.0f).z, float3(1.0f, 2.0f, 3.0f).x, float3(1.0f, 2.0f, 3.0f).z); + int const x_956 = param_1; + param_1 = 0; + param_1 = x_956; + pivot = x_43; + int const x_45 = *(l); + int const x_957 = *(h); + *(h) = 0; + *(h) = x_957; + int const x_958 = j_1; + j_1 = 0; + j_1 = x_958; + float3 const x_535 = float3(x_534.y, x_534.z, x_534.y); + int const x_959 = *(l); + *(l) = 0; + *(l) = x_959; + i_1 = (x_45 - as_type(1u)); + int const x_49 = *(l); + float3 const x_536 = float3(x_534.x, x_534.z, x_535.x); + j_1 = 10; + QuicksortObject const x_960 = *(tint_symbol_84); + tint_array_wrapper const tint_symbol_10 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + QuicksortObject const tint_symbol_11 = {.numbers=tint_symbol_10}; + *(tint_symbol_84) = tint_symbol_11; + *(tint_symbol_84) = x_960; + while (true) { + int const x_961 = pivot; + pivot = 0; + pivot = x_961; + int const x_962 = param_1; + param_1 = 0; + param_1 = x_962; + int const x_55 = j_1; + int const x_963 = pivot; + pivot = 0; + pivot = x_963; + x_537 = float2(float3(1.0f, 2.0f, 3.0f).y, float3(1.0f, 2.0f, 3.0f).z); + QuicksortObject const x_964 = *(tint_symbol_84); + tint_array_wrapper const tint_symbol_12 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + QuicksortObject const tint_symbol_13 = {.numbers=tint_symbol_12}; + *(tint_symbol_84) = tint_symbol_13; + *(tint_symbol_84) = x_964; + int const x_56 = *(h); + int const x_965 = *(h); + *(h) = 0; + *(h) = x_965; + int const x_966 = param; + param = 0; + param = x_966; + int const x_967 = j_1; + j_1 = 0; + j_1 = x_967; + x_538 = float3(x_534.x, x_537.y, x_534.z); + int const x_968 = param; + param = 0; + param = x_968; + if ((x_55 <= (x_56 - as_type(1u)))) { + } else { + break; + } + int const x_60 = j_1; + int const x_969 = (*(tint_symbol_84)).numbers.arr[x_42_save]; + (*(tint_symbol_84)).numbers.arr[x_42_save] = 0; + (*(tint_symbol_84)).numbers.arr[x_42_save] = x_969; + int const x_61_save = x_60; + int const x_970 = *(h); + *(h) = 0; + *(h) = x_970; + float3 const x_539 = float3(x_537.x, x_535.z, x_537.x); + int const x_971 = param_1; + param_1 = 0; + param_1 = x_971; + int const x_62 = (*(tint_symbol_84)).numbers.arr[x_61_save]; + QuicksortObject const x_972 = *(tint_symbol_84); + tint_array_wrapper const tint_symbol_14 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + QuicksortObject const tint_symbol_15 = {.numbers=tint_symbol_14}; + *(tint_symbol_84) = tint_symbol_15; + *(tint_symbol_84) = x_972; + int const x_63 = pivot; + float2 const x_540 = float2(float3(1.0f, 2.0f, 3.0f).y, x_534.z); + int const x_973 = i_1; + i_1 = 0; + i_1 = x_973; + int const x_974 = *(l); + *(l) = 0; + *(l) = x_974; + float3 const x_541 = float3(x_534.y, x_534.x, x_534.y); + int const x_975 = pivot; + pivot = 0; + pivot = x_975; + if ((x_62 <= x_63)) { + float3 const x_542 = float3(x_541.z, x_541.x, x_541.x); + int const x_976 = param_3; + param_3 = 0; + param_3 = x_976; + int const x_67 = i_1; + int const x_977 = pivot; + pivot = 0; + pivot = x_977; + float2 const x_543 = float2(x_539.x, x_541.y); + int const x_978 = i_1; + i_1 = 0; + i_1 = x_978; + int const x_979 = param; + param = 0; + param = x_979; + i_1 = (x_67 + as_type(1u)); + int const x_980 = *(l); + *(l) = 0; + *(l) = x_980; + float3 const x_544 = float3(float3(1.0f, 2.0f, 3.0f).z, float3(1.0f, 2.0f, 3.0f).y, x_540.x); + int const x_70 = i_1; + float2 const x_545 = float2(x_537.y, x_538.x); + int const x_981 = param; + param = 0; + param = x_981; + param = x_70; + int const x_982 = param; + param = 0; + param = x_982; + float2 const x_546 = float2(x_545.x, x_545.x); + int const x_983 = i_1; + i_1 = 0; + i_1 = x_983; + int const x_72 = j_1; + param_1 = x_72; + int const x_984 = param_3; + param_3 = 0; + param_3 = x_984; + swap_i1_i1_(&(param), &(param_1), tint_symbol_84); + int const x_985 = param_1; + param_1 = 0; + param_1 = x_985; + } + QuicksortObject const x_986 = *(tint_symbol_84); + tint_array_wrapper const tint_symbol_16 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + QuicksortObject const tint_symbol_17 = {.numbers=tint_symbol_16}; + *(tint_symbol_84) = tint_symbol_17; + *(tint_symbol_84) = x_986; + { + int const x_987 = *(h); + *(h) = 0; + *(h) = x_987; + int const x_74 = j_1; + int const x_988 = *(h); + *(h) = 0; + *(h) = x_988; + float3 const x_547 = float3(x_539.x, x_541.z, x_541.z); + int const x_989 = (*(tint_symbol_84)).numbers.arr[x_61_save]; + (*(tint_symbol_84)).numbers.arr[x_61_save] = 0; + (*(tint_symbol_84)).numbers.arr[x_61_save] = x_989; + int const x_990 = param; + param = 0; + param = x_990; + j_1 = (1 + x_74); + int const x_991 = param_1; + param_1 = 0; + param_1 = x_991; + float3 const x_548 = float3(x_541.y, x_541.z, x_541.x); + int const x_992 = (*(tint_symbol_84)).numbers.arr[x_61_save]; + (*(tint_symbol_84)).numbers.arr[x_61_save] = 0; + (*(tint_symbol_84)).numbers.arr[x_61_save] = x_992; + } + } + int const x_76 = i_1; + int const x_993 = (*(tint_symbol_84)).numbers.arr[x_42_save]; + (*(tint_symbol_84)).numbers.arr[x_42_save] = 0; + (*(tint_symbol_84)).numbers.arr[x_42_save] = x_993; + float2 const x_549 = float2(x_534.x, x_534.y); + QuicksortObject const x_994 = *(tint_symbol_84); + tint_array_wrapper const tint_symbol_18 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + QuicksortObject const tint_symbol_19 = {.numbers=tint_symbol_18}; + *(tint_symbol_84) = tint_symbol_19; + *(tint_symbol_84) = x_994; + int const x_995 = *(h); + *(h) = 0; + *(h) = x_995; + i_1 = (1 + x_76); + int const x_996 = param_1; + param_1 = 0; + param_1 = x_996; + int const x_79 = i_1; + int const x_997 = j_1; + j_1 = 0; + j_1 = x_997; + float2 const x_550 = float2(x_534.x, x_534.x); + int const x_998 = param_1; + param_1 = 0; + param_1 = x_998; + param_2 = x_79; + float2 const x_551 = float2(x_534.y, x_536.x); + int const x_999 = pivot; + pivot = 0; + pivot = x_999; + int const x_81 = *(h); + float2 const x_552 = float2(x_550.x, x_549.y); + int const x_1000 = *(h); + *(h) = 0; + *(h) = x_1000; + param_3 = x_81; + int const x_1001 = i_1; + i_1 = 0; + i_1 = x_1001; + float2 const x_553 = float2(x_549.y, x_552.x); + int const x_1002 = *(h); + *(h) = 0; + *(h) = x_1002; + swap_i1_i1_(&(param_2), &(param_3), tint_symbol_84); + int const x_1003 = *(l); + *(l) = 0; + *(l) = x_1003; + float2 const x_554 = float2(x_536.z, float3(1.0f, 2.0f, 3.0f).y); + int const x_1004 = param_1; + param_1 = 0; + param_1 = x_1004; + int const x_83 = i_1; + int const x_1005 = param; + param = 0; + param = x_1005; + float2 const x_555 = float2(x_534.y, x_534.x); + int const x_1006 = j_1; + j_1 = 0; + j_1 = x_1006; + return x_83; +} + +void quicksort_(thread QuicksortObject* const tint_symbol_85) { + int param_4 = 0; + int h_1 = 0; + int p = 0; + int l_1 = 0; + int top = 0; + tint_array_wrapper stack = {}; + int param_5 = 0; + l_1 = 0; + int const x_1007 = param_5; + param_5 = 0; + param_5 = x_1007; + h_1 = 9; + tint_array_wrapper const x_1008 = stack; + tint_array_wrapper const tint_symbol_20 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + stack = tint_symbol_20; + stack = x_1008; + float2 const x_556 = float2(float3(1.0f, 2.0f, 3.0f).y, float3(1.0f, 2.0f, 3.0f).y); + int const x_1009 = param_5; + param_5 = 0; + param_5 = x_1009; + top = -1; + int const x_1010 = p; + p = 0; + p = x_1010; + int const x_93 = top; + float2 const x_557 = float2(float3(1.0f, 2.0f, 3.0f).x, float3(1.0f, 2.0f, 3.0f).x); + int const x_1011 = p; + p = 0; + p = x_1011; + int const x_94 = (x_93 + as_type(1u)); + int const x_1012 = top; + top = 0; + top = x_1012; + float2 const x_558 = float2(x_556.y, x_557.y); + int const x_1013 = param_4; + param_4 = 0; + param_4 = x_1013; + top = x_94; + int const x_1014 = h_1; + h_1 = 0; + h_1 = x_1014; + float3 const x_559 = float3(x_557.y, x_557.x, x_557.x); + int const x_1015 = param_4; + param_4 = 0; + param_4 = x_1015; + int const x_95 = l_1; + QuicksortObject const x_1016 = *(tint_symbol_85); + tint_array_wrapper const tint_symbol_21 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + QuicksortObject const tint_symbol_22 = {.numbers=tint_symbol_21}; + *(tint_symbol_85) = tint_symbol_22; + *(tint_symbol_85) = x_1016; + float3 const x_560 = float3(x_559.y, x_559.x, x_557.x); + int const x_96_save = x_94; + tint_array_wrapper const x_1017 = stack; + tint_array_wrapper const tint_symbol_23 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + stack = tint_symbol_23; + stack = x_1017; + float3 const x_561 = float3(x_556.y, x_556.y, x_556.y); + int const x_1018 = l_1; + l_1 = 0; + l_1 = 0; + stack.arr[x_96_save] = x_95; + int const x_1019 = param_5; + param_5 = 0; + param_5 = x_1019; + int const x_97 = top; + int const x_1020 = param_4; + param_4 = 0; + param_4 = x_1020; + float3 const x_562 = float3(float3(1.0f, 2.0f, 3.0f).z, x_558.y, float3(1.0f, 2.0f, 3.0f).y); + int const x_1021 = stack.arr[x_96_save]; + stack.arr[x_96_save] = 0; + stack.arr[x_96_save] = x_1021; + int const x_98 = (x_97 + 1); + int const x_1022 = stack.arr[x_96_save]; + stack.arr[x_96_save] = 0; + stack.arr[x_96_save] = x_1022; + float3 const x_563 = float3(x_559.x, x_559.z, x_556.y); + top = x_98; + int const x_1023 = param_4; + param_4 = 0; + param_4 = x_1023; + int const x_99 = h_1; + int const x_1024 = param_4; + param_4 = 0; + param_4 = x_1024; + float3 const x_564 = float3(x_558.x, x_561.x, x_558.y); + int const x_1025 = l_1; + l_1 = 0; + l_1 = x_1025; + int const x_100_save = x_98; + int const x_1026 = param_5; + param_5 = 0; + param_5 = x_1026; + float2 const x_565 = float2(x_564.z, x_564.z); + int const x_1027 = p; + p = 0; + p = x_1027; + stack.arr[x_100_save] = x_99; + while (true) { + float3 const x_566 = float3(x_563.x, x_563.x, x_563.x); + int const x_1028 = h_1; + h_1 = 0; + h_1 = x_1028; + tint_array_wrapper const x_1029 = stack; + tint_array_wrapper const tint_symbol_24 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + stack = tint_symbol_24; + stack = x_1029; + int const x_106 = top; + tint_array_wrapper const x_1030 = stack; + tint_array_wrapper const tint_symbol_25 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + stack = tint_symbol_25; + stack = x_1030; + float2 const x_567 = float2(x_558.x, x_564.z); + int const x_1031 = param_4; + param_4 = 0; + param_4 = x_1031; + if ((x_106 >= as_type(0u))) { + } else { + break; + } + QuicksortObject const x_1032 = *(tint_symbol_85); + tint_array_wrapper const tint_symbol_26 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + QuicksortObject const tint_symbol_27 = {.numbers=tint_symbol_26}; + *(tint_symbol_85) = tint_symbol_27; + *(tint_symbol_85) = x_1032; + float3 const x_568 = float3(x_559.y, x_559.x, x_563.y); + int const x_1033 = param_4; + param_4 = 0; + param_4 = x_1033; + int const x_108 = top; + float3 const x_569 = float3(x_565.x, x_567.y, x_565.x); + int const x_1034 = h_1; + h_1 = 0; + h_1 = x_1034; + float2 const x_570 = float2(x_556.x, x_556.x); + int const x_1035 = p; + p = 0; + p = x_1035; + top = (x_108 - as_type(1u)); + int const x_1036 = p; + p = 0; + p = x_1036; + int const x_110_save = x_108; + int const x_1037 = stack.arr[x_96_save]; + stack.arr[x_96_save] = 0; + stack.arr[x_96_save] = x_1037; + int const x_111 = stack.arr[x_110_save]; + tint_array_wrapper const x_1038 = stack; + tint_array_wrapper const tint_symbol_28 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + stack = tint_symbol_28; + stack = x_1038; + float3 const x_571 = float3(x_559.y, x_559.x, x_564.y); + int const x_1039 = l_1; + l_1 = 0; + l_1 = x_1039; + h_1 = x_111; + tint_array_wrapper const x_1040 = stack; + tint_array_wrapper const tint_symbol_29 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + stack = tint_symbol_29; + stack = x_1040; + float2 const x_572 = float2(x_562.y, x_561.y); + int const x_1041 = p; + p = 0; + p = x_1041; + int const x_112 = top; + int const x_1042 = param_4; + param_4 = 0; + param_4 = x_1042; + int const x_1043 = stack.arr[x_100_save]; + stack.arr[x_100_save] = 0; + stack.arr[x_100_save] = x_1043; + float2 const x_573 = float2(float3(1.0f, 2.0f, 3.0f).y, float3(1.0f, 2.0f, 3.0f).z); + top = (x_112 - 1); + int const x_1044 = param_5; + param_5 = 0; + param_5 = x_1044; + float3 const x_574 = float3(x_570.y, x_565.x, x_570.y); + int const x_1045 = h_1; + h_1 = 0; + h_1 = x_1045; + int const x_114_save = x_112; + float2 const x_575 = float2(x_564.y, x_564.z); + int const x_1046 = stack.arr[x_100_save]; + stack.arr[x_100_save] = 0; + stack.arr[x_100_save] = x_1046; + int const x_115 = stack.arr[x_114_save]; + int const x_1047 = p; + p = 0; + p = x_1047; + float3 const x_576 = float3(x_573.y, x_573.y, x_565.x); + int const x_1048 = param_5; + param_5 = 0; + param_5 = x_1048; + l_1 = x_115; + int const x_1049 = top; + top = 0; + top = x_1049; + int const x_118 = l_1; + param_4 = x_118; + int const x_1050 = stack.arr[x_110_save]; + stack.arr[x_110_save] = 0; + stack.arr[x_110_save] = x_1050; + float2 const x_577 = float2(x_569.y, x_569.z); + int const x_120 = h_1; + float2 const x_578 = float2(x_558.x, float3(1.0f, 2.0f, 3.0f).y); + param_5 = x_120; + int const x_1051 = stack.arr[x_100_save]; + stack.arr[x_100_save] = 0; + stack.arr[x_100_save] = x_1051; + int const x_121 = performPartition_i1_i1_(&(param_4), &(param_5), tint_symbol_85); + float2 const x_579 = float2(x_567.x, x_568.x); + int const x_1052 = param_5; + param_5 = 0; + param_5 = x_1052; + p = x_121; + int const x_1053 = param_4; + param_4 = 0; + param_4 = x_1053; + int const x_122 = p; + int const x_1054 = h_1; + h_1 = 0; + h_1 = x_1054; + float2 const x_580 = float2(x_568.y, x_568.y); + int const x_1055 = l_1; + l_1 = 0; + l_1 = x_1055; + int const x_1056 = h_1; + h_1 = 0; + h_1 = x_1056; + int const x_124 = l_1; + int const x_1057 = stack.arr[x_110_save]; + stack.arr[x_110_save] = 0; + stack.arr[x_110_save] = x_1057; + int const x_1058 = h_1; + h_1 = 0; + h_1 = x_1058; + float2 const x_582 = float2(x_567.y, x_573.x); + int const x_1059 = stack.arr[x_100_save]; + stack.arr[x_100_save] = 0; + stack.arr[x_100_save] = x_1059; + if (((x_122 - as_type(1u)) > x_124)) { + int const x_1060 = param_4; + param_4 = 0; + param_4 = x_1060; + int const x_128 = top; + float2 const x_583 = float2(x_571.y, x_556.y); + int const x_1061 = stack.arr[x_100_save]; + stack.arr[x_100_save] = 0; + stack.arr[x_100_save] = x_1061; + tint_array_wrapper const x_1062 = stack; + tint_array_wrapper const tint_symbol_30 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + stack = tint_symbol_30; + stack = x_1062; + float2 const x_584 = float2(x_569.z, x_569.y); + float3 const x_585 = float3(x_580.y, x_577.x, x_577.x); + int const x_130 = l_1; + int const x_1063 = stack.arr[x_114_save]; + stack.arr[x_114_save] = 0; + stack.arr[x_114_save] = x_1063; + float2 const x_586 = float2(x_564.x, x_585.x); + int const x_1064 = param_5; + param_5 = 0; + param_5 = x_1064; + int const x_131_save = (1 + x_128); + int const x_1065 = stack.arr[x_110_save]; + stack.arr[x_110_save] = 0; + stack.arr[x_110_save] = x_1065; + float3 const x_587 = float3(x_566.y, x_566.y, x_563.x); + int const x_1066 = param_5; + param_5 = 0; + param_5 = x_1066; + stack.arr[x_131_save] = x_130; + int const x_132 = top; + int const x_1067 = stack.arr[x_100_save]; + stack.arr[x_100_save] = 0; + stack.arr[x_100_save] = x_1067; + float2 const x_588 = float2(x_575.y, x_575.x); + int const x_1068 = stack.arr[x_131_save]; + stack.arr[x_131_save] = 0; + stack.arr[x_131_save] = x_1068; + int const x_133 = as_type((1u + as_type(x_132))); + int const x_1069 = stack.arr[x_100_save]; + stack.arr[x_100_save] = 0; + stack.arr[x_100_save] = x_1069; + float3 const x_589 = float3(x_576.z, x_588.y, x_576.z); + int const x_1070 = h_1; + h_1 = 0; + h_1 = x_1070; + top = x_133; + tint_array_wrapper const x_1071 = stack; + tint_array_wrapper const tint_symbol_31 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + stack = tint_symbol_31; + stack = x_1071; + int const x_134 = p; + float2 const x_590 = float2(x_576.x, x_573.y); + int const x_1072 = stack.arr[x_114_save]; + stack.arr[x_114_save] = 0; + stack.arr[x_114_save] = x_1072; + int const x_136_save = x_133; + int const 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 - as_type(1u)); + int const x_1074 = stack.arr[x_96_save]; + stack.arr[x_96_save] = 0; + stack.arr[x_96_save] = x_1074; + float2 const x_591 = float2(x_569.z, x_569.y); + int const x_1075 = stack.arr[x_136_save]; + stack.arr[x_136_save] = 0; + stack.arr[x_136_save] = x_1075; + } + int const x_1076 = stack.arr[x_96_save]; + stack.arr[x_96_save] = 0; + stack.arr[x_96_save] = x_1076; + float2 const x_592 = float2(float3(1.0f, 2.0f, 3.0f).x, float3(1.0f, 2.0f, 3.0f).y); + QuicksortObject const x_1077 = *(tint_symbol_85); + tint_array_wrapper const tint_symbol_32 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + QuicksortObject const tint_symbol_33 = {.numbers=tint_symbol_32}; + *(tint_symbol_85) = tint_symbol_33; + *(tint_symbol_85) = x_1077; + int const x_137 = p; + int const x_1078 = stack.arr[x_114_save]; + stack.arr[x_114_save] = 0; + stack.arr[x_114_save] = x_1078; + float3 const x_593 = float3(x_571.z, x_556.x, x_556.y); + int const x_1079 = p; + p = 0; + p = x_1079; + float3 const x_594 = float3(x_563.z, x_563.x, x_575.x); + int const x_1080 = stack.arr[x_114_save]; + stack.arr[x_114_save] = 0; + stack.arr[x_114_save] = x_1080; + int const x_139 = h_1; + int const x_1081 = top; + top = 0; + top = x_1081; + float3 const x_595 = float3(x_560.z, x_568.x, x_560.x); + int const x_1082 = stack.arr[x_100_save]; + stack.arr[x_100_save] = 0; + stack.arr[x_100_save] = x_1082; + int const x_1083 = p; + p = 0; + p = x_1083; + if ((as_type((1u + as_type(x_137))) < x_139)) { + int const x_1084 = stack.arr[x_114_save]; + stack.arr[x_114_save] = 0; + stack.arr[x_114_save] = x_1084; + float2 const x_596 = float2(x_592.y, x_582.x); + int const x_1085 = l_1; + l_1 = 0; + l_1 = x_1085; + int const x_143 = top; + int const x_1086 = stack.arr[x_114_save]; + stack.arr[x_114_save] = 0; + stack.arr[x_114_save] = x_1086; + float3 const x_597 = float3(x_562.y, x_560.y, x_560.y); + int const x_144 = (x_143 + 1); + int const x_1087 = param_5; + param_5 = 0; + param_5 = x_1087; + top = x_144; + int const x_1088 = stack.arr[x_114_save]; + stack.arr[x_114_save] = 0; + stack.arr[x_114_save] = x_1088; + int const x_145 = p; + int const x_1089 = param_5; + param_5 = 0; + param_5 = x_1089; + float3 const x_599 = float3(x_560.z, x_560.x, x_568.x); + int const x_1090 = p; + p = 0; + p = x_1090; + float3 const x_600 = float3(x_556.x, x_580.x, x_580.x); + int const x_1091 = stack.arr[x_100_save]; + stack.arr[x_100_save] = 0; + stack.arr[x_100_save] = x_1091; + int const x_147_save = x_144; + int const x_1092 = stack.arr[x_110_save]; + stack.arr[x_110_save] = 0; + stack.arr[x_110_save] = x_1092; + float2 const x_601 = float2(x_563.x, x_563.y); + stack.arr[x_147_save] = as_type((1u + as_type(x_145))); + tint_array_wrapper const x_1093 = stack; + tint_array_wrapper const tint_symbol_34 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + stack = tint_symbol_34; + stack = x_1093; + int const x_148 = top; + int const x_1094 = stack.arr[x_114_save]; + stack.arr[x_114_save] = 0; + stack.arr[x_114_save] = x_1094; + float2 const x_602 = float2(x_565.y, x_599.y); + tint_array_wrapper const x_1095 = stack; + tint_array_wrapper const tint_symbol_35 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + stack = tint_symbol_35; + stack = x_1095; + int const x_149 = (x_148 + as_type(1u)); + int const x_1096 = stack.arr[x_147_save]; + stack.arr[x_147_save] = 0; + stack.arr[x_147_save] = x_1096; + top = x_149; + int const x_1097 = param_4; + param_4 = 0; + param_4 = x_1097; + int const x_150 = h_1; + int const x_1098 = stack.arr[x_100_save]; + stack.arr[x_100_save] = 0; + stack.arr[x_100_save] = x_1098; + int const 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; + int const x_1100 = stack.arr[x_114_save]; + stack.arr[x_114_save] = 0; + stack.arr[x_114_save] = x_1100; + float3 const x_603 = float3(x_568.y, x_564.x, x_564.x); + int const x_1101 = l_1; + l_1 = 0; + l_1 = x_1101; + } + int const x_1102 = stack.arr[x_100_save]; + stack.arr[x_100_save] = 0; + stack.arr[x_100_save] = x_1102; + { + int const x_1103 = l_1; + l_1 = 0; + l_1 = x_1103; + float2 const x_604 = float2(x_563.z, x_564.x); + QuicksortObject const x_1104 = *(tint_symbol_85); + tint_array_wrapper const tint_symbol_36 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + QuicksortObject const tint_symbol_37 = {.numbers=tint_symbol_36}; + *(tint_symbol_85) = tint_symbol_37; + *(tint_symbol_85) = x_1104; + } + } + int const x_1105 = h_1; + h_1 = 0; + h_1 = x_1105; + return; +} + +void main_1(constant buf0& x_188, thread QuicksortObject* const tint_symbol_86, thread float4* const tint_symbol_87, thread float4* const tint_symbol_88) { + float3 color = 0.0f; + int i_2 = 0; + float2 uv = 0.0f; + float2 const x_717 = uv; + uv = float2(0.0f, 0.0f); + uv = x_717; + i_2 = 0; + QuicksortObject const x_721 = *(tint_symbol_86); + tint_array_wrapper const tint_symbol_38 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + QuicksortObject const tint_symbol_39 = {.numbers=tint_symbol_38}; + *(tint_symbol_86) = tint_symbol_39; + *(tint_symbol_86) = x_721; + if (true) { + QuicksortObject const x_722 = *(tint_symbol_86); + tint_array_wrapper const tint_symbol_40 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + QuicksortObject const tint_symbol_41 = {.numbers=tint_symbol_40}; + *(tint_symbol_86) = tint_symbol_41; + *(tint_symbol_86) = x_722; + float2 const x_431 = float2(float3(1.0f, 2.0f, 3.0f).x, float3(1.0f, 2.0f, 3.0f).x); int const x_158 = i_2; - ^ -program_source:959:18: warning: unused variable 'x_432' + float2 const x_723 = uv; + uv = float2(0.0f, 0.0f); + uv = x_723; + float3 const x_725 = color; + color = float3(0.0f, 0.0f, 0.0f); + color = x_725; float2 const x_432 = float2(x_431.y, x_431.y); - ^ -program_source:967:48: warning: suggest braces around initialization of subobject - tint_array_wrapper_0 const tint_symbol_41 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; - ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ - { } -program_source:977:48: warning: suggest braces around initialization of subobject - tint_array_wrapper_0 const tint_symbol_43 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; - ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ - { } -program_source:992:48: warning: suggest braces around initialization of subobject - tint_array_wrapper_0 const tint_symbol_45 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; - ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ - { } -program_source:1001:48: warning: suggest braces around initialization of subobject - tint_array_wrapper_0 const tint_symbol_47 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; - ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ - { } -program_source:1011:48: warning: suggest braces around initialization of subobject - tint_array_wrapper_0 const tint_symbol_49 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; - ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ - { } -program_source:1029:48: warning: suggest braces around initialization of subobject - tint_array_wrapper_0 const tint_symbol_51 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; - ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ - { } -program_source:1039:48: warning: suggest braces around initialization of subobject - tint_array_wrapper_0 const tint_symbol_53 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; - ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ - { } -program_source:1043:31: error: address of vector element requested - thread float* const x_205 = &(color.x); - ^ ~~~~~~~ -program_source:1056:48: warning: suggest braces around initialization of subobject - tint_array_wrapper_0 const tint_symbol_55 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; - ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ - { } -program_source:1060:31: error: address of vector element requested - thread float* const x_208 = &(color.x); - ^ ~~~~~~~ -program_source:1066:31: error: address of vector element requested - thread float* const x_209 = &(uv.x); - ^ ~~~~ -program_source:1077:48: warning: suggest braces around initialization of subobject - tint_array_wrapper_0 const tint_symbol_57 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; - ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ - { } -program_source:1094:50: warning: suggest braces around initialization of subobject - tint_array_wrapper_0 const tint_symbol_59 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; - ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ - { } -program_source:1102:33: error: address of vector element requested - thread float* const x_218 = &(color[0]); - ^ ~~~~~~~~ -program_source:1104:50: warning: suggest braces around initialization of subobject - tint_array_wrapper_0 const tint_symbol_61 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; - ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ - { } -program_source:1134:31: error: address of vector element requested - thread float* const x_222 = &(uv.x); - ^ ~~~~ -program_source:1176:33: error: address of vector element requested - thread float* const x_233 = &(color.y); - ^ ~~~~~~~ -program_source:1204:31: error: address of vector element requested - thread float* const x_237 = &(uv[0]); - ^ ~~~~~ -program_source:1228:50: warning: suggest braces around initialization of subobject - tint_array_wrapper_0 const tint_symbol_63 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; - ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ - { } -program_source:1236:33: error: address of vector element requested - thread float* const x_248 = &(color.z); - ^ ~~~~~~~ -program_source:1277:31: error: address of vector element requested - thread float* const x_256 = &(color.y); - ^ ~~~~~~~ -program_source:1290:31: error: address of vector element requested - thread float* const x_259 = &(color.y); - ^ ~~~~~~~ -program_source:1300:31: error: address of vector element requested - thread float* const x_260 = &(uv.y); - ^ ~~~~ -program_source:1344:50: warning: suggest braces around initialization of subobject - tint_array_wrapper_0 const tint_symbol_65 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; - ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ - { } -program_source:1324:18: warning: unused variable 'x_481' + QuicksortObject const x_726 = *(tint_symbol_86); + tint_array_wrapper const tint_symbol_42 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + QuicksortObject const tint_symbol_43 = {.numbers=tint_symbol_42}; + *(tint_symbol_86) = tint_symbol_43; + *(tint_symbol_86) = x_726; + } + QuicksortObject const x_756 = *(tint_symbol_86); + tint_array_wrapper const tint_symbol_44 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + QuicksortObject const tint_symbol_45 = {.numbers=tint_symbol_44}; + *(tint_symbol_86) = tint_symbol_45; + *(tint_symbol_86) = x_756; + float2 const x_446 = float2(float2(0.0f, 0.0f).x, float2(0.0f, 0.0f).x); + int const x_757 = i_2; + i_2 = 0; + i_2 = x_757; + quicksort_(tint_symbol_86); + QuicksortObject const x_758 = *(tint_symbol_86); + tint_array_wrapper const tint_symbol_46 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + QuicksortObject const tint_symbol_47 = {.numbers=tint_symbol_46}; + *(tint_symbol_86) = tint_symbol_47; + *(tint_symbol_86) = x_758; + float4 const x_184 = *(tint_symbol_87); + float2 const x_759 = uv; + uv = float2(0.0f, 0.0f); + uv = x_759; + float2 const x_447 = float2(float2(0.0f, 0.0f).y, float2(0.0f, 0.0f).y); + float2 const x_760 = uv; + uv = float2(0.0f, 0.0f); + uv = x_760; + float2 const x_185 = float2(x_184.x, x_184.y); + float3 const x_448 = float3(x_185.y, x_446.y, x_446.y); + QuicksortObject const x_761 = *(tint_symbol_86); + tint_array_wrapper const tint_symbol_48 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + QuicksortObject const tint_symbol_49 = {.numbers=tint_symbol_48}; + *(tint_symbol_86) = tint_symbol_49; + *(tint_symbol_86) = x_761; + float2 const x_762 = uv; + uv = float2(0.0f, 0.0f); + uv = x_762; + float2 const x_191 = x_188.resolution; + QuicksortObject const x_763 = *(tint_symbol_86); + tint_array_wrapper const tint_symbol_50 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + QuicksortObject const tint_symbol_51 = {.numbers=tint_symbol_50}; + *(tint_symbol_86) = tint_symbol_51; + *(tint_symbol_86) = x_763; + float3 const x_449 = float3(x_184.y, float3(1.0f, 2.0f, 3.0f).z, x_184.w); + float3 const x_764 = color; + color = float3(0.0f, 0.0f, 0.0f); + color = x_764; + float2 const x_192 = (x_185 / x_191); + QuicksortObject const x_765 = *(tint_symbol_86); + tint_array_wrapper const tint_symbol_52 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + QuicksortObject const tint_symbol_53 = {.numbers=tint_symbol_52}; + *(tint_symbol_86) = tint_symbol_53; + *(tint_symbol_86) = x_765; + float2 const x_450 = float2(x_447.x, x_185.y); + float3 const x_766 = color; + color = float3(0.0f, 0.0f, 0.0f); + float3 const x_767 = color; + color = float3(0.0f, 0.0f, 0.0f); + color = x_767; + color = x_766; + uv = x_192; + color = float3(1.0f, 2.0f, 3.0f); + float3 const x_768 = color; + color = float3(0.0f, 0.0f, 0.0f); + color = x_768; + float3 const x_451 = float3(x_185.x, x_185.y, x_446.y); + QuicksortObject const x_769 = *(tint_symbol_86); + tint_array_wrapper const tint_symbol_54 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + QuicksortObject const tint_symbol_55 = {.numbers=tint_symbol_54}; + *(tint_symbol_86) = tint_symbol_55; + *(tint_symbol_86) = x_769; + int const x_770 = (*(tint_symbol_86)).numbers.arr[0u]; + (*(tint_symbol_86)).numbers.arr[0u] = 0; + (*(tint_symbol_86)).numbers.arr[0u] = x_770; + int const x_201 = (*(tint_symbol_86)).numbers.arr[0u]; + QuicksortObject const x_771 = *(tint_symbol_86); + tint_array_wrapper const tint_symbol_56 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + QuicksortObject const tint_symbol_57 = {.numbers=tint_symbol_56}; + *(tint_symbol_86) = tint_symbol_57; + *(tint_symbol_86) = x_771; + int const x_772 = (*(tint_symbol_86)).numbers.arr[0u]; + (*(tint_symbol_86)).numbers.arr[0u] = 0; + (*(tint_symbol_86)).numbers.arr[0u] = x_772; + float const x_206 = color.x; + float const x_773 = color.x; + color.x = 0.0f; + color.x = x_773; + float2 const x_452 = float2(float3(1.0f, 2.0f, 3.0f).z, float3(1.0f, 2.0f, 3.0f).y); + int const x_774 = i_2; + i_2 = 0; + i_2 = x_774; + QuicksortObject const x_775 = *(tint_symbol_86); + tint_array_wrapper const tint_symbol_58 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + QuicksortObject const tint_symbol_59 = {.numbers=tint_symbol_58}; + *(tint_symbol_86) = tint_symbol_59; + *(tint_symbol_86) = x_775; + float3 const x_453 = float3(x_451.x, x_450.x, x_450.y); + color.x = (x_206 + float(x_201)); + float2 const x_776 = uv; + uv = float2(0.0f, 0.0f); + uv = x_776; + float2 const x_777 = uv; + uv = float2(0.0f, 0.0f); + uv = x_777; + float2 const x_454 = float2(x_184.y, x_184.y); + float const x_210 = uv.x; + float2 const x_455 = float2(x_192.y, x_192.x); + float const x_778 = uv.x; + uv.x = 0.0f; + uv.x = x_778; + QuicksortObject const x_779 = *(tint_symbol_86); + tint_array_wrapper const tint_symbol_60 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + QuicksortObject const tint_symbol_61 = {.numbers=tint_symbol_60}; + *(tint_symbol_86) = tint_symbol_61; + *(tint_symbol_86) = x_779; + if ((x_210 > 0.25f)) { + int const x_780 = i_2; + i_2 = 0; + i_2 = x_780; + int const x_781 = (*(tint_symbol_86)).numbers.arr[0u]; + (*(tint_symbol_86)).numbers.arr[0u] = 0; + (*(tint_symbol_86)).numbers.arr[0u] = x_781; + float3 const x_456 = float3(float2(0.0f, 0.0f).y, x_448.y, x_448.y); + float const x_782 = uv.x; + uv.x = 0.0f; + uv.x = x_782; + int const x_216 = (*(tint_symbol_86)).numbers.arr[1]; + QuicksortObject const x_783 = *(tint_symbol_86); + tint_array_wrapper const tint_symbol_62 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + QuicksortObject const tint_symbol_63 = {.numbers=tint_symbol_62}; + *(tint_symbol_86) = tint_symbol_63; + *(tint_symbol_86) = x_783; + float2 const x_457 = float2(x_454.x, x_454.x); + float2 const x_784 = uv; + uv = float2(0.0f, 0.0f); + uv = x_784; + QuicksortObject const x_785 = *(tint_symbol_86); + tint_array_wrapper const tint_symbol_64 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + QuicksortObject const tint_symbol_65 = {.numbers=tint_symbol_64}; + *(tint_symbol_86) = tint_symbol_65; + *(tint_symbol_86) = x_785; + float2 const x_458 = float2(float3(1.0f, 2.0f, 3.0f).z, float2(0.0f, 0.0f).y); + int const x_786 = i_2; + i_2 = 0; + i_2 = x_786; + float const x_219 = color[0]; + float const x_787 = color[0]; + color[0] = 0.0f; + color[0] = x_787; + float3 const x_788 = color; + color = float3(0.0f, 0.0f, 0.0f); + color = x_788; + float3 const x_789 = color; + color = float3(0.0f, 0.0f, 0.0f); + color = x_789; + float3 const x_459 = float3(x_454.y, x_454.y, x_447.y); + float const x_790 = color[0]; + color[0] = 0.0f; + color[0] = x_790; + color.x = (float(x_216) + x_219); + int const x_791 = (*(tint_symbol_86)).numbers.arr[0u]; + (*(tint_symbol_86)).numbers.arr[0u] = 0; + (*(tint_symbol_86)).numbers.arr[0u] = x_791; + } + float const x_792 = uv.x; + uv.x = 0.0f; + uv.x = x_792; + float const x_793 = uv.x; + uv.x = 0.0f; + uv.x = x_793; + float const x_223 = uv.x; + float const x_794 = uv.x; + uv.x = 0.0f; + uv.x = x_794; + float3 const x_460 = float3(x_453.z, x_453.y, x_453.y); + float2 const x_795 = uv; + uv = float2(0.0f, 0.0f); + uv = x_795; + float const x_796 = uv.x; + uv.x = 0.0f; + uv.x = x_796; + float2 const x_461 = float2(float2(0.0f, 0.0f).y, float2(0.0f, 0.0f).y); + float const x_797 = uv.x; + uv.x = 0.0f; + uv.x = x_797; + if ((x_223 > 0.5f)) { + float const x_798 = uv.x; + uv.x = 0.0f; + uv.x = x_798; + float2 const x_462 = float2(x_446.x, x_446.x); + float const x_799 = color.x; + color.x = 0.0f; + color.x = x_799; + float const x_800 = color.x; + color.x = 0.0f; + color.x = x_800; + float3 const x_463 = float3(x_453.x, x_453.z, x_461.y); + float const x_801 = color.x; + color.x = 0.0f; + color.x = x_801; + int const x_230 = (*(tint_symbol_86)).numbers.arr[2u]; + float const x_802 = uv.x; + uv.x = 0.0f; + uv.x = x_802; + float const x_803 = color.x; + color.x = 0.0f; + color.x = x_803; + int const x_804 = (*(tint_symbol_86)).numbers.arr[2u]; + (*(tint_symbol_86)).numbers.arr[2u] = 0; + (*(tint_symbol_86)).numbers.arr[2u] = x_804; + float2 const x_464 = float2(x_450.y, x_191.x); + float const x_805 = color.y; + color.y = 0.0f; + color.y = x_805; + float const x_234 = color.y; + int const x_806 = (*(tint_symbol_86)).numbers.arr[2u]; + (*(tint_symbol_86)).numbers.arr[2u] = 0; + (*(tint_symbol_86)).numbers.arr[2u] = x_806; + float2 const x_465 = float2(x_463.x, x_185.x); + float const x_807 = color.x; + color.x = 0.0f; + color.x = x_807; + int const x_808 = i_2; + i_2 = 0; + i_2 = x_808; + float2 const x_466 = float2(x_455.y, float2(0.0f, 0.0f).y); + int const x_809 = i_2; + i_2 = 0; + i_2 = x_809; + color.y = (float(x_230) + x_234); + float const x_810 = uv.x; + uv.x = 0.0f; + uv.x = x_810; + } + int const x_811 = i_2; + i_2 = 0; + i_2 = x_811; + float2 const x_467 = float2(x_191.x, x_191.x); + float const x_812 = uv.x; + uv.x = 0.0f; + uv.x = x_812; + float const x_238 = uv[0]; + float3 const x_813 = color; + color = float3(0.0f, 0.0f, 0.0f); + color = x_813; + float const x_814 = color.x; + color.x = 0.0f; + color.x = x_814; + if ((x_238 > 0.75f)) { + float const x_815 = color.x; + color.x = 0.0f; + color.x = x_815; + int const x_245 = (*(tint_symbol_86)).numbers.arr[3]; + float const x_816 = color.x; + color.x = 0.0f; + color.x = x_816; + QuicksortObject const x_817 = *(tint_symbol_86); + tint_array_wrapper const tint_symbol_66 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + QuicksortObject const tint_symbol_67 = {.numbers=tint_symbol_66}; + *(tint_symbol_86) = tint_symbol_67; + *(tint_symbol_86) = x_817; + float3 const x_468 = float3(x_467.x, x_467.x, x_467.x); + float const x_818 = uv[0]; + uv[0] = 0.0f; + uv[0] = x_818; + float const x_819 = uv.x; + uv.x = 0.0f; + uv.x = x_819; + float const x_249 = color.z; + float3 const x_820 = color; + color = float3(0.0f, 0.0f, 0.0f); + color = x_820; + float3 const x_469 = float3(x_467.x, x_191.y, x_467.y); + float const x_821 = color.z; + color.z = 0.0f; + color.z = x_821; + int const x_822 = (*(tint_symbol_86)).numbers.arr[0u]; + (*(tint_symbol_86)).numbers.arr[0u] = 0; + (*(tint_symbol_86)).numbers.arr[0u] = x_822; + float2 const x_470 = float2(float2(0.0f, 0.0f).x, float2(0.0f, 0.0f).y); + float const x_823 = color.z; + color.z = 0.0f; + color.z = x_823; + color.z = (x_249 + float(x_245)); + float2 const x_824 = uv; + uv = float2(0.0f, 0.0f); + uv = x_824; + float2 const x_471 = float2(x_470.y, x_470.y); + } + float const x_825 = uv[0]; + uv[0] = 0.0f; + uv[0] = x_825; + float3 const x_472 = float3(x_454.x, x_454.y, x_454.y); + int const x_254 = (*(tint_symbol_86)).numbers.arr[4]; + float const x_826 = uv[0]; + uv[0] = 0.0f; + uv[0] = x_826; + float3 const x_827 = color; + color = float3(0.0f, 0.0f, 0.0f); + color = x_827; + float3 const x_473 = float3(x_446.y, x_453.x, x_453.x); + int const x_828 = (*(tint_symbol_86)).numbers.arr[4]; + (*(tint_symbol_86)).numbers.arr[4] = 0; + (*(tint_symbol_86)).numbers.arr[4] = x_828; + float2 const x_474 = float2(x_191.x, x_184.z); + float const x_829 = uv.x; + uv.x = 0.0f; + uv.x = x_829; + float const x_257 = color.y; + float const x_830 = color.y; + color.y = 0.0f; + color.y = x_830; + float2 const x_475 = float2(x_467.x, x_450.x); + float const x_831 = uv.x; + uv.x = 0.0f; + uv.x = x_831; + float const x_832 = color.x; + color.x = 0.0f; + color.x = x_832; + float2 const x_476 = float2(x_451.z, x_460.y); + color.y = (x_257 + float(x_254)); + float3 const x_477 = float3(float2(0.0f, 0.0f).x, x_472.x, float2(0.0f, 0.0f).y); + float const x_833 = uv.x; + uv.x = 0.0f; + uv.x = x_833; + float const x_834 = color.x; + color.x = 0.0f; + color.x = x_834; + float2 const x_478 = float2(x_472.x, x_472.y); + float const x_835 = uv.y; + uv.y = 0.0f; + uv.y = x_835; + float const x_261 = uv.y; + int const x_836 = i_2; + i_2 = 0; + i_2 = x_836; + float3 const x_479 = float3(float2(0.0f, 0.0f).y, x_454.y, float2(0.0f, 0.0f).x); + int const x_837 = (*(tint_symbol_86)).numbers.arr[0u]; + (*(tint_symbol_86)).numbers.arr[0u] = 0; + (*(tint_symbol_86)).numbers.arr[0u] = x_837; + float const x_838 = color.y; + color.y = 0.0f; + color.y = x_838; + float3 const x_480 = float3(x_446.x, x_446.x, float2(0.0f, 0.0f).y); + float const x_839 = uv.x; + uv.x = 0.0f; + uv.x = x_839; + if ((x_261 > 0.25f)) { float2 const x_481 = float2(x_447.x, x_480.z); - ^ -program_source:1342:18: warning: unused variable 'x_482' + float3 const x_840 = color; + color = float3(0.0f, 0.0f, 0.0f); + color = x_840; + int const x_267 = (*(tint_symbol_86)).numbers.arr[5u]; + float const x_841 = color.x; + color.x = 0.0f; + color.x = x_841; + int const x_842 = i_2; + i_2 = 0; + i_2 = x_842; + int const x_843 = i_2; + i_2 = 0; + i_2 = x_843; + float const x_270 = color.x; + float const x_844 = uv[0]; + uv[0] = 0.0f; + uv[0] = x_844; float3 const x_482 = float3(x_455.x, x_475.y, x_455.y); - ^ -program_source:1354:18: warning: unused variable 'x_483' + QuicksortObject const x_845 = *(tint_symbol_86); + tint_array_wrapper const tint_symbol_68 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + QuicksortObject const tint_symbol_69 = {.numbers=tint_symbol_68}; + *(tint_symbol_86) = tint_symbol_69; + *(tint_symbol_86) = x_845; + float const x_846 = uv.y; + uv.y = 0.0f; + uv.y = x_846; + int const x_847 = i_2; + i_2 = 0; + i_2 = x_847; float3 const x_483 = float3(x_184.w, x_184.w, x_192.x); - ^ -program_source:1359:18: warning: unused variable 'x_484' + float const x_848 = uv.x; + uv.x = 0.0f; + uv.x = x_848; + color.x = (float(x_267) + x_270); float3 const x_484 = float3(x_454.y, x_450.x, x_454.y); - ^ -program_source:1371:31: error: address of vector element requested - thread float* const x_273 = &(uv.y); - ^ ~~~~ -program_source:1419:50: warning: suggest braces around initialization of subobject - tint_array_wrapper_0 const tint_symbol_67 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; - ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ - { } -program_source:1383:18: warning: unused variable 'x_486' + float const x_849 = uv.x; + uv.x = 0.0f; + uv.x = x_849; + } + float const x_850 = color.x; + color.x = 0.0f; + color.x = x_850; + float3 const x_485 = float3(x_467.x, x_450.y, x_450.x); + float const x_851 = uv.y; + uv.y = 0.0f; + uv.y = x_851; + int const x_852 = (*(tint_symbol_86)).numbers.arr[4]; + (*(tint_symbol_86)).numbers.arr[4] = 0; + (*(tint_symbol_86)).numbers.arr[4] = x_852; + float const x_274 = uv.y; + int const x_853 = (*(tint_symbol_86)).numbers.arr[0u]; + (*(tint_symbol_86)).numbers.arr[0u] = 0; + (*(tint_symbol_86)).numbers.arr[0u] = x_853; + if ((x_274 > 0.5f)) { + float const x_854 = uv.x; + uv.x = 0.0f; + uv.x = x_854; float2 const x_486 = float2(x_480.y, x_455.y); - ^ -program_source:1388:18: warning: unused variable 'x_487' + float const x_855 = color.y; + color.y = 0.0f; + color.y = x_855; float2 const x_487 = float2(x_449.z, x_449.y); - ^ -program_source:1402:18: warning: unused variable 'x_488' + float const x_856 = uv.y; + uv.y = 0.0f; + uv.y = x_856; + int const x_280 = (*(tint_symbol_86)).numbers.arr[6u]; + float const x_857 = uv.y; + uv.y = 0.0f; + uv.y = x_857; + int const x_858 = i_2; + i_2 = 0; + i_2 = x_858; + int const x_859 = (*(tint_symbol_86)).numbers.arr[4]; + (*(tint_symbol_86)).numbers.arr[4] = 0; + (*(tint_symbol_86)).numbers.arr[4] = x_859; float2 const x_488 = float2(x_473.z, x_473.y); - ^ -program_source:1410:18: warning: unused variable 'x_489' + float const x_283 = color.y; + float2 const x_860 = uv; + uv = float2(0.0f, 0.0f); + uv = x_860; + float const x_861 = color.x; + color.x = 0.0f; + color.x = x_861; float2 const x_489 = float2(x_475.y, x_475.x); - ^ -program_source:1417:18: warning: unused variable 'x_490' + int const x_862 = (*(tint_symbol_86)).numbers.arr[6u]; + (*(tint_symbol_86)).numbers.arr[6u] = 0; + (*(tint_symbol_86)).numbers.arr[6u] = x_862; + int const x_863 = (*(tint_symbol_86)).numbers.arr[6u]; + (*(tint_symbol_86)).numbers.arr[6u] = 0; + (*(tint_symbol_86)).numbers.arr[6u] = x_863; float2 const x_490 = float2(x_480.z, x_480.z); - ^ -program_source:1427:18: warning: unused variable 'x_491' + QuicksortObject const x_864 = *(tint_symbol_86); + tint_array_wrapper const tint_symbol_70 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + QuicksortObject const tint_symbol_71 = {.numbers=tint_symbol_70}; + *(tint_symbol_86) = tint_symbol_71; + *(tint_symbol_86) = x_864; + color.y = (float(x_280) + x_283); + float const x_865 = color.x; + color.x = 0.0f; + color.x = x_865; float2 const x_491 = float2(float3(1.0f, 2.0f, 3.0f).y, x_454.x); - ^ -program_source:1436:31: error: address of vector element requested - thread float* const x_286 = &(uv.y); - ^ ~~~~ -program_source:1439:48: warning: suggest braces around initialization of subobject - tint_array_wrapper_0 const tint_symbol_69 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; - ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ - { } -program_source:1495:33: error: address of vector element requested - thread float* const x_298 = &(color.z); - ^ ~~~~~~~ -program_source:1535:31: error: address of vector element requested - thread float* const x_303 = &(color.z); - ^ ~~~~~~~ -program_source:1555:31: error: address of vector element requested - thread float* const x_306 = &(color.z); - ^ ~~~~~~~ -program_source:1571:31: error: address of vector element requested - thread float* const x_309 = &(uv.y); - ^ ~~~~ -program_source:1606:50: warning: suggest braces around initialization of subobject - tint_array_wrapper_0 const tint_symbol_71 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; - ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ - { } -program_source:1634:33: error: address of vector element requested - thread float* const x_322 = &(color.x); - ^ ~~~~~~~ -program_source:1661:48: warning: suggest braces around initialization of subobject - tint_array_wrapper_0 const tint_symbol_73 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; - ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ - { } -program_source:1666:48: warning: suggest braces around initialization of subobject - tint_array_wrapper_0 const tint_symbol_75 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; - ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ - { } -program_source:1687:48: warning: suggest braces around initialization of subobject - tint_array_wrapper_0 const tint_symbol_77 = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; - ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ - { } + float const x_866 = color.y; + color.y = 0.0f; + color.y = x_866; + } + float2 const x_492 = float2(x_455.y, x_455.y); + float const x_867 = color.x; + color.x = 0.0f; + color.x = x_867; + float const x_287 = uv.y; + QuicksortObject const x_868 = *(tint_symbol_86); + tint_array_wrapper const tint_symbol_72 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + QuicksortObject const tint_symbol_73 = {.numbers=tint_symbol_72}; + *(tint_symbol_86) = tint_symbol_73; + *(tint_symbol_86) = x_868; + float2 const x_493 = float2(x_475.x, x_475.y); + float const x_869 = uv[0]; + uv[0] = 0.0f; + uv[0] = x_869; + float const x_870 = color.y; + color.y = 0.0f; + color.y = x_870; + float3 const x_494 = float3(x_191.x, x_191.y, x_191.y); + int const x_871 = (*(tint_symbol_86)).numbers.arr[4]; + (*(tint_symbol_86)).numbers.arr[4] = 0; + (*(tint_symbol_86)).numbers.arr[4] = x_871; + if ((x_287 > 0.75f)) { + float3 const x_872 = color; + color = float3(0.0f, 0.0f, 0.0f); + color = x_872; + float const x_873 = color.x; + color.x = 0.0f; + color.x = x_873; + float3 const x_495 = float3(x_192.y, x_192.x, x_192.y); + float3 const x_874 = color; + color = float3(0.0f, 0.0f, 0.0f); + color = x_874; + int const x_293 = (*(tint_symbol_86)).numbers.arr[7]; + float const x_875 = uv.x; + uv.x = 0.0f; + uv.x = x_875; + float3 const x_496 = float3(x_475.x, x_467.y, x_467.x); + float const x_876 = color.y; + color.y = 0.0f; + color.y = x_876; + float2 const x_497 = float2(x_477.x, x_461.y); + int const x_877 = (*(tint_symbol_86)).numbers.arr[0u]; + (*(tint_symbol_86)).numbers.arr[0u] = 0; + (*(tint_symbol_86)).numbers.arr[0u] = x_877; + float const x_878 = color.y; + color.y = 0.0f; + color.y = x_878; + float3 const x_498 = float3(x_478.x, x_478.y, x_478.x); + float const x_879 = color.x; + color.x = 0.0f; + color.x = x_879; + float const x_296 = color.z; + float const x_880 = uv.y; + uv.y = 0.0f; + uv.y = x_880; + float2 const x_499 = float2(x_184.x, x_184.y); + float const x_881 = uv.x; + uv.x = 0.0f; + uv.x = x_881; + float const x_882 = uv.y; + uv.y = 0.0f; + uv.y = x_882; + float const x_883 = uv.y; + uv.y = 0.0f; + uv.y = x_883; + float3 const x_500 = float3(x_499.y, x_499.y, x_494.z); + float const x_884 = color.z; + color.z = 0.0f; + color.z = x_884; + color.z = (float(x_293) + x_296); + float const x_885 = color.y; + color.y = 0.0f; + color.y = x_885; + float2 const x_501 = float2(x_453.x, x_453.z); + float const x_886 = color.x; + color.x = 0.0f; + color.x = x_886; + } + int const x_887 = i_2; + i_2 = 0; + i_2 = x_887; + float2 const x_502 = float2(x_451.y, x_192.y); + float2 const x_888 = uv; + uv = float2(0.0f, 0.0f); + uv = x_888; + int const x_301 = (*(tint_symbol_86)).numbers.arr[8]; + int const x_889 = i_2; + i_2 = 0; + i_2 = x_889; + float2 const x_503 = float2(x_185.x, x_451.z); + int const x_890 = (*(tint_symbol_86)).numbers.arr[8]; + (*(tint_symbol_86)).numbers.arr[8] = 0; + (*(tint_symbol_86)).numbers.arr[8] = x_890; + float const x_891 = color.y; + color.y = 0.0f; + color.y = x_891; + float2 const x_504 = float2(x_453.y, float2(0.0f, 0.0f).x); + float const x_892 = color.x; + color.x = 0.0f; + color.x = x_892; + float3 const x_505 = float3(x_504.x, x_504.y, x_504.x); + float const x_893 = color.z; + color.z = 0.0f; + color.z = x_893; + float const x_304 = color.z; + float const x_894 = color.x; + color.x = 0.0f; + color.x = x_894; + float2 const x_506 = float2(x_493.x, x_492.x); + int const x_895 = (*(tint_symbol_86)).numbers.arr[4]; + (*(tint_symbol_86)).numbers.arr[4] = 0; + (*(tint_symbol_86)).numbers.arr[4] = x_895; + float const x_896 = uv.y; + uv.y = 0.0f; + uv.y = x_896; + float2 const x_507 = float2(x_461.x, x_447.x); + float const x_897 = color.y; + color.y = 0.0f; + color.y = x_897; + color.z = (x_304 + float(x_301)); + float2 const x_898 = uv; + uv = float2(0.0f, 0.0f); + uv = x_898; + float const x_899 = uv.x; + uv.x = 0.0f; + uv.x = x_899; + float3 const x_508 = float3(x_461.y, x_461.x, x_506.y); + float const x_900 = uv.x; + uv.x = 0.0f; + uv.x = x_900; + float const x_308 = uv.x; + float const x_901 = color.y; + color.y = 0.0f; + color.y = x_901; + float3 const x_509 = float3(x_503.y, x_503.x, x_448.z); + float const x_902 = uv.y; + uv.y = 0.0f; + uv.y = x_902; + float const x_310 = uv.y; + float const x_903 = uv.y; + uv.y = 0.0f; + uv.y = x_903; + float const x_904 = color.z; + color.z = 0.0f; + color.z = x_904; + float3 const x_510 = float3(float3(1.0f, 2.0f, 3.0f).y, x_485.y, x_485.z); + float const x_905 = color.z; + color.z = 0.0f; + color.z = x_905; + int const x_906 = i_2; + i_2 = 0; + i_2 = x_906; + float2 const x_511 = float2(x_485.z, x_485.y); + float3 const x_907 = color; + color = float3(0.0f, 0.0f, 0.0f); + color = x_907; + float const x_908 = uv.y; + uv.y = 0.0f; + uv.y = x_908; + float3 const x_512 = float3(x_455.y, x_455.y, x_455.y); + int const x_909 = (*(tint_symbol_86)).numbers.arr[4]; + (*(tint_symbol_86)).numbers.arr[4] = 0; + (*(tint_symbol_86)).numbers.arr[4] = x_909; + if (( fabs((x_308 - x_310)) < 0.25f)) { + float const x_910 = uv.x; + uv.x = 0.0f; + uv.x = x_910; + QuicksortObject const x_911 = *(tint_symbol_86); + tint_array_wrapper const tint_symbol_74 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + QuicksortObject const tint_symbol_75 = {.numbers=tint_symbol_74}; + *(tint_symbol_86) = tint_symbol_75; + *(tint_symbol_86) = x_911; + float3 const x_513 = float3(x_505.z, x_505.x, x_448.x); + int const x_912 = (*(tint_symbol_86)).numbers.arr[8]; + (*(tint_symbol_86)).numbers.arr[8] = 0; + (*(tint_symbol_86)).numbers.arr[8] = x_912; + int const x_317 = (*(tint_symbol_86)).numbers.arr[9u]; + float3 const x_514 = float3(x_474.y, x_474.y, x_474.y); + float const x_913 = uv.y; + uv.y = 0.0f; + uv.y = x_913; + float const x_320 = color.x; + float const x_914 = uv.y; + uv.y = 0.0f; + uv.y = x_914; + float2 const x_515 = float2(x_502.x, x_502.y); + float const x_915 = color.x; + color.x = 0.0f; + color.x = x_915; + float3 const x_916 = color; + color = float3(0.0f, 0.0f, 0.0f); + color = x_916; + float2 const x_516 = float2(x_452.x, x_452.x); + float2 const x_917 = uv; + uv = float2(0.0f, 0.0f); + uv = x_917; + float const x_918 = uv.x; + uv.x = 0.0f; + uv.x = x_918; + float3 const x_517 = float3(float2(0.0f, 0.0f).x, float2(0.0f, 0.0f).x, float2(0.0f, 0.0f).y); + color.x = (float(x_317) + x_320); + float const x_919 = color.x; + color.x = 0.0f; + color.x = x_919; + float3 const x_518 = float3(x_480.y, x_508.x, x_480.x); + float const x_920 = color.x; + color.x = 0.0f; + color.x = x_920; + } + float const x_921 = uv.y; + uv.y = 0.0f; + uv.y = x_921; + float3 const x_325 = color; + float const x_922 = uv[0]; + uv[0] = 0.0f; + uv[0] = x_922; + float3 const x_519 = float3(x_447.x, x_446.x, x_446.y); + float3 const x_326 = normalize(x_325); + float const x_923 = uv.x; + uv.x = 0.0f; + uv.x = x_923; + QuicksortObject const x_924 = *(tint_symbol_86); + tint_array_wrapper const tint_symbol_76 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + QuicksortObject const tint_symbol_77 = {.numbers=tint_symbol_76}; + *(tint_symbol_86) = tint_symbol_77; + *(tint_symbol_86) = x_924; + QuicksortObject const x_925 = *(tint_symbol_86); + tint_array_wrapper const tint_symbol_78 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + QuicksortObject const tint_symbol_79 = {.numbers=tint_symbol_78}; + *(tint_symbol_86) = tint_symbol_79; + *(tint_symbol_86) = x_925; + float const x_926 = color.y; + color.y = 0.0f; + color.y = x_926; + float2 const x_520 = float2(x_506.y, x_519.y); + float const x_927 = color.y; + color.y = 0.0f; + color.y = x_927; + float4 const x_330 = float4(x_326.x, x_326.y, x_326.z, 1.0f); + float const x_928 = uv.y; + uv.y = 0.0f; + uv.y = x_928; + float3 const x_521 = float3(float3(1.0f, 2.0f, 3.0f).y, float3(1.0f, 2.0f, 3.0f).y, x_520.y); + float const x_929 = uv.x; + uv.x = 0.0f; + uv.x = x_929; + *(tint_symbol_88) = x_330; + QuicksortObject const x_930 = *(tint_symbol_86); + tint_array_wrapper const tint_symbol_80 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + QuicksortObject const tint_symbol_81 = {.numbers=tint_symbol_80}; + *(tint_symbol_86) = tint_symbol_81; + *(tint_symbol_86) = x_930; + float3 const x_522 = float3(x_330.w, x_330.y, x_493.x); + float const x_931 = color.x; + color.x = 0.0f; + color.x = x_931; + return; +} + +fragment tint_symbol_2 tint_symbol(float4 gl_FragCoord_param [[position]], constant buf0& x_188 [[buffer(0)]]) { + thread float4 tint_symbol_89 = 0.0f; + thread QuicksortObject tint_symbol_90 = {}; + thread float4 tint_symbol_91 = 0.0f; + tint_symbol_89 = gl_FragCoord_param; + main_1(x_188, &(tint_symbol_90), &(tint_symbol_89), &(tint_symbol_91)); + main_out const tint_symbol_3 = {.x_GLF_color=tint_symbol_91}; + tint_symbol_2 const tint_symbol_82 = {.x_GLF_color=tint_symbol_3.x_GLF_color}; + return tint_symbol_82; +} + diff --git a/test/bug/tint/757.wgsl.expected.msl b/test/bug/tint/757.wgsl.expected.msl index 7501d7acca..03e2067013 100644 --- a/test/bug/tint/757.wgsl.expected.msl +++ b/test/bug/tint/757.wgsl.expected.msl @@ -14,18 +14,13 @@ kernel void tint_symbol(texture2d_array tint_symbol_2 [[t float4 texel = tint_symbol_2.read(uint2(int2(GlobalInvocationID.xy)), 0, 0); { uint i = 0u; - { - bool tint_msl_is_first_1 = true; - for(;;) { - if (!tint_msl_is_first_1) { - i = (i + 1u); - } - tint_msl_is_first_1 = false; - - if (!((i < 1u))) { - break; - } - result.values[(flatIndex + i)] = texel.r; + while (true) { + if (!((i < 1u))) { + break; + } + result.values[(flatIndex + i)] = texel.r; + { + i = (i + 1u); } } } diff --git a/test/bug/tint/914.wgsl.expected.msl b/test/bug/tint/914.wgsl.expected.msl index 127023d496..bdb650c53d 100644 --- a/test/bug/tint/914.wgsl.expected.msl +++ b/test/bug/tint/914.wgsl.expected.msl @@ -1,78 +1,224 @@ -SKIP: FAILED +#include +using namespace metal; +struct Uniforms { + /* 0x0000 */ uint dimAOuter; + /* 0x0004 */ uint dimInner; + /* 0x0008 */ uint dimBOuter; +}; +struct Matrix { + /* 0x0000 */ float numbers[1]; +}; +struct tint_array_wrapper_1 { + float arr[64]; +}; +struct tint_array_wrapper { + tint_array_wrapper_1 arr[64]; +}; +struct tint_array_wrapper_2 { + float arr[16]; +}; +struct tint_array_wrapper_3 { + float arr[4]; +}; +constant uint RowPerThread = 4u; +constant uint ColPerThread = 4u; +constant uint TileAOuter = 64u; +constant uint TileBOuter = 64u; +constant uint TileInner = 64u; +float mm_readA(constant Uniforms& uniforms, const device Matrix& firstMatrix, uint row, uint col) { + if (((row < uniforms.dimAOuter) && (col < uniforms.dimInner))) { + float const result = firstMatrix.numbers[((row * uniforms.dimInner) + col)]; + return result; + } + return 0.0f; +} -Validation Failure: +float mm_readB(constant Uniforms& uniforms, const device Matrix& secondMatrix, uint row, uint col) { + if (((row < uniforms.dimInner) && (col < uniforms.dimBOuter))) { + float const result = secondMatrix.numbers[((row * uniforms.dimBOuter) + col)]; + return result; + } + return 0.0f; +} -Compilation failed: +void mm_write(constant Uniforms& uniforms, device Matrix& resultMatrix, uint row, uint col, float value) { + if (((row < uniforms.dimAOuter) && (col < uniforms.dimBOuter))) { + uint const index = (col + (row * uniforms.dimBOuter)); + resultMatrix.numbers[index] = value; + } +} -program_source:56:31: warning: equality comparison with extraneous parentheses +kernel void tint_symbol(uint3 local_id [[thread_position_in_threadgroup]], uint3 global_id [[thread_position_in_grid]], uint local_invocation_index [[thread_index_in_threadgroup]], constant Uniforms& uniforms [[buffer(3)]], const device Matrix& firstMatrix [[buffer(0)]], const device Matrix& secondMatrix [[buffer(1)]], device Matrix& resultMatrix [[buffer(2)]]) { + threadgroup tint_array_wrapper tint_symbol_4; + threadgroup tint_array_wrapper tint_symbol_5; if ((local_invocation_index == 0u)) { - ~~~~~~~~~~~~~~~~~~~~~~~^~~~~ -program_source:56:31: note: remove extraneous parentheses around the comparison to silence this warning - if ((local_invocation_index == 0u)) { - ~ ^ ~ -program_source:56:31: note: use '=' to turn this equality comparison into an assignment - if ((local_invocation_index == 0u)) { - ^~ - = -program_source:122:30: error: default initialization of an object of const type 'const uint' (aka 'const unsigned int') - uint const inputRow; - ^ - = 0 -program_source:123:30: error: default initialization of an object of const type 'const uint' (aka 'const unsigned int') - uint const inputCol; - ^ - = 0 -program_source:133:30: error: cannot assign to variable 'inputRow' with const-qualified type 'const uint' (aka 'const unsigned int') - inputRow = (tileRow + innerRow); - ~~~~~~~~ ^ -program_source:122:30: note: variable 'inputRow' declared const here - uint const inputRow; - ~~~~~~~~~~~^~~~~~~~ -program_source:134:30: error: cannot assign to variable 'inputCol' with const-qualified type 'const uint' (aka 'const unsigned int') - inputCol = (tileColA + innerCol); - ~~~~~~~~ ^ -program_source:123:30: note: variable 'inputCol' declared const here - uint const inputCol; - ~~~~~~~~~~~^~~~~~~~ -program_source:159:30: error: default initialization of an object of const type 'const uint' (aka 'const unsigned int') - uint const inputRow; - ^ - = 0 -program_source:160:30: error: default initialization of an object of const type 'const uint' (aka 'const unsigned int') - uint const inputCol; - ^ - = 0 -program_source:170:30: error: cannot assign to variable 'inputRow' with const-qualified type 'const uint' (aka 'const unsigned int') - inputRow = (tileRowB + innerRow); - ~~~~~~~~ ^ -program_source:159:30: note: variable 'inputRow' declared const here - uint const inputRow; - ~~~~~~~~~~~^~~~~~~~ -program_source:171:30: error: cannot assign to variable 'inputCol' with const-qualified type 'const uint' (aka 'const unsigned int') - inputCol = (tileCol + innerCol); - ~~~~~~~~ ^ -program_source:160:30: note: variable 'inputCol' declared const here - uint const inputCol; - ~~~~~~~~~~~^~~~~~~~ -program_source:228:36: error: default initialization of an object of const type 'const uint' (aka 'const unsigned int') - uint const index; - ^ - = 0 -program_source:238:33: error: cannot assign to variable 'index' with const-qualified type 'const uint' (aka 'const unsigned int') - index = ((innerRow * ColPerThread) + innerCol); - ~~~~~ ^ -program_source:228:36: note: variable 'index' declared const here - uint const index; - ~~~~~~~~~~~^~~~~ -program_source:270:24: error: default initialization of an object of const type 'const uint' (aka 'const unsigned int') - uint const index; - ^ - = 0 -program_source:280:21: error: cannot assign to variable 'index' with const-qualified type 'const uint' (aka 'const unsigned int') - index = ((innerRow * ColPerThread) + innerCol); - ~~~~~ ^ -program_source:270:24: note: variable 'index' declared const here - uint const index; - ~~~~~~~~~~~^~~~~ + tint_array_wrapper const tint_symbol_2 = {.arr={}}; + tint_symbol_4 = tint_symbol_2; + tint_array_wrapper const tint_symbol_3 = {.arr={}}; + tint_symbol_5 = tint_symbol_3; + } + threadgroup_barrier(mem_flags::mem_threadgroup); + uint const tileRow = (local_id.y * RowPerThread); + uint const tileCol = (local_id.x * ColPerThread); + uint const globalRow = (global_id.y * RowPerThread); + uint const globalCol = (global_id.x * ColPerThread); + uint const numTiles = (((uniforms.dimInner - 1u) / TileInner) + 1u); + tint_array_wrapper_2 acc = {}; + float ACached = 0.0f; + tint_array_wrapper_3 BCached = {}; + { + uint index = 0u; + while (true) { + if (!((index < (RowPerThread * ColPerThread)))) { + break; + } + acc.arr[index] = 0.0f; + { + index = (index + 1u); + } + } + } + uint const ColPerThreadA = (TileInner / 16u); + uint const tileColA = (local_id.x * ColPerThreadA); + uint const RowPerThreadB = (TileInner / 16u); + uint const tileRowB = (local_id.y * RowPerThreadB); + { + uint t = 0u; + while (true) { + if (!((t < numTiles))) { + break; + } + { + uint innerRow = 0u; + while (true) { + if (!((innerRow < RowPerThread))) { + break; + } + { + uint innerCol = 0u; + while (true) { + if (!((innerCol < ColPerThreadA))) { + break; + } + uint const inputRow = (tileRow + innerRow); + uint const inputCol = (tileColA + innerCol); + tint_symbol_4.arr[inputRow].arr[inputCol] = mm_readA(uniforms, firstMatrix, (globalRow + innerRow), ((t * TileInner) + inputCol)); + { + innerCol = (innerCol + 1u); + } + } + } + { + innerRow = (innerRow + 1u); + } + } + } + { + uint innerRow = 0u; + while (true) { + if (!((innerRow < RowPerThreadB))) { + break; + } + { + uint innerCol = 0u; + while (true) { + if (!((innerCol < ColPerThread))) { + break; + } + uint const inputRow = (tileRowB + innerRow); + uint const inputCol = (tileCol + innerCol); + tint_symbol_5.arr[innerCol].arr[inputCol] = mm_readB(uniforms, secondMatrix, ((t * TileInner) + inputRow), (globalCol + innerCol)); + { + innerCol = (innerCol + 1u); + } + } + } + { + innerRow = (innerRow + 1u); + } + } + } + threadgroup_barrier(mem_flags::mem_threadgroup); + { + uint k = 0u; + while (true) { + if (!((k < TileInner))) { + break; + } + { + uint inner = 0u; + while (true) { + if (!((inner < ColPerThread))) { + break; + } + BCached.arr[inner] = tint_symbol_5.arr[k].arr[(tileCol + inner)]; + { + inner = (inner + 1u); + } + } + } + { + uint innerRow = 0u; + while (true) { + if (!((innerRow < RowPerThread))) { + break; + } + ACached = tint_symbol_4.arr[(tileRow + innerRow)].arr[k]; + { + uint innerCol = 0u; + while (true) { + if (!((innerCol < ColPerThread))) { + break; + } + uint const index = ((innerRow * ColPerThread) + innerCol); + acc.arr[index] = (acc.arr[index] + (ACached * BCached.arr[innerCol])); + { + innerCol = (innerCol + 1u); + } + } + } + { + innerRow = (innerRow + 1u); + } + } + } + { + k = (k + 1u); + } + } + } + threadgroup_barrier(mem_flags::mem_threadgroup); + { + t = (t + 1u); + } + } + } + { + uint innerRow = 0u; + while (true) { + if (!((innerRow < RowPerThread))) { + break; + } + { + uint innerCol = 0u; + while (true) { + if (!((innerCol < ColPerThread))) { + break; + } + uint const index = ((innerRow * ColPerThread) + innerCol); + mm_write(uniforms, resultMatrix, (globalRow + innerRow), (globalCol + innerCol), acc.arr[index]); + { + innerCol = (innerCol + 1u); + } + } + } + { + innerRow = (innerRow + 1u); + } + } + } + return; +} + diff --git a/test/intrinsics/gen/arrayLength/1588cd.wgsl.expected.msl b/test/intrinsics/gen/arrayLength/1588cd.wgsl.expected.msl index 190cec2f50..4f53a604fc 100644 --- a/test/intrinsics/gen/arrayLength/1588cd.wgsl.expected.msl +++ b/test/intrinsics/gen/arrayLength/1588cd.wgsl.expected.msl @@ -1,37 +1,33 @@ -SKIP: FAILED +#include - -[[block]] +using namespace metal; +struct tint_symbol_2 { + /* 0x0000 */ uint buffer_size[2]; +}; struct SB_RO { - arg_0 : array; + /* 0x0000 */ int arg_0[1]; +}; +struct tint_symbol { + float4 value [[position]]; }; -[[group(0), binding(1)]] var sb_ro : SB_RO; - -fn arrayLength_1588cd() { - var res : u32 = arrayLength(&(sb_ro.arg_0)); +void arrayLength_1588cd(constant tint_symbol_2& tint_symbol_3) { + uint res = ((tint_symbol_3.buffer_size[1u] - 0u) / 4u); } -struct tint_symbol { - [[builtin(position)]] - value : vec4; -}; - -[[stage(vertex)]] -fn vertex_main() -> tint_symbol { - arrayLength_1588cd(); - let tint_symbol_1 : tint_symbol = tint_symbol(vec4()); +vertex tint_symbol vertex_main(constant tint_symbol_2& tint_symbol_3 [[buffer(30)]]) { + arrayLength_1588cd(tint_symbol_3); + tint_symbol const tint_symbol_1 = {.value=float4()}; return tint_symbol_1; } -[[stage(fragment)]] -fn fragment_main() { - arrayLength_1588cd(); +fragment void fragment_main(constant tint_symbol_2& tint_symbol_3 [[buffer(30)]]) { + arrayLength_1588cd(tint_symbol_3); + return; } -[[stage(compute)]] -fn compute_main() { - arrayLength_1588cd(); +kernel void compute_main(constant tint_symbol_2& tint_symbol_3 [[buffer(30)]]) { + arrayLength_1588cd(tint_symbol_3); + return; } -Failed to generate: error: Unknown import method: arrayLength diff --git a/test/intrinsics/gen/arrayLength/61b1c7.wgsl.expected.msl b/test/intrinsics/gen/arrayLength/61b1c7.wgsl.expected.msl index 6f857f64a2..71c7a837af 100644 --- a/test/intrinsics/gen/arrayLength/61b1c7.wgsl.expected.msl +++ b/test/intrinsics/gen/arrayLength/61b1c7.wgsl.expected.msl @@ -1,37 +1,33 @@ -SKIP: FAILED +#include - -[[block]] +using namespace metal; +struct tint_symbol_2 { + /* 0x0000 */ uint buffer_size[1]; +}; struct SB_RW { - arg_0 : array; + /* 0x0000 */ int arg_0[1]; +}; +struct tint_symbol { + float4 value [[position]]; }; -[[group(0), binding(0)]] var sb_rw : SB_RW; - -fn arrayLength_61b1c7() { - var res : u32 = arrayLength(&(sb_rw.arg_0)); +void arrayLength_61b1c7(constant tint_symbol_2& tint_symbol_3) { + uint res = ((tint_symbol_3.buffer_size[0u] - 0u) / 4u); } -struct tint_symbol { - [[builtin(position)]] - value : vec4; -}; - -[[stage(vertex)]] -fn vertex_main() -> tint_symbol { - arrayLength_61b1c7(); - let tint_symbol_1 : tint_symbol = tint_symbol(vec4()); +vertex tint_symbol vertex_main(constant tint_symbol_2& tint_symbol_3 [[buffer(30)]]) { + arrayLength_61b1c7(tint_symbol_3); + tint_symbol const tint_symbol_1 = {.value=float4()}; return tint_symbol_1; } -[[stage(fragment)]] -fn fragment_main() { - arrayLength_61b1c7(); +fragment void fragment_main(constant tint_symbol_2& tint_symbol_3 [[buffer(30)]]) { + arrayLength_61b1c7(tint_symbol_3); + return; } -[[stage(compute)]] -fn compute_main() { - arrayLength_61b1c7(); +kernel void compute_main(constant tint_symbol_2& tint_symbol_3 [[buffer(30)]]) { + arrayLength_61b1c7(tint_symbol_3); + return; } -Failed to generate: error: Unknown import method: arrayLength diff --git a/test/intrinsics/gen/arrayLength/a0f5ca.wgsl.expected.msl b/test/intrinsics/gen/arrayLength/a0f5ca.wgsl.expected.msl index 37fa20cac7..ad28d92e06 100644 --- a/test/intrinsics/gen/arrayLength/a0f5ca.wgsl.expected.msl +++ b/test/intrinsics/gen/arrayLength/a0f5ca.wgsl.expected.msl @@ -1,37 +1,33 @@ -SKIP: FAILED +#include - -[[block]] +using namespace metal; +struct tint_symbol_2 { + /* 0x0000 */ uint buffer_size[2]; +}; struct SB_RO { - arg_0 : array; + /* 0x0000 */ float arg_0[1]; +}; +struct tint_symbol { + float4 value [[position]]; }; -[[group(0), binding(1)]] var sb_ro : SB_RO; - -fn arrayLength_a0f5ca() { - var res : u32 = arrayLength(&(sb_ro.arg_0)); +void arrayLength_a0f5ca(constant tint_symbol_2& tint_symbol_3) { + uint res = ((tint_symbol_3.buffer_size[1u] - 0u) / 4u); } -struct tint_symbol { - [[builtin(position)]] - value : vec4; -}; - -[[stage(vertex)]] -fn vertex_main() -> tint_symbol { - arrayLength_a0f5ca(); - let tint_symbol_1 : tint_symbol = tint_symbol(vec4()); +vertex tint_symbol vertex_main(constant tint_symbol_2& tint_symbol_3 [[buffer(30)]]) { + arrayLength_a0f5ca(tint_symbol_3); + tint_symbol const tint_symbol_1 = {.value=float4()}; return tint_symbol_1; } -[[stage(fragment)]] -fn fragment_main() { - arrayLength_a0f5ca(); +fragment void fragment_main(constant tint_symbol_2& tint_symbol_3 [[buffer(30)]]) { + arrayLength_a0f5ca(tint_symbol_3); + return; } -[[stage(compute)]] -fn compute_main() { - arrayLength_a0f5ca(); +kernel void compute_main(constant tint_symbol_2& tint_symbol_3 [[buffer(30)]]) { + arrayLength_a0f5ca(tint_symbol_3); + return; } -Failed to generate: error: Unknown import method: arrayLength diff --git a/test/intrinsics/gen/arrayLength/cdd123.wgsl.expected.msl b/test/intrinsics/gen/arrayLength/cdd123.wgsl.expected.msl index cd595592c9..fdbb89de82 100644 --- a/test/intrinsics/gen/arrayLength/cdd123.wgsl.expected.msl +++ b/test/intrinsics/gen/arrayLength/cdd123.wgsl.expected.msl @@ -1,37 +1,33 @@ -SKIP: FAILED +#include - -[[block]] +using namespace metal; +struct tint_symbol_2 { + /* 0x0000 */ uint buffer_size[1]; +}; struct SB_RW { - arg_0 : array; + /* 0x0000 */ float arg_0[1]; +}; +struct tint_symbol { + float4 value [[position]]; }; -[[group(0), binding(0)]] var sb_rw : SB_RW; - -fn arrayLength_cdd123() { - var res : u32 = arrayLength(&(sb_rw.arg_0)); +void arrayLength_cdd123(constant tint_symbol_2& tint_symbol_3) { + uint res = ((tint_symbol_3.buffer_size[0u] - 0u) / 4u); } -struct tint_symbol { - [[builtin(position)]] - value : vec4; -}; - -[[stage(vertex)]] -fn vertex_main() -> tint_symbol { - arrayLength_cdd123(); - let tint_symbol_1 : tint_symbol = tint_symbol(vec4()); +vertex tint_symbol vertex_main(constant tint_symbol_2& tint_symbol_3 [[buffer(30)]]) { + arrayLength_cdd123(tint_symbol_3); + tint_symbol const tint_symbol_1 = {.value=float4()}; return tint_symbol_1; } -[[stage(fragment)]] -fn fragment_main() { - arrayLength_cdd123(); +fragment void fragment_main(constant tint_symbol_2& tint_symbol_3 [[buffer(30)]]) { + arrayLength_cdd123(tint_symbol_3); + return; } -[[stage(compute)]] -fn compute_main() { - arrayLength_cdd123(); +kernel void compute_main(constant tint_symbol_2& tint_symbol_3 [[buffer(30)]]) { + arrayLength_cdd123(tint_symbol_3); + return; } -Failed to generate: error: Unknown import method: arrayLength diff --git a/test/intrinsics/gen/arrayLength/cfca0a.wgsl.expected.msl b/test/intrinsics/gen/arrayLength/cfca0a.wgsl.expected.msl index 7adabc6ca4..14068e5729 100644 --- a/test/intrinsics/gen/arrayLength/cfca0a.wgsl.expected.msl +++ b/test/intrinsics/gen/arrayLength/cfca0a.wgsl.expected.msl @@ -1,37 +1,33 @@ -SKIP: FAILED +#include - -[[block]] +using namespace metal; +struct tint_symbol_2 { + /* 0x0000 */ uint buffer_size[2]; +}; struct SB_RO { - arg_0 : array; + /* 0x0000 */ uint arg_0[1]; +}; +struct tint_symbol { + float4 value [[position]]; }; -[[group(0), binding(1)]] var sb_ro : SB_RO; - -fn arrayLength_cfca0a() { - var res : u32 = arrayLength(&(sb_ro.arg_0)); +void arrayLength_cfca0a(constant tint_symbol_2& tint_symbol_3) { + uint res = ((tint_symbol_3.buffer_size[1u] - 0u) / 4u); } -struct tint_symbol { - [[builtin(position)]] - value : vec4; -}; - -[[stage(vertex)]] -fn vertex_main() -> tint_symbol { - arrayLength_cfca0a(); - let tint_symbol_1 : tint_symbol = tint_symbol(vec4()); +vertex tint_symbol vertex_main(constant tint_symbol_2& tint_symbol_3 [[buffer(30)]]) { + arrayLength_cfca0a(tint_symbol_3); + tint_symbol const tint_symbol_1 = {.value=float4()}; return tint_symbol_1; } -[[stage(fragment)]] -fn fragment_main() { - arrayLength_cfca0a(); +fragment void fragment_main(constant tint_symbol_2& tint_symbol_3 [[buffer(30)]]) { + arrayLength_cfca0a(tint_symbol_3); + return; } -[[stage(compute)]] -fn compute_main() { - arrayLength_cfca0a(); +kernel void compute_main(constant tint_symbol_2& tint_symbol_3 [[buffer(30)]]) { + arrayLength_cfca0a(tint_symbol_3); + return; } -Failed to generate: error: Unknown import method: arrayLength diff --git a/test/intrinsics/gen/arrayLength/eb510f.wgsl.expected.msl b/test/intrinsics/gen/arrayLength/eb510f.wgsl.expected.msl index 88d300d2ee..04f85089e2 100644 --- a/test/intrinsics/gen/arrayLength/eb510f.wgsl.expected.msl +++ b/test/intrinsics/gen/arrayLength/eb510f.wgsl.expected.msl @@ -1,37 +1,33 @@ -SKIP: FAILED +#include - -[[block]] +using namespace metal; +struct tint_symbol_2 { + /* 0x0000 */ uint buffer_size[1]; +}; struct SB_RW { - arg_0 : array; + /* 0x0000 */ uint arg_0[1]; +}; +struct tint_symbol { + float4 value [[position]]; }; -[[group(0), binding(0)]] var sb_rw : SB_RW; - -fn arrayLength_eb510f() { - var res : u32 = arrayLength(&(sb_rw.arg_0)); +void arrayLength_eb510f(constant tint_symbol_2& tint_symbol_3) { + uint res = ((tint_symbol_3.buffer_size[0u] - 0u) / 4u); } -struct tint_symbol { - [[builtin(position)]] - value : vec4; -}; - -[[stage(vertex)]] -fn vertex_main() -> tint_symbol { - arrayLength_eb510f(); - let tint_symbol_1 : tint_symbol = tint_symbol(vec4()); +vertex tint_symbol vertex_main(constant tint_symbol_2& tint_symbol_3 [[buffer(30)]]) { + arrayLength_eb510f(tint_symbol_3); + tint_symbol const tint_symbol_1 = {.value=float4()}; return tint_symbol_1; } -[[stage(fragment)]] -fn fragment_main() { - arrayLength_eb510f(); +fragment void fragment_main(constant tint_symbol_2& tint_symbol_3 [[buffer(30)]]) { + arrayLength_eb510f(tint_symbol_3); + return; } -[[stage(compute)]] -fn compute_main() { - arrayLength_eb510f(); +kernel void compute_main(constant tint_symbol_2& tint_symbol_3 [[buffer(30)]]) { + arrayLength_eb510f(tint_symbol_3); + return; } -Failed to generate: error: Unknown import method: arrayLength diff --git a/test/samples/compute_boids.wgsl.expected.msl b/test/samples/compute_boids.wgsl.expected.msl index 78d7639ddd..f0a1ab8dc0 100644 --- a/test/samples/compute_boids.wgsl.expected.msl +++ b/test/samples/compute_boids.wgsl.expected.msl @@ -63,33 +63,31 @@ kernel void comp_main(uint3 gl_GlobalInvocationID [[thread_position_in_grid]], c float2 vel = 0.0f; { uint i = 0u; - { - bool tint_msl_is_first_1 = true; - for(;;) { - if (!tint_msl_is_first_1) { + while (true) { + if (!((i < 5u))) { + break; + } + if ((i == index)) { + { i = (i + 1u); } - tint_msl_is_first_1 = false; - - if (!((i < 5u))) { - break; - } - if ((i == index)) { - continue; - } - pos = particlesA.particles.arr[i].pos.xy; - vel = particlesA.particles.arr[i].vel.xy; - if (( distance(pos, vPos) < params.rule1Distance)) { - cMass = (cMass + pos); - cMassCount = (cMassCount + 1); - } - if (( distance(pos, vPos) < params.rule2Distance)) { - colVel = (colVel - (pos - vPos)); - } - if (( distance(pos, vPos) < params.rule3Distance)) { - cVel = (cVel + vel); - cVelCount = (cVelCount + 1); - } + continue; + } + pos = particlesA.particles.arr[i].pos.xy; + vel = particlesA.particles.arr[i].vel.xy; + if (( distance(pos, vPos) < params.rule1Distance)) { + cMass = (cMass + pos); + cMassCount = (cMassCount + 1); + } + if (( distance(pos, vPos) < params.rule2Distance)) { + colVel = (colVel - (pos - vPos)); + } + if (( distance(pos, vPos) < params.rule3Distance)) { + cVel = (cVel + vel); + cVelCount = (cVelCount + 1); + } + { + i = (i + 1u); } } }