dawn-cmake/test/vk-gl-cts/graphicsfuzz/write-red-after-search/0-opt.spvasm.expected.msl

433 lines
13 KiB
Plaintext

#include <metal_stdlib>
using namespace metal;
struct BST {
int data;
int leftIndex;
int rightIndex;
};
struct buf0 {
/* 0x0000 */ packed_float2 injectionSwitch;
};
struct tint_array_wrapper {
float arr[10];
};
struct Obj {
tint_array_wrapper odd_numbers;
tint_array_wrapper even_numbers;
};
struct tint_array_wrapper_1 {
BST arr[10];
};
struct tint_array_wrapper_2 {
float arr[50];
};
struct main_out {
float4 x_GLF_color_1;
};
struct tint_symbol_1 {
float4 x_GLF_color_1 [[color(0)]];
};
void makeTreeNode_struct_BST_i1_i1_i11_i1_(thread BST* const tree, thread int* const data) {
int const x_74 = *(data);
(*(tree)).data = x_74;
(*(tree)).leftIndex = -1;
(*(tree)).rightIndex = -1;
return;
}
void insert_i1_i1_(constant buf0& x_27, thread int* const treeIndex, thread int* const data_1, thread tint_array_wrapper_1* const tint_symbol_3) {
int baseIndex = 0;
BST param = {};
int param_1 = 0;
BST param_2 = {};
int param_3 = 0;
int GLF_live8i = 0;
tint_array_wrapper_2 GLF_live8A = {};
baseIndex = 0;
while (true) {
int const x_75 = baseIndex;
int const x_76 = *(treeIndex);
if ((x_75 <= x_76)) {
} else {
break;
}
int const x_77 = *(data_1);
int const x_78 = baseIndex;
int const x_79 = (*(tint_symbol_3)).arr[x_78].data;
if ((x_77 <= x_79)) {
int const x_80 = baseIndex;
int const x_81 = (*(tint_symbol_3)).arr[x_80].leftIndex;
if ((x_81 == -1)) {
int const x_82 = baseIndex;
int const x_83 = *(treeIndex);
(*(tint_symbol_3)).arr[x_82].leftIndex = x_83;
int const x_84 = *(treeIndex);
BST const x_350 = (*(tint_symbol_3)).arr[x_84];
param = x_350;
int const x_85 = *(data_1);
param_1 = x_85;
makeTreeNode_struct_BST_i1_i1_i11_i1_(&(param), &(param_1));
BST const x_352 = param;
(*(tint_symbol_3)).arr[x_84] = x_352;
return;
} else {
int const x_86 = baseIndex;
int const x_87 = (*(tint_symbol_3)).arr[x_86].leftIndex;
baseIndex = x_87;
continue;
}
} else {
int const x_88 = baseIndex;
int const x_89 = (*(tint_symbol_3)).arr[x_88].rightIndex;
if ((x_89 == -1)) {
int const x_90 = baseIndex;
int const x_91 = *(treeIndex);
(*(tint_symbol_3)).arr[x_90].rightIndex = x_91;
int const x_92 = *(treeIndex);
BST const x_362 = (*(tint_symbol_3)).arr[x_92];
param_2 = x_362;
int const x_93 = *(data_1);
param_3 = x_93;
makeTreeNode_struct_BST_i1_i1_i11_i1_(&(param_2), &(param_3));
BST const x_364 = param_2;
(*(tint_symbol_3)).arr[x_92] = x_364;
return;
} else {
GLF_live8i = 1;
int const x_94 = GLF_live8i;
int const x_95 = GLF_live8i;
int const x_96 = GLF_live8i;
int const x_369 = select(0, x_96, ((x_94 >= 0) & (x_95 < 50)));
float const x_371 = GLF_live8A.arr[0];
float const x_373 = GLF_live8A.arr[x_369];
GLF_live8A.arr[x_369] = (x_373 + x_371);
while (true) {
int const x_97 = baseIndex;
int const x_98 = (*(tint_symbol_3)).arr[x_97].rightIndex;
baseIndex = x_98;
{
float const x_382 = x_27.injectionSwitch.x;
float const x_384 = x_27.injectionSwitch.y;
if ((x_382 > x_384)) {
} else {
break;
}
}
}
continue;
}
}
}
return;
}
int search_i1_(thread int* const target, thread tint_array_wrapper_1* const tint_symbol_4) {
int index = 0;
BST currentNode = {};
int x_387 = 0;
index = 0;
while (true) {
int const x_99 = index;
if ((x_99 != -1)) {
} else {
break;
}
int const x_100 = index;
BST const x_395 = (*(tint_symbol_4)).arr[x_100];
currentNode = x_395;
int const x_101 = currentNode.data;
int const x_102 = *(target);
if ((x_101 == x_102)) {
int const x_103 = *(target);
return x_103;
}
int const x_104 = *(target);
int const x_105 = currentNode.data;
if ((x_104 > x_105)) {
int const x_106 = currentNode.rightIndex;
x_387 = x_106;
} else {
int const x_107 = currentNode.leftIndex;
x_387 = x_107;
}
int const x_108 = x_387;
index = x_108;
}
return -1;
}
float makeFrame_f1_(thread float* const v, thread tint_array_wrapper_1* const tint_symbol_5) {
int param_5 = 0;
int param_6 = 0;
int param_7 = 0;
float const x_418 = *(v);
*(v) = (x_418 * 6.5f);
float const x_420 = *(v);
if ((x_420 < 1.5f)) {
param_5 = 100;
int const x_110 = search_i1_(&(param_5), tint_symbol_5);
return float(x_110);
}
float const x_425 = *(v);
if ((x_425 < 4.0f)) {
return 0.0f;
}
float const x_429 = *(v);
param_6 = 6;
int const x_111 = search_i1_(&(param_6), tint_symbol_5);
if ((x_429 < float(x_111))) {
return 1.0f;
}
param_7 = 30;
int const x_112 = search_i1_(&(param_7), tint_symbol_5);
return (10.0f + float(x_112));
}
float3 hueColor_f1_(thread float* const angle, thread tint_array_wrapper_1* const tint_symbol_6) {
float nodeData = 0.0f;
int param_4 = 0;
param_4 = 15;
int const x_109 = search_i1_(&(param_4), tint_symbol_6);
nodeData = float(x_109);
float const x_409 = *(angle);
float const x_410 = nodeData;
return ((float3(30.0f, 30.0f, 30.0f) + (float3(1.0f, 5.0f, x_410) * x_409)) / float3(50.0f, 50.0f, 50.0f));
}
void main_1(constant buf0& x_27, thread tint_array_wrapper_1* const tint_symbol_7, thread float4* const tint_symbol_8, thread float4* const tint_symbol_9) {
int treeIndex_1 = 0;
BST param_8 = {};
int param_9 = 0;
int param_10 = 0;
int param_11 = 0;
int GLF_live1_looplimiter2 = 0;
int GLF_live1i = 0;
int param_12 = 0;
int param_13 = 0;
int param_14 = 0;
int param_15 = 0;
int param_16 = 0;
int param_17 = 0;
int param_18 = 0;
int param_19 = 0;
int param_20 = 0;
int param_21 = 0;
int param_22 = 0;
int param_23 = 0;
int GLF_live4_looplimiter3 = 0;
int GLF_live4i = 0;
int GLF_live4index = 0;
Obj GLF_live4obj = {};
int param_24 = 0;
int param_25 = 0;
int param_26 = 0;
int param_27 = 0;
float2 z = 0.0f;
float x_1 = 0.0f;
float param_28 = 0.0f;
float y_1 = 0.0f;
float param_29 = 0.0f;
int sum = 0;
int target_1 = 0;
int result = 0;
int param_30 = 0;
float a = 0.0f;
float3 x_235 = 0.0f;
float param_31 = 0.0f;
treeIndex_1 = 0;
BST const x_237 = (*(tint_symbol_7)).arr[0];
param_8 = x_237;
param_9 = 9;
makeTreeNode_struct_BST_i1_i1_i11_i1_(&(param_8), &(param_9));
BST const x_239 = param_8;
(*(tint_symbol_7)).arr[0] = x_239;
int const x_113 = treeIndex_1;
treeIndex_1 = as_type<int>((as_type<uint>(x_113) + as_type<uint>(1)));
int const x_115 = treeIndex_1;
param_10 = x_115;
param_11 = 5;
insert_i1_i1_(x_27, &(param_10), &(param_11), tint_symbol_7);
int const x_116 = treeIndex_1;
treeIndex_1 = as_type<int>((as_type<uint>(x_116) + as_type<uint>(1)));
GLF_live1_looplimiter2 = 0;
GLF_live1i = 0;
while (true) {
if (true) {
} else {
break;
}
int const x_118 = GLF_live1_looplimiter2;
if ((x_118 >= 7)) {
break;
}
int const x_119 = GLF_live1_looplimiter2;
GLF_live1_looplimiter2 = as_type<int>((as_type<uint>(x_119) + as_type<uint>(1)));
{
int const x_121 = GLF_live1i;
GLF_live1i = as_type<int>((as_type<uint>(x_121) + as_type<uint>(1)));
}
}
int const x_123 = treeIndex_1;
param_12 = x_123;
param_13 = 12;
insert_i1_i1_(x_27, &(param_12), &(param_13), tint_symbol_7);
int const x_124 = treeIndex_1;
treeIndex_1 = as_type<int>((as_type<uint>(x_124) + as_type<uint>(1)));
int const x_126 = treeIndex_1;
param_14 = x_126;
param_15 = 15;
insert_i1_i1_(x_27, &(param_14), &(param_15), tint_symbol_7);
int const x_127 = treeIndex_1;
treeIndex_1 = as_type<int>((as_type<uint>(x_127) + as_type<uint>(1)));
int const x_129 = treeIndex_1;
param_16 = x_129;
param_17 = 7;
insert_i1_i1_(x_27, &(param_16), &(param_17), tint_symbol_7);
int const x_130 = treeIndex_1;
treeIndex_1 = as_type<int>((as_type<uint>(x_130) + as_type<uint>(1)));
int const x_132 = treeIndex_1;
param_18 = x_132;
param_19 = 8;
insert_i1_i1_(x_27, &(param_18), &(param_19), tint_symbol_7);
int const x_133 = treeIndex_1;
treeIndex_1 = as_type<int>((as_type<uint>(x_133) + as_type<uint>(1)));
int const x_135 = treeIndex_1;
param_20 = x_135;
param_21 = 2;
insert_i1_i1_(x_27, &(param_20), &(param_21), tint_symbol_7);
int const x_136 = treeIndex_1;
treeIndex_1 = as_type<int>((as_type<uint>(x_136) + as_type<uint>(1)));
int const x_138 = treeIndex_1;
param_22 = x_138;
param_23 = 6;
insert_i1_i1_(x_27, &(param_22), &(param_23), tint_symbol_7);
int const x_139 = treeIndex_1;
treeIndex_1 = as_type<int>((as_type<uint>(x_139) + as_type<uint>(1)));
GLF_live4_looplimiter3 = 0;
GLF_live4i = 0;
while (true) {
if (true) {
} else {
break;
}
int const x_141 = GLF_live4_looplimiter3;
if ((x_141 >= 3)) {
break;
}
int const x_142 = GLF_live4_looplimiter3;
GLF_live4_looplimiter3 = as_type<int>((as_type<uint>(x_142) + as_type<uint>(1)));
GLF_live4index = 1;
int const x_144 = GLF_live4index;
int const x_145 = GLF_live4index;
int const x_146 = GLF_live4index;
float const x_269 = GLF_live4obj.even_numbers.arr[1];
GLF_live4obj.even_numbers.arr[select(0, x_146, ((x_144 >= 0) & (x_145 < 10)))] = x_269;
int const x_147 = GLF_live4i;
int const x_148 = GLF_live4i;
int const x_149 = GLF_live4i;
GLF_live4obj.even_numbers.arr[select(0, x_149, ((x_147 >= 0) & (x_148 < 10)))] = 1.0f;
{
int const x_150 = GLF_live4i;
GLF_live4i = as_type<int>((as_type<uint>(x_150) + as_type<uint>(1)));
}
}
int const x_152 = treeIndex_1;
param_24 = x_152;
param_25 = 17;
insert_i1_i1_(x_27, &(param_24), &(param_25), tint_symbol_7);
float const x_278 = x_27.injectionSwitch.x;
float const x_280 = x_27.injectionSwitch.y;
if ((x_278 > x_280)) {
return;
}
int const x_153 = treeIndex_1;
treeIndex_1 = as_type<int>((as_type<uint>(x_153) + as_type<uint>(1)));
int const x_155 = treeIndex_1;
param_26 = x_155;
param_27 = 13;
insert_i1_i1_(x_27, &(param_26), &(param_27), tint_symbol_7);
float4 const x_285 = *(tint_symbol_8);
z = (float2(x_285.y, x_285.x) / float2(256.0f, 256.0f));
float const x_289 = z.x;
param_28 = x_289;
float const x_290 = makeFrame_f1_(&(param_28), tint_symbol_7);
x_1 = x_290;
float const x_292 = z.y;
param_29 = x_292;
float const x_293 = makeFrame_f1_(&(param_29), tint_symbol_7);
y_1 = x_293;
sum = -100;
target_1 = 0;
while (true) {
int const x_156 = target_1;
if ((x_156 < 20)) {
} else {
break;
}
int const x_157 = target_1;
param_30 = x_157;
int const x_158 = search_i1_(&(param_30), tint_symbol_7);
result = x_158;
int const x_159 = result;
if ((x_159 > 0)) {
} else {
int const x_160 = result;
switch(x_160) {
case 0: {
return;
break;
}
case -1: {
int const x_161 = sum;
sum = as_type<int>((as_type<uint>(x_161) + as_type<uint>(1)));
break;
}
default: {
break;
}
}
}
{
int const x_163 = target_1;
target_1 = as_type<int>((as_type<uint>(x_163) + as_type<uint>(1)));
}
}
float const x_307 = x_1;
float const x_308 = y_1;
int const x_165 = sum;
a = (x_307 + (x_308 * float(x_165)));
float const x_313 = x_27.injectionSwitch.x;
float const x_315 = x_27.injectionSwitch.y;
if ((x_313 < x_315)) {
x_235 = float3(1.0f, 0.0f, 0.0f);
} else {
float const x_320 = a;
param_31 = x_320;
float3 const x_321 = hueColor_f1_(&(param_31), tint_symbol_7);
x_235 = x_321;
}
float3 const x_322 = x_235;
*(tint_symbol_9) = float4(x_322.x, x_322.y, x_322.z, 1.0f);
return;
}
main_out tint_symbol_inner(constant buf0& x_27, float4 gl_FragCoord_param, thread float4* const tint_symbol_10, thread tint_array_wrapper_1* const tint_symbol_11, thread float4* const tint_symbol_12) {
*(tint_symbol_10) = gl_FragCoord_param;
main_1(x_27, tint_symbol_11, tint_symbol_10, tint_symbol_12);
main_out const tint_symbol_2 = {.x_GLF_color_1=*(tint_symbol_12)};
return tint_symbol_2;
}
fragment tint_symbol_1 tint_symbol(float4 gl_FragCoord_param [[position]], constant buf0& x_27 [[buffer(0)]]) {
thread float4 tint_symbol_13 = 0.0f;
thread tint_array_wrapper_1 tint_symbol_14 = {};
thread float4 tint_symbol_15 = 0.0f;
main_out const inner_result = tint_symbol_inner(x_27, gl_FragCoord_param, &(tint_symbol_13), &(tint_symbol_14), &(tint_symbol_15));
tint_symbol_1 wrapper_result = {};
wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
return wrapper_result;
}