#include <metal_stdlib>
using namespace metal;

void deref() {
  int3 a = 0;
  thread int3* const p = (&a);
  (*p)[0] = as_type<int>((as_type<uint>((*p)[0]) + as_type<uint>(42)));
}

void no_deref() {
  int3 a = 0;
  thread int3* const p = (&a);
  (*p)[0] = as_type<int>((as_type<uint>((*p)[0]) + as_type<uint>(42)));
}

void deref_inc() {
  int3 a = 0;
  thread int3* const p = (&a);
  (*p)[0] = as_type<int>((as_type<uint>((*p)[0]) + as_type<uint>(1)));
}

void no_deref_inc() {
  int3 a = 0;
  thread int3* const p = (&a);
  (*p)[0] = as_type<int>((as_type<uint>((*p)[0]) + as_type<uint>(1)));
}

kernel void tint_symbol() {
  deref();
  no_deref();
  deref_inc();
  no_deref_inc();
}
