#include <metal_stdlib>
using namespace metal;
struct tint_module_vars_struct {
  const constant half2x3* m;
  thread int* counter;
};

int i(tint_module_vars_struct tint_module_vars) {
  (*tint_module_vars.counter) = ((*tint_module_vars.counter) + 1);
  return (*tint_module_vars.counter);
}
kernel void f(const constant half2x3* m [[buffer(0)]]) {
  thread int counter = 0;
  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=m, .counter=(&counter)};
  const constant half2x3* const p_m = tint_module_vars.m;
  const constant half3* const p_m_i = (&(*p_m)[i(tint_module_vars)]);
  half2x3 const l_m = (*p_m);
  half3 const l_m_i = (*p_m_i);
}
