//
// fragment_main
//
RWByteAddressBuffer prevent_dce : register(u0);

uint subgroupShuffleUp_3242a6() {
  uint res = WaveReadLaneAt(1u, (WaveGetLaneIndex() - 1u));
  return res;
}

void fragment_main() {
  prevent_dce.Store(0u, asuint(subgroupShuffleUp_3242a6()));
  return;
}
//
// compute_main
//
RWByteAddressBuffer prevent_dce : register(u0);

uint subgroupShuffleUp_3242a6() {
  uint res = WaveReadLaneAt(1u, (WaveGetLaneIndex() - 1u));
  return res;
}

[numthreads(1, 1, 1)]
void compute_main() {
  prevent_dce.Store(0u, asuint(subgroupShuffleUp_3242a6()));
  return;
}
