https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108623
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |rguenth at gcc dot gnu.org, | |rsandifo at gcc dot gnu.org --- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> --- Note there's code that might need adjustments. We for example have /* Return the number of elements in the VECTOR_TYPE given by NODE. */ inline poly_uint64 TYPE_VECTOR_SUBPARTS (const_tree node) { STATIC_ASSERT (NUM_POLY_INT_COEFFS <= 2); unsigned int precision = VECTOR_TYPE_CHECK (node)->type_common.precision; if (NUM_POLY_INT_COEFFS == 2) { /* See the corresponding code in SET_TYPE_VECTOR_SUBPARTS for a description of the encoding. */ poly_uint64 res = 0; res.coeffs[0] = HOST_WIDE_INT_1U << (precision & 0xff); if (precision & 0x100) res.coeffs[1] = HOST_WIDE_INT_1U << (precision & 0xff); return res; } which looks odd anyways. Richard might know where the 10 bits have been baked in to (ISTR something about the INTEGER_CST encoding stuff here with the three kinds of "precisions")