On Fri, Sep 11, 2026 at 12:47:11AM -0400, Michael Meissner wrote:
> On PowerPC Little Endian, I did notice that one test
> (gcc.dg/dfp/int128-4.c) fails.

Some background.  The _Decimal{32,64,128} <-> {,un}signed __int128
conversions were omitted for years.  When doing the _BitInt work,
after implementing _Decimal{32,64,128} <-> {,un}signed _BitInt(N)
conversions, I've implemented the former on top of the latter
(so only on 64-bit (i.e. int128) targets which do support _BitInt).
This is done in
libgcc/soft-fp/{float{,un}ti{sd,dd,td},fix{,uns}{sd,dd,td}ti}.c
libgcc/config/soft-fp has:
softfp_bid_list := 
ifeq ($(decimal_float),yes)
softfp_bid_list += bitintpow10 \
                   $(foreach m,sd dd td,fix$(m)bitint floatbitint$(m) \
                                        fix$(m)ti fixuns$(m)ti \
                                        floatti$(m) floatunti$(m))
endif

Note, because those are dfp, they aren't built into libgcc_s.so.1,
only stay in libgcc.a.
So, guess one needs to check if those are present in libgcc.a, are
built with the right options (though, no long double is involved here,
so it doesn't need the options e.g. *kf* needs), that int128-4.c
calls the right functions etc.

>  You can check in the changes to the
> master branch, and we can fix it later.  Thanks for doing this work.

Yeah, thanks a lot.

        Jakub

Reply via email to