https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88598
--- Comment #1 from Marc Glisse <glisse at gcc dot gnu.org> --- -funroll-loops helps (I expect that's what llvm does). float j[5] = {}; also helps. We should probably simplify {0,0,...} to {}, but then we would still be missing the optimization for {1,1,...} where we would like to notice that any read can only yield 1.