https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103623
Kewen Lin <linkw at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Last reconfirmed|2021-12-10 00:00:00 |2021-12-27 --- Comment #21 from Kewen Lin <linkw at gcc dot gnu.org> --- > 1) (TARGET_LONG_DOUBLE_128 && TARGET_HARD_FLOAT && !TARGET_IEEEQUAD) > > this return false on your side, which is the flag used for previous bif > support. > Could you check all the values? > > 2) FLOAT128_2REG_P (TFmode) > > this return true on your side, and as the below defintion, > > #define FLOAT128_2REG_P(MODE) \ > (FLOAT128_IBM_P (MODE) \ > || ((MODE) == TDmode) \ > || (!TARGET_FLOAT128_TYPE && FLOAT128_IEEE_P (MODE))) > > #define FLOAT128_IBM_P(MODE) \ > ((!TARGET_IEEEQUAD && TARGET_LONG_DOUBLE_128 > \ > && ((MODE) == TFmode || (MODE) == TCmode)) > \ > || (TARGET_HARD_FLOAT && ((MODE) == IFmode || (MODE) == ICmode))) > > Could you check which condition arm makes FLOAT128_2REG_P true on your side? After typing these checks, I just tried and realized that my local cross-build on ppc64le can reproduce this if I specify -mlong-double-128. So Arseny's local env make this option default as -mlong-double-128 while mine uses -mlong-double-64. Thanks Arseny! :) So confirmed.