https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89798
--- Comment #3 from Martin Sebor <msebor at gcc dot gnu.org> ---
One of the reasons why big vectors don't work seems to be the assumption in
TYPE_VECTOR_SUBPARTS() that they can't be bigger than 2^31. But fixing this
function alone doesn't seem to be sufficient.
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)
{
poly_uint64 res = 0;
res.coeffs[0] = 1 << (precision & 0xff);
if (precision & 0x100)
res.coeffs[1] = 1 << (precision & 0xff);
return res;
}
else
return 1 << precision;
}