#include <metal_stdlib>

using namespace metal;

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

void some_loop_body() {
}

void f() {
  int j = 0;
  for(int i = 0; ((i < 5) && (j < 10)); i = as_type<int>((as_type<uint>(i) + as_type<uint>(1)))) {
    TINT_ISOLATE_UB(tint_volatile_false);
    some_loop_body();
    j = as_type<int>((as_type<uint>(i) * as_type<uint>(30)));
  }
}

