| Issue |
161340
|
| Summary |
[Clang] VectorExprEvaluator::VisitCallExpr / InterpretBuiltin - allow AVX/AVX512 VNNI intrinsics to be used in constexpr
|
| Labels |
good first issue,
backend:X86,
clang:headers,
constexpr,
clang:bytecode
|
| Assignees |
|
| Reporter |
RKSimon
|
```
avxvnniintrin.h
__m128i _mm_dpbusd_avx_epi32 (__m128i src, __m128i a, __m128i b)
__m256i _mm256_dpbusd_avx_epi32 (__m256i src, __m256i a, __m256i b)
__m128i _mm_dpbusd_epi32 (__m128i src, __m128i a, __m128i b)
__m256i _mm256_dpbusd_epi32 (__m256i src, __m256i a, __m256i b)
__m128i _mm_dpbusds_avx_epi32 (__m128i src, __m128i a, __m128i b)
__m256i _mm256_dpbusds_avx_epi32 (__m256i src, __m256i a, __m256i b)
__m128i _mm_dpbusds_epi32 (__m128i src, __m128i a, __m128i b)
__m256i _mm256_dpbusds_epi32 (__m256i src, __m256i a, __m256i b)
__m128i _mm_dpwssd_avx_epi32 (__m128i src, __m128i a, __m128i b)
__m256i _mm256_dpwssd_avx_epi32 (__m256i src, __m256i a, __m256i b)
__m128i _mm_dpwssd_epi32 (__m128i src, __m128i a, __m128i b)
__m256i _mm256_dpwssd_epi32 (__m256i src, __m256i a, __m256i b)
__m128i _mm_dpwssds_avx_epi32 (__m128i src, __m128i a, __m128i b)
__m256i _mm256_dpwssds_avx_epi32 (__m256i src, __m256i a, __m256i b)
__m128i _mm_dpwssds_epi32 (__m128i src, __m128i a, __m128i b)
__m256i _mm256_dpwssds_epi32 (__m256i src, __m256i a, __m256i b)
avx512vnniintrin.h
__m512i _mm512_dpbusd_epi32 (__m512i src, __m512i a, __m512i b)
__m512i _mm512_mask_dpbusd_epi32 (__m512i src, __mmask16 k, __m512i a, __m512i b)
__m512i _mm512_maskz_dpbusd_epi32 (__mmask16 k, __m512i src, __m512i a, __m512i b)
__m512i _mm512_dpbusds_epi32 (__m512i src, __m512i a, __m512i b)
__m512i _mm512_mask_dpbusds_epi32 (__m512i src, __mmask16 k, __m512i a, __m512i b)
__m512i _mm512_maskz_dpbusds_epi32 (__mmask16 k, __m512i src, __m512i a, __m512i b)
__m512i _mm512_dpwssd_epi32 (__m512i src, __m512i a, __m512i b)
__m512i _mm512_mask_dpwssd_epi32 (__m512i src, __mmask16 k, __m512i a, __m512i b)
__m512i _mm512_maskz_dpwssd_epi32 (__mmask16 k, __m512i src, __m512i a, __m512i b)
__m512i _mm512_dpwssds_epi32 (__m512i src, __m512i a, __m512i b)
__m512i _mm512_mask_dpwssds_epi32 (__m512i src, __mmask16 k, __m512i a, __m512i b)
__m512i _mm512_maskz_dpwssds_epi32 (__mmask16 k, __m512i src, __m512i a, __m512i b)
avx512vlvnniintrin.h
__m128i _mm_dpbusd_epi32 (__m128i src, __m128i a, __m128i b)
__m128i _mm_mask_dpbusd_epi32 (__m128i src, __mmask8 k, __m128i a, __m128i b)
__m128i _mm_maskz_dpbusd_epi32 (__mmask8 k, __m128i src, __m128i a, __m128i b)
__m256i _mm256_dpbusd_epi32 (__m256i src, __m256i a, __m256i b)
__m256i _mm256_mask_dpbusd_epi32 (__m256i src, __mmask8 k, __m256i a, __m256i b)
__m256i _mm256_maskz_dpbusd_epi32 (__mmask8 k, __m256i src, __m256i a, __m256i b)
__m128i _mm_dpbusds_epi32 (__m128i src, __m128i a, __m128i b)
__m128i _mm_mask_dpbusds_epi32 (__m128i src, __mmask8 k, __m128i a, __m128i b)
__m128i _mm_maskz_dpbusds_epi32 (__mmask8 k, __m128i src, __m128i a, __m128i b)
__m256i _mm256_dpbusds_epi32 (__m256i src, __m256i a, __m256i b)
__m256i _mm256_mask_dpbusds_epi32 (__m256i src, __mmask8 k, __m256i a, __m256i b)
__m256i _mm256_maskz_dpbusds_epi32 (__mmask8 k, __m256i src, __m256i a, __m256i b)
__m128i _mm_dpwssd_epi32 (__m128i src, __m128i a, __m128i b)
__m128i _mm_mask_dpwssd_epi32 (__m128i src, __mmask8 k, __m128i a, __m128i b)
__m128i _mm_maskz_dpwssd_epi32 (__mmask8 k, __m128i src, __m128i a, __m128i b)
__m256i _mm256_dpwssd_epi32 (__m256i src, __m256i a, __m256i b)
__m256i _mm256_mask_dpwssd_epi32 (__m256i src, __mmask8 k, __m256i a, __m256i b)
__m256i _mm256_maskz_dpwssd_epi32 (__mmask8 k, __m256i src, __m256i a, __m256i b)
__m128i _mm_dpwssds_epi32 (__m128i src, __m128i a, __m128i b)
__m128i _mm_mask_dpwssds_epi32 (__m128i src, __mmask8 k, __m128i a, __m128i b)
__m128i _mm_maskz_dpwssds_epi32 (__mmask8 k, __m128i src, __m128i a, __m128i b)
__m256i _mm256_dpwssds_epi32 (__m256i src, __m256i a, __m256i b)
__m256i _mm256_mask_dpwssds_epi32 (__m256i src, __mmask8 k, __m256i a, __m256i b)
__m256i _mm256_maskz_dpwssds_epi32 (__mmask8 k, __m256i src, __m256i a, __m256i b)
```
Some of the vnni8/16 intrinsics still have incorrect intrinsic types, so care must be taken attempting those (see #97271).
Please consult the Intel Intrinsics Guide, and ideally have access to a recent Intel/AMD machine to test your implementation.
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs