RValSubscript.hlsl 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. // RUN: %dxc -E main -T ps_6_0 %s | FileCheck %s
  2. // CHECK-DAG: alloca [16 x i32]
  3. // CHECK-DAG: alloca [4 x i1]
  4. // For b4[2]
  5. // CHECK: cbufferLoadLegacy
  6. // CHECK: i32 5)
  7. // CHECK: extractvalue
  8. // CHECK: , 2
  9. // CHECK: icmp ne
  10. // CHECK 0
  11. // For (x4 < 3)[1]
  12. // CHECK: cbufferLoadLegacy
  13. // CHECK: i32 4)
  14. // CHECK: extractvalue
  15. // CHECK: , 1
  16. // CHECK: fcmp fast olt
  17. // CHECK: 3.000000e+00
  18. // For (xt == 0)[0][0]
  19. // CHECK: cbufferLoadLegacy
  20. // CHECK: i32 0)
  21. // CHECK: extractvalue
  22. // CHECK:, 0
  23. // CHECK: fcmp fast oeq
  24. // For (x4 < i)[i]
  25. // CHECK: fcmp fast olt
  26. // CHECK: fcmp fast olt
  27. // CHECK: fcmp fast olt
  28. // CHECK: fcmp fast olt
  29. // For (xt == 0)[i][i]
  30. // CHECK: fcmp fast oeq
  31. // CHECK: fcmp fast oeq
  32. // CHECK: fcmp fast oeq
  33. // CHECK: fcmp fast oeq
  34. // CHECK: fcmp fast oeq
  35. // CHECK: fcmp fast oeq
  36. // CHECK: fcmp fast oeq
  37. // CHECK: fcmp fast oeq
  38. // CHECK: fcmp fast oeq
  39. // CHECK: fcmp fast oeq
  40. // CHECK: fcmp fast oeq
  41. // CHECK: fcmp fast oeq
  42. // CHECK: fcmp fast oeq
  43. // CHECK: fcmp fast oeq
  44. // CHECK: fcmp fast oeq
  45. // CHECK: fcmp fast oeq
  46. float4x4 xt;
  47. float4 x4;
  48. bool4 b4;
  49. uint i;
  50. float4 main(uint4 a : A) : SV_TARGET
  51. {
  52. uint x = b4[2] + (x4 < 3)[1] + (xt == 0)[0][0];
  53. x += (x4 < i)[i];
  54. x += (xt == 6)[i][i];
  55. return x;
  56. }