blob: c34f5933dd096294c7154bc56dfdb288928894a6 [file] [log] [blame]
#include <metal_stdlib>
using namespace metal;
struct tint_array_wrapper {
int arr[10];
};
struct QuicksortObject {
tint_array_wrapper numbers;
};
struct buf0 {
/* 0x0000 */ packed_float2 resolution;
};
struct main_out {
float4 frag_color_1;
float4 gl_Position;
};
struct tint_symbol_2 {
float4 x_GLF_pos_param [[attribute(0)]];
};
struct tint_symbol_3 {
float4 frag_color_1 [[user(locn0)]];
float4 gl_Position [[position]];
};
void main_1(constant buf0& x_34, thread float4* const tint_symbol_6, thread float4* const tint_symbol_7, thread QuicksortObject* const tint_symbol_8, thread float4* const tint_symbol_9, thread float4* const tint_symbol_10) {
int x_90 = 0;
int x_91 = 0;
int x_92 = 0;
int x_93 = 0;
int x_94 = 0;
int x_95 = 0;
int x_96 = 0;
int x_97 = 0;
int x_98 = 0;
int x_99 = 0;
int x_100 = 0;
int x_101 = 0;
int x_102 = 0;
tint_array_wrapper x_103 = {};
int x_104 = 0;
int x_105 = 0;
int x_106 = 0;
int i_2 = 0;
float2 uv = 0.0f;
float3 color = 0.0f;
float4 const x_107 = *(tint_symbol_6);
*(tint_symbol_7) = ((x_107 + float4(1.0f, 1.0f, 0.0f, 0.0f)) * float4(128.0f, 128.0f, 1.0f, 1.0f));
i_2 = 0;
while (true) {
int const x_114 = i_2;
if ((x_114 < 10)) {
} else {
break;
}
int const x_117 = i_2;
int const x_118 = i_2;
(*(tint_symbol_8)).numbers.arr[x_117] = as_type<int>((as_type<uint>(10) - as_type<uint>(x_118)));
int const x_121 = i_2;
int const x_122 = i_2;
int const x_124 = (*(tint_symbol_8)).numbers.arr[x_122];
int const x_125 = i_2;
int const x_127 = (*(tint_symbol_8)).numbers.arr[x_125];
(*(tint_symbol_8)).numbers.arr[x_121] = as_type<int>((as_type<uint>(x_124) * as_type<uint>(x_127)));
{
int const x_130 = i_2;
i_2 = as_type<int>((as_type<uint>(x_130) + as_type<uint>(1)));
}
}
x_100 = 0;
x_101 = 9;
x_102 = -1;
int const x_132 = x_102;
int const x_133 = as_type<int>((as_type<uint>(x_132) + as_type<uint>(1)));
x_102 = x_133;
int const x_134 = x_100;
x_103.arr[x_133] = x_134;
int const x_136 = x_102;
int const x_137 = as_type<int>((as_type<uint>(x_136) + as_type<uint>(1)));
x_102 = x_137;
int const x_138 = x_101;
x_103.arr[x_137] = x_138;
while (true) {
int const x_144 = x_102;
if ((x_144 >= 0)) {
} else {
break;
}
int const x_147 = x_102;
x_102 = as_type<int>((as_type<uint>(x_147) - as_type<uint>(1)));
int const x_150 = x_103.arr[x_147];
x_101 = x_150;
int const x_151 = x_102;
x_102 = as_type<int>((as_type<uint>(x_151) - as_type<uint>(1)));
int const x_154 = x_103.arr[x_151];
x_100 = x_154;
int const x_155 = x_100;
x_105 = x_155;
int const x_156 = x_101;
x_106 = x_156;
int const x_157 = x_106;
int const x_159 = (*(tint_symbol_8)).numbers.arr[x_157];
x_92 = x_159;
int const x_160 = x_105;
x_93 = as_type<int>((as_type<uint>(x_160) - as_type<uint>(1)));
int const x_162 = x_105;
x_94 = x_162;
while (true) {
int const x_167 = x_94;
int const x_168 = x_106;
if ((x_167 <= as_type<int>((as_type<uint>(x_168) - as_type<uint>(1))))) {
} else {
break;
}
int const x_172 = x_94;
int const x_174 = (*(tint_symbol_8)).numbers.arr[x_172];
int const x_175 = x_92;
if ((x_174 <= x_175)) {
int const x_179 = x_93;
x_93 = as_type<int>((as_type<uint>(x_179) + as_type<uint>(1)));
int const x_181 = x_93;
x_95 = x_181;
int const x_182 = x_94;
x_96 = x_182;
int const x_183 = x_95;
int const x_185 = (*(tint_symbol_8)).numbers.arr[x_183];
x_91 = x_185;
int const x_186 = x_95;
int const x_187 = x_96;
int const x_189 = (*(tint_symbol_8)).numbers.arr[x_187];
(*(tint_symbol_8)).numbers.arr[x_186] = x_189;
int const x_191 = x_96;
int const x_192 = x_91;
(*(tint_symbol_8)).numbers.arr[x_191] = x_192;
}
{
int const x_194 = x_94;
x_94 = as_type<int>((as_type<uint>(x_194) + as_type<uint>(1)));
}
}
int const x_196 = x_93;
x_97 = as_type<int>((as_type<uint>(x_196) + as_type<uint>(1)));
int const x_198 = x_106;
x_98 = x_198;
int const x_199 = x_97;
int const x_201 = (*(tint_symbol_8)).numbers.arr[x_199];
x_90 = x_201;
int const x_202 = x_97;
int const x_203 = x_98;
int const x_205 = (*(tint_symbol_8)).numbers.arr[x_203];
(*(tint_symbol_8)).numbers.arr[x_202] = x_205;
int const x_207 = x_98;
int const x_208 = x_90;
(*(tint_symbol_8)).numbers.arr[x_207] = x_208;
int const x_210 = x_93;
x_99 = as_type<int>((as_type<uint>(x_210) + as_type<uint>(1)));
int const x_212 = x_99;
x_104 = x_212;
int const x_213 = x_104;
int const x_215 = x_100;
if ((as_type<int>((as_type<uint>(x_213) - as_type<uint>(1))) > x_215)) {
int const x_219 = x_102;
int const x_220 = as_type<int>((as_type<uint>(x_219) + as_type<uint>(1)));
x_102 = x_220;
int const x_221 = x_100;
x_103.arr[x_220] = x_221;
int const x_223 = x_102;
int const x_224 = as_type<int>((as_type<uint>(x_223) + as_type<uint>(1)));
x_102 = x_224;
int const x_225 = x_104;
x_103.arr[x_224] = as_type<int>((as_type<uint>(x_225) - as_type<uint>(1)));
}
int const x_228 = x_104;
int const x_230 = x_101;
if ((as_type<int>((as_type<uint>(x_228) + as_type<uint>(1))) < x_230)) {
int const x_234 = x_102;
int const x_235 = as_type<int>((as_type<uint>(x_234) + as_type<uint>(1)));
x_102 = x_235;
int const x_236 = x_104;
x_103.arr[x_235] = as_type<int>((as_type<uint>(x_236) + as_type<uint>(1)));
int const x_239 = x_102;
int const x_240 = as_type<int>((as_type<uint>(x_239) + as_type<uint>(1)));
x_102 = x_240;
int const x_241 = x_101;
x_103.arr[x_240] = x_241;
}
}
float4 const x_243 = *(tint_symbol_7);
float2 const x_246 = x_34.resolution;
uv = (float2(x_243.x, x_243.y) / x_246);
color = float3(1.0f, 2.0f, 3.0f);
int const x_249 = (*(tint_symbol_8)).numbers.arr[0];
float const x_252 = color.x;
color.x = (x_252 + float(x_249));
float const x_256 = uv.x;
if ((x_256 > 0.25f)) {
int const x_261 = (*(tint_symbol_8)).numbers.arr[1];
float const x_264 = color.x;
color.x = (x_264 + float(x_261));
}
float const x_268 = uv.x;
if ((x_268 > 0.5f)) {
int const x_273 = (*(tint_symbol_8)).numbers.arr[2];
float const x_276 = color.y;
color.y = (x_276 + float(x_273));
}
float const x_280 = uv.x;
if ((x_280 > 0.75f)) {
int const x_285 = (*(tint_symbol_8)).numbers.arr[3];
float const x_288 = color.z;
color.z = (x_288 + float(x_285));
}
int const x_292 = (*(tint_symbol_8)).numbers.arr[4];
float const x_295 = color.y;
color.y = (x_295 + float(x_292));
float const x_299 = uv.y;
if ((x_299 > 0.25f)) {
int const x_304 = (*(tint_symbol_8)).numbers.arr[5];
float const x_307 = color.x;
color.x = (x_307 + float(x_304));
}
float const x_311 = uv.y;
if ((x_311 > 0.5f)) {
int const x_316 = (*(tint_symbol_8)).numbers.arr[6];
float const x_319 = color.y;
color.y = (x_319 + float(x_316));
}
float const x_323 = uv.y;
if ((x_323 > 0.75f)) {
int const x_328 = (*(tint_symbol_8)).numbers.arr[7];
float const x_331 = color.z;
color.z = (x_331 + float(x_328));
}
int const x_335 = (*(tint_symbol_8)).numbers.arr[8];
float const x_338 = color.z;
color.z = (x_338 + float(x_335));
float const x_342 = uv.x;
float const x_344 = uv.y;
if ((fabs((x_342 - x_344)) < 0.25f)) {
int const x_351 = (*(tint_symbol_8)).numbers.arr[9];
float const x_354 = color.x;
color.x = (x_354 + float(x_351));
}
float3 const x_357 = color;
float3 const x_358 = normalize(x_357);
*(tint_symbol_9) = float4(x_358.x, x_358.y, x_358.z, 1.0f);
float4 const x_363 = *(tint_symbol_6);
*(tint_symbol_10) = x_363;
return;
}
vertex tint_symbol_3 tint_symbol(tint_symbol_2 tint_symbol_1 [[stage_in]], constant buf0& x_34 [[buffer(0)]]) {
thread float4 tint_symbol_11 = 0.0f;
thread float4 tint_symbol_12 = 0.0f;
thread QuicksortObject tint_symbol_13 = {};
thread float4 tint_symbol_14 = 0.0f;
thread float4 tint_symbol_15 = 0.0f;
float4 const x_GLF_pos_param = tint_symbol_1.x_GLF_pos_param;
tint_symbol_11 = x_GLF_pos_param;
main_1(x_34, &(tint_symbol_11), &(tint_symbol_12), &(tint_symbol_13), &(tint_symbol_14), &(tint_symbol_15));
main_out const tint_symbol_4 = {.frag_color_1=tint_symbol_14, .gl_Position=tint_symbol_15};
tint_symbol_3 const tint_symbol_5 = {.frag_color_1=tint_symbol_4.frag_color_1, .gl_Position=tint_symbol_4.gl_Position};
return tint_symbol_5;
}
void swap_i1_i1_(thread int* const i, thread int* const j, thread QuicksortObject* const tint_symbol_16) {
int temp = 0;
int const x_366 = *(i);
int const x_368 = (*(tint_symbol_16)).numbers.arr[x_366];
temp = x_368;
int const x_369 = *(i);
int const x_370 = *(j);
int const x_372 = (*(tint_symbol_16)).numbers.arr[x_370];
(*(tint_symbol_16)).numbers.arr[x_369] = x_372;
int const x_374 = *(j);
int const x_375 = temp;
(*(tint_symbol_16)).numbers.arr[x_374] = x_375;
return;
}
int performPartition_i1_i1_(thread int* const l, thread int* const h, thread QuicksortObject* const tint_symbol_17) {
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;
int const x_378 = *(h);
int const x_380 = (*(tint_symbol_17)).numbers.arr[x_378];
pivot = x_380;
int const x_381 = *(l);
i_1 = as_type<int>((as_type<uint>(x_381) - as_type<uint>(1)));
int const x_383 = *(l);
j_1 = x_383;
while (true) {
int const x_388 = j_1;
int const x_389 = *(h);
if ((x_388 <= as_type<int>((as_type<uint>(x_389) - as_type<uint>(1))))) {
} else {
break;
}
int const x_393 = j_1;
int const x_395 = (*(tint_symbol_17)).numbers.arr[x_393];
int const x_396 = pivot;
if ((x_395 <= x_396)) {
int const x_400 = i_1;
i_1 = as_type<int>((as_type<uint>(x_400) + as_type<uint>(1)));
int const x_402 = i_1;
param = x_402;
int const x_403 = j_1;
param_1 = x_403;
swap_i1_i1_(&(param), &(param_1), tint_symbol_17);
}
{
int const x_405 = j_1;
j_1 = as_type<int>((as_type<uint>(x_405) + as_type<uint>(1)));
}
}
int const x_407 = i_1;
param_2 = as_type<int>((as_type<uint>(x_407) + as_type<uint>(1)));
int const x_409 = *(h);
param_3 = x_409;
swap_i1_i1_(&(param_2), &(param_3), tint_symbol_17);
int const x_411 = i_1;
return as_type<int>((as_type<uint>(x_411) + as_type<uint>(1)));
}
void quicksort_(thread QuicksortObject* const tint_symbol_18) {
int l_1 = 0;
int h_1 = 0;
int top = 0;
tint_array_wrapper stack = {};
int p = 0;
int param_4 = 0;
int param_5 = 0;
l_1 = 0;
h_1 = 9;
top = -1;
int const x_414 = top;
int const x_415 = as_type<int>((as_type<uint>(x_414) + as_type<uint>(1)));
top = x_415;
int const x_416 = l_1;
stack.arr[x_415] = x_416;
int const x_418 = top;
int const x_419 = as_type<int>((as_type<uint>(x_418) + as_type<uint>(1)));
top = x_419;
int const x_420 = h_1;
stack.arr[x_419] = x_420;
while (true) {
int const x_426 = top;
if ((x_426 >= 0)) {
} else {
break;
}
int const x_429 = top;
top = as_type<int>((as_type<uint>(x_429) - as_type<uint>(1)));
int const x_432 = stack.arr[x_429];
h_1 = x_432;
int const x_433 = top;
top = as_type<int>((as_type<uint>(x_433) - as_type<uint>(1)));
int const x_436 = stack.arr[x_433];
l_1 = x_436;
int const x_437 = l_1;
param_4 = x_437;
int const x_438 = h_1;
param_5 = x_438;
int const x_439 = performPartition_i1_i1_(&(param_4), &(param_5), tint_symbol_18);
p = x_439;
int const x_440 = p;
int const x_442 = l_1;
if ((as_type<int>((as_type<uint>(x_440) - as_type<uint>(1))) > x_442)) {
int const x_446 = top;
int const x_447 = as_type<int>((as_type<uint>(x_446) + as_type<uint>(1)));
top = x_447;
int const x_448 = l_1;
stack.arr[x_447] = x_448;
int const x_450 = top;
int const x_451 = as_type<int>((as_type<uint>(x_450) + as_type<uint>(1)));
top = x_451;
int const x_452 = p;
stack.arr[x_451] = as_type<int>((as_type<uint>(x_452) - as_type<uint>(1)));
}
int const x_455 = p;
int const x_457 = h_1;
if ((as_type<int>((as_type<uint>(x_455) + as_type<uint>(1))) < x_457)) {
int const x_461 = top;
int const x_462 = as_type<int>((as_type<uint>(x_461) + as_type<uint>(1)));
top = x_462;
int const x_463 = p;
stack.arr[x_462] = as_type<int>((as_type<uint>(x_463) + as_type<uint>(1)));
int const x_466 = top;
int const x_467 = as_type<int>((as_type<uint>(x_466) + as_type<uint>(1)));
top = x_467;
int const x_468 = h_1;
stack.arr[x_467] = x_468;
}
}
return;
}