no_fold_vec.hlsl 694 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. // RUN: %dxc -E main -T ps_6_0 %s -Od | FileCheck %s
  2. // Test that non-const arithmetic are not optimized away
  3. Texture2D tex0 : register(t0);
  4. Texture2D tex1 : register(t1);
  5. [RootSignature("DescriptorTable(SRV(t0), SRV(t1))")]
  6. float4 main() : SV_Target {
  7. float2 xy = float2(10, 20);
  8. float2 zw = xy + float2(5, 30);
  9. // CHECK: fadd
  10. // CHECK: fadd
  11. float2 foo = zw * 2;
  12. // CHECK: fmul
  13. // CHECK: fmul
  14. float2 bar = foo / 0.5;
  15. // CHECK: fdiv
  16. // CHECK: fdiv
  17. Texture2D tex = tex0;
  18. // CHECK: br i1
  19. if (foo.x+bar.y >= 0) {
  20. tex = tex1;
  21. // CHECK: br
  22. }
  23. // CHECK: fadd
  24. // CHECK: fadd
  25. // CHECK: fadd
  26. // CHECK: fadd
  27. return tex.Load(0) + float4(foo,bar);
  28. }