https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96983
--- Comment #40 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The releases/gcc-11 branch has been updated by Michael Meissner <meiss...@gcc.gnu.org>: https://gcc.gnu.org/g:9baf563a176c4ea5a2a1606397ac09e16776d1ae commit r11-9665-g9baf563a176c4ea5a2a1606397ac09e16776d1ae Author: Michael Meissner <meiss...@linux.ibm.com> Date: Wed Mar 16 21:58:54 2022 -0400 Backport PR fortran/96983 patch to GCC 11. I applied a patch on the trunk in April 22nd, 2021 that fixes an issue (PR fortran/66983) where we could fail for 128-bit floating point types because we don't have a built-in function that is equivalent to llround for 128-bit integer types. Instead, the patch does a round operation followed by conversion to the appropriate integer size if we don't have the specialized round to specific integer type built-in functions. When I checked in the change, I was told to wait until after GCC 11.1 shipped before doing the backport. I forgot about the change until recently. Before checking it in, I did bootstraps and ran regression tests on: 1) little endian power9 using 128-bit IBM long double 2) little endian power9 using 128-bit IEEE long double 3) big endian power8 (both 64-bit and 32-bit) (and) 4) x86_64 native build There were no new regressions. The test gfortran.dg/pr96711.f90 now passes on PowerPC. In the 10 months or so since the change was made on the trunk, the code in build_round_expr did not change. 2022-03-16 Michael Meissner <meiss...@linux.ibm.com> gcc/fortran/ PR fortran/96983 * trans-intrinsic.c (build_round_expr): If int type is larger than long long, do the round and convert to the integer type. Do not try to find a floating point type the exact size of the integer type. Backport patch from 2021-04-22 on the trunk.