| [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, (v_load(0u) * 2.0f)); | 
 | } |