https://gcc.gnu.org/bugzilla/show_bug.cgi?id=123016
--- Comment #4 from Tamar Christina <tnfchris at gcc dot gnu.org> --- (In reply to Richard Biener from comment #1) > Confirmed with a cross. The issue is similar to that originally observed > elsewhere. We have incompatible vector([4,4]) <signed-boolean:4> and > vector([4,4]) <signed-boolean:4>, due to 'SVE type' attribute on one. > > so we pass vect_record_loop_mask a data type with the appropriate number > of expected elements for the simd clone call. For SVE you could do > sth similar depending on how to construct the data vector correspondig > to the SIMD call mask argument. IIRC the mask for a V4DF is not the same > as the mask for a V4SI? > Indeed, the number of bits per mask elements are different. > I'll leave this to arm folks to sort out, but while vect_record_loop_mask > is in theory fine with recording a bool vector (we don't assert it isn't), > a SVE vector built-in will cause issues as can be seen here and the SIMD > clone info has those "API types". Yeah that makes sense. Ok, let me give this a try.
