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.

Reply via email to