The libcalls for trunc and extend of a decimal float to a binary float, and vice versa, do not have "2" in the name, although all other such conversions do.
2018-07-16 Segher Boessenkool <seg...@kernel.crashing.org> * config/rs6000/rs6000.c (init_float128_ibm): Use the correct names for conversions between IFmode and the decimal floating point modes. (init_float128_ieee): Use the correct names for conversions between KFmode and the decimal floating point modes. --- gcc/config/rs6000/rs6000.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index f95aa59..62b8ea3 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -17847,12 +17847,12 @@ init_float128_ibm (machine_mode mode) names. */ if (mode == IFmode) { - set_conv_libfunc (sext_optab, mode, SDmode, "__dpd_extendsdtf2"); - set_conv_libfunc (sext_optab, mode, DDmode, "__dpd_extendddtf2"); - set_conv_libfunc (trunc_optab, mode, TDmode, "__dpd_trunctdtf2"); - set_conv_libfunc (trunc_optab, SDmode, mode, "__dpd_trunctfsd2"); - set_conv_libfunc (trunc_optab, DDmode, mode, "__dpd_trunctfdd2"); - set_conv_libfunc (sext_optab, TDmode, mode, "__dpd_extendtftd2"); + set_conv_libfunc (sext_optab, mode, SDmode, "__dpd_extendsdtf"); + set_conv_libfunc (sext_optab, mode, DDmode, "__dpd_extendddtf"); + set_conv_libfunc (trunc_optab, mode, TDmode, "__dpd_trunctdtf"); + set_conv_libfunc (trunc_optab, SDmode, mode, "__dpd_trunctfsd"); + set_conv_libfunc (trunc_optab, DDmode, mode, "__dpd_trunctfdd"); + set_conv_libfunc (sext_optab, TDmode, mode, "__dpd_extendtftd"); if (TARGET_POWERPC64) { @@ -17951,12 +17951,12 @@ init_float128_ieee (machine_mode mode) if (mode != TFmode && FLOAT128_IBM_P (TFmode)) set_conv_libfunc (trunc_optab, TFmode, mode, "__extendkftf2"); - set_conv_libfunc (sext_optab, mode, SDmode, "__dpd_extendsdkf2"); - set_conv_libfunc (sext_optab, mode, DDmode, "__dpd_extendddkf2"); - set_conv_libfunc (trunc_optab, mode, TDmode, "__dpd_trunctdkf2"); - set_conv_libfunc (trunc_optab, SDmode, mode, "__dpd_trunckfsd2"); - set_conv_libfunc (trunc_optab, DDmode, mode, "__dpd_trunckfdd2"); - set_conv_libfunc (sext_optab, TDmode, mode, "__dpd_extendkftd2"); + set_conv_libfunc (sext_optab, mode, SDmode, "__dpd_extendsdkf"); + set_conv_libfunc (sext_optab, mode, DDmode, "__dpd_extendddkf"); + set_conv_libfunc (trunc_optab, mode, TDmode, "__dpd_trunctdkf"); + set_conv_libfunc (trunc_optab, SDmode, mode, "__dpd_trunckfsd"); + set_conv_libfunc (trunc_optab, DDmode, mode, "__dpd_trunckfdd"); + set_conv_libfunc (sext_optab, TDmode, mode, "__dpd_extendkftd"); set_conv_libfunc (sfix_optab, SImode, mode, "__fixkfsi"); set_conv_libfunc (ufix_optab, SImode, mode, "__fixunskfsi"); -- 1.8.3.1