https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121599
--- Comment #3 from Alex Coplan <acoplan at gcc dot gnu.org> --- (In reply to Jennifer Schmitz from comment #2) > I can confirm the ICE. Thanks for the report. > However, I think that g5289540ed58e42ae66255e31f22afe4ca0a6e15e only > revealed a previously existing problem by folding the inner call > (svuqadd_n_s8_z(svpfalse(), c, e)) to a zero vector. > > I compiled the following snippet with GCC built from the parent commit > (g8772f37e45e9401c9a361548e00c9691424e75e0) and it has the same ICE: > > #include <arm_sve.h> > > svuint8_t f2 (svbool_t pg, svuint8_t op1) > { > return svsqadd_u8_z (pg, op1, svdup_s8 (0)); > } > > I will investigate why the insn is not recognized. Thanks, yes it looks to be a pre-existing problem indeed. The adjusted testcase you gave seems to ICE all the way back to the introduction of SVE in GCC 10.