I suspect it&#x27;s far more likely for &quot;foo_xs[k] += foo_dxs[k]&quot; to be auto-vec&#x27;d than for &quot;foo.x += foo.dx&quot; via templates to be auto-vec&#x27;d. The first is very straightforward and obvious with a clean auto-vec route, the later is not.