removeDiscards.hlsl 516 B

1234567891011121314151617181920212223242526
  1. // RUN: %dxc -Emain -Tps_6_0 %s | %opt -S -hlsl-dxil-remove-discards | %FileCheck %s
  2. // Check that the discard within the if/then was removed:
  3. // CHECK-NOT: call void @dx.op.discard(i32 82, i1 true)
  4. struct RTOut
  5. {
  6. int i : SV_Target;
  7. float4 c : SV_Target1;
  8. };
  9. [RootSignature("")]
  10. RTOut main(float r : r, float g : g, float b : b, float a : a) {
  11. r *= 2.f;
  12. g *= 4.f;
  13. b *= 8.f;
  14. a *= 16.f;
  15. if (r > 3.f)
  16. {
  17. discard;
  18. }
  19. RTOut rtOut;
  20. rtOut.i = 8;
  21. rtOut.c = float4(r,g,b,a);
  22. return rtOut;
  23. }