res64bit.hlsl 750 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. // RUN: %dxc -E main -T cs_6_0 %s | FileCheck %s
  2. RWBuffer<double> uav1;
  3. RWTexture2D<uint64_t> uav2;
  4. RWTexture1D<double2> uav3;
  5. struct Foo
  6. {
  7. double2 a;
  8. int64_t b;
  9. uint64_t4 c;
  10. };
  11. StructuredBuffer<Foo> buf1;
  12. RWStructuredBuffer<Foo> buf2;
  13. [ numthreads( 64, 2, 2 ) ]
  14. void main( uint GI : SV_GroupIndex)
  15. {
  16. // CHECK: splitdouble
  17. uav1[GI] = GI;
  18. uav2[GI.xx] = GI+1;
  19. // CHECK: splitDouble
  20. uav3[GI] = GI+2;
  21. // CHECK: makeDouble
  22. buf2[GI] = buf1[GI];
  23. // CHECK: zext
  24. // CHECK: zext
  25. // CHECK: shl
  26. // CHECK: or
  27. // CHECK: 6
  28. // CHECK: trunc
  29. // CHECK: lshr
  30. // CHECK: trunc
  31. buf2[GI+1].b = buf1[GI].b + 6;
  32. // CHECK: makeDouble
  33. // CHECK: splitdouble
  34. buf2[GI+2].a = buf1[GI].a;
  35. }