#include <metal_stdlib>

using namespace metal;

#define TINT_ISOLATE_UB(VOLATILE_NAME) \
  {volatile bool VOLATILE_NAME = false; if (VOLATILE_NAME) break;}

void f() {
  for(int i0520 = 0; false; ) {
    TINT_ISOLATE_UB(tint_volatile_false);
  }
  for(int i62 = 0; false; ) {
    TINT_ISOLATE_UB(tint_volatile_false_1);
  }
  for(int i0520 = 0; false; ) {
    TINT_ISOLATE_UB(tint_volatile_false_2);
  }
  for(int i62 = 0; false; ) {
    TINT_ISOLATE_UB(tint_volatile_false_3);
  }
  for(int i62 = 0; false; ) {
    TINT_ISOLATE_UB(tint_volatile_false_4);
  }
  for(int i60 = 0; false; ) {
    TINT_ISOLATE_UB(tint_volatile_false_5);
  }
  for(int i62 = 0; false; ) {
    TINT_ISOLATE_UB(tint_volatile_false_6);
  }
  for(int i60 = 0; false; ) {
    TINT_ISOLATE_UB(tint_volatile_false_7);
  }
}

