From 3628949efc5d3458289fb9e665183353d395e5f3 Mon Sep 17 00:00:00 2001 From: Ben Clayton Date: Thu, 10 Jun 2021 18:49:14 +0000 Subject: [PATCH] test: Add bug cases taken from monorail Some now pass, some still fail. If we fix bugs and they begin to pass, we have a better chance of noticing and marking the issues as fixed. Change-Id: I7278f960967a570ccde8865dcf2aa580235559bf Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/54062 Kokoro: Kokoro Commit-Queue: Ben Clayton Reviewed-by: David Neto --- test/bug/tint/221.wgsl.expected.msl | 45 +- test/bug/tint/292.wgsl | 6 + test/bug/tint/292.wgsl.expected.hlsl | 6 + test/bug/tint/292.wgsl.expected.msl | 9 + test/bug/tint/292.wgsl.expected.spvasm | 37 + test/bug/tint/292.wgsl.expected.wgsl | 6 + test/bug/tint/294.wgsl | 8 + test/bug/tint/294.wgsl.expected.hlsl | 10 + test/bug/tint/294.wgsl.expected.msl | 17 + test/bug/tint/294.wgsl.expected.spvasm | 41 + test/bug/tint/294.wgsl.expected.wgsl | 15 + test/bug/tint/403.wgsl | 25 + test/bug/tint/403.wgsl.expected.hlsl | 43 + test/bug/tint/403.wgsl.expected.msl | 19 + test/bug/tint/403.wgsl.expected.spvasm | 109 ++ test/bug/tint/403.wgsl.expected.wgsl | 25 + test/bug/tint/413.spvasm | 50 + test/bug/tint/413.spvasm.expected.hlsl | 15 + test/bug/tint/413.spvasm.expected.msl | 17 + test/bug/tint/413.spvasm.expected.spvasm | 56 + test/bug/tint/413.spvasm.expected.wgsl | 16 + test/bug/tint/453.wgsl | 15 + test/bug/tint/453.wgsl.expected.hlsl | 23 + test/bug/tint/453.wgsl.expected.msl | 25 + test/bug/tint/453.wgsl.expected.spvasm | 62 + test/bug/tint/453.wgsl.expected.wgsl | 24 + test/bug/tint/744.wgsl.expected.msl | 63 +- test/bug/tint/749.spvasm.expected.msl | 1751 +++++++++++++++++++++- test/bug/tint/757.wgsl | 26 + test/bug/tint/757.wgsl.expected.hlsl | 40 + test/bug/tint/757.wgsl.expected.msl | 19 + test/bug/tint/757.wgsl.expected.spvasm | 141 ++ test/bug/tint/757.wgsl.expected.wgsl | 43 + test/bug/tint/764.wgsl | 10 + test/bug/tint/764.wgsl.expected.hlsl | 11 + test/bug/tint/764.wgsl.expected.msl | 9 + test/bug/tint/764.wgsl.expected.spvasm | 31 + test/bug/tint/764.wgsl.expected.wgsl | 5 + test/bug/tint/804.spv | Bin 0 -> 18384 bytes test/bug/tint/804.spv.expected.hlsl | 3 + test/bug/tint/804.spv.expected.msl | 3 + test/bug/tint/804.spv.expected.spvasm | 3 + test/bug/tint/804.spv.expected.wgsl | 3 + test/bug/tint/807.spv | Bin 0 -> 9624 bytes test/bug/tint/807.spv.expected.hlsl | 10 + test/bug/tint/807.spv.expected.msl | 10 + test/bug/tint/807.spv.expected.spvasm | 10 + test/bug/tint/807.spv.expected.wgsl | 10 + test/bug/tint/827.wgsl | 15 + test/bug/tint/827.wgsl.expected.hlsl | 20 + test/bug/tint/827.wgsl.expected.msl | 15 + test/bug/tint/827.wgsl.expected.spvasm | 73 + test/bug/tint/827.wgsl.expected.wgsl | 19 + 53 files changed, 2993 insertions(+), 74 deletions(-) create mode 100644 test/bug/tint/292.wgsl create mode 100644 test/bug/tint/292.wgsl.expected.hlsl create mode 100644 test/bug/tint/292.wgsl.expected.msl create mode 100644 test/bug/tint/292.wgsl.expected.spvasm create mode 100644 test/bug/tint/292.wgsl.expected.wgsl create mode 100644 test/bug/tint/294.wgsl create mode 100644 test/bug/tint/294.wgsl.expected.hlsl create mode 100644 test/bug/tint/294.wgsl.expected.msl create mode 100644 test/bug/tint/294.wgsl.expected.spvasm create mode 100644 test/bug/tint/294.wgsl.expected.wgsl create mode 100644 test/bug/tint/403.wgsl create mode 100644 test/bug/tint/403.wgsl.expected.hlsl create mode 100644 test/bug/tint/403.wgsl.expected.msl create mode 100644 test/bug/tint/403.wgsl.expected.spvasm create mode 100644 test/bug/tint/403.wgsl.expected.wgsl create mode 100644 test/bug/tint/413.spvasm create mode 100644 test/bug/tint/413.spvasm.expected.hlsl create mode 100644 test/bug/tint/413.spvasm.expected.msl create mode 100644 test/bug/tint/413.spvasm.expected.spvasm create mode 100644 test/bug/tint/413.spvasm.expected.wgsl create mode 100644 test/bug/tint/453.wgsl create mode 100644 test/bug/tint/453.wgsl.expected.hlsl create mode 100644 test/bug/tint/453.wgsl.expected.msl create mode 100644 test/bug/tint/453.wgsl.expected.spvasm create mode 100644 test/bug/tint/453.wgsl.expected.wgsl create mode 100644 test/bug/tint/757.wgsl create mode 100644 test/bug/tint/757.wgsl.expected.hlsl create mode 100644 test/bug/tint/757.wgsl.expected.msl create mode 100644 test/bug/tint/757.wgsl.expected.spvasm create mode 100644 test/bug/tint/757.wgsl.expected.wgsl create mode 100644 test/bug/tint/764.wgsl create mode 100644 test/bug/tint/764.wgsl.expected.hlsl create mode 100644 test/bug/tint/764.wgsl.expected.msl create mode 100644 test/bug/tint/764.wgsl.expected.spvasm create mode 100644 test/bug/tint/764.wgsl.expected.wgsl create mode 100644 test/bug/tint/804.spv create mode 100644 test/bug/tint/804.spv.expected.hlsl create mode 100644 test/bug/tint/804.spv.expected.msl create mode 100644 test/bug/tint/804.spv.expected.spvasm create mode 100644 test/bug/tint/804.spv.expected.wgsl create mode 100644 test/bug/tint/807.spv create mode 100644 test/bug/tint/807.spv.expected.hlsl create mode 100644 test/bug/tint/807.spv.expected.msl create mode 100644 test/bug/tint/807.spv.expected.spvasm create mode 100644 test/bug/tint/807.spv.expected.wgsl create mode 100644 test/bug/tint/827.wgsl create mode 100644 test/bug/tint/827.wgsl.expected.hlsl create mode 100644 test/bug/tint/827.wgsl.expected.msl create mode 100644 test/bug/tint/827.wgsl.expected.spvasm create mode 100644 test/bug/tint/827.wgsl.expected.wgsl diff --git a/test/bug/tint/221.wgsl.expected.msl b/test/bug/tint/221.wgsl.expected.msl index 1c7b74b189..1d53865666 100644 --- a/test/bug/tint/221.wgsl.expected.msl +++ b/test/bug/tint/221.wgsl.expected.msl @@ -1,35 +1,18 @@ -SKIP: crbug.com/tint/833 loop emission is broken +SKIP: FAILED -#include -using namespace metal; -struct Buf { - /* 0x0000 */ uint count; - /* 0x0004 */ uint data[50]; -}; -kernel void tint_symbol(device Buf& b [[buffer(0)]]) { - uint i = 0u; - { - bool tint_msl_is_first_1 = true; +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; - for(;;) { - if (!tint_msl_is_first_1) { - *(p) = (*(p) * 2u); - i = (i + 1u); - } - tint_msl_is_first_1 = false; - - if ((i >= b.count)) { - break; - } - p = &(b.data[i]); - if (((i % 2u) == 0u)) { - continue; - } - *(p) = 0u; - } - } - return; -} - + ^ + = 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/292.wgsl b/test/bug/tint/292.wgsl new file mode 100644 index 0000000000..b1edc34c28 --- /dev/null +++ b/test/bug/tint/292.wgsl @@ -0,0 +1,6 @@ +[[stage(vertex)]] +fn main() { + var light : vec3 = vec3(1.2, 1., 2.); + var negative_light : vec3 = -light; + return; +} diff --git a/test/bug/tint/292.wgsl.expected.hlsl b/test/bug/tint/292.wgsl.expected.hlsl new file mode 100644 index 0000000000..378fbf5eaf --- /dev/null +++ b/test/bug/tint/292.wgsl.expected.hlsl @@ -0,0 +1,6 @@ +void main() { + float3 light = float3(1.200000048f, 1.0f, 2.0f); + float3 negative_light = -(light); + return; +} + diff --git a/test/bug/tint/292.wgsl.expected.msl b/test/bug/tint/292.wgsl.expected.msl new file mode 100644 index 0000000000..e69b692964 --- /dev/null +++ b/test/bug/tint/292.wgsl.expected.msl @@ -0,0 +1,9 @@ +#include + +using namespace metal; +vertex void tint_symbol() { + float3 light = float3(1.200000048f, 1.0f, 2.0f); + float3 negative_light = -(light); + return; +} + diff --git a/test/bug/tint/292.wgsl.expected.spvasm b/test/bug/tint/292.wgsl.expected.spvasm new file mode 100644 index 0000000000..66dcae4029 --- /dev/null +++ b/test/bug/tint/292.wgsl.expected.spvasm @@ -0,0 +1,37 @@ +; SPIR-V +; Version: 1.3 +; Generator: Google Tint Compiler; 0 +; Bound: 20 +; Schema: 0 + OpCapability Shader + OpMemoryModel Logical GLSL450 + OpEntryPoint Vertex %main "main" %tint_pointsize + OpName %tint_pointsize "tint_pointsize" + OpName %main "main" + OpName %light "light" + OpName %negative_light "negative_light" + OpDecorate %tint_pointsize BuiltIn PointSize + %float = OpTypeFloat 32 +%_ptr_Output_float = OpTypePointer Output %float + %4 = OpConstantNull %float +%tint_pointsize = OpVariable %_ptr_Output_float Output %4 + %void = OpTypeVoid + %5 = OpTypeFunction %void + %float_1 = OpConstant %float 1 + %v3float = OpTypeVector %float 3 +%float_1_20000005 = OpConstant %float 1.20000005 + %float_2 = OpConstant %float 2 + %13 = OpConstantComposite %v3float %float_1_20000005 %float_1 %float_2 +%_ptr_Function_v3float = OpTypePointer Function %v3float + %16 = OpConstantNull %v3float + %main = OpFunction %void None %5 + %8 = OpLabel + %light = OpVariable %_ptr_Function_v3float Function %16 +%negative_light = OpVariable %_ptr_Function_v3float Function %16 + OpStore %tint_pointsize %float_1 + OpStore %light %13 + %18 = OpLoad %v3float %light + %17 = OpFNegate %v3float %18 + OpStore %negative_light %17 + OpReturn + OpFunctionEnd diff --git a/test/bug/tint/292.wgsl.expected.wgsl b/test/bug/tint/292.wgsl.expected.wgsl new file mode 100644 index 0000000000..0ad3c99344 --- /dev/null +++ b/test/bug/tint/292.wgsl.expected.wgsl @@ -0,0 +1,6 @@ +[[stage(vertex)]] +fn main() { + var light : vec3 = vec3(1.200000048, 1.0, 2.0); + var negative_light : vec3 = -(light); + return; +} diff --git a/test/bug/tint/294.wgsl b/test/bug/tint/294.wgsl new file mode 100644 index 0000000000..f60b564505 --- /dev/null +++ b/test/bug/tint/294.wgsl @@ -0,0 +1,8 @@ +struct Light { + position : vec3; + colour : vec3; +}; +[[block]] struct Lights { + light : [[stride(32)]] array; +}; +[[set(0), binding(1)]] var lights : [[access(read)]] Lights; diff --git a/test/bug/tint/294.wgsl.expected.hlsl b/test/bug/tint/294.wgsl.expected.hlsl new file mode 100644 index 0000000000..b50e6a3786 --- /dev/null +++ b/test/bug/tint/294.wgsl.expected.hlsl @@ -0,0 +1,10 @@ +bug/tint/294.wgsl:8:24 warning: use of deprecated language feature: declare access with var instead of using [[access]] decoration +[[set(0), binding(1)]] var lights : [[access(read)]] Lights; + ^^^ + + +[numthreads(1, 1, 1)] +void unused_entry_point() { + return; +} + diff --git a/test/bug/tint/294.wgsl.expected.msl b/test/bug/tint/294.wgsl.expected.msl new file mode 100644 index 0000000000..047cfdb16e --- /dev/null +++ b/test/bug/tint/294.wgsl.expected.msl @@ -0,0 +1,17 @@ +bug/tint/294.wgsl:8:24 warning: use of deprecated language feature: declare access with var instead of using [[access]] decoration +[[set(0), binding(1)]] var lights : [[access(read)]] Lights; + ^^^ + +#include + +using namespace metal; +struct Light { + /* 0x0000 */ packed_float3 position; + /* 0x000c */ int8_t tint_pad_0[4]; + /* 0x0010 */ packed_float3 colour; + /* 0x001c */ int8_t tint_pad_1[4]; +}; +struct Lights { + /* 0x0000 */ Light light[1]; +}; + diff --git a/test/bug/tint/294.wgsl.expected.spvasm b/test/bug/tint/294.wgsl.expected.spvasm new file mode 100644 index 0000000000..28f5e64ec0 --- /dev/null +++ b/test/bug/tint/294.wgsl.expected.spvasm @@ -0,0 +1,41 @@ +bug/tint/294.wgsl:8:24 warning: use of deprecated language feature: declare access with var instead of using [[access]] decoration +[[set(0), binding(1)]] var lights : [[access(read)]] Lights; + ^^^ + +; SPIR-V +; Version: 1.3 +; Generator: Google Tint Compiler; 0 +; Bound: 12 +; Schema: 0 + OpCapability Shader + OpMemoryModel Logical GLSL450 + OpEntryPoint GLCompute %unused_entry_point "unused_entry_point" + OpExecutionMode %unused_entry_point LocalSize 1 1 1 + OpName %Lights "Lights" + OpMemberName %Lights 0 "light" + OpName %Light "Light" + OpMemberName %Light 0 "position" + OpMemberName %Light 1 "colour" + OpName %lights "lights" + OpName %unused_entry_point "unused_entry_point" + OpDecorate %Lights Block + OpMemberDecorate %Lights 0 Offset 0 + OpMemberDecorate %Light 0 Offset 0 + OpMemberDecorate %Light 1 Offset 16 + OpDecorate %_runtimearr_Light ArrayStride 32 + OpDecorate %lights NonWritable + OpDecorate %lights DescriptorSet 0 + OpDecorate %lights Binding 1 + %float = OpTypeFloat 32 + %v3float = OpTypeVector %float 3 + %Light = OpTypeStruct %v3float %v3float +%_runtimearr_Light = OpTypeRuntimeArray %Light + %Lights = OpTypeStruct %_runtimearr_Light +%_ptr_StorageBuffer_Lights = OpTypePointer StorageBuffer %Lights + %lights = OpVariable %_ptr_StorageBuffer_Lights StorageBuffer + %void = OpTypeVoid + %8 = OpTypeFunction %void +%unused_entry_point = OpFunction %void None %8 + %11 = OpLabel + OpReturn + OpFunctionEnd diff --git a/test/bug/tint/294.wgsl.expected.wgsl b/test/bug/tint/294.wgsl.expected.wgsl new file mode 100644 index 0000000000..d2a86689da --- /dev/null +++ b/test/bug/tint/294.wgsl.expected.wgsl @@ -0,0 +1,15 @@ +bug/tint/294.wgsl:8:24 warning: use of deprecated language feature: declare access with var instead of using [[access]] decoration +[[set(0), binding(1)]] var lights : [[access(read)]] Lights; + ^^^ + +struct Light { + position : vec3; + colour : vec3; +}; + +[[block]] +struct Lights { + light : [[stride(32)]] array; +}; + +[[group(0), binding(1)]] var lights : Lights; diff --git a/test/bug/tint/403.wgsl b/test/bug/tint/403.wgsl new file mode 100644 index 0000000000..7a1ba82c7c --- /dev/null +++ b/test/bug/tint/403.wgsl @@ -0,0 +1,25 @@ + +[[block]] +struct vertexUniformBuffer1 { + transform1 : mat2x2; +}; +[[block]] +struct vertexUniformBuffer2 { + transform2 : mat2x2; +}; + +[[set(0), binding(0)]] var x_20 : vertexUniformBuffer1; +[[set(1), binding(0)]] var x_26 : vertexUniformBuffer2; + + +[[stage(vertex)]] +fn main([[builtin(vertex_idx)]] gl_VertexIndex : i32) -> [[builtin(position)]] vec4 { + var indexable : array, 3>; + let x_23 : mat2x2 = x_20.transform1; + let x_28 : mat2x2 = x_26.transform2; + let x_46 : i32 = gl_VertexIndex; + indexable = array, 3>(vec2(-1.0, 1.0), vec2(1.0, 1.0), vec2(-1.0, -1.0)); + let x_51 : vec2 = indexable[x_46]; + let x_52 : vec2 = (mat2x2((x_23[0u] + x_28[0u]), (x_23[1u] + x_28[1u])) * x_51); + return vec4(x_52.x, x_52.y, 0.0, 1.0); +} diff --git a/test/bug/tint/403.wgsl.expected.hlsl b/test/bug/tint/403.wgsl.expected.hlsl new file mode 100644 index 0000000000..be4bab376b --- /dev/null +++ b/test/bug/tint/403.wgsl.expected.hlsl @@ -0,0 +1,43 @@ +SKIP: FAILED + + + +Validation Failure: +struct vertexUniformBuffer1 { + float2x2 transform1; +}; +struct vertexUniformBuffer2 { + float2x2 transform2; +}; +struct tint_symbol_1 { + int gl_VertexIndex : SV_VertexID; +}; +struct tint_symbol_2 { + float4 value : SV_Position; +}; + +ConstantBuffer x_20 : register(b0, space0); +ConstantBuffer x_26 : register(b0, space1); + +tint_symbol_2 main(tint_symbol_1 tint_symbol) { + const int gl_VertexIndex = tint_symbol.gl_VertexIndex; + float2 indexable[3] = {float2(0.0f, 0.0f), float2(0.0f, 0.0f), float2(0.0f, 0.0f)}; + const float2x2 x_23 = x_20.transform1; + const float2x2 x_28 = x_26.transform2; + const int x_46 = gl_VertexIndex; + const float2 tint_symbol_3[3] = {float2(-1.0f, 1.0f), float2(1.0f, 1.0f), float2(-1.0f, -1.0f)}; + indexable = tint_symbol_3; + const float2 x_51 = indexable[x_46]; + const float2 x_52 = mul(x_51, float2x2((x_23[0u] + x_28[0u]), (x_23[1u] + x_28[1u]))); + const tint_symbol_2 tint_symbol_4 = {float4(x_52.x, x_52.y, 0.0f, 1.0f)}; + return tint_symbol_4; +} + + +warning: DXIL.dll not found. Resulting DXIL will not be signed for use in release environments. + +error: validation errors +error: SV_VertexID must be uint. +Validation failed. + + diff --git a/test/bug/tint/403.wgsl.expected.msl b/test/bug/tint/403.wgsl.expected.msl new file mode 100644 index 0000000000..82ac99bab5 --- /dev/null +++ b/test/bug/tint/403.wgsl.expected.msl @@ -0,0 +1,19 @@ +SKIP: FAILED + + + +Validation Failure: + +Compilation failed: + +program_source:17:55: error: type 'int' is not valid for attribute 'vertex_id' +vertex tint_symbol_2 tint_symbol(int gl_VertexIndex [[vertex_id]], constant vertexUniformBuffer1& x_20 [[buffer(0)]], constant vertexUniformBuffer2& x_26 [[buffer(0)]]) { + ^~~~~~~~~ +program_source:18:37: warning: suggest braces around initialization of subobject + tint_array_wrapper_0 indexable = {0.0f}; + ^~~~ + { } +program_source:22:47: warning: suggest braces around initialization of subobject + tint_array_wrapper_0 const tint_symbol_3 = {float2(-1.0f, 1.0f), float2(1.0f, 1.0f), float2(-1.0f, -1.0f)}; + ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + { } diff --git a/test/bug/tint/403.wgsl.expected.spvasm b/test/bug/tint/403.wgsl.expected.spvasm new file mode 100644 index 0000000000..a60fd8e49c --- /dev/null +++ b/test/bug/tint/403.wgsl.expected.spvasm @@ -0,0 +1,109 @@ +; SPIR-V +; Version: 1.3 +; Generator: Google Tint Compiler; 0 +; Bound: 64 +; Schema: 0 + OpCapability Shader + OpMemoryModel Logical GLSL450 + OpEntryPoint Vertex %main "main" %tint_pointsize %tint_symbol %tint_symbol_2 + OpName %tint_pointsize "tint_pointsize" + OpName %vertexUniformBuffer1 "vertexUniformBuffer1" + OpMemberName %vertexUniformBuffer1 0 "transform1" + OpName %x_20 "x_20" + OpName %vertexUniformBuffer2 "vertexUniformBuffer2" + OpMemberName %vertexUniformBuffer2 0 "transform2" + OpName %x_26 "x_26" + OpName %tint_symbol "tint_symbol" + OpName %tint_symbol_2 "tint_symbol_2" + OpName %tint_symbol_3 "tint_symbol_3" + OpName %tint_symbol_1 "tint_symbol_1" + OpName %main "main" + OpName %indexable "indexable" + OpDecorate %tint_pointsize BuiltIn PointSize + OpDecorate %vertexUniformBuffer1 Block + OpMemberDecorate %vertexUniformBuffer1 0 Offset 0 + OpMemberDecorate %vertexUniformBuffer1 0 ColMajor + OpMemberDecorate %vertexUniformBuffer1 0 MatrixStride 8 + OpDecorate %x_20 NonWritable + OpDecorate %x_20 DescriptorSet 0 + OpDecorate %x_20 Binding 0 + OpDecorate %vertexUniformBuffer2 Block + OpMemberDecorate %vertexUniformBuffer2 0 Offset 0 + OpMemberDecorate %vertexUniformBuffer2 0 ColMajor + OpMemberDecorate %vertexUniformBuffer2 0 MatrixStride 8 + OpDecorate %x_26 NonWritable + OpDecorate %x_26 DescriptorSet 1 + OpDecorate %x_26 Binding 0 + OpDecorate %tint_symbol BuiltIn VertexIndex + OpDecorate %tint_symbol_2 BuiltIn Position + OpDecorate %_arr_v2float_uint_3 ArrayStride 8 + %float = OpTypeFloat 32 +%_ptr_Output_float = OpTypePointer Output %float + %4 = OpConstantNull %float +%tint_pointsize = OpVariable %_ptr_Output_float Output %4 + %v2float = OpTypeVector %float 2 +%mat2v2float = OpTypeMatrix %v2float 2 +%vertexUniformBuffer1 = OpTypeStruct %mat2v2float +%_ptr_Uniform_vertexUniformBuffer1 = OpTypePointer Uniform %vertexUniformBuffer1 + %x_20 = OpVariable %_ptr_Uniform_vertexUniformBuffer1 Uniform +%vertexUniformBuffer2 = OpTypeStruct %mat2v2float +%_ptr_Uniform_vertexUniformBuffer2 = OpTypePointer Uniform %vertexUniformBuffer2 + %x_26 = OpVariable %_ptr_Uniform_vertexUniformBuffer2 Uniform + %int = OpTypeInt 32 1 +%_ptr_Input_int = OpTypePointer Input %int +%tint_symbol = OpVariable %_ptr_Input_int Input + %v4float = OpTypeVector %float 4 +%_ptr_Output_v4float = OpTypePointer Output %v4float + %19 = OpConstantNull %v4float +%tint_symbol_2 = OpVariable %_ptr_Output_v4float Output %19 + %void = OpTypeVoid + %20 = OpTypeFunction %void %v4float + %25 = OpTypeFunction %void + %float_1 = OpConstant %float 1 + %uint = OpTypeInt 32 0 + %uint_3 = OpConstant %uint 3 +%_arr_v2float_uint_3 = OpTypeArray %v2float %uint_3 +%_ptr_Function__arr_v2float_uint_3 = OpTypePointer Function %_arr_v2float_uint_3 + %34 = OpConstantNull %_arr_v2float_uint_3 + %uint_0 = OpConstant %uint 0 +%_ptr_Uniform_mat2v2float = OpTypePointer Uniform %mat2v2float + %float_n1 = OpConstant %float -1 + %43 = OpConstantComposite %v2float %float_n1 %float_1 + %44 = OpConstantComposite %v2float %float_1 %float_1 + %45 = OpConstantComposite %v2float %float_n1 %float_n1 + %46 = OpConstantComposite %_arr_v2float_uint_3 %43 %44 %45 +%_ptr_Function_v2float = OpTypePointer Function %v2float + %uint_1 = OpConstant %uint 1 + %float_0 = OpConstant %float 0 +%tint_symbol_3 = OpFunction %void None %20 +%tint_symbol_1 = OpFunctionParameter %v4float + %24 = OpLabel + OpStore %tint_symbol_2 %tint_symbol_1 + OpReturn + OpFunctionEnd + %main = OpFunction %void None %25 + %27 = OpLabel + %indexable = OpVariable %_ptr_Function__arr_v2float_uint_3 Function %34 + OpStore %tint_pointsize %float_1 + %37 = OpAccessChain %_ptr_Uniform_mat2v2float %x_20 %uint_0 + %38 = OpLoad %mat2v2float %37 + %39 = OpAccessChain %_ptr_Uniform_mat2v2float %x_26 %uint_0 + %40 = OpLoad %mat2v2float %39 + %41 = OpLoad %int %tint_symbol + OpStore %indexable %46 + %48 = OpAccessChain %_ptr_Function_v2float %indexable %41 + %49 = OpLoad %v2float %48 + %50 = OpCompositeExtract %v2float %38 0 + %51 = OpCompositeExtract %v2float %40 0 + %52 = OpFAdd %v2float %50 %51 + %54 = OpCompositeExtract %v2float %38 1 + %55 = OpCompositeExtract %v2float %40 1 + %56 = OpFAdd %v2float %54 %55 + %57 = OpCompositeConstruct %mat2v2float %52 %56 + %58 = OpMatrixTimesVector %v2float %57 %49 + %60 = OpCompositeExtract %float %58 0 + %61 = OpCompositeExtract %float %58 1 + %63 = OpCompositeConstruct %v4float %60 %61 %float_0 %float_1 + %59 = OpFunctionCall %void %tint_symbol_3 %63 + OpReturn + OpFunctionEnd diff --git a/test/bug/tint/403.wgsl.expected.wgsl b/test/bug/tint/403.wgsl.expected.wgsl new file mode 100644 index 0000000000..0175922220 --- /dev/null +++ b/test/bug/tint/403.wgsl.expected.wgsl @@ -0,0 +1,25 @@ +[[block]] +struct vertexUniformBuffer1 { + transform1 : mat2x2; +}; + +[[block]] +struct vertexUniformBuffer2 { + transform2 : mat2x2; +}; + +[[group(0), binding(0)]] var x_20 : vertexUniformBuffer1; + +[[group(1), binding(0)]] var x_26 : vertexUniformBuffer2; + +[[stage(vertex)]] +fn main([[builtin(vertex_index)]] gl_VertexIndex : i32) -> [[builtin(position)]] vec4 { + var indexable : array, 3>; + let x_23 : mat2x2 = x_20.transform1; + let x_28 : mat2x2 = x_26.transform2; + let x_46 : i32 = gl_VertexIndex; + indexable = array, 3>(vec2(-1.0, 1.0), vec2(1.0, 1.0), vec2(-1.0, -1.0)); + let x_51 : vec2 = indexable[x_46]; + let x_52 : vec2 = (mat2x2((x_23[0u] + x_28[0u]), (x_23[1u] + x_28[1u])) * x_51); + return vec4(x_52.x, x_52.y, 0.0, 1.0); +} diff --git a/test/bug/tint/413.spvasm b/test/bug/tint/413.spvasm new file mode 100644 index 0000000000..d1621acf4a --- /dev/null +++ b/test/bug/tint/413.spvasm @@ -0,0 +1,50 @@ + + OpCapability Shader + %1 = OpExtInstImport "GLSL.std.450" + OpMemoryModel Logical GLSL450 + OpEntryPoint GLCompute %main "main" + OpExecutionMode %main LocalSize 1 1 1 + OpSource GLSL 450 + OpSourceExtension "GL_GOOGLE_cpp_style_line_directive" + OpSourceExtension "GL_GOOGLE_include_directive" + OpName %main "main" + OpName %srcValue "srcValue" + OpName %Src "Src" + OpName %Dst "Dst" + OpDecorate %Src DescriptorSet 0 + OpDecorate %Src Binding 0 + OpDecorate %Src NonWritable + OpDecorate %Dst DescriptorSet 0 + OpDecorate %Dst Binding 1 + OpDecorate %Dst NonReadable + %void = OpTypeVoid + %3 = OpTypeFunction %void + %uint = OpTypeInt 32 0 + %v4uint = OpTypeVector %uint 4 + %_ptr_Function_v4uint = OpTypePointer Function %v4uint + %10 = OpTypeImage %uint 2D 0 0 0 2 R32ui +%_ptr_UniformConstant_10 = OpTypePointer UniformConstant %10 + %Src = OpVariable %_ptr_UniformConstant_10 UniformConstant + %int = OpTypeInt 32 1 + %v2int = OpTypeVector %int 2 + %int_0 = OpConstant %int 0 + %17 = OpConstantComposite %v2int %int_0 %int_0 + %uint_0 = OpConstant %uint 0 + %_ptr_Function_uint = OpTypePointer Function %uint + %int_1 = OpConstant %int 1 + %Dst = OpVariable %_ptr_UniformConstant_10 UniformConstant + %main = OpFunction %void None %3 + %5 = OpLabel + %srcValue = OpVariable %_ptr_Function_v4uint Function + %13 = OpLoad %10 %Src + %18 = OpImageRead %v4uint %13 %17 + OpStore %srcValue %18 + %21 = OpAccessChain %_ptr_Function_uint %srcValue %uint_0 + %22 = OpLoad %uint %21 + %24 = OpIAdd %uint %22 %int_1 + OpStore %21 %24 + %26 = OpLoad %10 %Dst + %27 = OpLoad %v4uint %srcValue + OpImageWrite %26 %17 %27 + OpReturn + OpFunctionEnd diff --git a/test/bug/tint/413.spvasm.expected.hlsl b/test/bug/tint/413.spvasm.expected.hlsl new file mode 100644 index 0000000000..86d869d096 --- /dev/null +++ b/test/bug/tint/413.spvasm.expected.hlsl @@ -0,0 +1,15 @@ +Texture2D Src : register(t0, space0); +RWTexture2D Dst : register(u1, space0); + +[numthreads(1, 1, 1)] +void main() { + uint4 srcValue = uint4(0u, 0u, 0u, 0u); + const uint4 x_18 = Src.Load(int3(0, 0, 0)); + srcValue = x_18; + const uint x_22 = srcValue.x; + srcValue.x = (x_22 + asuint(1)); + const uint4 x_27 = srcValue; + Dst[int2(0, 0)] = x_27; + return; +} + diff --git a/test/bug/tint/413.spvasm.expected.msl b/test/bug/tint/413.spvasm.expected.msl new file mode 100644 index 0000000000..ad93adb873 --- /dev/null +++ b/test/bug/tint/413.spvasm.expected.msl @@ -0,0 +1,17 @@ +SKIP: FAILED + + + +Validation Failure: + +Compilation failed: + +program_source:6:22: error: use of undeclared identifier 'Src' + uint4 const x_18 = Src.read(int2(0, 0)); + ^ +program_source:8:29: error: address of vector element requested + thread uint* const x_21 = &(srcValue.x); + ^ ~~~~~~~~~~ +program_source:12:3: error: use of undeclared identifier 'Dst' + Dst.write(x_27, int2(0, 0)); + ^ diff --git a/test/bug/tint/413.spvasm.expected.spvasm b/test/bug/tint/413.spvasm.expected.spvasm new file mode 100644 index 0000000000..d6844f2f4b --- /dev/null +++ b/test/bug/tint/413.spvasm.expected.spvasm @@ -0,0 +1,56 @@ +SKIP: FAILED + +; SPIR-V +; Version: 1.3 +; Generator: Google Tint Compiler; 0 +; Bound: 32 +; Schema: 0 + OpCapability Shader + OpMemoryModel Logical GLSL450 + OpEntryPoint GLCompute %main "main" + OpExecutionMode %main LocalSize 1 1 1 + OpName %Src "Src" + OpName %Dst "Dst" + OpName %main "main" + OpName %srcValue "srcValue" + OpDecorate %Src NonWritable + OpDecorate %Src DescriptorSet 0 + OpDecorate %Src Binding 0 + OpDecorate %Dst NonReadable + OpDecorate %Dst DescriptorSet 0 + OpDecorate %Dst Binding 1 + %uint = OpTypeInt 32 0 + %3 = OpTypeImage %uint 2D 0 0 0 2 R32ui +%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3 + %Src = OpVariable %_ptr_UniformConstant_3 UniformConstant +%_ptr_UniformConstant_3_0 = OpTypePointer UniformConstant %3 + %Dst = OpVariable %_ptr_UniformConstant_3_0 UniformConstant + %void = OpTypeVoid + %7 = OpTypeFunction %void + %v4uint = OpTypeVector %uint 4 +%_ptr_Function_v4uint = OpTypePointer Function %v4uint + %14 = OpConstantNull %v4uint + %int = OpTypeInt 32 1 + %v2int = OpTypeVector %int 2 + %int_0 = OpConstant %int 0 + %20 = OpConstantComposite %v2int %int_0 %int_0 + %uint_0 = OpConstant %uint 0 +%_ptr_Function_uint = OpTypePointer Function %uint + %int_1 = OpConstant %int 1 + %main = OpFunction %void None %7 + %10 = OpLabel + %srcValue = OpVariable %_ptr_Function_v4uint Function %14 + %16 = OpLoad %3 %Src + %15 = OpImageRead %v4uint %16 %20 + OpStore %srcValue %15 + %23 = OpAccessChain %_ptr_Function_uint %srcValue %uint_0 + %24 = OpLoad %uint %23 + %25 = OpAccessChain %_ptr_Function_uint %srcValue %uint_0 + %26 = OpBitcast %uint %int_1 + %28 = OpIAdd %uint %24 %26 + OpStore %25 %28 + %29 = OpLoad %v4uint %srcValue + %31 = OpLoad %3 %Dst + OpImageWrite %31 %20 %29 + OpReturn + OpFunctionEnd diff --git a/test/bug/tint/413.spvasm.expected.wgsl b/test/bug/tint/413.spvasm.expected.wgsl new file mode 100644 index 0000000000..071a0cc544 --- /dev/null +++ b/test/bug/tint/413.spvasm.expected.wgsl @@ -0,0 +1,16 @@ +[[group(0), binding(0)]] var Src : texture_storage_2d; + +[[group(0), binding(1)]] var Dst : texture_storage_2d; + +[[stage(compute)]] +fn main() { + var srcValue : vec4; + let x_18 : vec4 = textureLoad(Src, vec2(0, 0)); + srcValue = x_18; + let x_21 : ptr = &(srcValue.x); + let x_22 : u32 = *(x_21); + *(x_21) = (x_22 + bitcast(1)); + let x_27 : vec4 = srcValue; + textureStore(Dst, vec2(0, 0), x_27); + return; +} diff --git a/test/bug/tint/453.wgsl b/test/bug/tint/453.wgsl new file mode 100644 index 0000000000..c4be66bbbb --- /dev/null +++ b/test/bug/tint/453.wgsl @@ -0,0 +1,15 @@ +[[group(0), binding(0)]] var Src : [[access(read)]] texture_storage_2d; +[[group(0), binding(1)]] var Dst : [[access(write)]] texture_storage_2d; + +[[stage(compute)]] +fn main() { + var srcValue : vec4; + let x_22 : vec4 = textureLoad(Src, vec2(0, 0)); + srcValue = x_22; + let x_23 : ptr = &srcValue.x; + let x_24 : u32 = *x_23; + let x_25 : u32 = (x_24 + 1u); + let x_27 : vec4 = srcValue; + textureStore(Dst, vec2(0, 0), x_27.xxxx); + return; +} diff --git a/test/bug/tint/453.wgsl.expected.hlsl b/test/bug/tint/453.wgsl.expected.hlsl new file mode 100644 index 0000000000..b1961c7b24 --- /dev/null +++ b/test/bug/tint/453.wgsl.expected.hlsl @@ -0,0 +1,23 @@ +bug/tint/453.wgsl:1:79 warning: use of deprecated language feature: access control is expected as last parameter of storage textures +[[group(0), binding(0)]] var Src : [[access(read)]] texture_storage_2d; + ^ + +bug/tint/453.wgsl:2:80 warning: use of deprecated language feature: access control is expected as last parameter of storage textures +[[group(0), binding(1)]] var Dst : [[access(write)]] texture_storage_2d; + ^ + +Texture2D Src : register(t0, space0); +RWTexture2D Dst : register(u1, space0); + +[numthreads(1, 1, 1)] +void main() { + uint4 srcValue = uint4(0u, 0u, 0u, 0u); + const uint4 x_22 = Src.Load(int3(0, 0, 0)); + srcValue = x_22; + const uint x_24 = srcValue.x; + const uint x_25 = (x_24 + 1u); + const uint4 x_27 = srcValue; + Dst[int2(0, 0)] = x_27.xxxx; + return; +} + diff --git a/test/bug/tint/453.wgsl.expected.msl b/test/bug/tint/453.wgsl.expected.msl new file mode 100644 index 0000000000..fc9acbed1f --- /dev/null +++ b/test/bug/tint/453.wgsl.expected.msl @@ -0,0 +1,25 @@ +SKIP: FAILED + +bug/tint/453.wgsl:1:79 warning: use of deprecated language feature: access control is expected as last parameter of storage textures +[[group(0), binding(0)]] var Src : [[access(read)]] texture_storage_2d; + ^ + +bug/tint/453.wgsl:2:80 warning: use of deprecated language feature: access control is expected as last parameter of storage textures +[[group(0), binding(1)]] var Dst : [[access(write)]] texture_storage_2d; + ^ + + + +Validation Failure: + +Compilation failed: + +program_source:6:22: error: use of undeclared identifier 'Src' + uint4 const x_22 = Src.read(int2(0, 0)); + ^ +program_source:8:29: error: address of vector element requested + thread uint* const x_23 = &(srcValue.x); + ^ ~~~~~~~~~~ +program_source:12:3: error: use of undeclared identifier 'Dst' + Dst.write(x_27.xxxx, int2(0, 0)); + ^ diff --git a/test/bug/tint/453.wgsl.expected.spvasm b/test/bug/tint/453.wgsl.expected.spvasm new file mode 100644 index 0000000000..3308dda18a --- /dev/null +++ b/test/bug/tint/453.wgsl.expected.spvasm @@ -0,0 +1,62 @@ +SKIP: FAILED + +bug/tint/453.wgsl:1:79 warning: use of deprecated language feature: access control is expected as last parameter of storage textures +[[group(0), binding(0)]] var Src : [[access(read)]] texture_storage_2d; + ^ + +bug/tint/453.wgsl:2:80 warning: use of deprecated language feature: access control is expected as last parameter of storage textures +[[group(0), binding(1)]] var Dst : [[access(write)]] texture_storage_2d; + ^ + +; SPIR-V +; Version: 1.3 +; Generator: Google Tint Compiler; 0 +; Bound: 31 +; Schema: 0 + OpCapability Shader + OpMemoryModel Logical GLSL450 + OpEntryPoint GLCompute %main "main" + OpExecutionMode %main LocalSize 1 1 1 + OpName %Src "Src" + OpName %Dst "Dst" + OpName %main "main" + OpName %srcValue "srcValue" + OpDecorate %Src NonWritable + OpDecorate %Src DescriptorSet 0 + OpDecorate %Src Binding 0 + OpDecorate %Dst NonReadable + OpDecorate %Dst DescriptorSet 0 + OpDecorate %Dst Binding 1 + %uint = OpTypeInt 32 0 + %3 = OpTypeImage %uint 2D 0 0 0 2 R32ui +%_ptr_UniformConstant_3 = OpTypePointer UniformConstant %3 + %Src = OpVariable %_ptr_UniformConstant_3 UniformConstant +%_ptr_UniformConstant_3_0 = OpTypePointer UniformConstant %3 + %Dst = OpVariable %_ptr_UniformConstant_3_0 UniformConstant + %void = OpTypeVoid + %7 = OpTypeFunction %void + %v4uint = OpTypeVector %uint 4 +%_ptr_Function_v4uint = OpTypePointer Function %v4uint + %14 = OpConstantNull %v4uint + %int = OpTypeInt 32 1 + %v2int = OpTypeVector %int 2 + %int_0 = OpConstant %int 0 + %20 = OpConstantComposite %v2int %int_0 %int_0 + %uint_0 = OpConstant %uint 0 +%_ptr_Function_uint = OpTypePointer Function %uint + %uint_1 = OpConstant %uint 1 + %main = OpFunction %void None %7 + %10 = OpLabel + %srcValue = OpVariable %_ptr_Function_v4uint Function %14 + %16 = OpLoad %3 %Src + %15 = OpImageRead %v4uint %16 %20 + OpStore %srcValue %15 + %23 = OpAccessChain %_ptr_Function_uint %srcValue %uint_0 + %24 = OpLoad %uint %23 + %26 = OpIAdd %uint %24 %uint_1 + %27 = OpLoad %v4uint %srcValue + %29 = OpLoad %3 %Dst + %30 = OpVectorShuffle %v4uint %27 %27 0 0 0 0 + OpImageWrite %29 %20 %30 + OpReturn + OpFunctionEnd diff --git a/test/bug/tint/453.wgsl.expected.wgsl b/test/bug/tint/453.wgsl.expected.wgsl new file mode 100644 index 0000000000..5a5db6cdf5 --- /dev/null +++ b/test/bug/tint/453.wgsl.expected.wgsl @@ -0,0 +1,24 @@ +bug/tint/453.wgsl:1:79 warning: use of deprecated language feature: access control is expected as last parameter of storage textures +[[group(0), binding(0)]] var Src : [[access(read)]] texture_storage_2d; + ^ + +bug/tint/453.wgsl:2:80 warning: use of deprecated language feature: access control is expected as last parameter of storage textures +[[group(0), binding(1)]] var Dst : [[access(write)]] texture_storage_2d; + ^ + +[[group(0), binding(0)]] var Src : texture_storage_2d; + +[[group(0), binding(1)]] var Dst : texture_storage_2d; + +[[stage(compute)]] +fn main() { + var srcValue : vec4; + let x_22 : vec4 = textureLoad(Src, vec2(0, 0)); + srcValue = x_22; + let x_23 : ptr = &(srcValue.x); + let x_24 : u32 = *(x_23); + let x_25 : u32 = (x_24 + 1u); + let x_27 : vec4 = srcValue; + textureStore(Dst, vec2(0, 0), x_27.xxxx); + return; +} diff --git a/test/bug/tint/744.wgsl.expected.msl b/test/bug/tint/744.wgsl.expected.msl index 66a945bf42..95ce93c8b3 100644 --- a/test/bug/tint/744.wgsl.expected.msl +++ b/test/bug/tint/744.wgsl.expected.msl @@ -1,49 +1,28 @@ -SKIP: crbug.com/tint/833 loop emission is broken +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]; -}; -struct tint_symbol_2 { - uint3 global_id [[thread_position_in_grid]]; -}; -kernel void tint_symbol(tint_symbol_2 tint_symbol_1 [[stage_in]], constant Uniforms& uniforms [[buffer(3)]], const device Matrix& firstMatrix [[buffer(0)]], const device Matrix& secondMatrix [[buffer(1)]], device Matrix& resultMatrix [[buffer(2)]]) { - uint3 const global_id = tint_symbol_1.global_id; - 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; - { - bool tint_msl_is_first_1 = true; +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; - for(;;) { - if (!tint_msl_is_first_1) { - i = (i + 1u); - } - tint_msl_is_first_1 = false; - - if (!((i < dimInner))) { - break; - } + ^ + = 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)); - result = (result + (firstMatrix.numbers[a] * secondMatrix.numbers[b])); - } - } - } - uint const index = (resultCell.y + (resultCell.x * dimOutter)); - resultMatrix.numbers[index] = result; - return; -} - + ~ ^ +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 6bd339d73b..90b143c867 100644 --- a/test/bug/tint/749.spvasm.expected.msl +++ b/test/bug/tint/749.spvasm.expected.msl @@ -1 +1,1750 @@ -SKIP: crbug.com/tint/833 loop emission is broken +SKIP: FAILED + + + +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' + 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_158 = i_2; + ^ +program_source:959:18: warning: unused variable 'x_432' + 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' + float2 const x_481 = float2(x_447.x, x_480.z); + ^ +program_source:1342:18: warning: unused variable 'x_482' + float3 const x_482 = float3(x_455.x, x_475.y, x_455.y); + ^ +program_source:1354:18: warning: unused variable 'x_483' + float3 const x_483 = float3(x_184.w, x_184.w, x_192.x); + ^ +program_source:1359:18: warning: unused variable 'x_484' + 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' + float2 const x_486 = float2(x_480.y, x_455.y); + ^ +program_source:1388:18: warning: unused variable 'x_487' + float2 const x_487 = float2(x_449.z, x_449.y); + ^ +program_source:1402:18: warning: unused variable 'x_488' + float2 const x_488 = float2(x_473.z, x_473.y); + ^ +program_source:1410:18: warning: unused variable 'x_489' + float2 const x_489 = float2(x_475.y, x_475.x); + ^ +program_source:1417:18: warning: unused variable 'x_490' + float2 const x_490 = float2(x_480.z, x_480.z); + ^ +program_source:1427:18: warning: unused variable 'x_491' + 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}; + ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ + { } diff --git a/test/bug/tint/757.wgsl b/test/bug/tint/757.wgsl new file mode 100644 index 0000000000..68239aabb0 --- /dev/null +++ b/test/bug/tint/757.wgsl @@ -0,0 +1,26 @@ + +[[block]] struct Constants { + [[offset(0)]] level : i32; +}; + +[[group(0), binding(0)]] var constants : Constants; +[[group(0), binding(1)]] var myTexture : texture_2d_array; + +[[block]] struct Result { + [[offset(0)]] values : [[stride(4)]] array; +}; +[[group(0), binding(3)]] var result : Result; + +[[stage(compute)]] +fn main([[builtin(global_invocation_id)]] GlobalInvocationID : vec3) { + var flatIndex : u32 = + 2u * 2u * GlobalInvocationID.z + + 2u * GlobalInvocationID.y + + GlobalInvocationID.x; + flatIndex = flatIndex * 1u; + var texel : vec4 = textureLoad(myTexture, vec2(GlobalInvocationID.xy), 0, 0); + + for (var i : u32 = 0u; i < 1u; i = i + 1u) { + result.values[flatIndex + i] = texel.r; + } +} diff --git a/test/bug/tint/757.wgsl.expected.hlsl b/test/bug/tint/757.wgsl.expected.hlsl new file mode 100644 index 0000000000..bf8e39e992 --- /dev/null +++ b/test/bug/tint/757.wgsl.expected.hlsl @@ -0,0 +1,40 @@ +bug/tint/757.wgsl:3:5 warning: use of deprecated language feature: [[offset]] has been replaced with [[size]] and [[align]] + [[offset(0)]] level : i32; + ^^^^^^ + +bug/tint/757.wgsl:10:5 warning: use of deprecated language feature: [[offset]] has been replaced with [[size]] and [[align]] + [[offset(0)]] values : [[stride(4)]] array; + ^^^^^^ + +struct Constants { + int level; +}; +struct tint_symbol_1 { + uint3 GlobalInvocationID : SV_DispatchThreadID; +}; + +RWByteAddressBuffer result : register(u3, space0); + +Texture2DArray myTexture : register(t1, space0); + +[numthreads(1, 1, 1)] +void main(tint_symbol_1 tint_symbol) { + const uint3 GlobalInvocationID = tint_symbol.GlobalInvocationID; + uint flatIndex = ((((2u * 2u) * GlobalInvocationID.z) + (2u * GlobalInvocationID.y)) + GlobalInvocationID.x); + flatIndex = (flatIndex * 1u); + float4 texel = myTexture.Load(int4(GlobalInvocationID.xy, 0, 0), 0); + { + uint i = 0u; + while (true) { + if (!((i < 1u))) { + break; + } + result.Store((4u * (flatIndex + i)), asuint(texel.r)); + { + i = (i + 1u); + } + } + } + return; +} + diff --git a/test/bug/tint/757.wgsl.expected.msl b/test/bug/tint/757.wgsl.expected.msl new file mode 100644 index 0000000000..4df311b468 --- /dev/null +++ b/test/bug/tint/757.wgsl.expected.msl @@ -0,0 +1,19 @@ +SKIP: FAILED + +bug/tint/757.wgsl:3:5 warning: use of deprecated language feature: [[offset]] has been replaced with [[size]] and [[align]] + [[offset(0)]] level : i32; + ^^^^^^ + +bug/tint/757.wgsl:10:5 warning: use of deprecated language feature: [[offset]] has been replaced with [[size]] and [[align]] + [[offset(0)]] values : [[stride(4)]] array; + ^^^^^^ + + + +Validation Failure: + +Compilation failed: + +program_source:14:18: error: use of undeclared identifier 'myTexture' + float4 texel = myTexture.read(int2(GlobalInvocationID.xy), 0, 0); + ^ diff --git a/test/bug/tint/757.wgsl.expected.spvasm b/test/bug/tint/757.wgsl.expected.spvasm new file mode 100644 index 0000000000..f886db94d5 --- /dev/null +++ b/test/bug/tint/757.wgsl.expected.spvasm @@ -0,0 +1,141 @@ +SKIP: FAILED + +bug/tint/757.wgsl:3:5 warning: use of deprecated language feature: [[offset]] has been replaced with [[size]] and [[align]] + [[offset(0)]] level : i32; + ^^^^^^ + +bug/tint/757.wgsl:10:5 warning: use of deprecated language feature: [[offset]] has been replaced with [[size]] and [[align]] + [[offset(0)]] values : [[stride(4)]] array; + ^^^^^^ + +; SPIR-V +; Version: 1.3 +; Generator: Google Tint Compiler; 0 +; Bound: 76 +; Schema: 0 + OpCapability Shader + OpMemoryModel Logical GLSL450 + OpEntryPoint GLCompute %main "main" %tint_symbol + OpExecutionMode %main LocalSize 1 1 1 + OpName %Constants "Constants" + OpMemberName %Constants 0 "level" + OpName %constants "constants" + OpName %myTexture "myTexture" + OpName %Result "Result" + OpMemberName %Result 0 "values" + OpName %result "result" + OpName %tint_symbol "tint_symbol" + OpName %main "main" + OpName %flatIndex "flatIndex" + OpName %texel "texel" + OpName %i "i" + OpDecorate %Constants Block + OpMemberDecorate %Constants 0 Offset 0 + OpDecorate %constants NonWritable + OpDecorate %constants DescriptorSet 0 + OpDecorate %constants Binding 0 + OpDecorate %myTexture DescriptorSet 0 + OpDecorate %myTexture Binding 1 + OpDecorate %Result Block + OpMemberDecorate %Result 0 Offset 0 + OpDecorate %_runtimearr_float ArrayStride 4 + OpDecorate %result DescriptorSet 0 + OpDecorate %result Binding 3 + OpDecorate %tint_symbol BuiltIn GlobalInvocationId + %int = OpTypeInt 32 1 + %Constants = OpTypeStruct %int +%_ptr_Uniform_Constants = OpTypePointer Uniform %Constants + %constants = OpVariable %_ptr_Uniform_Constants Uniform + %float = OpTypeFloat 32 + %7 = OpTypeImage %float 2D 0 1 0 1 Unknown +%_ptr_UniformConstant_7 = OpTypePointer UniformConstant %7 + %myTexture = OpVariable %_ptr_UniformConstant_7 UniformConstant +%_runtimearr_float = OpTypeRuntimeArray %float + %Result = OpTypeStruct %_runtimearr_float +%_ptr_StorageBuffer_Result = OpTypePointer StorageBuffer %Result + %result = OpVariable %_ptr_StorageBuffer_Result StorageBuffer + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_Input_v3uint = OpTypePointer Input %v3uint +%tint_symbol = OpVariable %_ptr_Input_v3uint Input + %void = OpTypeVoid + %17 = OpTypeFunction %void + %uint_2 = OpConstant %uint 2 +%_ptr_Input_uint = OpTypePointer Input %uint + %uint_1 = OpConstant %uint 1 + %uint_0 = OpConstant %uint 0 +%_ptr_Function_uint = OpTypePointer Function %uint + %38 = OpConstantNull %uint + %v4float = OpTypeVector %float 4 + %v3int = OpTypeVector %int 3 + %v2uint = OpTypeVector %uint 2 + %int_0 = OpConstant %int 0 +%_ptr_Function_v4float = OpTypePointer Function %v4float + %54 = OpConstantNull %v4float + %bool = OpTypeBool +%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float +%_ptr_Function_float = OpTypePointer Function %float + %main = OpFunction %void None %17 + %20 = OpLabel + %flatIndex = OpVariable %_ptr_Function_uint Function %38 + %texel = OpVariable %_ptr_Function_v4float Function %54 + %i = OpVariable %_ptr_Function_uint Function %38 + %22 = OpIMul %uint %uint_2 %uint_2 + %24 = OpAccessChain %_ptr_Input_uint %tint_symbol %uint_2 + %25 = OpLoad %uint %24 + %26 = OpIMul %uint %22 %25 + %28 = OpAccessChain %_ptr_Input_uint %tint_symbol %uint_1 + %29 = OpLoad %uint %28 + %30 = OpIMul %uint %uint_2 %29 + %31 = OpIAdd %uint %26 %30 + %33 = OpAccessChain %_ptr_Input_uint %tint_symbol %uint_0 + %34 = OpLoad %uint %33 + %35 = OpIAdd %uint %31 %34 + OpStore %flatIndex %35 + %39 = OpLoad %uint %flatIndex + %40 = OpIMul %uint %39 %uint_1 + OpStore %flatIndex %40 + %43 = OpLoad %7 %myTexture + %46 = OpLoad %v3uint %tint_symbol + %47 = OpVectorShuffle %v2uint %46 %46 0 1 + %48 = OpCompositeExtract %uint %47 0 + %49 = OpCompositeExtract %uint %47 1 + %51 = OpCompositeConstruct %v3int %48 %49 %int_0 + %41 = OpImageFetch %v4float %43 %51 Lod %int_0 + OpStore %texel %41 + OpStore %i %uint_0 + OpBranch %56 + %56 = OpLabel + OpLoopMerge %57 %58 None + OpBranch %59 + %59 = OpLabel + %61 = OpLoad %uint %i + %62 = OpULessThan %bool %61 %uint_1 + %60 = OpLogicalNot %bool %62 + OpSelectionMerge %64 None + OpBranchConditional %60 %65 %64 + %65 = OpLabel + OpBranch %57 + %64 = OpLabel + %66 = OpLoad %uint %flatIndex + %67 = OpLoad %uint %i + %68 = OpIAdd %uint %66 %67 + %70 = OpAccessChain %_ptr_StorageBuffer_float %result %uint_0 %68 + %72 = OpAccessChain %_ptr_Function_float %texel %uint_0 + %73 = OpLoad %float %72 + OpStore %70 %73 + OpBranch %58 + %58 = OpLabel + %74 = OpLoad %uint %i + %75 = OpIAdd %uint %74 %uint_1 + OpStore %i %75 + OpBranch %56 + %57 = OpLabel + OpReturn + OpFunctionEnd + + +Validation Failure: +1:1: Expected Constituents to be scalars or vectors of the same type as Result Type components + %51 = OpCompositeConstruct %v3int %48 %49 %int_0 + diff --git a/test/bug/tint/757.wgsl.expected.wgsl b/test/bug/tint/757.wgsl.expected.wgsl new file mode 100644 index 0000000000..3fcd2a0b1c --- /dev/null +++ b/test/bug/tint/757.wgsl.expected.wgsl @@ -0,0 +1,43 @@ +bug/tint/757.wgsl:3:5 warning: use of deprecated language feature: [[offset]] has been replaced with [[size]] and [[align]] + [[offset(0)]] level : i32; + ^^^^^^ + +bug/tint/757.wgsl:10:5 warning: use of deprecated language feature: [[offset]] has been replaced with [[size]] and [[align]] + [[offset(0)]] values : [[stride(4)]] array; + ^^^^^^ + +[[block]] +struct Constants { + level : i32; +}; + +[[group(0), binding(0)]] var constants : Constants; + +[[group(0), binding(1)]] var myTexture : texture_2d_array; + +[[block]] +struct Result { + values : [[stride(4)]] array; +}; + +[[group(0), binding(3)]] var result : Result; + +[[stage(compute)]] +fn main([[builtin(global_invocation_id)]] GlobalInvocationID : vec3) { + var flatIndex : u32 = ((((2u * 2u) * GlobalInvocationID.z) + (2u * GlobalInvocationID.y)) + GlobalInvocationID.x); + flatIndex = (flatIndex * 1u); + var texel : vec4 = textureLoad(myTexture, vec2(GlobalInvocationID.xy), 0, 0); + { + var i : u32 = 0u; + loop { + if (!((i < 1u))) { + break; + } + result.values[(flatIndex + i)] = texel.r; + + continuing { + i = (i + 1u); + } + } + } +} diff --git a/test/bug/tint/764.wgsl b/test/bug/tint/764.wgsl new file mode 100644 index 0000000000..e9e414a147 --- /dev/null +++ b/test/bug/tint/764.wgsl @@ -0,0 +1,10 @@ +fn f() { + let m: mat4x4 = mat4x4( + vec4(1.0, 1.0, 1.0, 1.0), + vec4(1.0, 1.0, 1.0, 1.0), + vec4(1.0, 1.0, 1.0, 1.0), + vec4(1.0, 1.0, 1.0, 1.0) + ); + let v1: vec4 = m[0]; + let a: f32 = v1[0]; +} diff --git a/test/bug/tint/764.wgsl.expected.hlsl b/test/bug/tint/764.wgsl.expected.hlsl new file mode 100644 index 0000000000..05d9f6a243 --- /dev/null +++ b/test/bug/tint/764.wgsl.expected.hlsl @@ -0,0 +1,11 @@ +void f() { + const float4x4 m = float4x4(float4(1.0f, 1.0f, 1.0f, 1.0f), float4(1.0f, 1.0f, 1.0f, 1.0f), float4(1.0f, 1.0f, 1.0f, 1.0f), float4(1.0f, 1.0f, 1.0f, 1.0f)); + const float4 v1 = m[0]; + const float a = v1[0]; +} + +[numthreads(1, 1, 1)] +void unused_entry_point() { + return; +} + diff --git a/test/bug/tint/764.wgsl.expected.msl b/test/bug/tint/764.wgsl.expected.msl new file mode 100644 index 0000000000..18310523ea --- /dev/null +++ b/test/bug/tint/764.wgsl.expected.msl @@ -0,0 +1,9 @@ +#include + +using namespace metal; +void f() { + float4x4 const m = float4x4(float4(1.0f, 1.0f, 1.0f, 1.0f), float4(1.0f, 1.0f, 1.0f, 1.0f), float4(1.0f, 1.0f, 1.0f, 1.0f), float4(1.0f, 1.0f, 1.0f, 1.0f)); + float4 const v1 = m[0]; + float const a = v1[0]; +} + diff --git a/test/bug/tint/764.wgsl.expected.spvasm b/test/bug/tint/764.wgsl.expected.spvasm new file mode 100644 index 0000000000..5261691a73 --- /dev/null +++ b/test/bug/tint/764.wgsl.expected.spvasm @@ -0,0 +1,31 @@ +; SPIR-V +; Version: 1.3 +; Generator: Google Tint Compiler; 0 +; Bound: 17 +; Schema: 0 + OpCapability Shader + OpMemoryModel Logical GLSL450 + OpEntryPoint GLCompute %unused_entry_point "unused_entry_point" + OpExecutionMode %unused_entry_point LocalSize 1 1 1 + OpName %unused_entry_point "unused_entry_point" + OpName %f "f" + %void = OpTypeVoid + %1 = OpTypeFunction %void + %float = OpTypeFloat 32 + %v4float = OpTypeVector %float 4 +%mat4v4float = OpTypeMatrix %v4float 4 + %float_1 = OpConstant %float 1 + %11 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1 + %12 = OpConstantComposite %mat4v4float %11 %11 %11 %11 + %int = OpTypeInt 32 1 + %int_0 = OpConstant %int 0 +%unused_entry_point = OpFunction %void None %1 + %4 = OpLabel + OpReturn + OpFunctionEnd + %f = OpFunction %void None %1 + %6 = OpLabel + %15 = OpCompositeExtract %v4float %12 0 + %16 = OpCompositeExtract %float %15 0 + OpReturn + OpFunctionEnd diff --git a/test/bug/tint/764.wgsl.expected.wgsl b/test/bug/tint/764.wgsl.expected.wgsl new file mode 100644 index 0000000000..d9bf6e64d7 --- /dev/null +++ b/test/bug/tint/764.wgsl.expected.wgsl @@ -0,0 +1,5 @@ +fn f() { + let m : mat4x4 = mat4x4(vec4(1.0, 1.0, 1.0, 1.0), vec4(1.0, 1.0, 1.0, 1.0), vec4(1.0, 1.0, 1.0, 1.0), vec4(1.0, 1.0, 1.0, 1.0)); + let v1 : vec4 = m[0]; + let a : f32 = v1[0]; +} diff --git a/test/bug/tint/804.spv b/test/bug/tint/804.spv new file mode 100644 index 0000000000000000000000000000000000000000..6501bb88055dc1492064aab4d2f64b5e84a596a0 GIT binary patch literal 18384 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 literal 0 HcmV?d00001 diff --git a/test/bug/tint/804.spv.expected.hlsl b/test/bug/tint/804.spv.expected.hlsl new file mode 100644 index 0000000000..20f7331613 --- /dev/null +++ b/test/bug/tint/804.spv.expected.hlsl @@ -0,0 +1,3 @@ +SKIP: FAILED + +error: unhandled instruction with opcode 150: %712 = OpISubBorrow %710 %107 %470 diff --git a/test/bug/tint/804.spv.expected.msl b/test/bug/tint/804.spv.expected.msl new file mode 100644 index 0000000000..20f7331613 --- /dev/null +++ b/test/bug/tint/804.spv.expected.msl @@ -0,0 +1,3 @@ +SKIP: FAILED + +error: unhandled instruction with opcode 150: %712 = OpISubBorrow %710 %107 %470 diff --git a/test/bug/tint/804.spv.expected.spvasm b/test/bug/tint/804.spv.expected.spvasm new file mode 100644 index 0000000000..20f7331613 --- /dev/null +++ b/test/bug/tint/804.spv.expected.spvasm @@ -0,0 +1,3 @@ +SKIP: FAILED + +error: unhandled instruction with opcode 150: %712 = OpISubBorrow %710 %107 %470 diff --git a/test/bug/tint/804.spv.expected.wgsl b/test/bug/tint/804.spv.expected.wgsl new file mode 100644 index 0000000000..20f7331613 --- /dev/null +++ b/test/bug/tint/804.spv.expected.wgsl @@ -0,0 +1,3 @@ +SKIP: FAILED + +error: unhandled instruction with opcode 150: %712 = OpISubBorrow %710 %107 %470 diff --git a/test/bug/tint/807.spv b/test/bug/tint/807.spv new file mode 100644 index 0000000000000000000000000000000000000000..6eda97db28e901be43e5871a8af4f0b16b463e8c GIT binary patch literal 9624 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 Z0b7rJuRVqN{zhy*&e2}_G2SLJ{txZx$Q1wp literal 0 HcmV?d00001 diff --git a/test/bug/tint/807.spv.expected.hlsl b/test/bug/tint/807.spv.expected.hlsl new file mode 100644 index 0000000000..61d2ef5581 --- /dev/null +++ b/test/bug/tint/807.spv.expected.hlsl @@ -0,0 +1,10 @@ +SKIP: FAILED + +../src/ast/array_accessor_expression.cc:29 internal compiler error: TINT_ASSERT(array_) +******************************************************************** +* The tint shader compiler has encountered an unexpected error. * +* * +* Please help us fix this issue by submitting a bug report at * +* crbug.com/tint with the source program that triggered the bug. * +******************************************************************** + diff --git a/test/bug/tint/807.spv.expected.msl b/test/bug/tint/807.spv.expected.msl new file mode 100644 index 0000000000..61d2ef5581 --- /dev/null +++ b/test/bug/tint/807.spv.expected.msl @@ -0,0 +1,10 @@ +SKIP: FAILED + +../src/ast/array_accessor_expression.cc:29 internal compiler error: TINT_ASSERT(array_) +******************************************************************** +* The tint shader compiler has encountered an unexpected error. * +* * +* Please help us fix this issue by submitting a bug report at * +* crbug.com/tint with the source program that triggered the bug. * +******************************************************************** + diff --git a/test/bug/tint/807.spv.expected.spvasm b/test/bug/tint/807.spv.expected.spvasm new file mode 100644 index 0000000000..61d2ef5581 --- /dev/null +++ b/test/bug/tint/807.spv.expected.spvasm @@ -0,0 +1,10 @@ +SKIP: FAILED + +../src/ast/array_accessor_expression.cc:29 internal compiler error: TINT_ASSERT(array_) +******************************************************************** +* The tint shader compiler has encountered an unexpected error. * +* * +* Please help us fix this issue by submitting a bug report at * +* crbug.com/tint with the source program that triggered the bug. * +******************************************************************** + diff --git a/test/bug/tint/807.spv.expected.wgsl b/test/bug/tint/807.spv.expected.wgsl new file mode 100644 index 0000000000..61d2ef5581 --- /dev/null +++ b/test/bug/tint/807.spv.expected.wgsl @@ -0,0 +1,10 @@ +SKIP: FAILED + +../src/ast/array_accessor_expression.cc:29 internal compiler error: TINT_ASSERT(array_) +******************************************************************** +* The tint shader compiler has encountered an unexpected error. * +* * +* Please help us fix this issue by submitting a bug report at * +* crbug.com/tint with the source program that triggered the bug. * +******************************************************************** + diff --git a/test/bug/tint/827.wgsl b/test/bug/tint/827.wgsl new file mode 100644 index 0000000000..f755d8cf74 --- /dev/null +++ b/test/bug/tint/827.wgsl @@ -0,0 +1,15 @@ +[[block]] struct Result { + values : array; +}; + +let width : u32 = 128u; + +[[group(0), binding(0)]] var tex : texture_depth_2d; +[[group(0), binding(1)]] var result : [[access(read_write)]] Result; + +[[stage(compute)]] fn main( + [[builtin(global_invocation_id)]] GlobalInvocationId : vec3 +) { + result.values[GlobalInvocationId.y * width + GlobalInvocationId.x] = textureLoad( + tex, vec2(i32(GlobalInvocationId.x), i32(GlobalInvocationId.y)), 0); +} diff --git a/test/bug/tint/827.wgsl.expected.hlsl b/test/bug/tint/827.wgsl.expected.hlsl new file mode 100644 index 0000000000..36afe347eb --- /dev/null +++ b/test/bug/tint/827.wgsl.expected.hlsl @@ -0,0 +1,20 @@ +bug/tint/827.wgsl:8:26 warning: use of deprecated language feature: declare access with var instead of using [[access]] decoration +[[group(0), binding(1)]] var result : [[access(read_write)]] Result; + ^^^ + +struct tint_symbol_1 { + uint3 GlobalInvocationId : SV_DispatchThreadID; +}; + +static const uint width = 128u; +RWByteAddressBuffer result : register(u1, space0); + +Texture2D tex : register(t0, space0); + +[numthreads(1, 1, 1)] +void main(tint_symbol_1 tint_symbol) { + const uint3 GlobalInvocationId = tint_symbol.GlobalInvocationId; + result.Store((4u * ((GlobalInvocationId.y * width) + GlobalInvocationId.x)), asuint(tex.Load(int3(int(GlobalInvocationId.x), int(GlobalInvocationId.y), 0), 0))); + return; +} + diff --git a/test/bug/tint/827.wgsl.expected.msl b/test/bug/tint/827.wgsl.expected.msl new file mode 100644 index 0000000000..e326fda441 --- /dev/null +++ b/test/bug/tint/827.wgsl.expected.msl @@ -0,0 +1,15 @@ +SKIP: FAILED + +bug/tint/827.wgsl:8:26 warning: use of deprecated language feature: declare access with var instead of using [[access]] decoration +[[group(0), binding(1)]] var result : [[access(read_write)]] Result; + ^^^ + + + +Validation Failure: + +Compilation failed: + +program_source:10:76: error: use of undeclared identifier 'tex' + result.values[((GlobalInvocationId.y * width) + GlobalInvocationId.x)] = tex.read(int2(int(GlobalInvocationId.x), int(GlobalInvocationId.y)), 0); + ^ diff --git a/test/bug/tint/827.wgsl.expected.spvasm b/test/bug/tint/827.wgsl.expected.spvasm new file mode 100644 index 0000000000..315bbc7706 --- /dev/null +++ b/test/bug/tint/827.wgsl.expected.spvasm @@ -0,0 +1,73 @@ +bug/tint/827.wgsl:8:26 warning: use of deprecated language feature: declare access with var instead of using [[access]] decoration +[[group(0), binding(1)]] var result : [[access(read_write)]] Result; + ^^^ + +; SPIR-V +; Version: 1.3 +; Generator: Google Tint Compiler; 0 +; Bound: 43 +; Schema: 0 + OpCapability Shader + OpMemoryModel Logical GLSL450 + OpEntryPoint GLCompute %main "main" %tint_symbol + OpExecutionMode %main LocalSize 1 1 1 + OpName %width "width" + OpName %tex "tex" + OpName %Result "Result" + OpMemberName %Result 0 "values" + OpName %result "result" + OpName %tint_symbol "tint_symbol" + OpName %main "main" + OpDecorate %tex DescriptorSet 0 + OpDecorate %tex Binding 0 + OpDecorate %Result Block + OpMemberDecorate %Result 0 Offset 0 + OpDecorate %_runtimearr_float ArrayStride 4 + OpDecorate %result DescriptorSet 0 + OpDecorate %result Binding 1 + OpDecorate %tint_symbol BuiltIn GlobalInvocationId + %uint = OpTypeInt 32 0 + %width = OpConstant %uint 128 + %float = OpTypeFloat 32 + %5 = OpTypeImage %float 2D 1 0 0 1 Unknown +%_ptr_UniformConstant_5 = OpTypePointer UniformConstant %5 + %tex = OpVariable %_ptr_UniformConstant_5 UniformConstant +%_runtimearr_float = OpTypeRuntimeArray %float + %Result = OpTypeStruct %_runtimearr_float +%_ptr_StorageBuffer_Result = OpTypePointer StorageBuffer %Result + %result = OpVariable %_ptr_StorageBuffer_Result StorageBuffer + %v3uint = OpTypeVector %uint 3 +%_ptr_Input_v3uint = OpTypePointer Input %v3uint +%tint_symbol = OpVariable %_ptr_Input_v3uint Input + %void = OpTypeVoid + %14 = OpTypeFunction %void + %uint_0 = OpConstant %uint 0 + %uint_1 = OpConstant %uint 1 +%_ptr_Input_uint = OpTypePointer Input %uint +%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float + %v4float = OpTypeVector %float 4 + %int = OpTypeInt 32 1 + %v2int = OpTypeVector %int 2 + %int_0 = OpConstant %int 0 + %main = OpFunction %void None %14 + %17 = OpLabel + %21 = OpAccessChain %_ptr_Input_uint %tint_symbol %uint_1 + %22 = OpLoad %uint %21 + %23 = OpIMul %uint %22 %width + %24 = OpAccessChain %_ptr_Input_uint %tint_symbol %uint_0 + %25 = OpLoad %uint %24 + %26 = OpIAdd %uint %23 %25 + %28 = OpAccessChain %_ptr_StorageBuffer_float %result %uint_0 %26 + %32 = OpLoad %5 %tex + %36 = OpAccessChain %_ptr_Input_uint %tint_symbol %uint_0 + %37 = OpLoad %uint %36 + %35 = OpBitcast %int %37 + %39 = OpAccessChain %_ptr_Input_uint %tint_symbol %uint_1 + %40 = OpLoad %uint %39 + %38 = OpBitcast %int %40 + %41 = OpCompositeConstruct %v2int %35 %38 + %30 = OpImageFetch %v4float %32 %41 Lod %int_0 + %29 = OpCompositeExtract %float %30 0 + OpStore %28 %29 + OpReturn + OpFunctionEnd diff --git a/test/bug/tint/827.wgsl.expected.wgsl b/test/bug/tint/827.wgsl.expected.wgsl new file mode 100644 index 0000000000..89f72caa82 --- /dev/null +++ b/test/bug/tint/827.wgsl.expected.wgsl @@ -0,0 +1,19 @@ +bug/tint/827.wgsl:8:26 warning: use of deprecated language feature: declare access with var instead of using [[access]] decoration +[[group(0), binding(1)]] var result : [[access(read_write)]] Result; + ^^^ + +[[block]] +struct Result { + values : array; +}; + +let width : u32 = 128u; + +[[group(0), binding(0)]] var tex : texture_depth_2d; + +[[group(0), binding(1)]] var result : Result; + +[[stage(compute)]] +fn main([[builtin(global_invocation_id)]] GlobalInvocationId : vec3) { + result.values[((GlobalInvocationId.y * width) + GlobalInvocationId.x)] = textureLoad(tex, vec2(i32(GlobalInvocationId.x), i32(GlobalInvocationId.y)), 0); +}