diff options
author | Nagraj Gaonkar <nagrajgaonkarmumbai749@gmail.com> | 2025-10-03 20:22:21 +0530 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-10-03 15:52:21 +0100 |
commit | 952b12394ecffce6cf2430aa29b193dd7dc897a8 (patch) | |
tree | 59c3680f5813e4095dca14e04ccbf8b557025816 /llvm/unittests/Analysis/FunctionPropertiesAnalysisTest.cpp | |
parent | 3d810086d1e16e2de57634d7eb5ecf25a5227e4c (diff) | |
download | llvm-952b12394ecffce6cf2430aa29b193dd7dc897a8.zip llvm-952b12394ecffce6cf2430aa29b193dd7dc897a8.tar.gz llvm-952b12394ecffce6cf2430aa29b193dd7dc897a8.tar.bz2 |
[X86] Allow PSHUFD/PSHUFLW/PSHUFW intrinsics in constexpr. (#161210)
The i16/i32 shuffle intrinsics (`pshufw`, `pshuflw`, `pshufhw`,
`pshufd`) currently cannot be used in constant expressions. This patch
adds support in both bytecode interpreter (InterpBuiltin.cpp) and
constant evaluator
(ExprConstant.cpp) for pshuf intrinsics, enabling their use in constant
expressions.
## Intrinsics covered
- `_mm_shuffle_pi16` (MMX `pshufw`)
- `_mm_shufflelo_epi16` / `_mm_shufflehi_epi16`
- `_mm_shuffle_epi32`
- Their AVX2/AVX512 vector-width variants
- Masked and maskz forms (handled indirectly via
`__builtin_ia32_select*`)
Fixes #156611
Diffstat (limited to 'llvm/unittests/Analysis/FunctionPropertiesAnalysisTest.cpp')
0 files changed, 0 insertions, 0 deletions