https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117379
Bug ID: 117379 Summary: Failure to vectorize multi add + mulit sub Product: gcc Version: 15.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: middle-end Assignee: unassigned at gcc dot gnu.org Reporter: lin1.hu at intel dot com Target Milestone: --- I found GCC can't optimize typedef unsigned long long u64; u64 mobility(u64 * a, u64 * b) { u64 mobility = 0; mobility += a[0]; mobility += a[1]; mobility += a[2]; mobility += a[3]; mobility -= b[0]; mobility -= b[1]; mobility -= b[2]; mobility -= b[3]; return mobility; } but llvm can https://godbolt.org/z/srWxxKhM9. The failure reason is "missed: not vectorized: no grouped stores in basic block." Any chance of gcc implementing vectorization like llvm?