noops_groupshare.hlsl 635 B

1234567891011121314151617181920212223242526272829303132333435
  1. // RUN: %dxc -preserve-intermediate-values -E main -T cs_6_0 %s -Od | FileCheck %s
  2. RWBuffer<float> uav : register(u0);
  3. cbuffer cb : register(b0) {
  4. float foo;
  5. uint i;
  6. }
  7. groupshared float bar;
  8. [numthreads(1, 1, 1)]
  9. [RootSignature("CBV(b0), DescriptorTable(UAV(u0))")]
  10. void main() {
  11. // CHECK: %[[p_load:[0-9]+]] = load i32, i32*
  12. // CHECK-SAME: @dx.preserve.value
  13. // CHECK: %[[p:[0-9]+]] = trunc i32 %[[p_load]] to i1
  14. // CHECK: store
  15. bar = 1;
  16. // CHECK: store
  17. bar = foo;
  18. // select i1 [[p]],
  19. float ret = foo;
  20. // select i1 [[p]],
  21. ret = bar;
  22. // CHECK: call void @dx.op.bufferStore.f32(
  23. uav[i] = ret;
  24. }