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 <c...@us.ibm.com> > * config/rs6000/rs6000.md (floatti<mode>2, floatunsti<mode>2, > fix_trunc<mode>ti2, fixuns_trunc<mode>ti2): Add > define_insn for mode IEEE 128. > > gcc/testsuite/ChangeLog > > 2021-04-26 Carl Love <c...@us.ibm.com> > * 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 <c...@us.ibm.com> > * 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