https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117811
--- Comment #8 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Sam James from comment #7) > Can you convert it into a runtime one (or I'll do it in a bit when I've done > some chores around the house) then I'll try bisect it again? The same original testing infastructure should work here for comment #7 since what it does is exactly the same as the original code just using GCC vector extensions. obvious you can ignore the aliasing issue (or replace long with int) since I changed it to being int rather than long. Or you could look to see when `#0` starts to be produced. Since in GCC 9 produced: vmov.i32 q8, #0 @ v4si vshl.s32 q0, q0, q8 Which is wrong too. q8 should have been a `vdup.i32 q8, r1`