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

    <tr>
        <th>Summary</th>
        <td>
            [HLSL] Boolean vector not being converted to in memory representation <n x i32> from <n x i1>
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
            spall
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          spall
      </td>
    </tr>
</table>

<pre>
    Boolean vector not being properly converted to in memory type <n x i32> from <n x i1> in the case:
```
bool4 b = true.xxxx;
b.xyz = false.xxx;
```
A bad shufflevector is generated:
```
%13 = shufflevector <4 x i32> %11, <4 x i1> %12, <4 x i32> <i32 4, i32 5, i32 6, i32 3>, !dbg !30
```
https://godbolt.org/z/jc9G8Ezd3
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJyEUt1uozwQfZrhZtTI-CeBCy7StHzfRe_2CWwYiCsHI9tkSZ9-BUvablfVSkgenTNn5gw6OkbbD0QVqEfgPI7aOeAc1FOmp3T2oVqhzPj2Vj1670gPeKUm-YCDT2jIDj2OwY8U3A0bP1wpJGoxebQDXujiww3TbSQEcRpwRis4iGfsgr-8Q_mC2AHTmbDRkUAcgR1hz7aPHY33TqJBEE-YwkS7eZ5nEI8LtZtvbyvRaRdX5jfxWX9Eo1uM56nrHG3-bcSeBgo6Ufv3RuAqF-vYP1UgTvLjjKUrB356h_M7yj-jW7M4WcFRLsxSqHuxvxcCxPOq43lr-uUR7Iuvc0pjXOzyGnjd-9Z4l3Y-9MDrN-D1a1P-Vzy_tSJrK9GWotQZVflBHvYHJliZnavuwLlRJE0h20ZKVTClc1a05b4RB1OozFacccVUXuZKFbzcFZK06lhuCql0kXcgGV20dTvnrpdld2ZjnKjKJVN7mTltyMUtUgP9xJXdYhWqRfRgpj6CZM7GFD_GJJvcmsX_X368gHrCbyP3TdICjYEiDUkn64d_ZS6bgqu-_FCbzpPZNf4CvF58bc_DGPwrNQl4vV4TgdfbudeK_woAAP__8aT5Wg">