https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101908
--- Comment #8 from Richard Biener <rguenth at gcc dot gnu.org> --- It _is_ likely STLF. struct vec3 { double x, y, z; }; struct ray { struct vec3 orig, dir; }; the vectorized ray_sphere wants { ray.orig.x, ray.orig.y } and { ray.dir.x, ray.dir.y } where the former is fine but the latter is misaligned as to the way we push the struct to the stack which is { ray.orig.x, ray.orig.y } { ray.orig.z, ray.dir.x } {ray.dir.y, ray.dir.z }.