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

    <tr>
        <th>Summary</th>
        <td>
            [Clang] Bogous types when using __builtin_shufflevector on bool vectors
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            clang
      </td>
    </tr>

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

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

<pre>
    ```c++
using vec __attribute__((ext_vector_type(4))) = bool;

auto test() {
 return __builtin_shufflevector(vec{}, vec{}, 0, 1, 2, 3, 4, 5, 6, 7);
}
```
`test()` returns a `__attribute__((__vector_size__(8 * sizeof(bool))))`, which is obviously incorrect. 
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJx0ktuOnDAMhp_G3Fg7CuYQuOBid9G8BgohA2mzZJQD2-nTVwFmV5VayfrAQOzf5hfe63lVqoPqDao-EzEs1nX3RZtV_-ScZ6OdHh3U7AgJ9JaC9cBeo9frjJuSOAwiBKfHGNQwADVAjfoVhk3JYN0QHncF1JRA7REIRY-jtQaKs9RBEYPFoHzYS7QI_HyNToXoVhyGMWoT9Dr4Jd5uRh0dgJpNyfQ174He8a-EJeQJlFAklAlVQp3Ak6wvKbw_b55Df6Xf0qBmpyaPAqFm_9jA8Jzf69_HwwaBXjGl9gbU7Bt47uQomtR8LlouqD3acdM2evNAvUrrnJLhgtnUFVNbtCJTXc6paquKV5QtHROSNQ0Tijf5WLFaFayaWsVqKTnJiTLdEaOStTljDWtzuog25zmrmSxFfpsmDiVTH0KbizHbx8W6OdPeR9XljLdNnhkxKuN3pxBJI9YZiJJpXJcOvIxx9lAyo33w3yWCDma31_t-ourxzc42ekyu8Pi5qBUPI_3n56Jdd6_gkfosOtMtIdw9FK9AV6DrrMMSx4u0H0DX1Pm8vNyd_aFkALruk3ig6znM1tGfAAAA__8FwOWt">