call3.hlsl 426 B

1234567891011121314151617181920212223242526272829303132
  1. // RUN: %fxc /T ps_5_0 %s /Fo %t.dxbc
  2. // RUN: %dxbc2dxil %t.dxbc /emit-llvm /o %t.ll.converted
  3. // RUN: fc %b.ref %t.ll.converted
  4. float main(float2 a : A, int3 b : B) : SV_Target
  5. {
  6. float r;
  7. [branch]
  8. if (b.y)
  9. return a.y;
  10. [call]
  11. switch(b.x)
  12. {
  13. case 1:
  14. [branch]
  15. if (b.y)
  16. return a.y;
  17. r = 5.f;
  18. break;
  19. case 2:
  20. r = a.x;
  21. break;
  22. default:
  23. r = 3.f;
  24. break;
  25. }
  26. return r;
  27. }