#include <metal_stdlib>
using namespace metal;
struct tint_module_vars_struct {
  device half4x3* out;
};

void tint_store_and_preserve_padding(device half4x3* const target, half4x3 value_param) {
  (*target)[0u] = value_param[0u];
  (*target)[1u] = value_param[1u];
  (*target)[2u] = value_param[2u];
  (*target)[3u] = value_param[3u];
}
kernel void f(device half4x3* out [[buffer(0)]]) {
  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.out=out};
  half4x3 m = half4x3(half3(0.0h), half3(0.0h), half3(0.0h), half3(0.0h));
  tint_store_and_preserve_padding(tint_module_vars.out, half4x3(m));
}
