binary-op.logical-or.hlsl 812 B

123456789101112131415161718192021222324252627
  1. // Run: %dxc -T ps_6_0 -E main
  2. void main() {
  3. // CHECK-LABEL: %bb_entry = OpLabel
  4. bool a, b, c;
  5. // Plain assign (scalar)
  6. // CHECK: [[a0:%\d+]] = OpLoad %bool %a
  7. // CHECK-NEXT: [[b0:%\d+]] = OpLoad %bool %b
  8. // CHECK-NEXT: [[or0:%\d+]] = OpLogicalOr %bool [[a0]] [[b0]]
  9. // CHECK-NEXT: OpStore %c [[or0]]
  10. c = a || b;
  11. bool1 i, j, k;
  12. bool3 o, p, q;
  13. // Plain assign (vector)
  14. // CHECK-NEXT: [[i0:%\d+]] = OpLoad %bool %i
  15. // CHECK-NEXT: [[j0:%\d+]] = OpLoad %bool %j
  16. // CHECK-NEXT: [[or1:%\d+]] = OpLogicalOr %bool [[i0]] [[j0]]
  17. // CHECK-NEXT: OpStore %k [[or1]]
  18. // CHECK-NEXT: [[o0:%\d+]] = OpLoad %v3bool %o
  19. // CHECK-NEXT: [[p0:%\d+]] = OpLoad %v3bool %p
  20. // CHECK-NEXT: [[or2:%\d+]] = OpLogicalOr %v3bool [[o0]] [[p0]]
  21. // CHECK-NEXT: OpStore %q [[or2]]
  22. k = i || j;
  23. q = o || p;
  24. }