You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
With a fast path for N = 4*i and a split version else (inspired from avx512bw).
As the vpermd actually has the lower latency on some intel cpus compared to vpermw / vpermb, also use it instead of the avx512bw and avx512vbmi implementations if trivially possible.
Also reverse the order of the slow path for lower latency. It used to be:
```
SLR -> PERM ->
OR -> PERM
SLL ->
```
Now the latency is reduced to:
```
SLR -> PERM ->
OR
SLL -> PERM ->
```
And it should now generate even better code on avx512bw with N=63 with only one PERM (as already done for N=1).
For N=16,32,48, it prefers vshufi32x4 over vpermd for lower latency on Zen4 and decreased register usage.
0 commit comments