#include <metal_stdlib>
using namespace metal;
struct tint_module_vars_struct {
  const constant float2x3* u;
  device float2x3* s;
};

void tint_store_and_preserve_padding(device float2x3* const target, float2x3 value_param) {
  (*target)[0u] = value_param[0u];
  (*target)[1u] = value_param[1u];
}
kernel void f(const constant float2x3* u [[buffer(0)]], device float2x3* s [[buffer(1)]]) {
  tint_module_vars_struct const tint_module_vars = tint_module_vars_struct{.u=u, .s=s};
  tint_store_and_preserve_padding(tint_module_vars.s, (*tint_module_vars.u));
  (*tint_module_vars.s)[1] = (*tint_module_vars.u)[0];
  (*tint_module_vars.s)[1] = (*tint_module_vars.u)[0].zxy;
  (*tint_module_vars.s)[0][1] = (*tint_module_vars.u)[1][0];
}
