https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104474
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Summary|[12 Regression] ICE: in |[12 Regression] ICE: in |output_constant_pool_2, at |output_constant_pool_2, at |varasm.cc:4062 with |varasm.cc:4062 with |-mcpu=neoverse-512tvb |-mcpu=neoverse-512tvb |-frounding-math |-msve-vector-bits=512 |-msve-vector-bits=512 | Ever confirmed|0 |1 Last reconfirmed| |2022-02-09 --- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Confirmed, the problem is the backend replaces the non-constant parts with (const_int 0) rather than zero in the mode. You can also reproduce the failure with just -mcpu=neoverse-512tvb -msve-vector-bits=512 and: typedef float __attribute__((__vector_size__ (64))) F; F foo (float t) { return (F){t, 0, 0, 0, 0, 0, 0, 5, 0, t}; }