The PAVGB/PAVGW intrinsics can all be used in constexpr with suitable handling of the __builtin_ia32_pavg builtins inside VectorExprEvaluator::VisitCallExpr and InterBuiltin.cpp 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.