cast.vector.splat.hlsl 823 B

12345678910111213141516171819202122232425262728
  1. // Run: %dxc -T vs_6_0 -E main
  2. // CHECK: [[v4f32c:%\d+]] = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
  3. void main() {
  4. // CHECK-LABEL: %bb_entry = OpLabel
  5. // From constant
  6. // CHECK: OpStore %vf4 [[v4f32c]]
  7. float4 vf4 = 1;
  8. // CHECK: [[v3f32c:%\d+]] = OpCompositeConstruct %v3float %float_2 %float_2 %float_2
  9. // CHECK-NEXT: OpStore %vf3 [[v3f32c]]
  10. float3 vf3;
  11. vf3 = float1(2);
  12. // CHECK-NEXT: [[si:%\d+]] = OpLoad %int %si
  13. // CHECK-NEXT: [[vi4:%\d+]] = OpCompositeConstruct %v4int [[si]] [[si]] [[si]] [[si]]
  14. // CHECK-NEXT: OpStore %vi4 [[vi4]]
  15. int si;
  16. int4 vi4 = si;
  17. // CHECK-NEXT: [[si1:%\d+]] = OpLoad %int %si1
  18. // CHECK-NEXT: [[vi3:%\d+]] = OpCompositeConstruct %v3int [[si1]] [[si1]] [[si1]]
  19. // CHECK-NEXT: OpStore %vi3 [[vi3]]
  20. int1 si1;
  21. int3 vi3;
  22. vi3 = si1;
  23. }