Hi Qing, on 2021/11/5 上午4:37, Qing Zhao via Gcc-patches wrote: > Hi, > > I noticed that the macro “WIDE_INT_MAX_ELTS” has different values in GCC11 > and GCC12 (on the same X86 machine) > > For gcc11: > > wide int max elts =3 > > For gcc12: > > wide int max elts =9 > > Does anyone know what’s the reason for this difference? >
I guess it's due to commit r12-979 (782e57f2c09). For #define WIDE_INT_MAX_ELTS \ ((MAX_BITSIZE_MODE_ANY_INT + HOST_BITS_PER_WIDE_INT) / HOST_BITS_PER_WIDE_INT Before the change, the MAX_BITSIZE_MODE_ANY_INT is explicitly set as 160. -#define MAX_BITSIZE_MODE_ANY_INT (160) it's (160+64)/64 = 3 After the change, MAX_BITSIZE_MODE_ANY_INT is counted in function emit_max_int and becomes 512. it's (512+64)/64 = 9 As the commit log, the previous 160 bits seems a workaround for some gone problem, now the commit makes it use the default way to align with the other ports. BR, Kewen > Thanks a lot for any help. > > Qing >