#include <metal_stdlib>
using namespace metal;

struct tint_module_vars_struct {
  const device float4x3* in;
  device float4x3* out;
};

void tint_store_and_preserve_padding(device float4x3* const target, float4x3 value_param) {
  (*target)[0u] = value_param[0u];
  (*target)[1u] = value_param[1u];
  (*target)[2u] = value_param[2u];
  (*target)[3u] = value_param[3u];
}

kernel void tint_symbol(const device float4x3* in [[buffer(1)]], device float4x3* out [[buffer(0)]]) {
  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.in=in, .out=out};
  tint_store_and_preserve_padding(tint_module_vars.out, (*tint_module_vars.in));
}
