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

RWByteAddressBuffer v : register(u0, space0);

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, (v_load(0u) - float4x4((0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx, (0.0f).xxxx)));
}
