SKIP: FAILED

static int x_GLF_global_loop_count = 0;
cbuffer cbuffer_x_7 : register(b0) {
  uint4 x_7[3];
};
cbuffer cbuffer_x_10 : register(b1) {
  uint4 x_10[4];
};
static float4 x_GLF_color = float4(0.0f, 0.0f, 0.0f, 0.0f);

void main_1() {
  float f = 0.0f;
  int i = 0;
  int i_1 = 0;
  int i_2 = 0;
  int i_3 = 0;
  int i_4 = 0;
  int i_5 = 0;
  int i_6 = 0;
  int i_7 = 0;
  int i_8 = 0;
  int i_9 = 0;
  int i_10 = 0;
  int i_11 = 0;
  int i_12 = 0;
  int i_13 = 0;
  int i_14 = 0;
  float sum = 0.0f;
  int r = 0;
  x_GLF_global_loop_count = 0;
  float x_53 = asfloat(x_7[1].x);
  f = x_53;
  int x_55 = asint(x_10[1].x);
  i = x_55;
  while (true) {
    int x_60 = i;
    int x_62 = asint(x_10[0].x);
    if ((x_60 < x_62)) {
    } else {
      break;
    }
    int x_66 = asint(x_10[1].x);
    i_1 = x_66;
    while (true) {
      int x_71 = i_1;
      int x_73 = asint(x_10[0].x);
      if ((x_71 < x_73)) {
      } else {
        break;
      }
      int x_77 = asint(x_10[1].x);
      i_2 = x_77;
      while (true) {
        int x_82 = i_2;
        int x_84 = asint(x_10[0].x);
        if ((x_82 < x_84)) {
        } else {
          break;
        }
        int x_88 = asint(x_10[1].x);
        i_3 = x_88;
        while (true) {
          int x_93 = i_3;
          int x_95 = asint(x_10[0].x);
          if ((x_93 < x_95)) {
          } else {
            break;
          }
          int x_99 = asint(x_10[1].x);
          i_4 = x_99;
          while (true) {
            int x_104 = i_4;
            int x_106 = asint(x_10[0].x);
            if ((x_104 < x_106)) {
            } else {
              break;
            }
            int x_110 = asint(x_10[1].x);
            i_5 = x_110;
            while (true) {
              int x_115 = i_5;
              int x_117 = asint(x_10[0].x);
              if ((x_115 < x_117)) {
              } else {
                break;
              }
              int x_121 = asint(x_10[1].x);
              i_6 = x_121;
              while (true) {
                int x_126 = i_6;
                int x_128 = asint(x_10[0].x);
                if ((x_126 < x_128)) {
                } else {
                  break;
                }
                int x_132 = asint(x_10[1].x);
                i_7 = x_132;
                while (true) {
                  int x_137 = i_7;
                  int x_139 = asint(x_10[0].x);
                  if ((x_137 < x_139)) {
                  } else {
                    break;
                  }
                  int x_143 = asint(x_10[1].x);
                  i_8 = x_143;
                  while (true) {
                    int x_148 = i_8;
                    int x_150 = asint(x_10[0].x);
                    if ((x_148 < x_150)) {
                    } else {
                      break;
                    }
                    int x_154 = asint(x_10[1].x);
                    i_9 = x_154;
                    while (true) {
                      int x_159 = i_9;
                      int x_161 = asint(x_10[0].x);
                      if ((x_159 < x_161)) {
                      } else {
                        break;
                      }
                      int x_165 = asint(x_10[1].x);
                      i_10 = x_165;
                      while (true) {
                        int x_170 = i_10;
                        int x_172 = asint(x_10[0].x);
                        if ((x_170 < x_172)) {
                        } else {
                          break;
                        }
                        int x_176 = asint(x_10[1].x);
                        i_11 = x_176;
                        while (true) {
                          int x_181 = i_11;
                          int x_183 = asint(x_10[2].x);
                          if ((x_181 < x_183)) {
                          } else {
                            break;
                          }
                          int x_187 = asint(x_10[1].x);
                          i_12 = x_187;
                          while (true) {
                            int x_192 = i_12;
                            int x_194 = asint(x_10[0].x);
                            if ((x_192 < x_194)) {
                            } else {
                              break;
                            }
                            int x_198 = asint(x_10[1].x);
                            i_13 = x_198;
                            while (true) {
                              int x_203 = i_13;
                              int x_205 = asint(x_10[0].x);
                              if ((x_203 < x_205)) {
                              } else {
                                break;
                              }
                              int x_209 = asint(x_10[1].x);
                              i_14 = x_209;
                              while (true) {
                                int x_214 = i_14;
                                int x_216 = asint(x_10[2].x);
                                if ((x_214 < x_216)) {
                                } else {
                                  break;
                                }
                                while (true) {
                                  int x_223 = x_GLF_global_loop_count;
                                  x_GLF_global_loop_count = (x_223 + 1);
                                  {
                                    int x_225 = x_GLF_global_loop_count;
                                    int x_227 = asint(x_10[3].x);
                                    if (!((x_225 < (100 - x_227)))) { break; }
                                  }
                                }
                                float x_231 = asfloat(x_7[0].x);
                                float x_232 = f;
                                f = (x_232 + x_231);
                                {
                                  int x_234 = i_14;
                                  i_14 = (x_234 + 1);
                                }
                              }
                              {
                                int x_236 = i_13;
                                i_13 = (x_236 + 1);
                              }
                            }
                            {
                              int x_238 = i_12;
                              i_12 = (x_238 + 1);
                            }
                          }
                          {
                            int x_240 = i_11;
                            i_11 = (x_240 + 1);
                          }
                        }
                        {
                          int x_242 = i_10;
                          i_10 = (x_242 + 1);
                        }
                      }
                      {
                        int x_244 = i_9;
                        i_9 = (x_244 + 1);
                      }
                    }
                    {
                      int x_246 = i_8;
                      i_8 = (x_246 + 1);
                    }
                  }
                  {
                    int x_248 = i_7;
                    i_7 = (x_248 + 1);
                  }
                }
                {
                  int x_250 = i_6;
                  i_6 = (x_250 + 1);
                }
              }
              {
                int x_252 = i_5;
                i_5 = (x_252 + 1);
              }
            }
            {
              int x_254 = i_4;
              i_4 = (x_254 + 1);
            }
          }
          {
            int x_256 = i_3;
            i_3 = (x_256 + 1);
          }
        }
        {
          int x_258 = i_2;
          i_2 = (x_258 + 1);
        }
      }
      {
        int x_260 = i_1;
        i_1 = (x_260 + 1);
      }
    }
    {
      int x_262 = i;
      i = (x_262 + 1);
    }
  }
  float x_265 = asfloat(x_7[1].x);
  sum = x_265;
  int x_267 = asint(x_10[1].x);
  r = x_267;
  while (true) {
    int x_272 = x_GLF_global_loop_count;
    if ((x_272 < 100)) {
    } else {
      break;
    }
    int x_275 = x_GLF_global_loop_count;
    x_GLF_global_loop_count = (x_275 + 1);
    float x_277 = f;
    float x_278 = sum;
    sum = (x_278 + x_277);
    {
      int x_280 = r;
      r = (x_280 + 1);
    }
  }
  float x_282 = sum;
  float x_284 = asfloat(x_7[2].x);
  if ((x_282 == x_284)) {
    int x_290 = asint(x_10[0].x);
    int x_293 = asint(x_10[1].x);
    int x_296 = asint(x_10[1].x);
    int x_299 = asint(x_10[0].x);
    x_GLF_color = float4(float(x_290), float(x_293), float(x_296), float(x_299));
  } else {
    int x_303 = asint(x_10[1].x);
    float x_304 = float(x_303);
    x_GLF_color = float4(x_304, x_304, x_304, x_304);
  }
  return;
}

struct main_out {
  float4 x_GLF_color_1;
};
struct tint_symbol {
  float4 x_GLF_color_1 : SV_Target0;
};

main_out main_inner() {
  main_1();
  main_out tint_symbol_1 = {x_GLF_color};
  return tint_symbol_1;
}

tint_symbol main() {
  main_out inner_result = main_inner();
  tint_symbol wrapper_result = (tint_symbol)0;
  wrapper_result.x_GLF_color_1 = inner_result.x_GLF_color_1;
  return wrapper_result;
}
