[numthreads(1, 1, 1)]
void unused_entry_point() {
  return;
}

RWByteAddressBuffer v : register(u0);

void v_store(uint offset, float4x4 value) {
  v.Store4((offset + 0u), asuint(value[0u]));
  v.Store4((offset + 16u), asuint(value[1u]));
  v.Store4((offset + 32u), asuint(value[2u]));
  v.Store4((offset + 48u), asuint(value[3u]));
}

float4x4 v_load(uint offset) {
  return float4x4(asfloat(v.Load4((offset + 0u))), asfloat(v.Load4((offset + 16u))), asfloat(v.Load4((offset + 32u))), asfloat(v.Load4((offset + 48u))));
}

void foo() {
  v_store(0u, mul(float4x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx), v_load(0u)));
}
