Issue |
155390
|
Summary |
[Clang] VectorExprEvaluator::VisitCallExpr - add MMX/SSE/AVX/AVX512 AVG intrinsics to be used in constexpr
|
Labels |
good first issue,
backend:X86,
clang:frontend,
constexpr
|
Assignees |
|
Reporter |
RKSimon
|
The PAVGB/PAVGW intrinsics can all be used in constexpr with suitable handling of the __builtin_ia32_pavg builtins inside VectorExprEvaluator::VisitCallExpr similar to #152540
```
_mm_avg_pu8
_mm_avg_epu8 _mm256_avg_epu8 _mm512_avg_epu8
_mm_mask_avg_epu8 _mm256_mask_avg_epu8 _mm512_mask_avg_epu8
_mm_maskz_avg_epu8 _mm256_maskz_avg_epu8 _mm512_maskz_avg_epu8
_mm_avg_pu16
_mm_avg_epu16 _mm256_avg_epu16 _mm512_avg_epu16
_mm_mask_avg_epu16 _mm256_mask_avg_epu16 _mm512_mask_avg_epu16
_mm_maskz_avg_epu16 _mm256_maskz_avg_epu16 _mm512_maskz_avg_epu16
```
These all just need to call APIntOps::avgCeilU - and the builtin types should probably be converted to unsigned.
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs