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

Reply via email to