#include <metal_stdlib>

using namespace metal;
struct tint_private_vars_struct {
  half t;
};

half3x4 m(thread tint_private_vars_struct* const tint_private_vars) {
  (*(tint_private_vars)).t = ((*(tint_private_vars)).t + 1.0h);
  return half3x4(half4(1.0h, 2.0h, 3.0h, 4.0h), half4(5.0h, 6.0h, 7.0h, 8.0h), half4(9.0h, 10.0h, 11.0h, 12.0h));
}

void f(thread tint_private_vars_struct* const tint_private_vars) {
  half3x4 const tint_symbol = m(tint_private_vars);
  float3x4 v = float3x4(tint_symbol);
}

