1struct BST { 2 data : i32; 3 leftIndex : i32; 4 rightIndex : i32; 5}; 6 7[[block]] 8struct buf0 { 9 injectionSwitch : vec2<f32>; 10}; 11 12var<private> tree_1 : array<BST, 10>; 13 14[[group(0), binding(0)]] var<uniform> x_16 : buf0; 15 16var<private> x_GLF_color : vec4<f32>; 17 18fn makeTreeNode_struct_BST_i1_i1_i11_i1_(tree : ptr<function, BST>, data : ptr<function, i32>) { 19 let x_165 : i32 = *(data); 20 (*(tree)).data = x_165; 21 (*(tree)).leftIndex = -1; 22 (*(tree)).rightIndex = -1; 23 return; 24} 25 26fn insert_i1_i1_(treeIndex : ptr<function, i32>, data_1 : ptr<function, i32>) { 27 var baseIndex : i32; 28 var param : BST; 29 var param_1 : i32; 30 var x_170 : i32; 31 var param_2 : BST; 32 var param_3 : i32; 33 baseIndex = 0; 34 loop { 35 let x_175 : i32 = baseIndex; 36 let x_176 : i32 = *(treeIndex); 37 if ((x_175 <= x_176)) { 38 } else { 39 break; 40 } 41 let x_179 : i32 = *(data_1); 42 let x_180 : i32 = baseIndex; 43 let x_182 : i32 = tree_1[x_180].data; 44 if ((x_179 <= x_182)) { 45 let x_187 : i32 = baseIndex; 46 let x_189 : i32 = tree_1[x_187].leftIndex; 47 if ((x_189 == -1)) { 48 let x_194 : i32 = baseIndex; 49 let x_195 : i32 = *(treeIndex); 50 tree_1[x_194].leftIndex = x_195; 51 let x_198 : f32 = x_16.injectionSwitch.x; 52 let x_200 : f32 = x_16.injectionSwitch.y; 53 if ((x_198 < x_200)) { 54 let x_204 : i32 = *(treeIndex); 55 let x_206 : BST = tree_1[x_204]; 56 param = x_206; 57 let x_207 : i32 = *(data_1); 58 param_1 = x_207; 59 makeTreeNode_struct_BST_i1_i1_i11_i1_(&(param), &(param_1)); 60 let x_209 : BST = param; 61 tree_1[x_204] = x_209; 62 } 63 let x_212 : f32 = x_16.injectionSwitch.x; 64 let x_214 : f32 = x_16.injectionSwitch.y; 65 if ((x_212 < x_214)) { 66 return; 67 } 68 } else { 69 let x_218 : i32 = baseIndex; 70 let x_220 : i32 = tree_1[x_218].leftIndex; 71 baseIndex = x_220; 72 continue; 73 } 74 } else { 75 let x_222 : f32 = x_16.injectionSwitch.x; 76 let x_224 : f32 = x_16.injectionSwitch.y; 77 if ((x_222 < x_224)) { 78 let x_229 : i32 = baseIndex; 79 let x_231 : i32 = tree_1[x_229].rightIndex; 80 x_170 = x_231; 81 } else { 82 let x_232 : i32 = baseIndex; 83 let x_234 : i32 = tree_1[x_232].rightIndex; 84 x_170 = x_234; 85 } 86 let x_235 : i32 = x_170; 87 if ((x_235 == -1)) { 88 let x_240 : i32 = baseIndex; 89 let x_241 : i32 = *(treeIndex); 90 tree_1[x_240].rightIndex = x_241; 91 let x_243 : i32 = *(treeIndex); 92 let x_245 : BST = tree_1[x_243]; 93 param_2 = x_245; 94 let x_246 : i32 = *(data_1); 95 param_3 = x_246; 96 makeTreeNode_struct_BST_i1_i1_i11_i1_(&(param_2), &(param_3)); 97 let x_248 : BST = param_2; 98 tree_1[x_243] = x_248; 99 return; 100 } else { 101 let x_250 : i32 = baseIndex; 102 let x_252 : i32 = tree_1[x_250].rightIndex; 103 baseIndex = x_252; 104 continue; 105 } 106 return; 107 } 108 let x_254 : f32 = x_16.injectionSwitch.x; 109 let x_256 : f32 = x_16.injectionSwitch.y; 110 if ((x_254 > x_256)) { 111 return; 112 } 113 } 114 return; 115} 116 117fn search_i1_(target : ptr<function, i32>) -> i32 { 118 var index : i32; 119 var currentNode : BST; 120 var x_261 : i32; 121 index = 0; 122 loop { 123 let x_266 : i32 = index; 124 if ((x_266 != -1)) { 125 } else { 126 break; 127 } 128 let x_269 : i32 = index; 129 let x_271 : BST = tree_1[x_269]; 130 currentNode = x_271; 131 let x_273 : i32 = currentNode.data; 132 let x_274 : i32 = *(target); 133 if ((x_273 == x_274)) { 134 let x_278 : i32 = *(target); 135 return x_278; 136 } 137 let x_279 : i32 = *(target); 138 let x_281 : i32 = currentNode.data; 139 if ((x_279 > x_281)) { 140 let x_287 : i32 = currentNode.rightIndex; 141 x_261 = x_287; 142 } else { 143 let x_289 : i32 = currentNode.leftIndex; 144 x_261 = x_289; 145 } 146 let x_290 : i32 = x_261; 147 index = x_290; 148 } 149 return -1; 150} 151 152fn main_1() { 153 var treeIndex_1 : i32; 154 var param_4 : BST; 155 var param_5 : i32; 156 var param_6 : i32; 157 var param_7 : i32; 158 var param_8 : i32; 159 var param_9 : i32; 160 var param_10 : i32; 161 var param_11 : i32; 162 var param_12 : i32; 163 var param_13 : i32; 164 var param_14 : i32; 165 var param_15 : i32; 166 var param_16 : i32; 167 var param_17 : i32; 168 var param_18 : i32; 169 var param_19 : i32; 170 var param_20 : i32; 171 var param_21 : i32; 172 var param_22 : i32; 173 var param_23 : i32; 174 var count : i32; 175 var i : i32; 176 var result : i32; 177 var param_24 : i32; 178 treeIndex_1 = 0; 179 let x_91 : BST = tree_1[0]; 180 param_4 = x_91; 181 param_5 = 9; 182 makeTreeNode_struct_BST_i1_i1_i11_i1_(&(param_4), &(param_5)); 183 let x_93 : BST = param_4; 184 tree_1[0] = x_93; 185 let x_95 : i32 = treeIndex_1; 186 treeIndex_1 = (x_95 + 1); 187 let x_97 : i32 = treeIndex_1; 188 param_6 = x_97; 189 param_7 = 5; 190 insert_i1_i1_(&(param_6), &(param_7)); 191 let x_99 : i32 = treeIndex_1; 192 treeIndex_1 = (x_99 + 1); 193 let x_101 : i32 = treeIndex_1; 194 param_8 = x_101; 195 param_9 = 12; 196 insert_i1_i1_(&(param_8), &(param_9)); 197 let x_103 : i32 = treeIndex_1; 198 treeIndex_1 = (x_103 + 1); 199 let x_105 : i32 = treeIndex_1; 200 param_10 = x_105; 201 param_11 = 15; 202 insert_i1_i1_(&(param_10), &(param_11)); 203 let x_107 : i32 = treeIndex_1; 204 treeIndex_1 = (x_107 + 1); 205 let x_109 : i32 = treeIndex_1; 206 param_12 = x_109; 207 param_13 = 7; 208 insert_i1_i1_(&(param_12), &(param_13)); 209 let x_111 : i32 = treeIndex_1; 210 treeIndex_1 = (x_111 + 1); 211 let x_113 : i32 = treeIndex_1; 212 param_14 = x_113; 213 param_15 = 8; 214 insert_i1_i1_(&(param_14), &(param_15)); 215 let x_115 : i32 = treeIndex_1; 216 treeIndex_1 = (x_115 + 1); 217 let x_117 : i32 = treeIndex_1; 218 param_16 = x_117; 219 param_17 = 2; 220 insert_i1_i1_(&(param_16), &(param_17)); 221 let x_119 : i32 = treeIndex_1; 222 treeIndex_1 = (x_119 + 1); 223 let x_121 : i32 = treeIndex_1; 224 param_18 = x_121; 225 param_19 = 6; 226 insert_i1_i1_(&(param_18), &(param_19)); 227 let x_123 : i32 = treeIndex_1; 228 treeIndex_1 = (x_123 + 1); 229 let x_125 : i32 = treeIndex_1; 230 param_20 = x_125; 231 param_21 = 17; 232 insert_i1_i1_(&(param_20), &(param_21)); 233 let x_127 : i32 = treeIndex_1; 234 treeIndex_1 = (x_127 + 1); 235 let x_129 : i32 = treeIndex_1; 236 param_22 = x_129; 237 param_23 = 13; 238 insert_i1_i1_(&(param_22), &(param_23)); 239 count = 0; 240 i = 0; 241 loop { 242 let x_135 : i32 = i; 243 if ((x_135 < 20)) { 244 } else { 245 break; 246 } 247 let x_138 : i32 = i; 248 param_24 = x_138; 249 let x_139 : i32 = search_i1_(&(param_24)); 250 result = x_139; 251 let x_140 : i32 = i; 252 switch(x_140) { 253 case 2, 5, 6, 7, 8, 9, 12, 13, 15, 17: { 254 let x_150 : i32 = result; 255 let x_151 : i32 = i; 256 if ((x_150 == x_151)) { 257 let x_155 : i32 = count; 258 count = (x_155 + 1); 259 } 260 } 261 default: { 262 let x_144 : i32 = result; 263 if ((x_144 == -1)) { 264 let x_148 : i32 = count; 265 count = (x_148 + 1); 266 } 267 } 268 } 269 270 continuing { 271 let x_157 : i32 = i; 272 i = (x_157 + 1); 273 } 274 } 275 let x_159 : i32 = count; 276 if ((x_159 == 20)) { 277 x_GLF_color = vec4<f32>(1.0, 0.0, 0.0, 1.0); 278 } else { 279 x_GLF_color = vec4<f32>(0.0, 0.0, 1.0, 1.0); 280 } 281 return; 282} 283 284struct main_out { 285 [[location(0)]] 286 x_GLF_color_1 : vec4<f32>; 287}; 288 289[[stage(fragment)]] 290fn main() -> main_out { 291 main_1(); 292 return main_out(x_GLF_color); 293} 294