uint64_1.hlsl 638 B

12345678910111213141516171819202122232425262728293031323334353637
  1. // RUN: %dxc -E main -T ps_6_0 -not_use_legacy_cbuf_load %s | FileCheck %s
  2. // CHECK: 64-Bit integer
  3. // CHECK: add i64
  4. // CHECK: udiv i64
  5. // CHECK: shl i64
  6. // CHECK: mul i64
  7. // CHECK: UMax
  8. // CHECK: UMin
  9. // CHECK: uitofp i64
  10. struct Foo
  11. {
  12. uint64_t b;
  13. };
  14. StructuredBuffer<Foo> buf1;
  15. RWStructuredBuffer<Foo> buf2;
  16. uint64_t4x3 u;
  17. uint64_t a;
  18. int64_t b;
  19. float4 main(float idx1 : Idx1, float idx2 : Idx2, int2 c : C) : SV_Target
  20. {
  21. uint64_t4 r = buf1.Load(idx1).b + a;
  22. r += u[0].xyzz;
  23. r /= u._m01_m11_m21_m22;
  24. buf2[idx1*3].b = r;
  25. r *= b << 5;
  26. r = abs(r); // No-op on uints
  27. r = max(r, c.x);
  28. r = min(r, c.y);
  29. return r;
  30. }