<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">