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

    <tr>
        <th>Summary</th>
        <td>
            [Headers][X86] Allow AVX512 masked shuffles to be used in constexpr
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            good first issue,
            backend:X86,
            clang:headers
      </td>
    </tr>

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

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

<pre>
    These appear to be missed in earlier patches like #152313 as we didn't have mask/maskz constexpr support back then, most just need a header tweak and test coverage:
```
_mm_mask_set1_epi32 _mm_maskz_set1_epi32
_mm_mask_set1_epi64 _mm_maskz_set1_epi64
_mm256_mask_set1_epi32 _mm256_maskz_set1_epi32
_mm256_mask_set1_epi64 _mm256_maskz_set1_epi64
_mm512_mask_set1_epi32 _mm512_maskz_set1_epi32
_mm512_mask_set1_epi64 _mm512_maskz_set1_epi64

_mm_mask_broadcast_i32x2 _mm_mask_broadcast_i32x2
_mm256_mask_broadcast_f32x2 _mm256_maskz_broadcast_f32x2
_mm256_mask_broadcast_f64x2 _mm256_maskx_broadcast_f64x2
_mm256_mask_broadcast_i32x2 _mm256_maskz_broadcast_i32x2
_mm256_mask_broadcast_i64x2 _mm256_maskz_broadcast_i64x2

_mm512_mask_broadcast_f32x2 _mm512_maskz_broadcast_f32x2
_mm512_mask_broadcast_f32x8 _mm512_maskz_broadcast_f32x8
_mm512_mask_broadcast_f64x2 _mm512_maskz_broadcast_f64x2
_mm512_mask_broadcast_i32x2 _mm512_maskz_broadcast_i32x2
_mm512_mask_broadcast_i32x8 _mm512_maskz_broadcast_i32x8
_mm512_mask_broadcast_i64x2 _mm512_maskz_broadcast_i64x2
_mm256_mask_broadcast_i32x4 _mm256_maskz_broadcast_i32x4
_mm256_mask_broadcast_f32x4 _mm256_maskz_broadcast_f32x4

_mm_mask_broadcastss_ps _mm_maskz_broadcastss_ps
_mm256_mask_broadcastsd_pd _mm256_maskz_broadcastsd_pd
_mm256_mask_broadcastss_ps _mm256_maskz_broadcastss_ps
_mm_mask_broadcastd_epi32 _mm_maskz_broadcastd_epi32
_mm_mask_broadcastq_epi64 _mm_maskz_broadcastq_epi64
_mm256_mask_broadcastd_epi32 _mm256_maskz_broadcastd_epi32
_mm256_mask_broadcastq_epi64 _mm256_maskz_broadcastq_epi64
_mm512_mask_broadcastd_epi32 / _mm512_maskz_broadcastd_epi32
_mm512_mask_broadcastq_epi64 / _mm512_maskz_broadcastq_epi64

_mm_mask_movehdup_ps / _mm_maskz_movehdup_ps
_mm_mask_moveldup_ps / _mm_maskz_moveldup_ps
_mm_mask_unpackhi_pd / _mm_maskz_unpackhi_pd
_mm_mask_unpacklo_pd / _mm_maskz_unpacklo_pd
_mm_mask_unpackhi_ps / _mm_maskz_unpackhi_ps
_mm_mask_unpacklo_ps / _mm_maskz_unpacklo_ps
_mm_mask_unpackhi_epi64 / _mm_maskz_unpackhi_epi64
_mm_mask_unpacklo_epi64 / _mm_maskz_unpacklo_epi64
_mm_mask_unpackhi_epi32 / _mm_maskz_unpackhi_epi32
_mm_mask_unpacklo_epi32 / _mm_maskz_unpacklo_epi32

_mm256_mask_movehdup_ps / _mm256_maskz_movehdup_ps
_mm256_mask_moveldup_ps / _mm256_maskz_moveldup_ps
_mm256_mask_unpackhi_pd / _mm256_maskz_unpackhi_pd
_mm256_mask_unpacklo_pd / _mm256_maskz_unpacklo_pd
_mm256_mask_unpackhi_ps / _mm256_maskz_unpackhi_ps
_mm256_mask_unpacklo_ps / _mm256_maskz_unpacklo_ps
_mm256_mask_unpackhi_epi64 / _mm256_maskz_unpackhi_epi64
_mm256_mask_unpacklo_epi64 / _mm256_maskz_unpacklo_epi64
_mm256_mask_unpackhi_epi32 / _mm256_maskz_unpackhi_epi32
_mm256_mask_unpacklo_epi32 / _mm256_maskz_unpacklo_epi32

_mm512_mask_movehdup_ps / _mm512_maskz_movehdup_ps
_mm512_mask_moveldup_ps / _mm512_maskz_moveldup_ps
_mm512_mask_unpackhi_pd / _mm512_maskz_unpackhi_pd
_mm512_mask_unpacklo_pd / _mm512_maskz_unpacklo_pd
_mm512_mask_unpackhi_ps / _mm512_maskz_unpackhi_ps
_mm512_mask_unpacklo_ps / _mm512_maskz_unpacklo_ps
_mm512_mask_unpackhi_epi64 / _mm512_maskz_unpackhi_epi64
_mm512_mask_unpacklo_epi64 / _mm512_maskz_unpacklo_epi64
_mm512_mask_unpackhi_epi32 / _mm512_maskz_unpackhi_epi32
_mm512_mask_unpacklo_epi32 / _mm512_maskz_unpacklo_epi32

_mm_mask_move_ss / _mm_maskz_move_ss
_mm_mask_move_sd / _mm_maskz_move_sd
```
(I may have missed some shuffle cases from avx512fintrin.h / avx512vlintrin.h)
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJyEl0-PozgTxj-Nc7GmBSYQcuCQmVb0vtrb7mo1t8jBleBp86exSff0p1-RQAC7zEotRXLx81MuPxRdXGt5rQAyEn8n8euGd6ao2-zPP_6SZV1tzrX4nf1dgAbKmwZ4S01Nz0BLqTUIKisKvFUSWtpwkxegqZJvQAmLwphFYUS5ph9AhRQVYTtDC34DWnL9Rtix__mieV1pA59NS3XXNHVr6Jnnb9QUUBH2g5a1NvRXpw2tAATltAAuoKXmA_gb5ZWgBrSheX2Dll-BRAcSHEgSDH_B4VSWp17ppMGEJ2hkxOi49jVbxB5NtsijyfbxKIsTbONx2d3bAR7bu8CoEIcMUxiXXQUHeCi4wF1hfuJzW3ORc21OMmKfU4XsgHWSKXoZsek4VtCPJtsl-mkHvahcU11PWNqqX3bwWaJnWZHjTrVFj-tB0zU09aNjzig6VQpB5VrCcjVhuZawXE1YriUs__Nqt2tXa7-GyyJ60cuAou7X-tTo2Tu_DPgEtTg1wqN3j3nBUQ4DJ0WLEk4Xs0Mo9u50NDvkS1Ng3Q3XdOF3rNPhyq6BRmXCjh4XCbT_Oer-Dd7RfljWNyhE1_T3M7ADOIvYgPICygW6quH5WyF76yyBWcQFVO0D7hFcwU5pFsEVcOAeQRUWRbZFZjds6fixMehTmzyBqC1fgPmGHmwMPk3wtDHig8nFjhUWmFrDFIohnpgwxxYWtnCGjc3MgaghSToWQdS82Mwortri0hFBrBXhjkFk_bDtG1zZ6WO4e3DlCPmXATHQ1IQcAy0wtYYpFEMMNGGOgSxsYSAbmxkIUUOSdAyEqHmxmYFcNU9Hxwzkaq7CSwOhytjHCDMQquyHHQNNNjhp7Ity0s7n56TtD8Owak1EhKX_pyX_PQxjj0lO1yVQXXSXiwKacw2aXtq6pPz2GYfsIivTyuqluAs81m5qXCRsvxFZJPbRnm8gC3fxfhezJGGbIkvFNhV7wZL8LMJkv-ewD-EMaRJHcOZptJEZC1gcBkESsjAM2EsQwU7wbbhP010aspBsAyi5VC9K3cqXur1upNYdZGHCgt12o_gZlL6Pr4xd61rQi2y1ofeHCGOE_SCM9TMlVIJEh59p8lzNFa-uJDo8Zkrdr8evmzbrlb6du6sm20BJbfSkbaRR92H5fwMTv5L4e79p_EoPStUf9PDPzzhk9ym3L-yjpnoYnLthbH6OvZuuVVlhTKP72ZUdCTtepSm680tel4Qde-Xh51vT1r8gN4Qd76fThB2HKtwy9m8AAAD__2dTipU">