[LV][SLP] unable to handle conditional code in extractelement/insertelement or extractelement/store or load/insertelement pairs generated by clang vector in loops
Open
llvm:SLPVectorizer
missed-optimization
vectorizers
- Dominant language
- LLVM
- Stars
- 40.5k
- Forks
- 18.7k
- PR merge metrics
- PR metrics pending
Description
```c
typedef unsigned int v [[gnu::vector_size(64)]];
typedef unsigned int s;
void case1(s a[restrict], s b[restrict], s c[restrict]){
for(int i=0;i<16;i++){
if(a[i]
Contributor guide
Research direction
Start with the C reproducer cases 1–7 and compare LLVM's LV and SLP output with the linked Godbolt SLP example and GCC reference assembly. Trace how conditional extractelement/insertelement and load/store pairs from these loops are handled, focusing first on the cases identified as unsupported. Done means the affected cases produce correct vectorized code without the scalar fallback shown.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c
- Domain
- compilers, performance
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100