https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97904
--- Comment #2 from Alex Coplan <acoplan at gcc dot gnu.org> --- Here is a simple testcase that hits both ICEs. #include <arm_sve.h> template <typename b, int c> struct a { b x[c]; b &operator[](int i) { return x[i]; } }; a<svfloat32_t, 2> x; int main() { svbool_t l; svfloat32_t m = svmla_f32_z(l, x[0], x[1], m); }