binary-op.comma.hlsl 835 B

1234567891011121314151617181920212223
  1. // Run: %dxc -T ps_6_0 -E main
  2. void foo() { int x = 1; }
  3. void main() {
  4. bool cond;
  5. int a = 1, b = 2;
  6. int c = 0;
  7. // CHECK: OpStore %a %int_2
  8. // CHECK-NEXT: OpStore %b %int_3
  9. // CHECK-NEXT: {{%\d+}} = OpFunctionCall %void %foo
  10. // CHECK-NEXT: [[cond:%\d+]] = OpLoad %bool %cond
  11. // CHECK-NEXT: [[a:%\d+]] = OpLoad %int %a
  12. // CHECK-NEXT: [[c:%\d+]] = OpLoad %int %c
  13. // CHECK-NEXT: [[sel:%\d+]] = OpSelect %int [[cond]] [[a]] [[c]]
  14. // CHECK-NEXT: OpStore %b [[sel]]
  15. // CHECK-NEXT: [[a1:%\d+]] = OpLoad %int %a
  16. // CHECK-NEXT: [[b:%\d+]] = OpLoad %int %b
  17. // CHECK-NEXT: [[a_plus_b:%\d+]] = OpIAdd %int [[a1]] [[b]]
  18. // CHECK-NEXT: OpStore %c [[a_plus_b]]
  19. c = (a=2, b=3, foo(), b = cond ? a : c , a+b);
  20. }