#include <metal_stdlib>

using namespace metal;

#define TINT_ISOLATE_UB(VOLATILE_NAME) \
  volatile bool VOLATILE_NAME = true; \
  if (VOLATILE_NAME)

kernel void tint_symbol() {
  float2 v2f = 0.0f;
  float2 v2f_2 = 0.0f;
  int3 v3i = 0;
  int3 v3i_2 = 0;
  uint4 v4u = 0u;
  uint4 v4u_2 = 0u;
  bool2 v2b = false;
  bool2 v2b_2 = false;
  TINT_ISOLATE_UB(tint_volatile_true) for(int i = 0; (i < 2); i = as_type<int>((as_type<uint>(i) + as_type<uint>(1)))) {
    v2f[i] = 1.0f;
    v3i[i] = 1;
    v4u[i] = 1u;
    v2b[i] = true;
    v2f_2[i] = 1.0f;
    v3i_2[i] = 1;
    v4u_2[i] = 1u;
    v2b_2[i] = true;
  }
  return;
}

