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