[Bug target/97141] [10/11 Regression] aarch64, SVE: ICE in decompose, at rtl.h (during expand) since r10-4676-g9c437a108a

akrl at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Tue Dec 8 14:39:09 GMT 2020


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97141

--- Comment #1 from akrl at gcc dot gnu.org ---
Hi all,

this is so far my understanding of what is going on here:

While in expand the vector builder is trying to build to determine elt number 3
of a vector of POLY_INT_CST.

To do that the step has to be computed, therefore rtx_vector_builder::step is
calling wi::sub to compute the difference between elt1 and elt2.

wi::sub (in wide-int.h:2508) is making use of WIDE_INT_REF_FOR so we end up in
decompose where we have no handling for poly_int.

I'm a little puzzled because I'm not sure where in this stack would be correct
to add the poly_int handling.

decompose is returning a wi::storage_ref that AFAIU has no poly support.

It might be easier to handle the poly subtraction in rtx_vector_builder::step
before entering into wide-int specific code?

  Andrea


More information about the Gcc-bugs mailing list