Hi, AFAICS the code in build_round_expr implicitly assumes that __float128 exists, which is *not* the common case among 64-bit architectures since "long double" is generally already 128-bit for them. Tested on x86-64/Linux and SPARC64/Linux, OK for the mainline? 2021-03-08 Eric Botcazou PR fortran/96983 * trans-intrinsic.c (build_round_expr): Do not implicitly assume that __float128 is the 128-bit floating-point type. -- Eric Botcazou