#include <metal_stdlib>
using namespace metal;

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

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

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