Issue |
156611
|
Summary |
[Headers][X86] Allow PSHUFD/PSHUFLW/PSHUFW byte shift intrinsics to be used in constexpr
|
Labels |
good first issue,
backend:X86,
clang:frontend,
constexpr,
clang:bytecode
|
Assignees |
|
Reporter |
RKSimon
|
The i16/i32 fixed shuffle intrinsics can be used in constant expressions:
```
_mm_shuffle_pi16
_mm_shufflelo_epi16 _mm_mask_shufflelo_epi16 _mm_maskz_shufflelo_epi16
_mm256_shufflelo_epi16 _mm256_mask_shufflelo_epi16 _mm256_maskz_shufflelo_epi16
_mm512_shufflelo_epi16 _mm512_mask_shufflelo_epi16 _mm512_maskz_shufflelo_epi16
_mm_shufflehi_epi16 _mm_mask_shufflehi_epi16 _mm_maskz_shufflehi_epi16
_mm256_shufflehi_epi16 _mm256_mask_shufflehi_epi16 _mm256_maskz_shufflehi_epi16
_mm512_shufflehi_epi16 _mm512_mask_shufflehi_epi16 _mm512_maskz_shufflehi_epi16
_mm_shuffle_epi32 _mm_mask_shuffle_epi32 _mm_maskz_shuffle_epi32
_mm256_shuffle_epi32 _mm256_mask_shuffle_epi32 _mm256_maskz_shuffle_epi32
_mm512_shuffle_epi32 _mm512_mask_shuffle_epi32 _mm512_maskz_shuffle_epi32
```
These will require handling inside VectorExprEvaluator::VisitCallExpr / InterpretBuiltin
Similar testing to #153102 - single test for each intrinsic, but ensure a range of masks are used.
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs