right, the compiler can use the strided memory loads (%datareg,%idxreg,stride) available on x86 for this.
For some weird reason gcc only does it for three of the summations, for the fourth it uses a separate accumulator.