RWByteAddressBuffer bar : register(u0);
RWByteAddressBuffer foo : register(u1);

void comp_main()
{
    bar.Store4(0, asuint(asfloat(foo.Load4(0))));
    bar.Store4(16, asuint(asfloat(foo.Load4(16))));
    bar.Store4(32, asuint(asfloat(foo.Load4(32))));
    bar.Store4(48, asuint(asfloat(foo.Load4(48))));
    bar.Store4(64, asuint(asfloat(foo.Load4(64))));
    bar.Store4(80, asuint(asfloat(foo.Load4(80))));
    bar.Store4(96, asuint(asfloat(foo.Load4(96))));
    bar.Store4(112, asuint(asfloat(foo.Load4(112))));
    bar.Store4(128, asuint(asfloat(foo.Load4(128))));
    bar.Store4(144, asuint(asfloat(foo.Load4(144))));
    bar.Store4(160, asuint(asfloat(foo.Load4(160))));
    bar.Store4(176, asuint(asfloat(foo.Load4(176))));
    bar.Store4(192, asuint(asfloat(foo.Load4(192))));
    bar.Store4(208, asuint(asfloat(foo.Load4(208))));
    bar.Store4(224, asuint(asfloat(foo.Load4(224))));
    bar.Store4(240, asuint(asfloat(foo.Load4(240))));
    [loop]
    for (int _137 = 0; _137 < 16; )
    {
        bar.Store4((15 - _137) * 16 + 0, asuint(asfloat(foo.Load4(_137 * 16 + 0))));
        _137++;
        continue;
    }
    [branch]
    if (asfloat(bar.Load(160)) > 10.0f)
    {
        foo.Store4(320, asuint(5.0f.xxxx));
    }
    foo.Store4(320, asuint(20.0f.xxxx));
}

[numthreads(1, 1, 1)]
void main()
{
    comp_main();
}
