https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96173
--- Comment #5 from joseph at codesourcery dot com <joseph at codesourcery dot com> --- I expect there's a speed/space trade-off here. You can use large tables for the conversions with less computation, or small tables with more computation (and the BID implementation in libgcc uses large tables). The DPD implementation avoids the whole question of how to convert efficiently between decimal and binary FP by doing such conversions via strings (which may end up using large tables or less efficient algorithms in the libc code used for binary FP / string conversions; if you know the source and target formats in advance, there's more scope for statically determined bounds on how much internal precision is needed to get correctly rounded results for all inputs of the given floating-point format).