#include <metal_stdlib>

using namespace metal;
void main_1(thread uint* const tint_symbol_1) {
  *(tint_symbol_1) = 1u;
  bool guard10 = true;
  if (false) {
    *(tint_symbol_1) = 2u;
    if (true) {
    } else {
      guard10 = false;
    }
    if (guard10) {
      *(tint_symbol_1) = 3u;
    }
  } else {
    if (guard10) {
      *(tint_symbol_1) = 4u;
      if (true) {
        guard10 = false;
      }
      if (guard10) {
        *(tint_symbol_1) = 5u;
      }
    }
  }
  if (guard10) {
    *(tint_symbol_1) = 6u;
    if (false) {
    } else {
      guard10 = false;
    }
    if (guard10) {
      *(tint_symbol_1) = 7u;
      guard10 = false;
    }
  }
  *(tint_symbol_1) = 8u;
  return;
}

fragment void tint_symbol() {
  thread uint tint_symbol_2 = 0u;
  main_1(&(tint_symbol_2));
  return;
}

