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

    <tr>
        <th>Summary</th>
        <td>
            [X86][GISel] Add legalization support for non-constant G_BUILD_VECTOR
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            backend:X86,
            llvm:globalisel
      </td>
    </tr>

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

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

<pre>
    X86LegalizerInfo::legalizeBuildVector currently only handles constant build vectors.

If we can add initial support for non-constant values - even just as an UNPCK chain - we have a fallback for many vector opcodes (G_CONCAT_VECTORS / G_SHUFFLE_VECTOR / G_INSERT_SUBVECTOR / G_EXTRACT_SUBVECTOR etc.).
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJx0kslu2zAQhp-GugxsMJRkSwcd5EWukSApvAS5GSNyZDGlSUOkXLhPX8gVuhx6IvDN8J_tR-_12RIVLF2wdBVhH1rXFbvnvb44G9VO3YuPbPZCZzT6B3Vb2zgWlywuzYgWvTbqnWRwHci-68gGcwdnzR1atMqQB-msD2gD1EMu3B7Jfsp4yXi5beA7gUQLqBRoq4NGA76_Xl0XoHEdWGcnvyVuaHryMAG6kYXP3gdAD2jh-Pp1-QyyRW1hMki2eCNAaNCYGuW3h9QF7X2sD-4qnSIPTGSb0_LtdVkeTu_r5eFttwcmKtic9l-OVfWyHukIt6_79e5w2h8X_-D1x2FXLv_mFOSUiXwaqSJWeZxjRMXTPMkFj_k8jdqirmepxEwpelJ8PieShJmsVdMQUZOqSBeCi5TP-IznSRKnU5klKGuU8yRLJMeaJZwuqM3UmNtl6rpzpL3vqXhKYp7nkcGajH-cVohhB2QVi8uPbMaEYGLJhBg-srg8G1ej0Z7MEElXUVcMkUndnz1LuNE--D9Fgg7m4ZhBKV2xdLHZ7smwdAWlUjA6A4N29v-H3JwWx-3Lalxu1HemaEO4-sFdomKiOuvQ9vVUugsT1aPPX8_k2rlPkoGJ6jGtZ6IaB74V4mcAAAD__0iF6ss">