| Issue |
162054
|
| Summary |
[X86][Clang] VectorExprEvaluator::VisitCallExpr / InterpretBuiltin - add AVX512 integer comparison intrinsics to be used in constexpr
|
| Labels |
good first issue,
backend:X86,
clang:headers,
constexpr,
clang:bytecode
|
| Assignees |
|
| Reporter |
RKSimon
|
The core integer comparison intrinsics could be used in constexpr:
```
_mm512_cmp_epi8_mask _mm512_cmp_epu8_mask
_mm512_cmp_epi16_mask _mm512_cmp_epu16_mask
_mm512_cmp_epi32_mask _mm512_cmp_epu32_mask
_mm512_cmp_epi64_mask _mm512_cmp_epu64_mask
```
These need to handle the comparison modes detaieds in the Intel Intrinsics Guide:
```
0: OP := _MM_CMPINT_EQ
1: OP := _MM_CMPINT_LT
2: OP := _MM_CMPINT_LE
3: OP := _MM_CMPINT_FALSE
4: OP := _MM_CMPINT_NE
5: OP := _MM_CMPINT_NLT
6: OP := _MM_CMPINT_NLE
7: OP := _MM_CMPINT_TRUE
```
There are a LOT of wrappers to these intrinsics (e.g. eq/ge/gt/le/lt/neq variants) - ideally we need test coverage for all of them. To avoid incredible boredom you should probably write a script to autogen these somehow.
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs