SKIP: FAILED struct QuicksortObject { int numbers[10]; }; static QuicksortObject obj = (QuicksortObject)0; static float4 gl_FragCoord = float4(0.0f, 0.0f, 0.0f, 0.0f); cbuffer cbuffer_x_34 : register(b0, space0) { uint4 x_34[1]; }; static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f); void swap_i1_i1_(inout int i, inout int j) { int temp = 0; const int x_230 = i; const int x_232 = obj.numbers[x_230]; temp = x_232; const int x_233 = i; const int x_234 = j; const int x_236 = obj.numbers[x_234]; obj.numbers[x_233] = x_236; const int x_238 = j; obj.numbers[x_238] = temp; return; } int performPartition_i1_i1_(inout int l, inout int h) { int pivot = 0; int i_1 = 0; int j_1 = 0; int param = 0; int param_1 = 0; int param_2 = 0; int param_3 = 0; const int x_242 = h; const int x_244 = obj.numbers[x_242]; pivot = x_244; const int x_245 = l; i_1 = (x_245 - 1); const int x_247 = l; j_1 = x_247; while (true) { const int x_252 = j_1; const int x_253 = h; if ((x_252 <= (x_253 - 1))) { } else { break; } const int x_259 = obj.numbers[j_1]; if ((x_259 <= pivot)) { i_1 = (i_1 + 1); param = i_1; param_1 = j_1; swap_i1_i1_(param, param_1); } { j_1 = (j_1 + 1); } } i_1 = (i_1 + 1); param_2 = i_1; const int x_274 = h; param_3 = x_274; swap_i1_i1_(param_2, param_3); return i_1; } void quicksort_() { int l_1 = 0; int h_1 = 0; int top = 0; int stack[10] = (int[10])0; int int_a = 0; int x_278 = 0; int x_279 = 0; int clamp_a = 0; int p = 0; int param_4 = 0; int param_5 = 0; l_1 = 0; h_1 = 9; top = -1; const int x_281 = (top + 1); top = x_281; stack[x_281] = l_1; const float x_285 = gl_FragCoord.y; if ((x_285 >= 0.0f)) { const int x_290 = h_1; if (false) { x_279 = 1; } else { x_279 = (h_1 << asuint(0)); } x_278 = (x_290 | x_279); } else { x_278 = 1; } int_a = x_278; clamp_a = clamp(h_1, h_1, int_a); const int x_304 = (top + 1); top = x_304; stack[x_304] = (clamp_a / 1); while (true) { if ((top >= 0)) { } else { break; } const int x_315 = top; top = (x_315 - 1); const int x_318 = stack[x_315]; h_1 = x_318; const int x_319 = top; top = (x_319 - 1); const int x_322 = stack[x_319]; l_1 = x_322; param_4 = l_1; param_5 = h_1; const int x_325 = performPartition_i1_i1_(param_4, param_5); p = x_325; if (((p - 1) > l_1)) { const int x_333 = (top + 1); top = x_333; stack[x_333] = l_1; const int x_337 = (top + 1); top = x_337; stack[x_337] = (p - 1); } if (((p + 1) < h_1)) { const int x_348 = (top + 1); top = x_348; stack[x_348] = (p + 1); const int x_353 = (top + 1); top = x_353; stack[x_353] = h_1; } } return; } void main_1() { int i_2 = 0; float2 uv = float2(0.0f, 0.0f); float3 color = float3(0.0f, 0.0f, 0.0f); i_2 = 0; { for(; (i_2 < 10); i_2 = (i_2 + 1)) { obj.numbers[i_2] = (10 - i_2); const int x_97 = i_2; const int x_100 = obj.numbers[i_2]; const int x_103 = obj.numbers[i_2]; obj.numbers[x_97] = (x_100 * x_103); } } quicksort_(); const float4 x_109 = gl_FragCoord; const float2 x_112 = asfloat(x_34[0].xy); uv = (float2(x_109.x, x_109.y) / x_112); color = float3(1.0f, 2.0f, 3.0f); const int x_115 = obj.numbers[0]; const float x_118 = color.x; color.x = (x_118 + float(x_115)); const float x_122 = uv.x; if ((x_122 > 0.25f)) { const int x_127 = obj.numbers[1]; const float x_130 = color.x; color.x = (x_130 + float(x_127)); } const float x_134 = uv.x; if ((x_134 > 0.5f)) { const int x_139 = obj.numbers[2]; const float x_142 = color.y; color.y = (x_142 + float(x_139)); } const float x_146 = uv.x; if ((x_146 > 0.75f)) { const int x_151 = obj.numbers[3]; const float x_154 = color.z; color.z = (x_154 + float(x_151)); } const int x_158 = obj.numbers[4]; const float x_161 = color.y; color.y = (x_161 + float(x_158)); const float x_165 = uv.y; if ((x_165 > 0.25f)) { const int x_170 = obj.numbers[5]; const float x_173 = color.x; color.x = (x_173 + float(x_170)); } const float x_177 = uv.y; if ((x_177 > 0.5f)) { const int x_182 = obj.numbers[6]; const float x_185 = color.y; color.y = (x_185 + float(x_182)); } const float x_189 = uv.y; if ((x_189 > 0.75f)) { const int x_194 = obj.numbers[7]; const float x_197 = color.z; color.z = (x_197 + float(x_194)); } const int x_201 = obj.numbers[8]; const float x_204 = color.z; color.z = (x_204 + float(x_201)); const float x_208 = uv.x; const float x_210 = uv.y; if ((abs((x_208 - x_210)) < 0.25f)) { const int x_217 = obj.numbers[9]; const float x_220 = color.x; color.x = (x_220 + float(x_217)); } const float3 x_224 = normalize(color); x_GLF_color = float4(x_224.x, x_224.y, x_224.z, 1.0f); return; } struct main_out { float4 x_GLF_color_1; }; struct tint_symbol_1 { float4 gl_FragCoord_param : SV_Position; }; struct tint_symbol_2 { float4 x_GLF_color_1 : SV_Target0; }; tint_symbol_2 main(tint_symbol_1 tint_symbol) { const float4 gl_FragCoord_param = tint_symbol.gl_FragCoord_param; gl_FragCoord = gl_FragCoord_param; main_1(); const main_out tint_symbol_3 = {x_GLF_color}; const tint_symbol_2 tint_symbol_5 = {tint_symbol_3.x_GLF_color_1}; return tint_symbol_5; } C:\src\tint\test\Shader@0x000002356DF3F300(146,7-22): warning X3550: array reference cannot be used as an l-value; not natively addressable, forcing loop to unroll C:\src\tint\test\Shader@0x000002356DF3F300(101,19-29): warning X3556: integer divides may be much slower, try using uints if possible. C:\src\tint\test\Shader@0x000002356DF3F300(20,3-20): error X3500: array reference cannot be used as an l-value; not natively addressable C:\src\tint\test\Shader@0x000002356DF3F300(41,3-14): error X3511: forced to unroll loop, but unrolling failed. C:\src\tint\test\Shader@0x000002356DF3F300(102,3-14): error X3511: forced to unroll loop, but unrolling failed.