Committed, thanks Richard. Pan
-----Original Message----- From: Richard Biener <rguent...@suse.de> Sent: Thursday, November 9, 2023 11:12 PM To: Li, Pan2 <pan2...@intel.com> Cc: gcc-patches@gcc.gnu.org; juzhe.zh...@rivai.ai; kito.ch...@sifive.com; Wang, Yanzhang <yanzhang.w...@intel.com> Subject: Re: [PATCH v1] Internal-fn: Add FLOATN support for l/ll round and rint [PR/112432] > Am 09.11.2023 um 15:34 schrieb pan2...@intel.com: > > From: Pan Li <pan2...@intel.com> > > The defined DEF_EXT_LIB_FLOATN_NX_BUILTINS functions should also > have DEF_INTERNAL_FLT_FLOATN_FN instead of DEF_INTERNAL_FLT_FN for > the FLOATN support. According to the glibc API and gcc builtin, we > have below table for the FLOATN is supported or not. > > +---------+-------+-------------------------------------+ > | | glibc | gcc: DEF_EXT_LIB_FLOATN_NX_BUILTINS | > +---------+-------+-------------------------------------+ > | iceil | N | N | > | ifloor | N | N | > | irint | N | N | > | iround | N | N | > | lceil | N | N | > | lfloor | N | N | > | lrint | Y | Y | > | lround | Y | Y | > | llceil | N | N | > | llfllor | N | N | > | llrint | Y | Y | > | llround | Y | Y | > +---------+-------+-------------------------------------+ > > This patch would like to support FLOATN for: > 1. lrint > 2. lround > 3. llrint > 4. llround > > The below tests are passed within this patch: > 1. x86 bootstrap and regression test. > 2. aarch64 regression test. > 3. riscv regression tests. Ok Richard > PR target/112432 > > gcc/ChangeLog: > > * internal-fn.def (LRINT): Add FLOATN support. > (LROUND): Ditto. > (LLRINT): Ditto. > (LLROUND): Ditto. > > Signed-off-by: Pan Li <pan2...@intel.com> > --- > gcc/internal-fn.def | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/gcc/internal-fn.def b/gcc/internal-fn.def > index 7f0e3759615..10f88e37bc9 100644 > --- a/gcc/internal-fn.def > +++ b/gcc/internal-fn.def > @@ -365,12 +365,12 @@ DEF_INTERNAL_FLT_FN (IRINT, ECF_CONST, lrint, > unary_convert) > DEF_INTERNAL_FLT_FN (IROUND, ECF_CONST, lround, unary_convert) > DEF_INTERNAL_FLT_FN (LCEIL, ECF_CONST, lceil, unary_convert) > DEF_INTERNAL_FLT_FN (LFLOOR, ECF_CONST, lfloor, unary_convert) > -DEF_INTERNAL_FLT_FN (LRINT, ECF_CONST, lrint, unary_convert) > -DEF_INTERNAL_FLT_FN (LROUND, ECF_CONST, lround, unary_convert) > +DEF_INTERNAL_FLT_FLOATN_FN (LRINT, ECF_CONST, lrint, unary_convert) > +DEF_INTERNAL_FLT_FLOATN_FN (LROUND, ECF_CONST, lround, unary_convert) > DEF_INTERNAL_FLT_FN (LLCEIL, ECF_CONST, lceil, unary_convert) > DEF_INTERNAL_FLT_FN (LLFLOOR, ECF_CONST, lfloor, unary_convert) > -DEF_INTERNAL_FLT_FN (LLRINT, ECF_CONST, lrint, unary_convert) > -DEF_INTERNAL_FLT_FN (LLROUND, ECF_CONST, lround, unary_convert) > +DEF_INTERNAL_FLT_FLOATN_FN (LLRINT, ECF_CONST, lrint, unary_convert) > +DEF_INTERNAL_FLT_FLOATN_FN (LLROUND, ECF_CONST, lround, unary_convert) > > /* FP rounding. */ > DEF_INTERNAL_FLT_FLOATN_FN (CEIL, ECF_CONST, ceil, unary) > -- > 2.34.1 >