<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/67511>67511</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            HLSL Scalar Swizzle
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            HLSL
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
            llvm-beanz
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          llvm-beanz
      </td>
    </tr>
</table>

<pre>
    Similar to #56658, HLSL supports vector swizzle operations on scalar types by implicitly converting the scalar to a single-element vector.

This allows syntaxes like the ones below:

```c++
int2 ToTwoInts(int V){
  return V.xx;
}

float3 ToThreeFloats(float V){
  return V.rrr;
}
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJx0ks1upDoQhZ_GbEpBtmlDs2CR3Ba6I2XXrewNVINnjI3sov-efgRNJlnMSCVbPip_VdI5OkbTO8SKqTcmpbWX8aVB7R5MSqYOiZ5p8KH60pPGd_fqaEZjdQDywGSm8lztmfwP_n8_vkOcp8kHinDBlnyAeDWPh0XwEwZNxrsI3kFs9Qq4TxihuYMZJ2taQ_YOrXcXDGRcDzTgn04PGqJxvcUXtDiio21CyviB8dfneRpMBG2tv0aId0f6hhGs-YUry7tlGlp_Zdnr928s589qmXxbalWNIwknf7r6H44ik3vjCD6YLFmxdQAEpDk4-EhvN5ZtKisO3-Fn6zVlC2gIiPXyWmCr_E9cCOEvvM81k67KujIrdYKVyEtVFEoV-2So-LlrtNhrlSvRyVIWjdgJKfLy3IizEl1iKsllxktZcL7LxT7dFQU2OdciE-LcKM52HEdtbLqYnvrQJybGGau8UEIkVjdo4xaXxe8tKJ8ZmfvIdtyaSPELQIYsVms6jk83j89QJHOw1UA0xcUPWTNZ94aGuUlbPzJZL4TtepmC_4ktMVmv-0Qm63Wl3wEAAP__J37bHg">