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

    <tr>
        <th>Summary</th>
        <td>
            [VectorCombine] Expand Intrinsic::vector_insert calls into shufflevectors
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            good first issue,
            llvm::vectorcombine
      </td>
    </tr>

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

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

<pre>
    This is already performed in InstCombinerImpl.visitCallInst - but this occurs AFTER vector-combine has run, so further cost driven vector-combine shuffle folds are missed.

We should only need to handle vector_insert calls with FixedVectorTypes and there might not be any reason for a cost check, but we must ensure the shuffle are added back to the worklist to allow further expansion.
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJxcUs1u2zwQfBrqsrAgrSQ7Pujgz4mA4LulQXssKHJlsaZIg0va8dsXtN305yQIw5mdmV3JbA6OqBfdf6J7LmSKsw_92_9fzOJdMXp97d9nw2AYpA0k9RVOFCYfFtJgHLw6jnu_jMZReF1OtjwbNnEvrc0IrGBMEWJW8EqlwLAb3l_e4Ewq-rBSdybMkiEkJ3AP7GFKIc4UQHmOoIM5k_uXwHOaJksweasZZCBYDDPpUlQ7Ue2-5Rc-WQ3e2Ss4Ig3RwyydtvTQ-m4cU4igpLUMFxNnGMwH6a839P16IgbpNGQrWf4wR3A-wkgg3RUCSfYOJh9A3p2qmdQxR8iRLwRL4gjkOAXKIp-es1upNWkYpTpmXxm9-HC0hmP-l9b6y2cN9HGSjo13ZaH7Rm-brSyorzddtdng07op5r6tG91WFU24Htdr3NaqqZsatxJ1U623qjA9VthVa2zrpt20TVlP7dNTM06IuKloo0Vb0SKNLa09L6UPh8IwJ-rrtutqLKwcyfLtShAP3muYTOAIt0cCUeBeIGauaHai2d0rfmwr491zEfqMr8Z0YNFWOSv_nhZNtLcrvNf_OCnRPcNLjq_h1cVgHBv154C_d2hc9L9avuNcpGD7OcYTZxoOAoeDiXMaS-UXgcPN8f2zOgX_g1QUONxSscDhkf7c488AAAD__xOiFW8">