[llvm] [LV] Vectorize Epilogues for loops with small VF but high IC (PR #108190)

Sjoerd Meijer via llvm-commits llvm-commits at lists.llvm.org
Mon Sep 30 02:24:03 PDT 2024


sjoerdmeijer wrote:

I finally got round to looking at the regression that would be introduced by setting MaxInterLeaving = 4 for the Neoverse V2. There are a couple of loops of this shape:

```
int add(double * __restrict in1, double * __restrict in2, int n) {
    for (int i =0 ; i < n; i++) 
        in1[i] = in1[i] + in2[i];
}
```

Some observations: this will result in a NEON loop (i.e. not scalable), and we can't say much about the IC.
As a result, we don't vectorize the epilogue for these cases. 

I don't think that this is criticism for this patch, it's not intended to recognize this, right? 

https://github.com/llvm/llvm-project/pull/108190


More information about the llvm-commits mailing list