On Mon, 2021-04-26 at 09:36 -0700, Carl Love wrote:
> Will, Segher:
>
> This patch adds support for converting to/from 128-bit integers and
> 128-bit decimal floating point formats using the new P10 instructions
> dcffixqq and dctfixqq. The new instructions are only used on P10 HW,
> otherwise the conversions continue to use the existing SW routines.
>
> The files fixkfti-sw.c and fixunskfti-sw.c are renamed versions of
> fixkfti.c and fixunskfti.c respectively. The function names in the
> files were updated with the rename as well as some white spaces fixes.
>
> The patch has been tested on
> powerpc64-linux instead (Power 8 BE)
> powerpc64-linux instead (Power 9 LE)
> powerpc64-linux instead (Power 10 LE)
>
> Please let me know if the patch is acceptable for mainline.
>
>Carl Love
>
>
> gcc/ChangeLog
>
> 2021-04-26 Carl Love
> * config/rs6000/rs6000.md (floatti2, floatunsti2,
> fix_truncti2, fixuns_truncti2): Add
> define_insn for mode IEEE 128.
>
> gcc/testsuite/ChangeLog
>
> 2021-04-26 Carl Love
> * gcc.target/powerpc/fp128_conversions.c: New file.
> * gcc.target/powerpc/int_128bit-runnable.c(vextsd2ppc_native_128bitq,
^ vextsd2ppc_native_128bitq ?
> vcmpuq, vcmpsq, vcmpequq, vcmpequq., vcmpgtsq, vcmpgtsq.
> vcmpgtuq, vcmpgtuq.): Update scan-assembler-times.
> (ppc_native_128bit): Remove dg-require-effective-target.
>
> libgcc/ChangeLog
> 2021-04-26 Carl Love
> * config.host: Add if test and set for
> libgcc_cv_powerpc_3_1_float128_hw.
> * libgcc/config/rs6000/fixkfti.c: Renamed to fixkfti-sw.c.
> Change calls of __fixkfti to __fixkfti_sw.
> * libgcc/config/rs6000/fixunskfti.c: Renamed to fixunskfti-sw.c.
> Change calls of __fixunskfti to __fixunskfti_sw.
> * libgcc/config/rs6000/float128-p10.c (__floattikf_hw,
> __floatuntikf_hw, __fixkfti_hw, __fixunskfti_hw): New file.
> * libgcc/config/rs6000/float128-ifunc.c (SW_OR_HW_ISA3_1): New macro.
> (__floattikf_resolve, __floatuntikf_resolve, __fixkfti_resolve,
> __fixunskfti_resolve): Add resolve functions.
> (__floattikf, __floatuntikf, __fixkfti, __fixunskfti): New functions.
> * libgcc/config/rs6000/float128-sed (floattitf, __floatuntitf,
> __fixtfti, __fixunstfti): Add editor commands to change names.
> * libgcc/config/rs6000/float128-sed-hw (__floattitf,
> __floatuntitf, __fixtfti, __fixunstfti): Add editor commands to
> change names.
> * libgcc/config/rs6000/floattikf.c: Renamed to floattikf-sw.c.
> * libgcc/config/rs6000/floatuntikf.c: Renamed to floatuntikf-sw.c.
> * libgcc/config/rs6000/quaad-float128.h (__floattikf_sw,
> __floatuntikf_sw, __fixkfti_sw, __fixunskfti_sw, __floattikf_hw,
> __floatuntikf_hw, __fixkfti_hw, __fixunskfti_hw, __floattikf,
> __floatuntikf, __fixkfti, __fixunskfti): New extern declarations.
> * libgcc/config/rs6000/t-float128 (floattikf, floatuntikf,
> fixkfti, fixunskfti): Remove file names from fp128_ppc_funcs.
> (floattikf-sw, floatuntikf-sw, fixkfti-sw, fixunskfti-sw): Add
> file names to fp128_ppc_funcs.
> * libgcc/config/rs6000/t-float128-hw(fp128_3_1_hw_funcs,
> fp128_3_1_hw_src, fp128_3_1_hw_static_obj, fp128_3_1_hw_shared_obj,
> fp128_3_1_hw_obj): Add variables for ISA 3.1 support.
> * libgcc/config/rs6000/t-float128-p10-hw: New file.
> * configure: Update script for isa 3.1 128-bit float support.
> * configure.ac: Add check for 128-bit float hardware support.
Ok.
Only skimmed, nothing else jumped out at me from below.
thanks
-Will