https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113859
Bug ID: 113859 Summary: popcount HI can be vectorized for non-SVE Product: gcc Version: 14.0 Status: UNCONFIRMED Keywords: missed-optimization Severity: enhancement Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: pinskia at gcc dot gnu.org Target Milestone: --- Target: aarch64 Take: ``` void f(unsigned short * __restrict b, unsigned short * __restrict d) { for(int i = 0; i < 1024; i++) d[i] = __builtin_popcount(b[i]); } ``` This can be vectorized to: ``` ldr q0, [x9] cnt v0.16b, v0.16b uaddlp v0.8h, v0.16b stp q0, [x9] ```