#include <metal_stdlib>
using namespace metal;

struct tint_module_vars_struct {
  thread half2x4* m;
  device half2x4* out;
};

kernel void f(device half2x4* out [[buffer(0)]]) {
  thread half2x4 m = half2x4(half4(0.0h, 1.0h, 2.0h, 3.0h), half4(4.0h, 5.0h, 6.0h, 7.0h));
  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.m=(&m), .out=out};
  (*tint_module_vars.out) = (*tint_module_vars.m);
}
