switch3.hlsl 511 B

12345678910111213141516171819202122232425262728293031323334353637
  1. // RUN: %dxc -E main -T ps_6_0 %s | FileCheck %s
  2. // CHECK: @main
  3. float main(float2 a : A, int3 b : B) : SV_Target
  4. {
  5. float r;
  6. switch(b.x)
  7. {
  8. case 1:
  9. r = 5.f;
  10. switch(b.y)
  11. {
  12. case 20:
  13. r = 5.5f;
  14. [branch]
  15. if(b.z == 30)
  16. break;
  17. r = 5.7f;
  18. [flatten]
  19. if(b.z == 31)
  20. break;
  21. r = 5.8f;
  22. break;
  23. default:
  24. r = a.y;
  25. break;
  26. }
  27. break;
  28. case 2:
  29. r = a.x;
  30. break;
  31. default:
  32. r = 3.f;
  33. break;
  34. }
  35. return r;
  36. }