diff --git a/sysdeps/ieee754/ldbl-128/e_acoshl.c b/sysdeps/ieee754/ldbl-128/e_acoshl.c
index 6234289..9ddb9c5 100644
--- a/sysdeps/ieee754/ldbl-128/e_acoshl.c
+++ b/sysdeps/ieee754/ldbl-128/e_acoshl.c
@@ -30,14 +30,14 @@
 #include <math.h>
 #include <math_private.h>
 
-static const long double
+static const _Float128
 one	= 1.0,
 ln2	= 0.6931471805599453094172321214581766L;
 
-long double
-__ieee754_acoshl(long double x)
+_Float128
+__ieee754_acoshl(_Float128 x)
 {
-	long double t;
+	_Float128 t;
 	u_int64_t lx;
 	int64_t hx;
 	GET_LDOUBLE_WORDS64(hx,lx,x);
diff --git a/sysdeps/ieee754/ldbl-128/e_acosl.c b/sysdeps/ieee754/ldbl-128/e_acosl.c
index 8c8ec93..a89a953 100644
--- a/sysdeps/ieee754/ldbl-128/e_acosl.c
+++ b/sysdeps/ieee754/ldbl-128/e_acosl.c
@@ -57,7 +57,7 @@
 #include <math.h>
 #include <math_private.h>
 
-static const long double
+static const _Float128
   one = 1.0L,
   pio2_hi = 1.5707963267948966192313216916397514420986L,
   pio2_lo = 4.3359050650618905123985220130216759843812E-35L,
@@ -148,10 +148,10 @@ static const long double
   qS8 = -4.175375777334867025769346564600396877176E1L;
   /* 1.000000000000000000000000000000000000000E0 */
 
-long double
-__ieee754_acosl (long double x)
+_Float128
+__ieee754_acosl (_Float128 x)
 {
-  long double z, r, w, p, q, s, t, f2;
+  _Float128 z, r, w, p, q, s, t, f2;
   int32_t ix, sign;
   ieee854_long_double_shape_type u;
 
diff --git a/sysdeps/ieee754/ldbl-128/e_asinl.c b/sysdeps/ieee754/ldbl-128/e_asinl.c
index 4a8ed4c..cb556c2 100644
--- a/sysdeps/ieee754/ldbl-128/e_asinl.c
+++ b/sysdeps/ieee754/ldbl-128/e_asinl.c
@@ -63,7 +63,7 @@
 #include <math.h>
 #include <math_private.h>
 
-static const long double
+static const _Float128
   one = 1.0L,
   huge = 1.0e+4932L,
   pio2_hi = 1.5707963267948966192313216916397514420986L,
@@ -128,10 +128,10 @@ static const long double
 
 
 
-long double
-__ieee754_asinl (long double x)
+_Float128
+__ieee754_asinl (_Float128 x)
 {
-  long double t, w, p, q, c, r, s;
+  _Float128 t, w, p, q, c, r, s;
   int32_t ix, sign, flag;
   ieee854_long_double_shape_type u;
 
@@ -153,7 +153,7 @@ __ieee754_asinl (long double x)
       if (ix < 0x3fc60000) /* |x| < 2**-57 */
 	{
 	  math_check_force_underflow (x);
-	  long double force_inexact = huge + x;
+	  _Float128 force_inexact = huge + x;
 	  math_force_eval (force_inexact);
 	  return x;		/* return x with inexact if x!=0 */
 	}
diff --git a/sysdeps/ieee754/ldbl-128/e_atan2l.c b/sysdeps/ieee754/ldbl-128/e_atan2l.c
index d31ee70..5209007 100644
--- a/sysdeps/ieee754/ldbl-128/e_atan2l.c
+++ b/sysdeps/ieee754/ldbl-128/e_atan2l.c
@@ -43,7 +43,7 @@
 #include <math.h>
 #include <math_private.h>
 
-static const long double
+static const _Float128
 tiny  = 1.0e-4900L,
 zero  = 0.0,
 pi_o_4  = 7.85398163397448309615660845819875699e-01L, /* 3ffe921fb54442d18469898cc51701b8 */
@@ -51,10 +51,10 @@ pi_o_2  = 1.57079632679489661923132169163975140e+00L, /* 3fff921fb54442d18469898
 pi      = 3.14159265358979323846264338327950280e+00L, /* 4000921fb54442d18469898cc51701b8 */
 pi_lo   = 8.67181013012378102479704402604335225e-35L; /* 3f8dcd129024e088a67cc74020bbea64 */
 
-long double
-__ieee754_atan2l(long double y, long double x)
+_Float128
+__ieee754_atan2l(_Float128 y, _Float128 x)
 {
-	long double z;
+	_Float128 z;
 	int64_t k,m,hx,hy,ix,iy;
 	u_int64_t lx,ly;
 
diff --git a/sysdeps/ieee754/ldbl-128/e_atanhl.c b/sysdeps/ieee754/ldbl-128/e_atanhl.c
index 7fa53ef..05cf956 100644
--- a/sysdeps/ieee754/ldbl-128/e_atanhl.c
+++ b/sysdeps/ieee754/ldbl-128/e_atanhl.c
@@ -36,14 +36,14 @@
 #include <math.h>
 #include <math_private.h>
 
-static const long double one = 1.0L, huge = 1e4900L;
+static const _Float128 one = 1.0L, huge = 1e4900L;
 
-static const long double zero = 0.0L;
+static const _Float128 zero = 0.0L;
 
-long double
-__ieee754_atanhl(long double x)
+_Float128
+__ieee754_atanhl(_Float128 x)
 {
-	long double t;
+	_Float128 t;
 	u_int32_t jx, ix;
 	ieee854_long_double_shape_type u;
 
diff --git a/sysdeps/ieee754/ldbl-128/e_coshl.c b/sysdeps/ieee754/ldbl-128/e_coshl.c
index 488c318..0ea0693 100644
--- a/sysdeps/ieee754/ldbl-128/e_coshl.c
+++ b/sysdeps/ieee754/ldbl-128/e_coshl.c
@@ -54,13 +54,13 @@
 #include <math.h>
 #include <math_private.h>
 
-static const long double one = 1.0, half = 0.5, huge = 1.0e4900L,
+static const _Float128 one = 1.0, half = 0.5, huge = 1.0e4900L,
 ovf_thresh = 1.1357216553474703894801348310092223067821E4L;
 
-long double
-__ieee754_coshl (long double x)
+_Float128
+__ieee754_coshl (_Float128 x)
 {
-  long double t, w;
+  _Float128 t, w;
   int32_t ex;
   ieee854_long_double_shape_type u;
 
diff --git a/sysdeps/ieee754/ldbl-128/e_exp10l.c b/sysdeps/ieee754/ldbl-128/e_exp10l.c
index 9870025..6986c72 100644
--- a/sysdeps/ieee754/ldbl-128/e_exp10l.c
+++ b/sysdeps/ieee754/ldbl-128/e_exp10l.c
@@ -19,15 +19,15 @@
 #include <math_private.h>
 #include <float.h>
 
-static const long double log10_high = 0x2.4d763776aaa2bp0L;
-static const long double log10_low = 0x5.ba95b58ae0b4c28a38a3fb3e7698p-60L;
+static const _Float128 log10_high = 0x2.4d763776aaa2bp0L;
+static const _Float128 log10_low = 0x5.ba95b58ae0b4c28a38a3fb3e7698p-60L;
 
-long double
-__ieee754_exp10l (long double arg)
+_Float128
+__ieee754_exp10l (_Float128 arg)
 {
   ieee854_long_double_shape_type u;
-  long double arg_high, arg_low;
-  long double exp_high, exp_low;
+  _Float128 arg_high, arg_low;
+  _Float128 exp_high, exp_low;
 
   if (!isfinite (arg))
     return __ieee754_expl (arg);
diff --git a/sysdeps/ieee754/ldbl-128/e_expl.c b/sysdeps/ieee754/ldbl-128/e_expl.c
index 7b71e64..5de3572 100644
--- a/sysdeps/ieee754/ldbl-128/e_expl.c
+++ b/sysdeps/ieee754/ldbl-128/e_expl.c
@@ -68,7 +68,7 @@
 #include <stdlib.h>
 #include "t_expl.h"
 
-static const long double C[] = {
+static const _Float128 C[] = {
 /* Smallest integer x for which e^x overflows.  */
 #define himark C[0]
  11356.523406294143949491931077970765L,
@@ -132,14 +132,14 @@ static const long double C[] = {
  1.98412698413981650382436541785404286E-04L,
 };
 
-long double
-__ieee754_expl (long double x)
+_Float128
+__ieee754_expl (_Float128 x)
 {
   /* Check for usual case.  */
   if (isless (x, himark) && isgreater (x, lomark))
     {
       int tval1, tval2, unsafe, n_i;
-      long double x22, n, t, result, xl;
+      _Float128 x22, n, t, result, xl;
       union ieee854_long_double ex2_u, scale_u;
       fenv_t oldenv;
 
diff --git a/sysdeps/ieee754/ldbl-128/e_fmodl.c b/sysdeps/ieee754/ldbl-128/e_fmodl.c
index 3328003..f27cd4f 100644
--- a/sysdeps/ieee754/ldbl-128/e_fmodl.c
+++ b/sysdeps/ieee754/ldbl-128/e_fmodl.c
@@ -21,10 +21,10 @@
 #include <math.h>
 #include <math_private.h>
 
-static const long double one = 1.0, Zero[] = {0.0, -0.0,};
+static const _Float128 one = 1.0, Zero[] = {0.0, -0.0,};
 
-long double
-__ieee754_fmodl (long double x, long double y)
+_Float128
+__ieee754_fmodl (_Float128 x, _Float128 y)
 {
 	int64_t n,hx,hy,hz,ix,iy,sx,i;
 	u_int64_t lx,ly,lz;
diff --git a/sysdeps/ieee754/ldbl-128/e_gammal_r.c b/sysdeps/ieee754/ldbl-128/e_gammal_r.c
index d0286e3..43282fe 100644
--- a/sysdeps/ieee754/ldbl-128/e_gammal_r.c
+++ b/sysdeps/ieee754/ldbl-128/e_gammal_r.c
@@ -25,7 +25,7 @@
 /* Coefficients B_2k / 2k(2k-1) of x^-(2k-1) inside exp in Stirling's
    approximation to gamma function.  */
 
-static const long double gamma_coeff[] =
+static const _Float128 gamma_coeff[] =
   {
     0x1.5555555555555555555555555555p-4L,
     -0xb.60b60b60b60b60b60b60b60b60b8p-12L,
@@ -49,8 +49,8 @@ static const long double gamma_coeff[] =
    2^(*EXP2_ADJ), where R is the return value and *EXP2_ADJ is set to
    avoid overflow or underflow in intermediate calculations.  */
 
-static long double
-gammal_positive (long double x, int *exp2_adj)
+static _Float128
+gammal_positive (_Float128 x, int *exp2_adj)
 {
   int local_signgam;
   if (x < 0.5L)
@@ -67,24 +67,24 @@ gammal_positive (long double x, int *exp2_adj)
     {
       /* Adjust into the range for using exp (lgamma).  */
       *exp2_adj = 0;
-      long double n = __ceill (x - 1.5L);
-      long double x_adj = x - n;
-      long double eps;
-      long double prod = __gamma_productl (x_adj, 0, n, &eps);
+      _Float128 n = __ceill (x - 1.5L);
+      _Float128 x_adj = x - n;
+      _Float128 eps;
+      _Float128 prod = __gamma_productl (x_adj, 0, n, &eps);
       return (__ieee754_expl (__ieee754_lgammal_r (x_adj, &local_signgam))
 	      * prod * (1.0L + eps));
     }
   else
     {
-      long double eps = 0;
-      long double x_eps = 0;
-      long double x_adj = x;
-      long double prod = 1;
+      _Float128 eps = 0;
+      _Float128 x_eps = 0;
+      _Float128 x_adj = x;
+      _Float128 prod = 1;
       if (x < 24.0L)
 	{
 	  /* Adjust into the range for applying Stirling's
 	     approximation.  */
-	  long double n = __ceill (24.0L - x);
+	  _Float128 n = __ceill (24.0L - x);
 	  x_adj = x + n;
 	  x_eps = (x - (x_adj - n));
 	  prod = __gamma_productl (x_adj - n, x_eps, n, &eps);
@@ -93,25 +93,25 @@ gammal_positive (long double x, int *exp2_adj)
 	 Compute gamma (X_ADJ + X_EPS) using Stirling's approximation,
 	 starting by computing pow (X_ADJ, X_ADJ) with a power of 2
 	 factored out.  */
-      long double exp_adj = -eps;
-      long double x_adj_int = __roundl (x_adj);
-      long double x_adj_frac = x_adj - x_adj_int;
+      _Float128 exp_adj = -eps;
+      _Float128 x_adj_int = __roundl (x_adj);
+      _Float128 x_adj_frac = x_adj - x_adj_int;
       int x_adj_log2;
-      long double x_adj_mant = __frexpl (x_adj, &x_adj_log2);
+      _Float128 x_adj_mant = __frexpl (x_adj, &x_adj_log2);
       if (x_adj_mant < M_SQRT1_2l)
 	{
 	  x_adj_log2--;
 	  x_adj_mant *= 2.0L;
 	}
       *exp2_adj = x_adj_log2 * (int) x_adj_int;
-      long double ret = (__ieee754_powl (x_adj_mant, x_adj)
+      _Float128 ret = (__ieee754_powl (x_adj_mant, x_adj)
 			 * __ieee754_exp2l (x_adj_log2 * x_adj_frac)
 			 * __ieee754_expl (-x_adj)
 			 * __ieee754_sqrtl (2 * M_PIl / x_adj)
 			 / prod);
       exp_adj += x_eps * __ieee754_logl (x_adj);
-      long double bsum = gamma_coeff[NCOEFF - 1];
-      long double x_adj2 = x_adj * x_adj;
+      _Float128 bsum = gamma_coeff[NCOEFF - 1];
+      _Float128 x_adj2 = x_adj * x_adj;
       for (size_t i = 1; i <= NCOEFF - 1; i++)
 	bsum = bsum / x_adj2 + gamma_coeff[NCOEFF - 1 - i];
       exp_adj += bsum / x_adj;
@@ -119,12 +119,12 @@ gammal_positive (long double x, int *exp2_adj)
     }
 }
 
-long double
-__ieee754_gammal_r (long double x, int *signgamp)
+_Float128
+__ieee754_gammal_r (_Float128 x, int *signgamp)
 {
   int64_t hx;
   u_int64_t lx;
-  long double ret;
+  _Float128 ret;
 
   GET_LDOUBLE_WORDS64 (hx, lx, x);
 
@@ -177,17 +177,17 @@ __ieee754_gammal_r (long double x, int *signgamp)
 	}
       else
 	{
-	  long double tx = __truncl (x);
+	  _Float128 tx = __truncl (x);
 	  *signgamp = (tx == 2.0L * __truncl (tx / 2.0L)) ? -1 : 1;
 	  if (x <= -1775.0L)
 	    /* Underflow.  */
 	    ret = LDBL_MIN * LDBL_MIN;
 	  else
 	    {
-	      long double frac = tx - x;
+	      _Float128 frac = tx - x;
 	      if (frac > 0.5L)
 		frac = 1.0L - frac;
-	      long double sinpix = (frac <= 0.25L
+	      _Float128 sinpix = (frac <= 0.25L
 				    ? __sinl (M_PIl * frac)
 				    : __cosl (M_PIl * (0.5L - frac)));
 	      int exp2_adj;
diff --git a/sysdeps/ieee754/ldbl-128/e_hypotl.c b/sysdeps/ieee754/ldbl-128/e_hypotl.c
index 80e5e38..df7551b 100644
--- a/sysdeps/ieee754/ldbl-128/e_hypotl.c
+++ b/sysdeps/ieee754/ldbl-128/e_hypotl.c
@@ -48,10 +48,10 @@
 #include <math.h>
 #include <math_private.h>
 
-long double
-__ieee754_hypotl(long double x, long double y)
+_Float128
+__ieee754_hypotl(_Float128 x, _Float128 y)
 {
-	long double a,b,t1,t2,y1,y2,w;
+	_Float128 a,b,t1,t2,y1,y2,w;
 	int64_t j,k,ha,hb;
 
 	GET_LDOUBLE_MSW64(ha,x);
diff --git a/sysdeps/ieee754/ldbl-128/e_ilogbl.c b/sysdeps/ieee754/ldbl-128/e_ilogbl.c
index 0a47649..9effe63 100644
--- a/sysdeps/ieee754/ldbl-128/e_ilogbl.c
+++ b/sysdeps/ieee754/ldbl-128/e_ilogbl.c
@@ -28,7 +28,7 @@ static char rcsid[] = "$NetBSD: $";
 #include <math.h>
 #include <math_private.h>
 
-int __ieee754_ilogbl (long double x)
+int __ieee754_ilogbl (_Float128 x)
 {
 	int64_t hx,lx;
 	int ix;
diff --git a/sysdeps/ieee754/ldbl-128/e_j0l.c b/sysdeps/ieee754/ldbl-128/e_j0l.c
index ddc8214..140aa39 100644
--- a/sysdeps/ieee754/ldbl-128/e_j0l.c
+++ b/sysdeps/ieee754/ldbl-128/e_j0l.c
@@ -96,16 +96,16 @@
 #include <float.h>
 
 /* 1 / sqrt(pi) */
-static const long double ONEOSQPI = 5.6418958354775628694807945156077258584405E-1L;
+static const _Float128 ONEOSQPI = 5.6418958354775628694807945156077258584405E-1L;
 /* 2 / pi */
-static const long double TWOOPI = 6.3661977236758134307553505349005744813784E-1L;
-static const long double zero = 0.0L;
+static const _Float128 TWOOPI = 6.3661977236758134307553505349005744813784E-1L;
+static const _Float128 zero = 0.0L;
 
 /* J0(x) = 1 - x^2/4 + x^2 x^2 R(x^2)
    Peak relative error 3.4e-37
    0 <= x <= 2  */
 #define NJ0_2N 6
-static const long double J0_2N[NJ0_2N + 1] = {
+static const _Float128 J0_2N[NJ0_2N + 1] = {
   3.133239376997663645548490085151484674892E16L,
  -5.479944965767990821079467311839107722107E14L,
   6.290828903904724265980249871997551894090E12L,
@@ -115,7 +115,7 @@ static const long double J0_2N[NJ0_2N + 1] = {
   1.562826808020631846245296572935547005859E2L,
 };
 #define NJ0_2D 6
-static const long double J0_2D[NJ0_2D + 1] = {
+static const _Float128 J0_2D[NJ0_2D + 1] = {
   2.005273201278504733151033654496928968261E18L,
   2.063038558793221244373123294054149790864E16L,
   1.053350447931127971406896594022010524994E14L,
@@ -130,7 +130,7 @@ static const long double J0_2D[NJ0_2D + 1] = {
    0 <= 1/x <= .0625
    Peak relative error 3.3e-36  */
 #define NP16_IN 9
-static const long double P16_IN[NP16_IN + 1] = {
+static const _Float128 P16_IN[NP16_IN + 1] = {
   -1.901689868258117463979611259731176301065E-16L,
   -1.798743043824071514483008340803573980931E-13L,
   -6.481746687115262291873324132944647438959E-11L,
@@ -143,7 +143,7 @@ static const long double P16_IN[NP16_IN + 1] = {
   -1.271468546258855781530458854476627766233E-1L,
 };
 #define NP16_ID 9
-static const long double P16_ID[NP16_ID + 1] = {
+static const _Float128 P16_ID[NP16_ID + 1] = {
   2.704625590411544837659891569420764475007E-15L,
   2.562526347676857624104306349421985403573E-12L,
   9.259137589952741054108665570122085036246E-10L,
@@ -161,7 +161,7 @@ static const long double P16_ID[NP16_ID + 1] = {
     0.0625 <= 1/x <= 0.125
     Peak relative error 2.4e-35  */
 #define NP8_16N 10
-static const long double P8_16N[NP8_16N + 1] = {
+static const _Float128 P8_16N[NP8_16N + 1] = {
   -2.335166846111159458466553806683579003632E-15L,
   -1.382763674252402720401020004169367089975E-12L,
   -3.192160804534716696058987967592784857907E-10L,
@@ -175,7 +175,7 @@ static const long double P8_16N[NP8_16N + 1] = {
   -1.670703190068873186016102289227646035035E-1L,
 };
 #define NP8_16D 10
-static const long double P8_16D[NP8_16D + 1] = {
+static const _Float128 P8_16D[NP8_16D + 1] = {
   3.321126181135871232648331450082662856743E-14L,
   1.971894594837650840586859228510007703641E-11L,
   4.571144364787008285981633719513897281690E-9L,
@@ -194,7 +194,7 @@ static const long double P8_16D[NP8_16D + 1] = {
   0.125 <= 1/x <= 0.1875
   Peak relative error 2.7e-35  */
 #define NP5_8N 10
-static const long double P5_8N[NP5_8N + 1] = {
+static const _Float128 P5_8N[NP5_8N + 1] = {
   -1.270478335089770355749591358934012019596E-12L,
   -4.007588712145412921057254992155810347245E-10L,
   -4.815187822989597568124520080486652009281E-8L,
@@ -208,7 +208,7 @@ static const long double P5_8N[NP5_8N + 1] = {
   -8.920026499909994671248893388013790366712E-3L,
 };
 #define NP5_8D 9
-static const long double P5_8D[NP5_8D + 1] = {
+static const _Float128 P5_8D[NP5_8D + 1] = {
   1.806902521016705225778045904631543990314E-11L,
   5.728502760243502431663549179135868966031E-9L,
   6.938168504826004255287618819550667978450E-7L,
@@ -226,7 +226,7 @@ static const long double P5_8D[NP5_8D + 1] = {
    Peak relative error 3.5e-35
    0.1875 <= 1/x <= 0.25  */
 #define NP4_5N 9
-static const long double P4_5N[NP4_5N + 1] = {
+static const _Float128 P4_5N[NP4_5N + 1] = {
   -9.791405771694098960254468859195175708252E-10L,
   -1.917193059944531970421626610188102836352E-7L,
   -1.393597539508855262243816152893982002084E-5L,
@@ -239,7 +239,7 @@ static const long double P4_5N[NP4_5N + 1] = {
   -2.251804386252969656586810309252357233320E-1L,
 };
 #define NP4_5D 9
-static const long double P4_5D[NP4_5D + 1] = {
+static const _Float128 P4_5D[NP4_5D + 1] = {
   1.392555487577717669739688337895791213139E-8L,
   2.748886559120659027172816051276451376854E-6L,
   2.024717710644378047477189849678576659290E-4L,
@@ -257,7 +257,7 @@ static const long double P4_5D[NP4_5D + 1] = {
    Peak relative error 2.3e-36
    0.25 <= 1/x <= 0.3125  */
 #define NP3r2_4N 9
-static const long double P3r2_4N[NP3r2_4N + 1] = {
+static const _Float128 P3r2_4N[NP3r2_4N + 1] = {
   -2.589155123706348361249809342508270121788E-8L,
   -3.746254369796115441118148490849195516593E-6L,
   -1.985595497390808544622893738135529701062E-4L,
@@ -270,7 +270,7 @@ static const long double P3r2_4N[NP3r2_4N + 1] = {
   -2.518966692256192789269859830255724429375E-1L,
 };
 #define NP3r2_4D 9
-static const long double P3r2_4D[NP3r2_4D + 1] = {
+static const _Float128 P3r2_4D[NP3r2_4D + 1] = {
   3.682353957237979993646169732962573930237E-7L,
   5.386741661883067824698973455566332102029E-5L,
   2.906881154171822780345134853794241037053E-3L,
@@ -288,7 +288,7 @@ static const long double P3r2_4D[NP3r2_4D + 1] = {
    Peak relative error 1.0e-35
    0.3125 <= 1/x <= 0.375  */
 #define NP2r7_3r2N 9
-static const long double P2r7_3r2N[NP2r7_3r2N + 1] = {
+static const _Float128 P2r7_3r2N[NP2r7_3r2N + 1] = {
   -1.917322340814391131073820537027234322550E-7L,
   -1.966595744473227183846019639723259011906E-5L,
   -7.177081163619679403212623526632690465290E-4L,
@@ -301,7 +301,7 @@ static const long double P2r7_3r2N[NP2r7_3r2N + 1] = {
   -4.098025357743657347681137871388402849581E-3L,
 };
 #define NP2r7_3r2D 8
-static const long double P2r7_3r2D[NP2r7_3r2D + 1] = {
+static const _Float128 P2r7_3r2D[NP2r7_3r2D + 1] = {
   2.726858489303036441686496086962545034018E-6L,
   2.840430827557109238386808968234848081424E-4L,
   1.063826772041781947891481054529454088832E-2L,
@@ -318,7 +318,7 @@ static const long double P2r7_3r2D[NP2r7_3r2D + 1] = {
    Peak relative error 1.3e-36
    0.3125 <= 1/x <= 0.4375  */
 #define NP2r3_2r7N 9
-static const long double P2r3_2r7N[NP2r3_2r7N + 1] = {
+static const _Float128 P2r3_2r7N[NP2r3_2r7N + 1] = {
   -1.594642785584856746358609622003310312622E-6L,
   -1.323238196302221554194031733595194539794E-4L,
   -3.856087818696874802689922536987100372345E-3L,
@@ -331,7 +331,7 @@ static const long double P2r3_2r7N[NP2r3_2r7N + 1] = {
   -3.246859189246653459359775001466924610236E-3L,
 };
 #define NP2r3_2r7D 8
-static const long double P2r3_2r7D[NP2r3_2r7D + 1] = {
+static const _Float128 P2r3_2r7D[NP2r3_2r7D + 1] = {
   2.267936634217251403663034189684284173018E-5L,
   1.918112982168673386858072491437971732237E-3L,
   5.771704085468423159125856786653868219522E-2L,
@@ -348,7 +348,7 @@ static const long double P2r3_2r7D[NP2r3_2r7D + 1] = {
    Peak relative error 1.2e-35
    0.4375 <= 1/x <= 0.5  */
 #define NP2_2r3N 8
-static const long double P2_2r3N[NP2_2r3N + 1] = {
+static const _Float128 P2_2r3N[NP2_2r3N + 1] = {
   -1.001042324337684297465071506097365389123E-4L,
   -6.289034524673365824853547252689991418981E-3L,
   -1.346527918018624234373664526930736205806E-1L,
@@ -360,7 +360,7 @@ static const long double P2_2r3N[NP2_2r3N + 1] = {
   -3.000348318524471807839934764596331810608E-1L,
 };
 #define NP2_2r3D 8
-static const long double P2_2r3D[NP2_2r3D + 1] = {
+static const _Float128 P2_2r3D[NP2_2r3D + 1] = {
   1.423705538269770974803901422532055612980E-3L,
   9.171476630091439978533535167485230575894E-2L,
   2.049776318166637248868444600215942828537E0L,
@@ -378,7 +378,7 @@ static const long double P2_2r3D[NP2_2r3D + 1] = {
    Peak relative error 2.2e-35
    0 <= 1/x <= .0625  */
 #define NQ16_IN 10
-static const long double Q16_IN[NQ16_IN + 1] = {
+static const _Float128 Q16_IN[NQ16_IN + 1] = {
   2.343640834407975740545326632205999437469E-18L,
   2.667978112927811452221176781536278257448E-15L,
   1.178415018484555397390098879501969116536E-12L,
@@ -392,7 +392,7 @@ static const long double Q16_IN[NQ16_IN + 1] = {
   1.107891967702173292405380993183694932208E-2L,
 };
 #define NQ16_ID 9
-static const long double Q16_ID[NQ16_ID + 1] = {
+static const _Float128 Q16_ID[NQ16_ID + 1] = {
   3.199850952578356211091219295199301766718E-17L,
   3.652601488020654842194486058637953363918E-14L,
   1.620179741394865258354608590461839031281E-11L,
@@ -411,7 +411,7 @@ static const long double Q16_ID[NQ16_ID + 1] = {
    Peak relative error 5.1e-36
    0.0625 <= 1/x <= 0.125  */
 #define NQ8_16N 11
-static const long double Q8_16N[NQ8_16N + 1] = {
+static const _Float128 Q8_16N[NQ8_16N + 1] = {
   1.001954266485599464105669390693597125904E-17L,
   7.545499865295034556206475956620160007849E-15L,
   2.267838684785673931024792538193202559922E-12L,
@@ -426,7 +426,7 @@ static const long double Q8_16N[NQ8_16N + 1] = {
   7.598886310387075708640370806458926458301E-2L,
 };
 #define NQ8_16D 11
-static const long double Q8_16D[NQ8_16D + 1] = {
+static const _Float128 Q8_16D[NQ8_16D + 1] = {
   1.368001558508338469503329967729951830843E-16L,
   1.034454121857542147020549303317348297289E-13L,
   3.128109209247090744354764050629381674436E-11L,
@@ -447,7 +447,7 @@ static const long double Q8_16D[NQ8_16D + 1] = {
    Peak relative error 3.9e-35
    0.125 <= 1/x <= 0.1875  */
 #define NQ5_8N 10
-static const long double Q5_8N[NQ5_8N + 1] = {
+static const _Float128 Q5_8N[NQ5_8N + 1] = {
   1.750399094021293722243426623211733898747E-13L,
   6.483426211748008735242909236490115050294E-11L,
   9.279430665656575457141747875716899958373E-9L,
@@ -461,7 +461,7 @@ static const long double Q5_8N[NQ5_8N + 1] = {
   8.383984859679804095463699702165659216831E-2L,
 };
 #define NQ5_8D 10
-static const long double Q5_8D[NQ5_8D + 1] = {
+static const _Float128 Q5_8D[NQ5_8D + 1] = {
   2.389878229704327939008104855942987615715E-12L,
   8.926142817142546018703814194987786425099E-10L,
   1.294065862406745901206588525833274399038E-7L,
@@ -481,7 +481,7 @@ static const long double Q5_8D[NQ5_8D + 1] = {
    Peak relative error 3.2e-35
    0.1875 <= 1/x <= 0.25  */
 #define NQ4_5N 10
-static const long double Q4_5N[NQ4_5N + 1] = {
+static const _Float128 Q4_5N[NQ4_5N + 1] = {
   2.233870042925895644234072357400122854086E-11L,
   5.146223225761993222808463878999151699792E-9L,
   4.459114531468296461688753521109797474523E-7L,
@@ -495,7 +495,7 @@ static const long double Q4_5N[NQ4_5N + 1] = {
   1.941595365256460232175236758506411486667E-3L,
 };
 #define NQ4_5D 9
-static const long double Q4_5D[NQ4_5D + 1] = {
+static const _Float128 Q4_5D[NQ4_5D + 1] = {
   3.049977232266999249626430127217988047453E-10L,
   7.120883230531035857746096928889676144099E-8L,
   6.301786064753734446784637919554359588859E-6L,
@@ -514,7 +514,7 @@ static const long double Q4_5D[NQ4_5D + 1] = {
    Peak relative error 1.4e-36
    0.25 <= 1/x <= 0.3125  */
 #define NQ3r2_4N 10
-static const long double Q3r2_4N[NQ3r2_4N + 1] = {
+static const _Float128 Q3r2_4N[NQ3r2_4N + 1] = {
   6.126167301024815034423262653066023684411E-10L,
   1.043969327113173261820028225053598975128E-7L,
   6.592927270288697027757438170153763220190E-6L,
@@ -528,7 +528,7 @@ static const long double Q3r2_4N[NQ3r2_4N + 1] = {
   1.229509543620976530030153018986910810747E-3L,
 };
 #define NQ3r2_4D 9
-static const long double Q3r2_4D[NQ3r2_4D + 1] = {
+static const _Float128 Q3r2_4D[NQ3r2_4D + 1] = {
   8.364260446128475461539941389210166156568E-9L,
   1.451301850638956578622154585560759862764E-6L,
   9.431830010924603664244578867057141839463E-5L,
@@ -547,7 +547,7 @@ static const long double Q3r2_4D[NQ3r2_4D + 1] = {
    Peak relative error 3.8e-36
    0.3125 <= 1/x <= 0.375  */
 #define NQ2r7_3r2N 9
-static const long double Q2r7_3r2N[NQ2r7_3r2N + 1] = {
+static const _Float128 Q2r7_3r2N[NQ2r7_3r2N + 1] = {
   7.584861620402450302063691901886141875454E-8L,
   9.300939338814216296064659459966041794591E-6L,
   4.112108906197521696032158235392604947895E-4L,
@@ -560,7 +560,7 @@ static const long double Q2r7_3r2N[NQ2r7_3r2N + 1] = {
   9.805848115375053300608712721986235900715E-2L,
 };
 #define NQ2r7_3r2D 9
-static const long double Q2r7_3r2D[NQ2r7_3r2D + 1] = {
+static const _Float128 Q2r7_3r2D[NQ2r7_3r2D + 1] = {
   1.035586492113036586458163971239438078160E-6L,
   1.301999337731768381683593636500979713689E-4L,
   5.993695702564527062553071126719088859654E-3L,
@@ -579,7 +579,7 @@ static const long double Q2r7_3r2D[NQ2r7_3r2D + 1] = {
    Peak relative error 2.2e-35
    0.375 <= 1/x <= 0.4375  */
 #define NQ2r3_2r7N 9
-static const long double Q2r3_2r7N[NQ2r3_2r7N + 1] = {
+static const _Float128 Q2r3_2r7N[NQ2r3_2r7N + 1] = {
   4.455027774980750211349941766420190722088E-7L,
   4.031998274578520170631601850866780366466E-5L,
   1.273987274325947007856695677491340636339E-3L,
@@ -592,7 +592,7 @@ static const long double Q2r3_2r7N[NQ2r3_2r7N + 1] = {
   7.261345286655345047417257611469066147561E-4L,
 };
 #define NQ2r3_2r7D 8
-static const long double Q2r3_2r7D[NQ2r3_2r7D + 1] = {
+static const _Float128 Q2r3_2r7D[NQ2r3_2r7D + 1] = {
   6.082600739680555266312417978064954793142E-6L,
   5.693622538165494742945717226571441747567E-4L,
   1.901625907009092204458328768129666975975E-2L,
@@ -610,7 +610,7 @@ static const long double Q2r3_2r7D[NQ2r3_2r7D + 1] = {
    Peak relative error 3.1e-36
    0.4375 <= 1/x <= 0.5  */
 #define NQ2_2r3N 9
-static const long double Q2_2r3N[NQ2_2r3N + 1] = {
+static const _Float128 Q2_2r3N[NQ2_2r3N + 1] = {
   2.817566786579768804844367382809101929314E-6L,
   2.122772176396691634147024348373539744935E-4L,
   5.501378031780457828919593905395747517585E-3L,
@@ -623,7 +623,7 @@ static const long double Q2_2r3N[NQ2_2r3N + 1] = {
   5.317668723070450235320878117210807236375E-4L,
 };
 #define NQ2_2r3D 8
-static const long double Q2_2r3D[NQ2_2r3D + 1] = {
+static const _Float128 Q2_2r3D[NQ2_2r3D + 1] = {
   3.846924354014260866793741072933159380158E-5L,
   3.017562820057704325510067178327449946763E-3L,
   8.356305620686867949798885808540444210935E-2L,
@@ -639,10 +639,10 @@ static const long double Q2_2r3D[NQ2_2r3D + 1] = {
 
 /* Evaluate P[n] x^n  +  P[n-1] x^(n-1)  +  ...  +  P[0] */
 
-static long double
-neval (long double x, const long double *p, int n)
+static _Float128
+neval (_Float128 x, const _Float128 *p, int n)
 {
-  long double y;
+  _Float128 y;
 
   p += n;
   y = *p--;
@@ -657,10 +657,10 @@ neval (long double x, const long double *p, int n)
 
 /* Evaluate x^n+1  +  P[n] x^(n)  +  P[n-1] x^(n-1)  +  ...  +  P[0] */
 
-static long double
-deval (long double x, const long double *p, int n)
+static _Float128
+deval (_Float128 x, const _Float128 *p, int n)
 {
-  long double y;
+  _Float128 y;
 
   p += n;
   y = x + *p--;
@@ -675,10 +675,10 @@ deval (long double x, const long double *p, int n)
 
 /* Bessel function of the first kind, order zero.  */
 
-long double
-__ieee754_j0l (long double x)
+_Float128
+__ieee754_j0l (_Float128 x)
 {
-  long double xx, xinv, z, p, q, c, s, cc, ss;
+  _Float128 xx, xinv, z, p, q, c, s, cc, ss;
 
   if (! isfinite (x))
     {
@@ -796,7 +796,7 @@ strong_alias (__ieee754_j0l, __j0l_finite)
    Peak absolute error 1.7e-36 (relative where Y0 > 1)
    0 <= x <= 2   */
 #define NY0_2N 7
-static long double Y0_2N[NY0_2N + 1] = {
+static _Float128 Y0_2N[NY0_2N + 1] = {
  -1.062023609591350692692296993537002558155E19L,
   2.542000883190248639104127452714966858866E19L,
  -1.984190771278515324281415820316054696545E18L,
@@ -807,7 +807,7 @@ static long double Y0_2N[NY0_2N + 1] = {
   8.230845651379566339707130644134372793322E6L,
 };
 #define NY0_2D 7
-static long double Y0_2D[NY0_2D + 1] = {
+static _Float128 Y0_2D[NY0_2D + 1] = {
   1.438972634353286978700329883122253752192E20L,
   1.856409101981569254247700169486907405500E18L,
   1.219693352678218589553725579802986255614E16L,
@@ -819,14 +819,14 @@ static long double Y0_2D[NY0_2D + 1] = {
  /* 1.000000000000000000000000000000000000000E0 */
 };
 
-static const long double U0 = -7.3804295108687225274343927948483016310862e-02L;
+static const _Float128 U0 = -7.3804295108687225274343927948483016310862e-02L;
 
 /* Bessel function of the second kind, order zero.  */
 
-long double
- __ieee754_y0l(long double x)
+_Float128
+ __ieee754_y0l(_Float128 x)
 {
-  long double xx, xinv, z, p, q, c, s, cc, ss;
+  _Float128 xx, xinv, z, p, q, c, s, cc, ss;
 
   if (! isfinite (x))
     {
diff --git a/sysdeps/ieee754/ldbl-128/e_j1l.c b/sysdeps/ieee754/ldbl-128/e_j1l.c
index 3265204..90b1425 100644
--- a/sysdeps/ieee754/ldbl-128/e_j1l.c
+++ b/sysdeps/ieee754/ldbl-128/e_j1l.c
@@ -101,16 +101,16 @@
 #include <float.h>
 
 /* 1 / sqrt(pi) */
-static const long double ONEOSQPI = 5.6418958354775628694807945156077258584405E-1L;
+static const _Float128 ONEOSQPI = 5.6418958354775628694807945156077258584405E-1L;
 /* 2 / pi */
-static const long double TWOOPI = 6.3661977236758134307553505349005744813784E-1L;
-static const long double zero = 0.0L;
+static const _Float128 TWOOPI = 6.3661977236758134307553505349005744813784E-1L;
+static const _Float128 zero = 0.0L;
 
 /* J1(x) = .5x + x x^2 R(x^2)
    Peak relative error 1.9e-35
    0 <= x <= 2  */
 #define NJ0_2N 6
-static const long double J0_2N[NJ0_2N + 1] = {
+static const _Float128 J0_2N[NJ0_2N + 1] = {
  -5.943799577386942855938508697619735179660E16L,
   1.812087021305009192259946997014044074711E15L,
  -2.761698314264509665075127515729146460895E13L,
@@ -120,7 +120,7 @@ static const long double J0_2N[NJ0_2N + 1] = {
  -1.559552840946694171346552770008812083969E3L
 };
 #define NJ0_2D 6
-static const long double J0_2D[NJ0_2D + 1] = {
+static const _Float128 J0_2D[NJ0_2D + 1] = {
   9.510079323819108569501613916191477479397E17L,
   1.063193817503280529676423936545854693915E16L,
   5.934143516050192600795972192791775226920E13L,
@@ -135,7 +135,7 @@ static const long double J0_2D[NJ0_2D + 1] = {
    0 <= 1/x <= .0625
    Peak relative error 3.6e-36  */
 #define NP16_IN 9
-static const long double P16_IN[NP16_IN + 1] = {
+static const _Float128 P16_IN[NP16_IN + 1] = {
   5.143674369359646114999545149085139822905E-16L,
   4.836645664124562546056389268546233577376E-13L,
   1.730945562285804805325011561498453013673E-10L,
@@ -148,7 +148,7 @@ static const long double P16_IN[NP16_IN + 1] = {
   3.032580002220628812728954785118117124520E-1L,
 };
 #define NP16_ID 9
-static const long double P16_ID[NP16_ID + 1] = {
+static const _Float128 P16_ID[NP16_ID + 1] = {
   4.389268795186898018132945193912677177553E-15L,
   4.132671824807454334388868363256830961655E-12L,
   1.482133328179508835835963635130894413136E-9L,
@@ -166,7 +166,7 @@ static const long double P16_ID[NP16_ID + 1] = {
     0.0625 <= 1/x <= 0.125
     Peak relative error 1.9e-36  */
 #define NP8_16N 11
-static const long double P8_16N[NP8_16N + 1] = {
+static const _Float128 P8_16N[NP8_16N + 1] = {
   2.984612480763362345647303274082071598135E-16L,
   1.923651877544126103941232173085475682334E-13L,
   4.881258879388869396043760693256024307743E-11L,
@@ -181,7 +181,7 @@ static const long double P8_16N[NP8_16N + 1] = {
   2.991314703282528370270179989044994319374E-2L,
 };
 #define NP8_16D 10
-static const long double P8_16D[NP8_16D + 1] = {
+static const _Float128 P8_16D[NP8_16D + 1] = {
   2.546869316918069202079580939942463010937E-15L,
   1.644650111942455804019788382157745229955E-12L,
   4.185430770291694079925607420808011147173E-10L,
@@ -200,7 +200,7 @@ static const long double P8_16D[NP8_16D + 1] = {
   0.125 <= 1/x <= 0.1875
   Peak relative error 1.3e-36  */
 #define NP5_8N 10
-static const long double P5_8N[NP5_8N + 1] = {
+static const _Float128 P5_8N[NP5_8N + 1] = {
   2.837678373978003452653763806968237227234E-12L,
   9.726641165590364928442128579282742354806E-10L,
   1.284408003604131382028112171490633956539E-7L,
@@ -214,7 +214,7 @@ static const long double P5_8N[NP5_8N + 1] = {
   5.465927698800862172307352821870223855365E-1L
 };
 #define NP5_8D 10
-static const long double P5_8D[NP5_8D + 1] = {
+static const _Float128 P5_8D[NP5_8D + 1] = {
   2.421485545794616609951168511612060482715E-11L,
   8.329862750896452929030058039752327232310E-9L,
   1.106137992233383429630592081375289010720E-6L,
@@ -233,7 +233,7 @@ static const long double P5_8D[NP5_8D + 1] = {
    Peak relative error 1.4e-36
    0.1875 <= 1/x <= 0.25  */
 #define NP4_5N 10
-static const long double P4_5N[NP4_5N + 1] = {
+static const _Float128 P4_5N[NP4_5N + 1] = {
   1.846029078268368685834261260420933914621E-10L,
   3.916295939611376119377869680335444207768E-8L,
   3.122158792018920627984597530935323997312E-6L,
@@ -247,7 +247,7 @@ static const long double P4_5N[NP4_5N + 1] = {
   1.804473805689725610052078464951722064757E-2L,
 };
 #define NP4_5D 9
-static const long double P4_5D[NP4_5D + 1] = {
+static const _Float128 P4_5D[NP4_5D + 1] = {
   1.575278146806816970152174364308980863569E-9L,
   3.361289173657099516191331123405675054321E-7L,
   2.704692281550877810424745289838790693708E-5L,
@@ -265,7 +265,7 @@ static const long double P4_5D[NP4_5D + 1] = {
    Peak relative error 3.0e-36
    0.25 <= 1/x <= 0.3125  */
 #define NP3r2_4N 9
-static const long double P3r2_4N[NP3r2_4N + 1] = {
+static const _Float128 P3r2_4N[NP3r2_4N + 1] = {
   8.240803130988044478595580300846665863782E-8L,
   1.179418958381961224222969866406483744580E-5L,
   6.179787320956386624336959112503824397755E-4L,
@@ -278,7 +278,7 @@ static const long double P3r2_4N[NP3r2_4N + 1] = {
   7.299530852495776936690976966995187714739E-1L,
 };
 #define NP3r2_4D 9
-static const long double P3r2_4D[NP3r2_4D + 1] = {
+static const _Float128 P3r2_4D[NP3r2_4D + 1] = {
   7.032152009675729604487575753279187576521E-7L,
   1.015090352324577615777511269928856742848E-4L,
   5.394262184808448484302067955186308730620E-3L,
@@ -296,7 +296,7 @@ static const long double P3r2_4D[NP3r2_4D + 1] = {
    Peak relative error 1.0e-35
    0.3125 <= 1/x <= 0.375  */
 #define NP2r7_3r2N 9
-static const long double P2r7_3r2N[NP2r7_3r2N + 1] = {
+static const _Float128 P2r7_3r2N[NP2r7_3r2N + 1] = {
   4.599033469240421554219816935160627085991E-7L,
   4.665724440345003914596647144630893997284E-5L,
   1.684348845667764271596142716944374892756E-3L,
@@ -309,7 +309,7 @@ static const long double P2r7_3r2N[NP2r7_3r2N + 1] = {
   1.316470424456061252962568223251247207325E-2L,
 };
 #define NP2r7_3r2D 8
-static const long double P2r7_3r2D[NP2r7_3r2D + 1] = {
+static const _Float128 P2r7_3r2D[NP2r7_3r2D + 1] = {
   3.924508608545520758883457108453520099610E-6L,
   4.029707889408829273226495756222078039823E-4L,
   1.484629715787703260797886463307469600219E-2L,
@@ -326,7 +326,7 @@ static const long double P2r7_3r2D[NP2r7_3r2D + 1] = {
    Peak relative error 1.7e-36
    0.3125 <= 1/x <= 0.4375  */
 #define NP2r3_2r7N 9
-static const long double P2r3_2r7N[NP2r3_2r7N + 1] = {
+static const _Float128 P2r3_2r7N[NP2r3_2r7N + 1] = {
   3.916766777108274628543759603786857387402E-6L,
   3.212176636756546217390661984304645137013E-4L,
   9.255768488524816445220126081207248947118E-3L,
@@ -339,7 +339,7 @@ static const long double P2r3_2r7N[NP2r3_2r7N + 1] = {
   1.109902737860249670981355149101343427885E-2L,
 };
 #define NP2r3_2r7D 8
-static const long double P2r3_2r7D[NP2r3_2r7D + 1] = {
+static const _Float128 P2r3_2r7D[NP2r3_2r7D + 1] = {
   3.342307880794065640312646341190547184461E-5L,
   2.782182891138893201544978009012096558265E-3L,
   8.221304931614200702142049236141249929207E-2L,
@@ -356,7 +356,7 @@ static const long double P2r3_2r7D[NP2r3_2r7D + 1] = {
    Peak relative error 1.7e-35
    0.4375 <= 1/x <= 0.5  */
 #define NP2_2r3N 8
-static const long double P2_2r3N[NP2_2r3N + 1] = {
+static const _Float128 P2_2r3N[NP2_2r3N + 1] = {
   3.397930802851248553545191160608731940751E-4L,
   2.104020902735482418784312825637833698217E-2L,
   4.442291771608095963935342749477836181939E-1L,
@@ -368,7 +368,7 @@ static const long double P2_2r3N[NP2_2r3N + 1] = {
   9.455702270242780642835086549285560316461E-1L,
 };
 #define NP2_2r3D 8
-static const long double P2_2r3D[NP2_2r3D + 1] = {
+static const _Float128 P2_2r3D[NP2_2r3D + 1] = {
   2.899568897241432883079888249845707400614E-3L,
   1.831107138190848460767699919531132426356E-1L,
   3.999350044057883839080258832758908825165E0L,
@@ -386,7 +386,7 @@ static const long double P2_2r3D[NP2_2r3D + 1] = {
    Peak relative error 8.0e-36
    0 <= 1/x <= .0625  */
 #define NQ16_IN 10
-static const long double Q16_IN[NQ16_IN + 1] = {
+static const _Float128 Q16_IN[NQ16_IN + 1] = {
   -3.917420835712508001321875734030357393421E-18L,
   -4.440311387483014485304387406538069930457E-15L,
   -1.951635424076926487780929645954007139616E-12L,
@@ -400,7 +400,7 @@ static const long double Q16_IN[NQ16_IN + 1] = {
   -1.922298704033332356899546792898156493887E-2L,
 };
 #define NQ16_ID 9
-static const long double Q16_ID[NQ16_ID + 1] = {
+static const _Float128 Q16_ID[NQ16_ID + 1] = {
   3.820418034066293517479619763498400162314E-17L,
   4.340702810799239909648911373329149354911E-14L,
   1.914985356383416140706179933075303538524E-11L,
@@ -419,7 +419,7 @@ static const long double Q16_ID[NQ16_ID + 1] = {
    Peak relative error 1.9e-36
    0.0625 <= 1/x <= 0.125  */
 #define NQ8_16N 11
-static const long double Q8_16N[NQ8_16N + 1] = {
+static const _Float128 Q8_16N[NQ8_16N + 1] = {
   -2.028630366670228670781362543615221542291E-17L,
   -1.519634620380959966438130374006858864624E-14L,
   -4.540596528116104986388796594639405114524E-12L,
@@ -434,7 +434,7 @@ static const long double Q8_16N[NQ8_16N + 1] = {
   -1.365364204556573800719985118029601401323E-1L,
 };
 #define NQ8_16D 11
-static const long double Q8_16D[NQ8_16D + 1] = {
+static const _Float128 Q8_16D[NQ8_16D + 1] = {
   1.978397614733632533581207058069628242280E-16L,
   1.487361156806202736877009608336766720560E-13L,
   4.468041406888412086042576067133365913456E-11L,
@@ -455,7 +455,7 @@ static const long double Q8_16D[NQ8_16D + 1] = {
    Peak relative error 1.5e-35
    0.125 <= 1/x <= 0.1875  */
 #define NQ5_8N 10
-static const long double Q5_8N[NQ5_8N + 1] = {
+static const _Float128 Q5_8N[NQ5_8N + 1] = {
   -3.656082407740970534915918390488336879763E-13L,
   -1.344660308497244804752334556734121771023E-10L,
   -1.909765035234071738548629788698150760791E-8L,
@@ -469,7 +469,7 @@ static const long double Q5_8N[NQ5_8N + 1] = {
   -1.549000892545288676809660828213589804884E-1L,
 };
 #define NQ5_8D 10
-static const long double Q5_8D[NQ5_8D + 1] = {
+static const _Float128 Q5_8D[NQ5_8D + 1] = {
   3.565550843359501079050699598913828460036E-12L,
   1.321016015556560621591847454285330528045E-9L,
   1.897542728662346479999969679234270605975E-7L,
@@ -489,7 +489,7 @@ static const long double Q5_8D[NQ5_8D + 1] = {
    Peak relative error 1.3e-35
    0.1875 <= 1/x <= 0.25  */
 #define NQ4_5N 10
-static const long double Q4_5N[NQ4_5N + 1] = {
+static const _Float128 Q4_5N[NQ4_5N + 1] = {
   -4.079513568708891749424783046520200903755E-11L,
   -9.326548104106791766891812583019664893311E-9L,
   -8.016795121318423066292906123815687003356E-7L,
@@ -503,7 +503,7 @@ static const long double Q4_5N[NQ4_5N + 1] = {
   -4.320429862021265463213168186061696944062E-3L,
 };
 #define NQ4_5D 9
-static const long double Q4_5D[NQ4_5D + 1] = {
+static const _Float128 Q4_5D[NQ4_5D + 1] = {
   3.978497042580921479003851216297330701056E-10L,
   9.203304163828145809278568906420772246666E-8L,
   8.059685467088175644915010485174545743798E-6L,
@@ -522,7 +522,7 @@ static const long double Q4_5D[NQ4_5D + 1] = {
    Peak relative error 2.1e-35
    0.25 <= 1/x <= 0.3125  */
 #define NQ3r2_4N 9
-static const long double Q3r2_4N[NQ3r2_4N + 1] = {
+static const _Float128 Q3r2_4N[NQ3r2_4N + 1] = {
   -1.087480809271383885936921889040388133627E-8L,
   -1.690067828697463740906962973479310170932E-6L,
   -9.608064416995105532790745641974762550982E-5L,
@@ -535,7 +535,7 @@ static const long double Q3r2_4N[NQ3r2_4N + 1] = {
   -1.812932453006641348145049323713469043328E-1L,
 };
 #define NQ3r2_4D 9
-static const long double Q3r2_4D[NQ3r2_4D + 1] = {
+static const _Float128 Q3r2_4D[NQ3r2_4D + 1] = {
   1.060552717496912381388763753841473407026E-7L,
   1.676928002024920520786883649102388708024E-5L,
   9.803481712245420839301400601140812255737E-4L,
@@ -554,7 +554,7 @@ static const long double Q3r2_4D[NQ3r2_4D + 1] = {
    Peak relative error 1.6e-36
    0.3125 <= 1/x <= 0.375  */
 #define NQ2r7_3r2N 9
-static const long double Q2r7_3r2N[NQ2r7_3r2N + 1] = {
+static const _Float128 Q2r7_3r2N[NQ2r7_3r2N + 1] = {
   -1.723405393982209853244278760171643219530E-7L,
   -2.090508758514655456365709712333460087442E-5L,
   -9.140104013370974823232873472192719263019E-4L,
@@ -567,7 +567,7 @@ static const long double Q2r7_3r2N[NQ2r7_3r2N + 1] = {
   -1.930796319299022954013840684651016077770E-1L,
 };
 #define NQ2r7_3r2D 9
-static const long double Q2r7_3r2D[NQ2r7_3r2D + 1] = {
+static const _Float128 Q2r7_3r2D[NQ2r7_3r2D + 1] = {
   1.680730662300831976234547482334347983474E-6L,
   2.084241442440551016475972218719621841120E-4L,
   9.445316642108367479043541702688736295579E-3L,
@@ -586,7 +586,7 @@ static const long double Q2r7_3r2D[NQ2r7_3r2D + 1] = {
    Peak relative error 9.5e-36
    0.375 <= 1/x <= 0.4375  */
 #define NQ2r3_2r7N 9
-static const long double Q2r3_2r7N[NQ2r3_2r7N + 1] = {
+static const _Float128 Q2r3_2r7N[NQ2r3_2r7N + 1] = {
   -8.603042076329122085722385914954878953775E-7L,
   -7.701746260451647874214968882605186675720E-5L,
   -2.407932004380727587382493696877569654271E-3L,
@@ -599,7 +599,7 @@ static const long double Q2r3_2r7N[NQ2r3_2r7N + 1] = {
   -1.890595651683552228232308756569450822905E-3L,
 };
 #define NQ2r3_2r7D 8
-static const long double Q2r3_2r7D[NQ2r3_2r7D + 1] = {
+static const _Float128 Q2r3_2r7D[NQ2r3_2r7D + 1] = {
   8.390017524798316921170710533381568175665E-6L,
   7.738148683730826286477254659973968763659E-4L,
   2.541480810958665794368759558791634341779E-2L,
@@ -617,7 +617,7 @@ static const long double Q2r3_2r7D[NQ2r3_2r7D + 1] = {
    Peak relative error 1.4e-36
    0.4375 <= 1/x <= 0.5  */
 #define NQ2_2r3N 9
-static const long double Q2_2r3N[NQ2_2r3N + 1] = {
+static const _Float128 Q2_2r3N[NQ2_2r3N + 1] = {
   -5.552507516089087822166822364590806076174E-6L,
   -4.135067659799500521040944087433752970297E-4L,
   -1.059928728869218962607068840646564457980E-2L,
@@ -630,7 +630,7 @@ static const long double Q2_2r3N[NQ2_2r3N + 1] = {
   -1.458550613639093752909985189067233504148E-3L,
 };
 #define NQ2_2r3D 8
-static const long double Q2_2r3D[NQ2_2r3D + 1] = {
+static const _Float128 Q2_2r3D[NQ2_2r3D + 1] = {
   5.415024336507980465169023996403597916115E-5L,
   4.179246497380453022046357404266022870788E-3L,
   1.136306384261959483095442402929502368598E-1L,
@@ -646,10 +646,10 @@ static const long double Q2_2r3D[NQ2_2r3D + 1] = {
 
 /* Evaluate P[n] x^n  +  P[n-1] x^(n-1)  +  ...  +  P[0] */
 
-static long double
-neval (long double x, const long double *p, int n)
+static _Float128
+neval (_Float128 x, const _Float128 *p, int n)
 {
-  long double y;
+  _Float128 y;
 
   p += n;
   y = *p--;
@@ -664,10 +664,10 @@ neval (long double x, const long double *p, int n)
 
 /* Evaluate x^n+1  +  P[n] x^(n)  +  P[n-1] x^(n-1)  +  ...  +  P[0] */
 
-static long double
-deval (long double x, const long double *p, int n)
+static _Float128
+deval (_Float128 x, const _Float128 *p, int n)
 {
-  long double y;
+  _Float128 y;
 
   p += n;
   y = x + *p--;
@@ -682,10 +682,10 @@ deval (long double x, const long double *p, int n)
 
 /* Bessel function of the first kind, order one.  */
 
-long double
-__ieee754_j1l (long double x)
+_Float128
+__ieee754_j1l (_Float128 x)
 {
-  long double xx, xinv, z, p, q, c, s, cc, ss;
+  _Float128 xx, xinv, z, p, q, c, s, cc, ss;
 
   if (! isfinite (x))
     {
@@ -699,7 +699,7 @@ __ieee754_j1l (long double x)
   xx = fabsl (x);
   if (xx <= 0x1p-58L)
     {
-      long double ret = x * 0.5L;
+      _Float128 ret = x * 0.5L;
       math_check_force_underflow (ret);
       if (ret == 0)
 	__set_errno (ERANGE);
@@ -815,7 +815,7 @@ strong_alias (__ieee754_j1l, __j1l_finite)
    Peak relative error 6.2e-38
    0 <= x <= 2   */
 #define NY0_2N 7
-static long double Y0_2N[NY0_2N + 1] = {
+static _Float128 Y0_2N[NY0_2N + 1] = {
   -6.804415404830253804408698161694720833249E19L,
   1.805450517967019908027153056150465849237E19L,
   -8.065747497063694098810419456383006737312E17L,
@@ -826,7 +826,7 @@ static long double Y0_2N[NY0_2N + 1] = {
   9.541172044989995856117187515882879304461E5L,
 };
 #define NY0_2D 7
-static long double Y0_2D[NY0_2D + 1] = {
+static _Float128 Y0_2D[NY0_2D + 1] = {
   3.470629591820267059538637461549677594549E20L,
   4.120796439009916326855848107545425217219E18L,
   2.477653371652018249749350657387030814542E16L,
@@ -841,10 +841,10 @@ static long double Y0_2D[NY0_2D + 1] = {
 
 /* Bessel function of the second kind, order one.  */
 
-long double
-__ieee754_y1l (long double x)
+_Float128
+__ieee754_y1l (_Float128 x)
 {
-  long double xx, xinv, z, p, q, c, s, cc, ss;
+  _Float128 xx, xinv, z, p, q, c, s, cc, ss;
 
   if (! isfinite (x))
     {
diff --git a/sysdeps/ieee754/ldbl-128/e_jnl.c b/sysdeps/ieee754/ldbl-128/e_jnl.c
index 98669e6..1ff2a8f 100644
--- a/sysdeps/ieee754/ldbl-128/e_jnl.c
+++ b/sysdeps/ieee754/ldbl-128/e_jnl.c
@@ -61,20 +61,20 @@
 #include <math.h>
 #include <math_private.h>
 
-static const long double
+static const _Float128
   invsqrtpi = 5.6418958354775628694807945156077258584405E-1L,
   two = 2.0e0L,
   one = 1.0e0L,
   zero = 0.0L;
 
 
-long double
-__ieee754_jnl (int n, long double x)
+_Float128
+__ieee754_jnl (int n, _Float128 x)
 {
   u_int32_t se;
   int32_t i, ix, sgn;
-  long double a, b, temp, di, ret;
-  long double z, w;
+  _Float128 a, b, temp, di, ret;
+  _Float128 z, w;
   ieee854_long_double_shape_type u;
 
 
@@ -110,7 +110,7 @@ __ieee754_jnl (int n, long double x)
     SET_RESTORE_ROUNDL (FE_TONEAREST);
     if (x == 0.0L || ix >= 0x7fff0000)	/* if x is 0 or inf */
       return sgn == 1 ? -zero : zero;
-    else if ((long double) n <= x)
+    else if ((_Float128) n <= x)
       {
 	/* Safe to use J(n+1,x)=2n/x *J(n,x)-J(n-1,x) */
 	if (ix >= 0x412D0000)
@@ -131,8 +131,8 @@ __ieee754_jnl (int n, long double x)
 	     *             2    -s+c            -c-s
 	     *             3     s+c             c-s
 	     */
-	    long double s;
-	    long double c;
+	    _Float128 s;
+	    _Float128 c;
 	    __sincosl (x, &s, &c);
 	    switch (n & 3)
 	      {
@@ -158,7 +158,7 @@ __ieee754_jnl (int n, long double x)
 	    for (i = 1; i < n; i++)
 	      {
 		temp = b;
-		b = b * ((long double) (i + i) / x) - a;	/* avoid underflow */
+		b = b * ((_Float128) (i + i) / x) - a;	/* avoid underflow */
 		a = temp;
 	      }
 	  }
@@ -178,7 +178,7 @@ __ieee754_jnl (int n, long double x)
 		b = temp;
 		for (a = one, i = 2; i <= n; i++)
 		  {
-		    a *= (long double) i;	/* a = n! */
+		    a *= (_Float128) i;	/* a = n! */
 		    b *= temp;	/* b = (x/2)^n */
 		  }
 		b = b / a;
@@ -215,11 +215,11 @@ __ieee754_jnl (int n, long double x)
 	     * When Q(k) > 1e17     good for quadruple
 	     */
 	    /* determine k */
-	    long double t, v;
-	    long double q0, q1, h, tmp;
+	    _Float128 t, v;
+	    _Float128 q0, q1, h, tmp;
 	    int32_t k, m;
-	    w = (n + n) / (long double) x;
-	    h = 2.0L / (long double) x;
+	    w = (n + n) / (_Float128) x;
+	    h = 2.0L / (_Float128) x;
 	    q0 = w;
 	    z = w + h;
 	    q1 = w * z - 1.0L;
@@ -251,7 +251,7 @@ __ieee754_jnl (int n, long double x)
 
 	    if (tmp < 1.1356523406294143949491931077970765006170e+04L)
 	      {
-		for (i = n - 1, di = (long double) (i + i); i > 0; i--)
+		for (i = n - 1, di = (_Float128) (i + i); i > 0; i--)
 		  {
 		    temp = b;
 		    b *= di;
@@ -262,7 +262,7 @@ __ieee754_jnl (int n, long double x)
 	      }
 	    else
 	      {
-		for (i = n - 1, di = (long double) (i + i); i > 0; i--)
+		for (i = n - 1, di = (_Float128) (i + i); i > 0; i--)
 		  {
 		    temp = b;
 		    b *= di;
@@ -306,13 +306,13 @@ __ieee754_jnl (int n, long double x)
 }
 strong_alias (__ieee754_jnl, __jnl_finite)
 
-long double
-__ieee754_ynl (int n, long double x)
+_Float128
+__ieee754_ynl (int n, _Float128 x)
 {
   u_int32_t se;
   int32_t i, ix;
   int32_t sign;
-  long double a, b, temp, ret;
+  _Float128 a, b, temp, ret;
   ieee854_long_double_shape_type u;
 
   u.value = x;
@@ -367,8 +367,8 @@ __ieee754_ynl (int n, long double x)
 	 *             2    -s+c            -c-s
 	 *             3     s+c             c-s
 	 */
-	long double s;
-	long double c;
+	_Float128 s;
+	_Float128 c;
 	__sincosl (x, &s, &c);
 	switch (n & 3)
 	  {
@@ -397,7 +397,7 @@ __ieee754_ynl (int n, long double x)
 	for (i = 1; i < n && se != 0xffff0000; i++)
 	  {
 	    temp = b;
-	    b = ((long double) (i + i) / x) * b - a;
+	    b = ((_Float128) (i + i) / x) * b - a;
 	    u.value = b;
 	    se = u.parts32.w0 & 0xffff0000;
 	    a = temp;
diff --git a/sysdeps/ieee754/ldbl-128/e_lgammal_r.c b/sysdeps/ieee754/ldbl-128/e_lgammal_r.c
index 5b513ea..5a5e833 100644
--- a/sysdeps/ieee754/ldbl-128/e_lgammal_r.c
+++ b/sysdeps/ieee754/ldbl-128/e_lgammal_r.c
@@ -72,21 +72,21 @@
 #include <math_private.h>
 #include <float.h>
 
-static const long double PIL = 3.1415926535897932384626433832795028841972E0L;
+static const _Float128 PIL = 3.1415926535897932384626433832795028841972E0L;
 #if LDBL_MANT_DIG == 106
-static const long double MAXLGM = 0x5.d53649e2d469dbc1f01e99fd66p+1012L;
+static const _Float128 MAXLGM = 0x5.d53649e2d469dbc1f01e99fd66p+1012L;
 #else
-static const long double MAXLGM = 1.0485738685148938358098967157129705071571E4928L;
+static const _Float128 MAXLGM = 1.0485738685148938358098967157129705071571E4928L;
 #endif
-static const long double one = 1.0L;
-static const long double huge = LDBL_MAX;
+static const _Float128 one = 1.0L;
+static const _Float128 huge = LDBL_MAX;
 
 /* log gamma(x) = ( x - 0.5 ) * log(x) - x + LS2PI + 1/x P(1/x^2)
    1/x <= 0.0741 (x >= 13.495...)
    Peak relative error 1.5e-36  */
-static const long double ls2pi = 9.1893853320467274178032973640561763986140E-1L;
+static const _Float128 ls2pi = 9.1893853320467274178032973640561763986140E-1L;
 #define NRASY 12
-static const long double RASY[NRASY + 1] =
+static const _Float128 RASY[NRASY + 1] =
 {
   8.333333333333333333333333333310437112111E-2L,
  -2.777777777777777777777774789556228296902E-3L,
@@ -108,10 +108,10 @@ static const long double RASY[NRASY + 1] =
    -0.5 <= x <= 0.5
    12.5 <= x+13 <= 13.5
    Peak relative error 1.1e-36  */
-static const long double lgam13a = 1.9987213134765625E1L;
-static const long double lgam13b = 1.3608962611495173623870550785125024484248E-6L;
+static const _Float128 lgam13a = 1.9987213134765625E1L;
+static const _Float128 lgam13b = 1.3608962611495173623870550785125024484248E-6L;
 #define NRN13 7
-static const long double RN13[NRN13 + 1] =
+static const _Float128 RN13[NRN13 + 1] =
 {
   8.591478354823578150238226576156275285700E11L,
   2.347931159756482741018258864137297157668E11L,
@@ -123,7 +123,7 @@ static const long double RN13[NRN13 + 1] =
   6.850783280018706668924952057996075215223E0L
 };
 #define NRD13 6
-static const long double RD13[NRD13 + 1] =
+static const _Float128 RD13[NRD13 + 1] =
 {
   3.401225382297342302296607039352935541669E11L,
   8.756765276918037910363513243563234551784E10L,
@@ -140,10 +140,10 @@ static const long double RD13[NRD13 + 1] =
    -0.5 <= x <= 0.5
    11.5 <= x+12 <= 12.5
    Peak relative error 4.1e-36  */
-static const long double lgam12a = 1.75023040771484375E1L;
-static const long double lgam12b = 3.7687254483392876529072161996717039575982E-6L;
+static const _Float128 lgam12a = 1.75023040771484375E1L;
+static const _Float128 lgam12b = 3.7687254483392876529072161996717039575982E-6L;
 #define NRN12 7
-static const long double RN12[NRN12 + 1] =
+static const _Float128 RN12[NRN12 + 1] =
 {
   4.709859662695606986110997348630997559137E11L,
   1.398713878079497115037857470168777995230E11L,
@@ -155,7 +155,7 @@ static const long double RN12[NRN12 + 1] =
   6.769610657004672719224614163196946862747E0L
 };
 #define NRD12 6
-static const long double RD12[NRD12 + 1] =
+static const _Float128 RD12[NRD12 + 1] =
 {
   1.928167007860968063912467318985802726613E11L,
   5.383198282277806237247492369072266389233E10L,
@@ -172,10 +172,10 @@ static const long double RD12[NRD12 + 1] =
    -0.5 <= x <= 0.5
    10.5 <= x+11 <= 11.5
    Peak relative error 1.8e-35  */
-static const long double lgam11a = 1.5104400634765625E1L;
-static const long double lgam11b = 1.1938309890295225709329251070371882250744E-5L;
+static const _Float128 lgam11a = 1.5104400634765625E1L;
+static const _Float128 lgam11b = 1.1938309890295225709329251070371882250744E-5L;
 #define NRN11 7
-static const long double RN11[NRN11 + 1] =
+static const _Float128 RN11[NRN11 + 1] =
 {
   2.446960438029415837384622675816736622795E11L,
   7.955444974446413315803799763901729640350E10L,
@@ -187,7 +187,7 @@ static const long double RN11[NRN11 + 1] =
   6.681356101133728289358838690666225691363E0L
 };
 #define NRD11 6
-static const long double RD11[NRD11 + 1] =
+static const _Float128 RD11[NRD11 + 1] =
 {
   1.040483786179428590683912396379079477432E11L,
   3.172251138489229497223696648369823779729E10L,
@@ -204,10 +204,10 @@ static const long double RD11[NRD11 + 1] =
    -0.5 <= x <= 0.5
    9.5 <= x+10 <= 10.5
    Peak relative error 5.4e-37  */
-static const long double lgam10a = 1.280181884765625E1L;
-static const long double lgam10b = 8.6324252196112077178745667061642811492557E-6L;
+static const _Float128 lgam10a = 1.280181884765625E1L;
+static const _Float128 lgam10b = 8.6324252196112077178745667061642811492557E-6L;
 #define NRN10 7
-static const long double RN10[NRN10 + 1] =
+static const _Float128 RN10[NRN10 + 1] =
 {
   -1.239059737177249934158597996648808363783E14L,
   -4.725899566371458992365624673357356908719E13L,
@@ -219,7 +219,7 @@ static const long double RN10[NRN10 + 1] =
   -2.350975266781548931856017239843273049384E4L
 };
 #define NRD10 7
-static const long double RD10[NRD10 + 1] =
+static const _Float128 RD10[NRD10 + 1] =
 {
   -5.502645997581822567468347817182347679552E13L,
   -1.970266640239849804162284805400136473801E13L,
@@ -237,10 +237,10 @@ static const long double RD10[NRD10 + 1] =
    -0.5 <= x <= 0.5
    8.5 <= x+9 <= 9.5
    Peak relative error 3.6e-36  */
-static const long double lgam9a = 1.06045989990234375E1L;
-static const long double lgam9b = 3.9037218127284172274007216547549861681400E-6L;
+static const _Float128 lgam9a = 1.06045989990234375E1L;
+static const _Float128 lgam9b = 3.9037218127284172274007216547549861681400E-6L;
 #define NRN9 7
-static const long double RN9[NRN9 + 1] =
+static const _Float128 RN9[NRN9 + 1] =
 {
   -4.936332264202687973364500998984608306189E13L,
   -2.101372682623700967335206138517766274855E13L,
@@ -252,7 +252,7 @@ static const long double RN9[NRN9 + 1] =
   -2.036280038903695980912289722995505277253E4L
 };
 #define NRD9 7
-static const long double RD9[NRD9 + 1] =
+static const _Float128 RD9[NRD9 + 1] =
 {
   -2.306006080437656357167128541231915480393E13L,
   -9.183606842453274924895648863832233799950E12L,
@@ -270,10 +270,10 @@ static const long double RD9[NRD9 + 1] =
    -0.5 <= x <= 0.5
    7.5 <= x+8 <= 8.5
    Peak relative error 2.4e-37  */
-static const long double lgam8a = 8.525146484375E0L;
-static const long double lgam8b = 1.4876690414300165531036347125050759667737E-5L;
+static const _Float128 lgam8a = 8.525146484375E0L;
+static const _Float128 lgam8b = 1.4876690414300165531036347125050759667737E-5L;
 #define NRN8 8
-static const long double RN8[NRN8 + 1] =
+static const _Float128 RN8[NRN8 + 1] =
 {
   6.600775438203423546565361176829139703289E11L,
   3.406361267593790705240802723914281025800E11L,
@@ -286,7 +286,7 @@ static const long double RN8[NRN8 + 1] =
   6.596977510622195827183948478627058738034E0L
 };
 #define NRD8 7
-static const long double RD8[NRD8 + 1] =
+static const _Float128 RD8[NRD8 + 1] =
 {
   3.274776546520735414638114828622673016920E11L,
   1.581811207929065544043963828487733970107E11L,
@@ -304,10 +304,10 @@ static const long double RD8[NRD8 + 1] =
    -0.5 <= x <= 0.5
    6.5 <= x+7 <= 7.5
    Peak relative error 3.2e-36  */
-static const long double lgam7a = 6.5792388916015625E0L;
-static const long double lgam7b = 1.2320408538495060178292903945321122583007E-5L;
+static const _Float128 lgam7a = 6.5792388916015625E0L;
+static const _Float128 lgam7b = 1.2320408538495060178292903945321122583007E-5L;
 #define NRN7 8
-static const long double RN7[NRN7 + 1] =
+static const _Float128 RN7[NRN7 + 1] =
 {
   2.065019306969459407636744543358209942213E11L,
   1.226919919023736909889724951708796532847E11L,
@@ -320,7 +320,7 @@ static const long double RN7[NRN7 + 1] =
   6.460280377802030953041566617300902020435E0L
 };
 #define NRD7 7
-static const long double RD7[NRD7 + 1] =
+static const _Float128 RD7[NRD7 + 1] =
 {
   1.102646614598516998880874785339049304483E11L,
   6.099297512712715445879759589407189290040E10L,
@@ -338,10 +338,10 @@ static const long double RD7[NRD7 + 1] =
    -0.5 <= x <= 0.5
    5.5 <= x+6 <= 6.5
    Peak relative error 6.2e-37  */
-static const long double lgam6a = 4.7874908447265625E0L;
-static const long double lgam6b = 8.9805548349424770093452324304839959231517E-7L;
+static const _Float128 lgam6a = 4.7874908447265625E0L;
+static const _Float128 lgam6b = 8.9805548349424770093452324304839959231517E-7L;
 #define NRN6 8
-static const long double RN6[NRN6 + 1] =
+static const _Float128 RN6[NRN6 + 1] =
 {
   -3.538412754670746879119162116819571823643E13L,
   -2.613432593406849155765698121483394257148E13L,
@@ -354,7 +354,7 @@ static const long double RN6[NRN6 + 1] =
   -1.576834867378554185210279285358586385266E4L
 };
 #define NRD6 8
-static const long double RD6[NRD6 + 1] =
+static const _Float128 RD6[NRD6 + 1] =
 {
   -2.073955870771283609792355579558899389085E13L,
   -1.421592856111673959642750863283919318175E13L,
@@ -373,10 +373,10 @@ static const long double RD6[NRD6 + 1] =
    -0.5 <= x <= 0.5
    4.5 <= x+5 <= 5.5
    Peak relative error 3.4e-37  */
-static const long double lgam5a = 3.17803955078125E0L;
-static const long double lgam5b = 1.4279566695619646941601297055408873990961E-5L;
+static const _Float128 lgam5a = 3.17803955078125E0L;
+static const _Float128 lgam5b = 1.4279566695619646941601297055408873990961E-5L;
 #define NRN5 9
-static const long double RN5[NRN5 + 1] =
+static const _Float128 RN5[NRN5 + 1] =
 {
   2.010952885441805899580403215533972172098E11L,
   1.916132681242540921354921906708215338584E11L,
@@ -390,7 +390,7 @@ static const long double RN5[NRN5 + 1] =
   6.330318119566998299106803922739066556550E0L
 };
 #define NRD5 8
-static const long double RD5[NRD5 + 1] =
+static const _Float128 RD5[NRD5 + 1] =
 {
   1.335189758138651840605141370223112376176E11L,
   1.174130445739492885895466097516530211283E11L,
@@ -409,10 +409,10 @@ static const long double RD5[NRD5 + 1] =
    -0.5 <= x <= 0.5
    3.5 <= x+4 <= 4.5
    Peak relative error 6.7e-37  */
-static const long double lgam4a = 1.791748046875E0L;
-static const long double lgam4b = 1.1422353055000812477358380702272722990692E-5L;
+static const _Float128 lgam4a = 1.791748046875E0L;
+static const _Float128 lgam4b = 1.1422353055000812477358380702272722990692E-5L;
 #define NRN4 9
-static const long double RN4[NRN4 + 1] =
+static const _Float128 RN4[NRN4 + 1] =
 {
   -1.026583408246155508572442242188887829208E13L,
   -1.306476685384622809290193031208776258809E13L,
@@ -426,7 +426,7 @@ static const long double RN4[NRN4 + 1] =
   -1.180509051468390914200720003907727988201E4L
 };
 #define NRD4 9
-static const long double RD4[NRD4 + 1] =
+static const _Float128 RD4[NRD4 + 1] =
 {
   -8.172669122056002077809119378047536240889E12L,
   -9.477592426087986751343695251801814226960E12L,
@@ -446,11 +446,11 @@ static const long double RD4[NRD4 + 1] =
    -0.25 <= x <= 0.5
    2.75 <= x+3 <= 3.5
    Peak relative error 6.0e-37  */
-static const long double lgam3a = 6.93145751953125E-1L;
-static const long double lgam3b = 1.4286068203094172321214581765680755001344E-6L;
+static const _Float128 lgam3a = 6.93145751953125E-1L;
+static const _Float128 lgam3b = 1.4286068203094172321214581765680755001344E-6L;
 
 #define NRN3 9
-static const long double RN3[NRN3 + 1] =
+static const _Float128 RN3[NRN3 + 1] =
 {
   -4.813901815114776281494823863935820876670E11L,
   -8.425592975288250400493910291066881992620E11L,
@@ -464,7 +464,7 @@ static const long double RN3[NRN3 + 1] =
   -8.333374463411801009783402800801201603736E3L
 };
 #define NRD3 9
-static const long double RD3[NRD3 + 1] =
+static const _Float128 RD3[NRD3 + 1] =
 {
   -5.216713843111675050627304523368029262450E11L,
   -8.014292925418308759369583419234079164391E11L,
@@ -483,10 +483,10 @@ static const long double RD3[NRD3 + 1] =
 /* log gamma(x+2.5) = log gamma(2.5) +  x P(x)/Q(x)
    -0.125 <= x <= 0.25
    2.375 <= x+2.5 <= 2.75  */
-static const long double lgam2r5a = 2.8466796875E-1L;
-static const long double lgam2r5b = 1.4901722919159632494669682701924320137696E-5L;
+static const _Float128 lgam2r5a = 2.8466796875E-1L;
+static const _Float128 lgam2r5b = 1.4901722919159632494669682701924320137696E-5L;
 #define NRN2r5 8
-static const long double RN2r5[NRN2r5 + 1] =
+static const _Float128 RN2r5[NRN2r5 + 1] =
 {
   -4.676454313888335499356699817678862233205E9L,
   -9.361888347911187924389905984624216340639E9L,
@@ -499,7 +499,7 @@ static const long double RN2r5[NRN2r5 + 1] =
   -4.717341584067827676530426007495274711306E3L
 };
 #define NRD2r5 8
-static const long double RD2r5[NRD2r5 + 1] =
+static const _Float128 RD2r5[NRD2r5 + 1] =
 {
   -6.650657966618993679456019224416926875619E9L,
   -1.099511409330635807899718829033488771623E10L,
@@ -519,7 +519,7 @@ static const long double RD2r5[NRD2r5 + 1] =
    1.875 <= x+2 <= 2.375
    Peak relative error 4.6e-36  */
 #define NRN2 9
-static const long double RN2[NRN2 + 1] =
+static const _Float128 RN2[NRN2 + 1] =
 {
   -3.716661929737318153526921358113793421524E9L,
   -1.138816715030710406922819131397532331321E10L,
@@ -533,7 +533,7 @@ static const long double RN2[NRN2 + 1] =
   -4.778761333044147141559311805999540765612E3L
 };
 #define NRD2 9
-static const long double RD2[NRD2 + 1] =
+static const _Float128 RD2[NRD2 + 1] =
 {
   -8.790916836764308497770359421351673950111E9L,
   -2.023108608053212516399197678553737477486E10L,
@@ -553,10 +553,10 @@ static const long double RD2[NRD2 + 1] =
    -0.125 <= x <= +0.125
    1.625 <= x+1.75 <= 1.875
    Peak relative error 9.2e-37 */
-static const long double lgam1r75a = -8.441162109375E-2L;
-static const long double lgam1r75b = 1.0500073264444042213965868602268256157604E-5L;
+static const _Float128 lgam1r75a = -8.441162109375E-2L;
+static const _Float128 lgam1r75b = 1.0500073264444042213965868602268256157604E-5L;
 #define NRN1r75 8
-static const long double RN1r75[NRN1r75 + 1] =
+static const _Float128 RN1r75[NRN1r75 + 1] =
 {
   -5.221061693929833937710891646275798251513E7L,
   -2.052466337474314812817883030472496436993E8L,
@@ -569,7 +569,7 @@ static const long double RN1r75[NRN1r75 + 1] =
   -2.698453601378319296159355612094598695530E3L
 };
 #define NRD1r75 8
-static const long double RD1r75[NRD1r75 + 1] =
+static const _Float128 RD1r75[NRD1r75 + 1] =
 {
   -2.109754689501705828789976311354395393605E8L,
   -5.036651829232895725959911504899241062286E8L,
@@ -588,12 +588,12 @@ static const long double RD1r75[NRD1r75 + 1] =
    -0.0867 <= x <= +0.1634
    1.374932... <= x+x0 <= 1.625032...
    Peak relative error 4.0e-36  */
-static const long double x0a = 1.4616241455078125L;
-static const long double x0b = 7.9994605498412626595423257213002588621246E-6L;
-static const long double y0a = -1.21490478515625E-1L;
-static const long double y0b = 4.1879797753919044854428223084178486438269E-6L;
+static const _Float128 x0a = 1.4616241455078125L;
+static const _Float128 x0b = 7.9994605498412626595423257213002588621246E-6L;
+static const _Float128 y0a = -1.21490478515625E-1L;
+static const _Float128 y0b = 4.1879797753919044854428223084178486438269E-6L;
 #define NRN1r5 8
-static const long double RN1r5[NRN1r5 + 1] =
+static const _Float128 RN1r5[NRN1r5 + 1] =
 {
   6.827103657233705798067415468881313128066E5L,
   1.910041815932269464714909706705242148108E6L,
@@ -606,7 +606,7 @@ static const long double RN1r5[NRN1r5 + 1] =
   5.040631576303952022968949605613514584950E0L
 };
 #define NRD1r5 8
-static const long double RD1r5[NRD1r5 + 1] =
+static const _Float128 RD1r5[NRD1r5 + 1] =
 {
   1.411036368843183477558773688484699813355E6L,
   4.378121767236251950226362443134306184849E6L,
@@ -625,10 +625,10 @@ static const long double RD1r5[NRD1r5 + 1] =
    -.125 <= x <= +.125
    1.125 <= x+1.25 <= 1.375
    Peak relative error = 4.9e-36 */
-static const long double lgam1r25a = -9.82818603515625E-2L;
-static const long double lgam1r25b = 1.0023929749338536146197303364159774377296E-5L;
+static const _Float128 lgam1r25a = -9.82818603515625E-2L;
+static const _Float128 lgam1r25b = 1.0023929749338536146197303364159774377296E-5L;
 #define NRN1r25 9
-static const long double RN1r25[NRN1r25 + 1] =
+static const _Float128 RN1r25[NRN1r25 + 1] =
 {
   -9.054787275312026472896002240379580536760E4L,
   -8.685076892989927640126560802094680794471E4L,
@@ -642,7 +642,7 @@ static const long double RN1r25[NRN1r25 + 1] =
   4.907821957946273805080625052510832015792E0L
 };
 #define NRD1r25 8
-static const long double RD1r25[NRD1r25 + 1] =
+static const _Float128 RD1r25[NRD1r25 + 1] =
 {
   3.980939377333448005389084785896660309000E5L,
   1.429634893085231519692365775184490465542E6L,
@@ -662,7 +662,7 @@ static const long double RD1r25[NRD1r25 + 1] =
    1.0 <= x+1 <= 1.125
    Peak relative error 1.1e-35  */
 #define NRN1 8
-static const long double RN1[NRN1 + 1] =
+static const _Float128 RN1[NRN1 + 1] =
 {
   -9.987560186094800756471055681088744738818E3L,
   -2.506039379419574361949680225279376329742E4L,
@@ -675,7 +675,7 @@ static const long double RN1[NRN1 + 1] =
   4.516830313569454663374271993200291219855E0L
 };
 #define NRD1 7
-static const long double RD1[NRD1 + 1] =
+static const _Float128 RD1[NRD1 + 1] =
 {
   1.730299573175751778863269333703788214547E4L,
   6.807080914851328611903744668028014678148E4L,
@@ -694,7 +694,7 @@ static const long double RD1[NRD1 + 1] =
    0.875 <= x+1 <= 1.0
    Peak relative error 7.0e-37  */
 #define NRNr9 8
-static const long double RNr9[NRNr9 + 1] =
+static const _Float128 RNr9[NRNr9 + 1] =
 {
   4.441379198241760069548832023257571176884E5L,
   1.273072988367176540909122090089580368732E6L,
@@ -707,7 +707,7 @@ static const long double RNr9[NRNr9 + 1] =
   -1.032901669542994124131223797515913955938E3L,
 };
 #define NRDr9 8
-static const long double RDr9[NRDr9 + 1] =
+static const _Float128 RDr9[NRDr9 + 1] =
 {
   -7.694488331323118759486182246005193998007E5L,
   -3.301918855321234414232308938454112213751E6L,
@@ -724,10 +724,10 @@ static const long double RDr9[NRDr9 + 1] =
 
 /* Evaluate P[n] x^n  +  P[n-1] x^(n-1)  +  ...  +  P[0] */
 
-static long double
-neval (long double x, const long double *p, int n)
+static _Float128
+neval (_Float128 x, const _Float128 *p, int n)
 {
-  long double y;
+  _Float128 y;
 
   p += n;
   y = *p--;
@@ -742,10 +742,10 @@ neval (long double x, const long double *p, int n)
 
 /* Evaluate x^n+1  +  P[n] x^(n)  +  P[n-1] x^(n-1)  +  ...  +  P[0] */
 
-static long double
-deval (long double x, const long double *p, int n)
+static _Float128
+deval (_Float128 x, const _Float128 *p, int n)
 {
-  long double y;
+  _Float128 y;
 
   p += n;
   y = x + *p--;
@@ -758,10 +758,10 @@ deval (long double x, const long double *p, int n)
 }
 
 
-long double
-__ieee754_lgammal_r (long double x, int *signgamp)
+_Float128
+__ieee754_lgammal_r (_Float128 x, int *signgamp)
 {
-  long double p, q, w, z, nx;
+  _Float128 p, q, w, z, nx;
   int i, nn;
 
   *signgamp = 1;
@@ -783,7 +783,7 @@ __ieee754_lgammal_r (long double x, int *signgamp)
       p = __floorl (q);
       if (p == q)
 	return (one / (p - p));
-      long double halfp = p * 0.5L;
+      _Float128 halfp = p * 0.5L;
       if (halfp == __floorl (halfp))
 	*signgamp = -1;
       else
diff --git a/sysdeps/ieee754/ldbl-128/e_log10l.c b/sysdeps/ieee754/ldbl-128/e_log10l.c
index 618255f..99d7caf 100644
--- a/sysdeps/ieee754/ldbl-128/e_log10l.c
+++ b/sysdeps/ieee754/ldbl-128/e_log10l.c
@@ -68,7 +68,7 @@
  * Theoretical peak relative error = 5.3e-37,
  * relative peak error spread = 2.3e-14
  */
-static const long double P[13] =
+static const _Float128 P[13] =
 {
   1.313572404063446165910279910527789794488E4L,
   7.771154681358524243729929227226708890930E4L,
@@ -84,7 +84,7 @@ static const long double P[13] =
   4.998469661968096229986658302195402690910E-1L,
   1.538612243596254322971797716843006400388E-6L
 };
-static const long double Q[12] =
+static const _Float128 Q[12] =
 {
   3.940717212190338497730839731583397586124E4L,
   2.626900195321832660448791748036714883242E5L,
@@ -107,7 +107,7 @@ static const long double Q[12] =
  * Theoretical peak relative error = 1.1e-35,
  * relative peak error spread 1.1e-9
  */
-static const long double R[6] =
+static const _Float128 R[6] =
 {
   1.418134209872192732479751274970992665513E5L,
  -8.977257995689735303686582344659576526998E4L,
@@ -116,7 +116,7 @@ static const long double R[6] =
   8.057002716646055371965756206836056074715E1L,
  -8.828896441624934385266096344596648080902E-1L
 };
-static const long double S[6] =
+static const _Float128 S[6] =
 {
   1.701761051846631278975701529965589676574E6L,
  -1.332535117259762928288745111081235577029E6L,
@@ -127,7 +127,7 @@ static const long double S[6] =
 /* 1.000000000000000000000000000000000000000E0L, */
 };
 
-static const long double
+static const _Float128
 /* log10(2) */
 L102A = 0.3125L,
 L102B = -1.14700043360188047862611052755069732318101185E-2L,
@@ -141,10 +141,10 @@ SQRTH = 7.071067811865475244008443621048490392848359E-1L;
 
 /* Evaluate P[n] x^n  +  P[n-1] x^(n-1)  +  ...  +  P[0] */
 
-static long double
-neval (long double x, const long double *p, int n)
+static _Float128
+neval (_Float128 x, const _Float128 *p, int n)
 {
-  long double y;
+  _Float128 y;
 
   p += n;
   y = *p--;
@@ -159,10 +159,10 @@ neval (long double x, const long double *p, int n)
 
 /* Evaluate x^n+1  +  P[n] x^(n)  +  P[n-1] x^(n-1)  +  ...  +  P[0] */
 
-static long double
-deval (long double x, const long double *p, int n)
+static _Float128
+deval (_Float128 x, const _Float128 *p, int n)
 {
-  long double y;
+  _Float128 y;
 
   p += n;
   y = x + *p--;
@@ -176,11 +176,11 @@ deval (long double x, const long double *p, int n)
 
 
 
-long double
-__ieee754_log10l (long double x)
+_Float128
+__ieee754_log10l (_Float128 x)
 {
-  long double z;
-  long double y;
+  _Float128 z;
+  _Float128 y;
   int e;
   int64_t hx, lx;
 
diff --git a/sysdeps/ieee754/ldbl-128/e_log2l.c b/sysdeps/ieee754/ldbl-128/e_log2l.c
index 6b1faa0..c83ec4c 100644
--- a/sysdeps/ieee754/ldbl-128/e_log2l.c
+++ b/sysdeps/ieee754/ldbl-128/e_log2l.c
@@ -67,7 +67,7 @@
  * Theoretical peak relative error = 5.3e-37,
  * relative peak error spread = 2.3e-14
  */
-static const long double P[13] =
+static const _Float128 P[13] =
 {
   1.313572404063446165910279910527789794488E4L,
   7.771154681358524243729929227226708890930E4L,
@@ -83,7 +83,7 @@ static const long double P[13] =
   4.998469661968096229986658302195402690910E-1L,
   1.538612243596254322971797716843006400388E-6L
 };
-static const long double Q[12] =
+static const _Float128 Q[12] =
 {
   3.940717212190338497730839731583397586124E4L,
   2.626900195321832660448791748036714883242E5L,
@@ -106,7 +106,7 @@ static const long double Q[12] =
  * Theoretical peak relative error = 1.1e-35,
  * relative peak error spread 1.1e-9
  */
-static const long double R[6] =
+static const _Float128 R[6] =
 {
   1.418134209872192732479751274970992665513E5L,
  -8.977257995689735303686582344659576526998E4L,
@@ -115,7 +115,7 @@ static const long double R[6] =
   8.057002716646055371965756206836056074715E1L,
  -8.828896441624934385266096344596648080902E-1L
 };
-static const long double S[6] =
+static const _Float128 S[6] =
 {
   1.701761051846631278975701529965589676574E6L,
  -1.332535117259762928288745111081235577029E6L,
@@ -126,7 +126,7 @@ static const long double S[6] =
 /* 1.000000000000000000000000000000000000000E0L, */
 };
 
-static const long double
+static const _Float128
 /* log2(e) - 1 */
 LOG2EA = 4.4269504088896340735992468100189213742664595E-1L,
 /* sqrt(2)/2 */
@@ -135,10 +135,10 @@ SQRTH = 7.071067811865475244008443621048490392848359E-1L;
 
 /* Evaluate P[n] x^n  +  P[n-1] x^(n-1)  +  ...  +  P[0] */
 
-static long double
-neval (long double x, const long double *p, int n)
+static _Float128
+neval (_Float128 x, const _Float128 *p, int n)
 {
-  long double y;
+  _Float128 y;
 
   p += n;
   y = *p--;
@@ -153,10 +153,10 @@ neval (long double x, const long double *p, int n)
 
 /* Evaluate x^n+1  +  P[n] x^(n)  +  P[n-1] x^(n-1)  +  ...  +  P[0] */
 
-static long double
-deval (long double x, const long double *p, int n)
+static _Float128
+deval (_Float128 x, const _Float128 *p, int n)
 {
-  long double y;
+  _Float128 y;
 
   p += n;
   y = x + *p--;
@@ -170,11 +170,11 @@ deval (long double x, const long double *p, int n)
 
 
 
-long double
-__ieee754_log2l (long double x)
+_Float128
+__ieee754_log2l (_Float128 x)
 {
-  long double z;
-  long double y;
+  _Float128 z;
+  _Float128 y;
   int e;
   int64_t hx, lx;
 
diff --git a/sysdeps/ieee754/ldbl-128/e_logl.c b/sysdeps/ieee754/ldbl-128/e_logl.c
index cb43816..030918d 100644
--- a/sysdeps/ieee754/ldbl-128/e_logl.c
+++ b/sysdeps/ieee754/ldbl-128/e_logl.c
@@ -63,7 +63,7 @@
 /* log(1+x) = x - .5 x^2 + x^3 l(x)
    -.0078125 <= x <= +.0078125
    peak relative error 1.2e-37 */
-static const long double
+static const _Float128
 l3 =   3.333333333333333333333333333333336096926E-1L,
 l4 =  -2.499999999999999999999999999486853077002E-1L,
 l5 =   1.999999999999999999999999998515277861905E-1L,
@@ -81,7 +81,7 @@ l15 =  6.668057591071739754844678883223432347481E-2L;
 /* Lookup table of ln(t) - (t-1)
     t = 0.5 + (k+26)/128)
     k = 0, ..., 91   */
-static const long double logtbl[92] = {
+static const _Float128 logtbl[92] = {
 -5.5345593589352099112142921677820359632418E-2L,
 -5.2108257402767124761784665198737642086148E-2L,
 -4.8991686870576856279407775480686721935120E-2L,
@@ -178,14 +178,14 @@ static const long double logtbl[92] = {
 };
 
 /* ln(2) = ln2a + ln2b with extended precision. */
-static const long double
+static const _Float128
   ln2a = 6.93145751953125e-1L,
   ln2b = 1.4286068203094172321214581765680755001344E-6L;
 
-long double
-__ieee754_logl(long double x)
+_Float128
+__ieee754_logl(_Float128 x)
 {
-  long double z, y, w;
+  _Float128 z, y, w;
   ieee854_long_double_shape_type u, t;
   unsigned int m;
   int k, e;
diff --git a/sysdeps/ieee754/ldbl-128/e_powl.c b/sysdeps/ieee754/ldbl-128/e_powl.c
index 7f3037f..b090ebd 100644
--- a/sysdeps/ieee754/ldbl-128/e_powl.c
+++ b/sysdeps/ieee754/ldbl-128/e_powl.c
@@ -67,24 +67,24 @@
 #include <math.h>
 #include <math_private.h>
 
-static const long double bp[] = {
+static const _Float128 bp[] = {
   1.0L,
   1.5L,
 };
 
 /* log_2(1.5) */
-static const long double dp_h[] = {
+static const _Float128 dp_h[] = {
   0.0,
   5.8496250072115607565592654282227158546448E-1L
 };
 
 /* Low part of log_2(1.5) */
-static const long double dp_l[] = {
+static const _Float128 dp_l[] = {
   0.0,
   1.0579781240112554492329533686862998106046E-16L
 };
 
-static const long double zero = 0.0L,
+static const _Float128 zero = 0.0L,
   one = 1.0L,
   two = 2.0L,
   two113 = 1.0384593717069655257060992658440192E34L,
@@ -95,7 +95,7 @@ static const long double zero = 0.0L,
    z = (x-1)/(x+1)
    1 <= x <= 1.25
    Peak relative error 2.3e-37 */
-static const long double LN[] =
+static const _Float128 LN[] =
 {
  -3.0779177200290054398792536829702930623200E1L,
   6.5135778082209159921251824580292116201640E1L,
@@ -103,7 +103,7 @@ static const long double LN[] =
   1.2510208195629420304615674658258363295208E1L,
  -9.9266909031921425609179910128531667336670E-1L
 };
-static const long double LD[] =
+static const _Float128 LD[] =
 {
  -5.129862866715009066465422805058933131960E1L,
   1.452015077564081884387441590064272782044E2L,
@@ -116,7 +116,7 @@ static const long double LD[] =
 /* exp(x) = 1 + x - x / (1 - 2 / (x - x^2 R(x^2)))
    0 <= x <= 0.5
    Peak relative error 5.7e-38  */
-static const long double PN[] =
+static const _Float128 PN[] =
 {
   5.081801691915377692446852383385968225675E8L,
   9.360895299872484512023336636427675327355E6L,
@@ -124,7 +124,7 @@ static const long double PN[] =
   5.201006511142748908655720086041570288182E1L,
   9.088368420359444263703202925095675982530E-3L,
 };
-static const long double PD[] =
+static const _Float128 PD[] =
 {
   3.049081015149226615468111430031590411682E9L,
   1.069833887183886839966085436512368982758E8L,
@@ -133,7 +133,7 @@ static const long double PD[] =
   /* 1.0E0 */
 };
 
-static const long double
+static const _Float128
   /* ln 2 */
   lg2 = 6.9314718055994530941723212145817656807550E-1L,
   lg2_h = 6.9314718055994528622676398299518041312695E-1L,
@@ -144,12 +144,12 @@ static const long double
   cp_h = 9.6179669392597555432899980587535537779331E-1L,
   cp_l = 5.0577616648125906047157785230014751039424E-17L;
 
-long double
-__ieee754_powl (long double x, long double y)
+_Float128
+__ieee754_powl (_Float128 x, _Float128 y)
 {
-  long double z, ax, z_h, z_l, p_h, p_l;
-  long double y1, t1, t2, r, s, sgn, t, u, v, w;
-  long double s2, s_h, s_l, t_h, t_l, ay;
+  _Float128 z, ax, z_h, z_l, p_h, p_l;
+  _Float128 y1, t1, t2, r, s, sgn, t, u, v, w;
+  _Float128 s2, s_h, s_l, t_h, t_l, ay;
   int32_t i, j, k, yisint, n;
   u_int32_t ix, iy;
   int32_t hx, hy;
@@ -363,7 +363,7 @@ __ieee754_powl (long double x, long double y)
   z_h = cp_h * p_h;		/* cp_h+cp_l = 2/(3*log2) */
   z_l = cp_l * p_h + p_l * cp + dp_l[k];
   /* log2(ax) = (s+..)*2/(3*log2) = n + dp_h + z_h + z_l */
-  t = (long double) n;
+  t = (_Float128) n;
   t1 = (((z_h + z_l) + dp_h[k]) + t);
   o.value = t1;
   o.parts32.w3 = 0;
@@ -437,7 +437,7 @@ __ieee754_powl (long double x, long double y)
   if ((j >> 16) <= 0)
     {
       z = __scalbnl (z, n);	/* subnormal output */
-      long double force_underflow = z * z;
+      _Float128 force_underflow = z * z;
       math_force_eval (force_underflow);
     }
   else
diff --git a/sysdeps/ieee754/ldbl-128/e_rem_pio2l.c b/sysdeps/ieee754/ldbl-128/e_rem_pio2l.c
index 101a4c9..4a580b3 100644
--- a/sysdeps/ieee754/ldbl-128/e_rem_pio2l.c
+++ b/sysdeps/ieee754/ldbl-128/e_rem_pio2l.c
@@ -183,7 +183,7 @@ static const int32_t two_over_pi[] = {
 0x7b7b89, 0x483d38,
 };
 
-static const long double c[] = {
+static const _Float128 c[] = {
 /* 113 bits of pi/2 */
 #define PI_2_1 c[0]
  0x1.921fb54442d18469898cc51701b8p+0L,
@@ -193,9 +193,9 @@ static const long double c[] = {
  0x3.9a252049c1114cf98e804177d4c8p-116L,
 };
 
-int32_t __ieee754_rem_pio2l(long double x, long double *y)
+int32_t __ieee754_rem_pio2l(_Float128 x, _Float128 *y)
 {
-  long double z, w, t;
+  _Float128 z, w, t;
   double tx[8];
   int64_t exp, n, ix, hx;
   u_int64_t lx;
@@ -255,8 +255,8 @@ int32_t __ieee754_rem_pio2l(long double x, long double *y)
 
   /* The result is now stored in 3 double values, we need to convert it into
      two long double values.  */
-  t = (long double) tx [6] + (long double) tx [7];
-  w = (long double) tx [5];
+  t = (_Float128) tx [6] + (_Float128) tx [7];
+  w = (_Float128) tx [5];
 
   if (hx >= 0)
     {
diff --git a/sysdeps/ieee754/ldbl-128/e_remainderl.c b/sysdeps/ieee754/ldbl-128/e_remainderl.c
index 88df6f5..b8ae3ff 100644
--- a/sysdeps/ieee754/ldbl-128/e_remainderl.c
+++ b/sysdeps/ieee754/ldbl-128/e_remainderl.c
@@ -24,15 +24,15 @@
 #include <math.h>
 #include <math_private.h>
 
-static const long double zero = 0.0L;
+static const _Float128 zero = 0.0L;
 
 
-long double
-__ieee754_remainderl(long double x, long double p)
+_Float128
+__ieee754_remainderl(_Float128 x, _Float128 p)
 {
 	int64_t hx,hp;
 	u_int64_t sx,lx,lp;
-	long double p_half;
+	_Float128 p_half;
 
 	GET_LDOUBLE_WORDS64(hx,lx,x);
 	GET_LDOUBLE_WORDS64(hp,lp,p);
diff --git a/sysdeps/ieee754/ldbl-128/e_sinhl.c b/sysdeps/ieee754/ldbl-128/e_sinhl.c
index 11974a3..886d803 100644
--- a/sysdeps/ieee754/ldbl-128/e_sinhl.c
+++ b/sysdeps/ieee754/ldbl-128/e_sinhl.c
@@ -57,13 +57,13 @@
 #include <math.h>
 #include <math_private.h>
 
-static const long double one = 1.0, shuge = 1.0e4931L,
+static const _Float128 one = 1.0, shuge = 1.0e4931L,
 ovf_thresh = 1.1357216553474703894801348310092223067821E4L;
 
-long double
-__ieee754_sinhl (long double x)
+_Float128
+__ieee754_sinhl (_Float128 x)
 {
-  long double t, w, h;
+  _Float128 t, w, h;
   u_int32_t jx, ix;
   ieee854_long_double_shape_type u;
 
diff --git a/sysdeps/ieee754/ldbl-128/gamma_productl.c b/sysdeps/ieee754/ldbl-128/gamma_productl.c
index 8ad0452..c4ddf8a 100644
--- a/sysdeps/ieee754/ldbl-128/gamma_productl.c
+++ b/sysdeps/ieee754/ldbl-128/gamma_productl.c
@@ -28,16 +28,16 @@
    X is small enough that factors quadratic in it can be
    neglected.  */
 
-long double
-__gamma_productl (long double x, long double x_eps, int n, long double *eps)
+_Float128
+__gamma_productl (_Float128 x, _Float128 x_eps, int n, _Float128 *eps)
 {
   SET_RESTORE_ROUNDL (FE_TONEAREST);
-  long double ret = x;
+  _Float128 ret = x;
   *eps = x_eps / x;
   for (int i = 1; i < n; i++)
     {
       *eps += x_eps / (x + i);
-      long double lo;
+      _Float128 lo;
       mul_splitl (&ret, &lo, ret, x + i);
       *eps += lo / ret;
     }
diff --git a/sysdeps/ieee754/ldbl-128/k_cosl.c b/sysdeps/ieee754/ldbl-128/k_cosl.c
index 3985b12..8863d2c 100644
--- a/sysdeps/ieee754/ldbl-128/k_cosl.c
+++ b/sysdeps/ieee754/ldbl-128/k_cosl.c
@@ -20,7 +20,7 @@
 #include <math.h>
 #include <math_private.h>
 
-static const long double c[] = {
+static const _Float128 c[] = {
 #define ONE c[0]
  1.00000000000000000000000000000000000E+00L, /* 3fff0000000000000000000000000000 */
 
@@ -74,12 +74,12 @@ static const long double c[] = {
 #define SINCOSL_COS_LO 1
 #define SINCOSL_SIN_HI 2
 #define SINCOSL_SIN_LO 3
-extern const long double __sincosl_table[];
+extern const _Float128 __sincosl_table[];
 
-long double
-__kernel_cosl(long double x, long double y)
+_Float128
+__kernel_cosl(_Float128 x, _Float128 y)
 {
-  long double h, l, z, sin_l, cos_l_m1;
+  _Float128 h, l, z, sin_l, cos_l_m1;
   int64_t ix;
   u_int32_t tix, hix, index;
   GET_LDOUBLE_MSW64 (ix, x);
diff --git a/sysdeps/ieee754/ldbl-128/k_sincosl.c b/sysdeps/ieee754/ldbl-128/k_sincosl.c
index 404df35..2a28733 100644
--- a/sysdeps/ieee754/ldbl-128/k_sincosl.c
+++ b/sysdeps/ieee754/ldbl-128/k_sincosl.c
@@ -21,7 +21,7 @@
 #include <math.h>
 #include <math_private.h>
 
-static const long double c[] = {
+static const _Float128 c[] = {
 #define ONE c[0]
  1.00000000000000000000000000000000000E+00L, /* 3fff0000000000000000000000000000 */
 
@@ -94,12 +94,12 @@ static const long double c[] = {
 #define SINCOSL_COS_LO 1
 #define SINCOSL_SIN_HI 2
 #define SINCOSL_SIN_LO 3
-extern const long double __sincosl_table[];
+extern const _Float128 __sincosl_table[];
 
 void
-__kernel_sincosl(long double x, long double y, long double *sinx, long double *cosx, int iy)
+__kernel_sincosl(_Float128 x, _Float128 y, _Float128 *sinx, _Float128 *cosx, int iy)
 {
-  long double h, l, z, sin_l, cos_l_m1;
+  _Float128 h, l, z, sin_l, cos_l_m1;
   int64_t ix;
   u_int32_t tix, hix, index;
   GET_LDOUBLE_MSW64 (ix, x);
diff --git a/sysdeps/ieee754/ldbl-128/k_sinl.c b/sysdeps/ieee754/ldbl-128/k_sinl.c
index 6290b17..e49d869 100644
--- a/sysdeps/ieee754/ldbl-128/k_sinl.c
+++ b/sysdeps/ieee754/ldbl-128/k_sinl.c
@@ -21,7 +21,7 @@
 #include <math.h>
 #include <math_private.h>
 
-static const long double c[] = {
+static const _Float128 c[] = {
 #define ONE c[0]
  1.00000000000000000000000000000000000E+00L, /* 3fff0000000000000000000000000000 */
 
@@ -75,12 +75,12 @@ static const long double c[] = {
 #define SINCOSL_COS_LO 1
 #define SINCOSL_SIN_HI 2
 #define SINCOSL_SIN_LO 3
-extern const long double __sincosl_table[];
+extern const _Float128 __sincosl_table[];
 
-long double
-__kernel_sinl(long double x, long double y, int iy)
+_Float128
+__kernel_sinl(_Float128 x, _Float128 y, int iy)
 {
-  long double h, l, z, sin_l, cos_l_m1;
+  _Float128 h, l, z, sin_l, cos_l_m1;
   int64_t ix;
   u_int32_t tix, hix, index;
   GET_LDOUBLE_MSW64 (ix, x);
diff --git a/sysdeps/ieee754/ldbl-128/k_tanl.c b/sysdeps/ieee754/ldbl-128/k_tanl.c
index cd2bbf5..3a16e09 100644
--- a/sysdeps/ieee754/ldbl-128/k_tanl.c
+++ b/sysdeps/ieee754/ldbl-128/k_tanl.c
@@ -60,7 +60,7 @@
 #include <libc-internal.h>
 #include <math.h>
 #include <math_private.h>
-static const long double
+static const _Float128
   one = 1.0L,
   pio4hi = 7.8539816339744830961566084581987569936977E-1L,
   pio4lo = 2.1679525325309452561992610065108379921906E-35L,
@@ -83,10 +83,10 @@ static const long double
   /* 1.000000000000000000000000000000000000000E0 */
 
 
-long double
-__kernel_tanl (long double x, long double y, int iy)
+_Float128
+__kernel_tanl (_Float128 x, _Float128 y, int iy)
 {
-  long double z, r, v, w, s;
+  _Float128 z, r, v, w, s;
   int32_t ix, sign;
   ieee854_long_double_shape_type u, u1;
 
@@ -134,7 +134,7 @@ __kernel_tanl (long double x, long double y, int iy)
   w = x + r;
   if (ix >= 0x3ffe5942)
     {
-      v = (long double) iy;
+      v = (_Float128) iy;
       w = (v - 2.0 * (x - (w * w / (w + v) - r)));
       /* SIGN is set for arguments that reach this code, but not
 	 otherwise, resulting in warnings that it may be used
diff --git a/sysdeps/ieee754/ldbl-128/lgamma_negl.c b/sysdeps/ieee754/ldbl-128/lgamma_negl.c
index df46199..a624fc1 100644
--- a/sysdeps/ieee754/ldbl-128/lgamma_negl.c
+++ b/sysdeps/ieee754/ldbl-128/lgamma_negl.c
@@ -20,7 +20,7 @@
 #include <math.h>
 #include <math_private.h>
 
-static const long double lgamma_zeros[][2] =
+static const _Float128 lgamma_zeros[][2] =
   {
     { -0x2.74ff92c01f0d82abec9f315f1a08p+0L, 0xe.d3ccb7fb2658634a2b9f6b2ba81p-116L },
     { -0x2.bf6821437b20197995a4b4641eaep+0L, -0xb.f4b00b4829f961e428533e6ad048p-116L },
@@ -120,14 +120,14 @@ static const long double lgamma_zeros[][2] =
     { -0x3.2p+4L, 0x3.766dedc259af040be140a68a6c04p-216L },
   };
 
-static const long double e_hi = 0x2.b7e151628aed2a6abf7158809cf4p+0L;
-static const long double e_lo = 0xf.3c762e7160f38b4da56a784d9048p-116L;
+static const _Float128 e_hi = 0x2.b7e151628aed2a6abf7158809cf4p+0L;
+static const _Float128 e_lo = 0xf.3c762e7160f38b4da56a784d9048p-116L;
 
 
 /* Coefficients B_2k / 2k(2k-1) of x^-(2k-1) in Stirling's
    approximation to lgamma function.  */
 
-static const long double lgamma_coeff[] =
+static const _Float128 lgamma_coeff[] =
   {
     0x1.5555555555555555555555555555p-4L,
     -0xb.60b60b60b60b60b60b60b60b60b8p-12L,
@@ -166,7 +166,7 @@ static const long double lgamma_coeff[] =
    polynomial is expressed in terms of x-xm, where xm is the midpoint
    of the interval for which the polynomial applies.  */
 
-static const long double poly_coeff[] =
+static const _Float128 poly_coeff[] =
   {
     /* Interval [-2.125, -2] (polynomial degree 23).  */
     -0x1.0b71c5c54d42eb6c17f30b7aa8f5p+0L,
@@ -412,8 +412,8 @@ static const size_t poly_end[] =
 
 /* Compute sin (pi * X) for -0.25 <= X <= 0.5.  */
 
-static long double
-lg_sinpi (long double x)
+static _Float128
+lg_sinpi (_Float128 x)
 {
   if (x <= 0.25L)
     return __sinl (M_PIl * x);
@@ -423,8 +423,8 @@ lg_sinpi (long double x)
 
 /* Compute cos (pi * X) for -0.25 <= X <= 0.5.  */
 
-static long double
-lg_cospi (long double x)
+static _Float128
+lg_cospi (_Float128 x)
 {
   if (x <= 0.25L)
     return __cosl (M_PIl * x);
@@ -434,8 +434,8 @@ lg_cospi (long double x)
 
 /* Compute cot (pi * X) for -0.25 <= X <= 0.5.  */
 
-static long double
-lg_cotpi (long double x)
+static _Float128
+lg_cotpi (_Float128 x)
 {
   return lg_cospi (x) / lg_sinpi (x);
 }
@@ -443,34 +443,34 @@ lg_cotpi (long double x)
 /* Compute lgamma of a negative argument -50 < X < -2, setting
    *SIGNGAMP accordingly.  */
 
-long double
-__lgamma_negl (long double x, int *signgamp)
+_Float128
+__lgamma_negl (_Float128 x, int *signgamp)
 {
   /* Determine the half-integer region X lies in, handle exact
      integers and determine the sign of the result.  */
   int i = __floorl (-2 * x);
   if ((i & 1) == 0 && i == -2 * x)
     return 1.0L / 0.0L;
-  long double xn = ((i & 1) == 0 ? -i / 2 : (-i - 1) / 2);
+  _Float128 xn = ((i & 1) == 0 ? -i / 2 : (-i - 1) / 2);
   i -= 4;
   *signgamp = ((i & 2) == 0 ? -1 : 1);
 
   SET_RESTORE_ROUNDL (FE_TONEAREST);
 
   /* Expand around the zero X0 = X0_HI + X0_LO.  */
-  long double x0_hi = lgamma_zeros[i][0], x0_lo = lgamma_zeros[i][1];
-  long double xdiff = x - x0_hi - x0_lo;
+  _Float128 x0_hi = lgamma_zeros[i][0], x0_lo = lgamma_zeros[i][1];
+  _Float128 xdiff = x - x0_hi - x0_lo;
 
   /* For arguments in the range -3 to -2, use polynomial
      approximations to an adjusted version of the gamma function.  */
   if (i < 2)
     {
       int j = __floorl (-8 * x) - 16;
-      long double xm = (-33 - 2 * j) * 0.0625L;
-      long double x_adj = x - xm;
+      _Float128 xm = (-33 - 2 * j) * 0.0625L;
+      _Float128 x_adj = x - xm;
       size_t deg = poly_deg[j];
       size_t end = poly_end[j];
-      long double g = poly_coeff[end];
+      _Float128 g = poly_coeff[end];
       for (size_t j = 1; j <= deg; j++)
 	g = g * x_adj + poly_coeff[end - j];
       return __log1pl (g * xdiff / (x - xn));
@@ -478,8 +478,8 @@ __lgamma_negl (long double x, int *signgamp)
 
   /* The result we want is log (sinpi (X0) / sinpi (X))
      + log (gamma (1 - X0) / gamma (1 - X)).  */
-  long double x_idiff = fabsl (xn - x), x0_idiff = fabsl (xn - x0_hi - x0_lo);
-  long double log_sinpi_ratio;
+  _Float128 x_idiff = fabsl (xn - x), x0_idiff = fabsl (xn - x0_hi - x0_lo);
+  _Float128 log_sinpi_ratio;
   if (x0_idiff < x_idiff * 0.5L)
     /* Use log not log1p to avoid inaccuracy from log1p of arguments
        close to -1.  */
@@ -490,29 +490,29 @@ __lgamma_negl (long double x, int *signgamp)
       /* Use log1p not log to avoid inaccuracy from log of arguments
 	 close to 1.  X0DIFF2 has positive sign if X0 is further from
 	 XN than X is from XN, negative sign otherwise.  */
-      long double x0diff2 = ((i & 1) == 0 ? xdiff : -xdiff) * 0.5L;
-      long double sx0d2 = lg_sinpi (x0diff2);
-      long double cx0d2 = lg_cospi (x0diff2);
+      _Float128 x0diff2 = ((i & 1) == 0 ? xdiff : -xdiff) * 0.5L;
+      _Float128 sx0d2 = lg_sinpi (x0diff2);
+      _Float128 cx0d2 = lg_cospi (x0diff2);
       log_sinpi_ratio = __log1pl (2 * sx0d2
 				  * (-sx0d2 + cx0d2 * lg_cotpi (x_idiff)));
     }
 
-  long double log_gamma_ratio;
-  long double y0 = 1 - x0_hi;
-  long double y0_eps = -x0_hi + (1 - y0) - x0_lo;
-  long double y = 1 - x;
-  long double y_eps = -x + (1 - y);
+  _Float128 log_gamma_ratio;
+  _Float128 y0 = 1 - x0_hi;
+  _Float128 y0_eps = -x0_hi + (1 - y0) - x0_lo;
+  _Float128 y = 1 - x;
+  _Float128 y_eps = -x + (1 - y);
   /* We now wish to compute LOG_GAMMA_RATIO
      = log (gamma (Y0 + Y0_EPS) / gamma (Y + Y_EPS)).  XDIFF
      accurately approximates the difference Y0 + Y0_EPS - Y -
      Y_EPS.  Use Stirling's approximation.  First, we may need to
      adjust into the range where Stirling's approximation is
      sufficiently accurate.  */
-  long double log_gamma_adj = 0;
+  _Float128 log_gamma_adj = 0;
   if (i < 20)
     {
       int n_up = (21 - i) / 2;
-      long double ny0, ny0_eps, ny, ny_eps;
+      _Float128 ny0, ny0_eps, ny, ny_eps;
       ny0 = y0 + n_up;
       ny0_eps = y0 - (ny0 - n_up) + y0_eps;
       y0 = ny0;
@@ -521,28 +521,28 @@ __lgamma_negl (long double x, int *signgamp)
       ny_eps = y - (ny - n_up) + y_eps;
       y = ny;
       y_eps = ny_eps;
-      long double prodm1 = __lgamma_productl (xdiff, y - n_up, y_eps, n_up);
+      _Float128 prodm1 = __lgamma_productl (xdiff, y - n_up, y_eps, n_up);
       log_gamma_adj = -__log1pl (prodm1);
     }
-  long double log_gamma_high
+  _Float128 log_gamma_high
     = (xdiff * __log1pl ((y0 - e_hi - e_lo + y0_eps) / e_hi)
        + (y - 0.5L + y_eps) * __log1pl (xdiff / y) + log_gamma_adj);
   /* Compute the sum of (B_2k / 2k(2k-1))(Y0^-(2k-1) - Y^-(2k-1)).  */
-  long double y0r = 1 / y0, yr = 1 / y;
-  long double y0r2 = y0r * y0r, yr2 = yr * yr;
-  long double rdiff = -xdiff / (y * y0);
-  long double bterm[NCOEFF];
-  long double dlast = rdiff, elast = rdiff * yr * (yr + y0r);
+  _Float128 y0r = 1 / y0, yr = 1 / y;
+  _Float128 y0r2 = y0r * y0r, yr2 = yr * yr;
+  _Float128 rdiff = -xdiff / (y * y0);
+  _Float128 bterm[NCOEFF];
+  _Float128 dlast = rdiff, elast = rdiff * yr * (yr + y0r);
   bterm[0] = dlast * lgamma_coeff[0];
   for (size_t j = 1; j < NCOEFF; j++)
     {
-      long double dnext = dlast * y0r2 + elast;
-      long double enext = elast * yr2;
+      _Float128 dnext = dlast * y0r2 + elast;
+      _Float128 enext = elast * yr2;
       bterm[j] = dnext * lgamma_coeff[j];
       dlast = dnext;
       elast = enext;
     }
-  long double log_gamma_low = 0;
+  _Float128 log_gamma_low = 0;
   for (size_t j = 0; j < NCOEFF; j++)
     log_gamma_low += bterm[NCOEFF - 1 - j];
   log_gamma_ratio = log_gamma_high + log_gamma_low;
diff --git a/sysdeps/ieee754/ldbl-128/lgamma_productl.c b/sysdeps/ieee754/ldbl-128/lgamma_productl.c
index 9aa0137..38cc4bb 100644
--- a/sysdeps/ieee754/ldbl-128/lgamma_productl.c
+++ b/sysdeps/ieee754/ldbl-128/lgamma_productl.c
@@ -26,24 +26,24 @@
    X_EPS / X is small enough that factors quadratic in it can be
    neglected.  */
 
-long double
-__lgamma_productl (long double t, long double x, long double x_eps, int n)
+_Float128
+__lgamma_productl (_Float128 t, _Float128 x, _Float128 x_eps, int n)
 {
-  long double ret = 0, ret_eps = 0;
+  _Float128 ret = 0, ret_eps = 0;
   for (int i = 0; i < n; i++)
     {
-      long double xi = x + i;
-      long double quot = t / xi;
-      long double mhi, mlo;
+      _Float128 xi = x + i;
+      _Float128 quot = t / xi;
+      _Float128 mhi, mlo;
       mul_splitl (&mhi, &mlo, quot, xi);
-      long double quot_lo = (t - mhi - mlo) / xi - t * x_eps / (xi * xi);
+      _Float128 quot_lo = (t - mhi - mlo) / xi - t * x_eps / (xi * xi);
       /* We want (1 + RET + RET_EPS) * (1 + QUOT + QUOT_LO) - 1.  */
-      long double rhi, rlo;
+      _Float128 rhi, rlo;
       mul_splitl (&rhi, &rlo, ret, quot);
-      long double rpq = ret + quot;
-      long double rpq_eps = (ret - rpq) + quot;
-      long double nret = rpq + rhi;
-      long double nret_eps = (rpq - nret) + rhi;
+      _Float128 rpq = ret + quot;
+      _Float128 rpq_eps = (ret - rpq) + quot;
+      _Float128 nret = rpq + rhi;
+      _Float128 nret_eps = (rpq - nret) + rhi;
       ret_eps += (rpq_eps + nret_eps + rlo + ret_eps * quot
 		  + quot_lo + quot_lo * (ret + ret_eps));
       ret = nret;
diff --git a/sysdeps/ieee754/ldbl-128/math_ldbl.h b/sysdeps/ieee754/ldbl-128/math_ldbl.h
index b3faa04..c1980c9 100644
--- a/sysdeps/ieee754/ldbl-128/math_ldbl.h
+++ b/sysdeps/ieee754/ldbl-128/math_ldbl.h
@@ -88,3 +88,11 @@ do {								\
   sh_u.value = (d);						\
   (v) = sh_u.parts64.lsw;					\
 } while (0)
+
+/*
+   On a platform already supporting a binary128 long double,
+   _Float128 will alias to long double.  This transformation
+   makes aliasing *l functions to *f128 trivial.
+*/
+#define _Float128 long double
+#define L(x) x##L
diff --git a/sysdeps/ieee754/ldbl-128/s_asinhl.c b/sysdeps/ieee754/ldbl-128/s_asinhl.c
index 5f3b9f2..dd592cd 100644
--- a/sysdeps/ieee754/ldbl-128/s_asinhl.c
+++ b/sysdeps/ieee754/ldbl-128/s_asinhl.c
@@ -33,15 +33,15 @@ static char rcsid[] = "$NetBSD: $";
 #include <math.h>
 #include <math_private.h>
 
-static const long double
+static const _Float128
   one = 1.0L,
   ln2 = 6.931471805599453094172321214581765681e-1L,
   huge = 1.0e+4900L;
 
-long double
-__asinhl (long double x)
+_Float128
+__asinhl (_Float128 x)
 {
-  long double t, w;
+  _Float128 t, w;
   int32_t ix, sign;
   ieee854_long_double_shape_type u;
 
diff --git a/sysdeps/ieee754/ldbl-128/s_atanl.c b/sysdeps/ieee754/ldbl-128/s_atanl.c
index 35577a8..11519fc 100644
--- a/sysdeps/ieee754/ldbl-128/s_atanl.c
+++ b/sysdeps/ieee754/ldbl-128/s_atanl.c
@@ -64,7 +64,7 @@
 #include <math_private.h>
 
 /* arctan(k/8), k = 0, ..., 82 */
-static const long double atantbl[84] = {
+static const _Float128 atantbl[84] = {
   0.0000000000000000000000000000000000000000E0L,
   1.2435499454676143503135484916387102557317E-1L, /* arctan(0.125)  */
   2.4497866312686415417208248121127581091414E-1L,
@@ -156,7 +156,7 @@ static const long double atantbl[84] = {
    |t| <= 0.09375
    peak relative error 5.3e-37 */
 
-static const long double
+static const _Float128
   p0 = -4.283708356338736809269381409828726405572E1L,
   p1 = -8.636132499244548540964557273544599863825E1L,
   p2 = -5.713554848244551350855604111031839613216E1L,
@@ -169,13 +169,13 @@ static const long double
   q4 = 2.173623741810414221251136181221172551416E1L;
   /* q5 = 1.000000000000000000000000000000000000000E0 */
 
-static const long double huge = 1.0e4930L;
+static const _Float128 huge = 1.0e4930L;
 
-long double
-__atanl (long double x)
+_Float128
+__atanl (_Float128 x)
 {
   int k, sign;
-  long double t, u, p, q;
+  _Float128 t, u, p, q;
   ieee854_long_double_shape_type s;
 
   s.value = x;
diff --git a/sysdeps/ieee754/ldbl-128/s_cbrtl.c b/sysdeps/ieee754/ldbl-128/s_cbrtl.c
index c3ae968..d93684e 100644
--- a/sysdeps/ieee754/ldbl-128/s_cbrtl.c
+++ b/sysdeps/ieee754/ldbl-128/s_cbrtl.c
@@ -57,17 +57,17 @@ Adapted for glibc October, 2001.
 #include <math.h>
 #include <math_private.h>
 
-static const long double CBRT2 = 1.259921049894873164767210607278228350570251L;
-static const long double CBRT4 = 1.587401051968199474751705639272308260391493L;
-static const long double CBRT2I = 0.7937005259840997373758528196361541301957467L;
-static const long double CBRT4I = 0.6299605249474365823836053036391141752851257L;
+static const _Float128 CBRT2 = 1.259921049894873164767210607278228350570251L;
+static const _Float128 CBRT4 = 1.587401051968199474751705639272308260391493L;
+static const _Float128 CBRT2I = 0.7937005259840997373758528196361541301957467L;
+static const _Float128 CBRT4I = 0.6299605249474365823836053036391141752851257L;
 
 
-long double
-__cbrtl (long double x)
+_Float128
+__cbrtl (_Float128 x)
 {
   int e, rem, sign;
-  long double z;
+  _Float128 z;
 
   if (!isfinite (x))
     return x + x;
diff --git a/sysdeps/ieee754/ldbl-128/s_ceill.c b/sysdeps/ieee754/ldbl-128/s_ceill.c
index 6b73673..8034795 100644
--- a/sysdeps/ieee754/ldbl-128/s_ceill.c
+++ b/sysdeps/ieee754/ldbl-128/s_ceill.c
@@ -27,7 +27,7 @@ static char rcsid[] = "$NetBSD: $";
 #include <math.h>
 #include <math_private.h>
 
-long double __ceill(long double x)
+_Float128 __ceill(_Float128 x)
 {
 	int64_t i0,i1,j0;
 	u_int64_t i,j;
diff --git a/sysdeps/ieee754/ldbl-128/s_copysignl.c b/sysdeps/ieee754/ldbl-128/s_copysignl.c
index 19b6880..8ee85ea 100644
--- a/sysdeps/ieee754/ldbl-128/s_copysignl.c
+++ b/sysdeps/ieee754/ldbl-128/s_copysignl.c
@@ -26,7 +26,7 @@ static char rcsid[] = "$NetBSD: $";
 #include <math.h>
 #include <math_private.h>
 
-long double __copysignl(long double x, long double y)
+_Float128 __copysignl(_Float128 x, _Float128 y)
 {
 	u_int64_t hx,hy;
 	GET_LDOUBLE_MSW64(hx,x);
diff --git a/sysdeps/ieee754/ldbl-128/s_cosl.c b/sysdeps/ieee754/ldbl-128/s_cosl.c
index 2c3bff6..c003262 100644
--- a/sysdeps/ieee754/ldbl-128/s_cosl.c
+++ b/sysdeps/ieee754/ldbl-128/s_cosl.c
@@ -48,9 +48,9 @@
 #include <math.h>
 #include <math_private.h>
 
-long double __cosl(long double x)
+_Float128 __cosl(_Float128 x)
 {
-	long double y[2],z=0.0L;
+	_Float128 y[2],z=0.0L;
 	int64_t n, ix;
 
     /* High word of x. */
diff --git a/sysdeps/ieee754/ldbl-128/s_erfl.c b/sysdeps/ieee754/ldbl-128/s_erfl.c
index dd275a7..c0d2256 100644
--- a/sysdeps/ieee754/ldbl-128/s_erfl.c
+++ b/sysdeps/ieee754/ldbl-128/s_erfl.c
@@ -103,10 +103,10 @@
 
 /* Evaluate P[n] x^n  +  P[n-1] x^(n-1)  +  ...  +  P[0] */
 
-static long double
-neval (long double x, const long double *p, int n)
+static _Float128
+neval (_Float128 x, const _Float128 *p, int n)
 {
-  long double y;
+  _Float128 y;
 
   p += n;
   y = *p--;
@@ -121,10 +121,10 @@ neval (long double x, const long double *p, int n)
 
 /* Evaluate x^n+1  +  P[n] x^(n)  +  P[n-1] x^(n-1)  +  ...  +  P[0] */
 
-static long double
-deval (long double x, const long double *p, int n)
+static _Float128
+deval (_Float128 x, const _Float128 *p, int n)
 {
-  long double y;
+  _Float128 y;
 
   p += n;
   y = x + *p--;
@@ -138,7 +138,7 @@ deval (long double x, const long double *p, int n)
 
 
 
-static const long double
+static const _Float128
 tiny = 1e-4931L,
   one = 1.0L,
   two = 2.0L,
@@ -150,7 +150,7 @@ tiny = 1e-4931L,
    0 <= x <= 7/8
    Peak relative error 1.8e-35  */
 #define NTN1 8
-static const long double TN1[NTN1 + 1] =
+static const _Float128 TN1[NTN1 + 1] =
 {
  -3.858252324254637124543172907442106422373E10L,
   9.580319248590464682316366876952214879858E10L,
@@ -163,7 +163,7 @@ static const long double TN1[NTN1 + 1] =
   3.390868480059991640235675479463287886081E1L
 };
 #define NTD1 8
-static const long double TD1[NTD1 + 1] =
+static const _Float128 TD1[NTD1 + 1] =
 {
   -3.005357030696532927149885530689529032152E11L,
   -1.342602283126282827411658673839982164042E11L,
@@ -181,9 +181,9 @@ static const long double TD1[NTD1 + 1] =
 /* erf(z+1)  = erf_const + P(z)/Q(z)
    -.125 <= z <= 0
    Peak relative error 7.3e-36  */
-static const long double erf_const = 0.845062911510467529296875L;
+static const _Float128 erf_const = 0.845062911510467529296875L;
 #define NTN2 8
-static const long double TN2[NTN2 + 1] =
+static const _Float128 TN2[NTN2 + 1] =
 {
  -4.088889697077485301010486931817357000235E1L,
   7.157046430681808553842307502826960051036E3L,
@@ -196,7 +196,7 @@ static const long double TN2[NTN2 + 1] =
   5.127662277706787664956025545897050896203E-1L
 };
 #define NTD2 8
-static const long double TD2[NTD2 + 1] =
+static const _Float128 TD2[NTD2 + 1] =
 {
   1.731026445926834008273768924015161048885E4L,
   1.209682239007990370796112604286048173750E4L,
@@ -215,7 +215,7 @@ static const long double TD2[NTD2 + 1] =
    0 <= x < 0.125
    Peak relative error 1.4e-35  */
 #define NRNr13 8
-static const long double RNr13[NRNr13 + 1] =
+static const _Float128 RNr13[NRNr13 + 1] =
 {
  -2.353707097641280550282633036456457014829E3L,
   3.871159656228743599994116143079870279866E2L,
@@ -228,7 +228,7 @@ static const long double RNr13[NRNr13 + 1] =
  -8.098602878463854789780108161581050357814E-2L
 };
 #define NRDr13 7
-static const long double RDr13[NRDr13 + 1] =
+static const _Float128 RDr13[NRDr13 + 1] =
 {
   2.220448796306693503549505450626652881752E3L,
   1.899133258779578688791041599040951431383E2L,
@@ -241,15 +241,15 @@ static const long double RDr13[NRDr13 + 1] =
  /* 1.0E0 */
 };
 /* erfc(0.25) = C13a + C13b to extra precision.  */
-static const long double C13a = 0.723663330078125L;
-static const long double C13b = 1.0279753638067014931732235184287934646022E-5L;
+static const _Float128 C13a = 0.723663330078125L;
+static const _Float128 C13b = 1.0279753638067014931732235184287934646022E-5L;
 
 
 /* erfc(x + 0.375) = erfc(0.375) + x R(x)
    0 <= x < 0.125
    Peak relative error 1.2e-35  */
 #define NRNr14 8
-static const long double RNr14[NRNr14 + 1] =
+static const _Float128 RNr14[NRNr14 + 1] =
 {
  -2.446164016404426277577283038988918202456E3L,
   6.718753324496563913392217011618096698140E2L,
@@ -262,7 +262,7 @@ static const long double RNr14[NRNr14 + 1] =
  -2.230395570574153963203348263549700967918E-2L
 };
 #define NRDr14 7
-static const long double RDr14[NRDr14 + 1] =
+static const _Float128 RDr14[NRDr14 + 1] =
 {
   2.495187439241869732696223349840963702875E3L,
   2.503549449872925580011284635695738412162E2L,
@@ -275,14 +275,14 @@ static const long double RDr14[NRDr14 + 1] =
  /* 1.0E0 */
 };
 /* erfc(0.375) = C14a + C14b to extra precision.  */
-static const long double C14a = 0.5958709716796875L;
-static const long double C14b = 1.2118885490201676174914080878232469565953E-5L;
+static const _Float128 C14a = 0.5958709716796875L;
+static const _Float128 C14b = 1.2118885490201676174914080878232469565953E-5L;
 
 /* erfc(x + 0.5) = erfc(0.5) + x R(x)
    0 <= x < 0.125
    Peak relative error 4.7e-36  */
 #define NRNr15 8
-static const long double RNr15[NRNr15 + 1] =
+static const _Float128 RNr15[NRNr15 + 1] =
 {
  -2.624212418011181487924855581955853461925E3L,
   8.473828904647825181073831556439301342756E2L,
@@ -295,7 +295,7 @@ static const long double RNr15[NRNr15 + 1] =
   1.990253655948179713415957791776180406812E-2L
 };
 #define NRDr15 7
-static const long double RDr15[NRDr15 + 1] =
+static const _Float128 RDr15[NRDr15 + 1] =
 {
   2.986190760847974943034021764693341524962E3L,
   5.288262758961073066335410218650047725985E2L,
@@ -308,14 +308,14 @@ static const long double RDr15[NRDr15 + 1] =
   /* 1.0E0 */
 };
 /* erfc(0.5) = C15a + C15b to extra precision.  */
-static const long double C15a = 0.4794921875L;
-static const long double C15b = 7.9346869534623172533461080354712635484242E-6L;
+static const _Float128 C15a = 0.4794921875L;
+static const _Float128 C15b = 7.9346869534623172533461080354712635484242E-6L;
 
 /* erfc(x + 0.625) = erfc(0.625) + x R(x)
    0 <= x < 0.125
    Peak relative error 5.1e-36  */
 #define NRNr16 8
-static const long double RNr16[NRNr16 + 1] =
+static const _Float128 RNr16[NRNr16 + 1] =
 {
  -2.347887943200680563784690094002722906820E3L,
   8.008590660692105004780722726421020136482E2L,
@@ -328,7 +328,7 @@ static const long double RNr16[NRNr16 + 1] =
   2.022958279982138755020825717073966576670E-2L,
 };
 #define NRDr16 7
-static const long double RDr16[NRDr16 + 1] =
+static const _Float128 RDr16[NRDr16 + 1] =
 {
   3.075166170024837215399323264868308087281E3L,
   8.730468942160798031608053127270430036627E2L,
@@ -341,14 +341,14 @@ static const long double RDr16[NRDr16 + 1] =
   /* 1.0E0 */
 };
 /* erfc(0.625) = C16a + C16b to extra precision.  */
-static const long double C16a = 0.3767547607421875L;
-static const long double C16b = 4.3570693945275513594941232097252997287766E-6L;
+static const _Float128 C16a = 0.3767547607421875L;
+static const _Float128 C16b = 4.3570693945275513594941232097252997287766E-6L;
 
 /* erfc(x + 0.75) = erfc(0.75) + x R(x)
    0 <= x < 0.125
    Peak relative error 1.7e-35  */
 #define NRNr17 8
-static const long double RNr17[NRNr17 + 1] =
+static const _Float128 RNr17[NRNr17 + 1] =
 {
   -1.767068734220277728233364375724380366826E3L,
   6.693746645665242832426891888805363898707E2L,
@@ -361,7 +361,7 @@ static const long double RNr17[NRNr17 + 1] =
   -1.488945487149634820537348176770282391202E-2L
 };
 #define NRDr17 7
-static const long double RDr17[NRDr17 + 1] =
+static const _Float128 RDr17[NRDr17 + 1] =
 {
   2.748457523498150741964464942246913394647E3L,
   1.020213390713477686776037331757871252652E3L,
@@ -374,15 +374,15 @@ static const long double RDr17[NRDr17 + 1] =
   /* 1.0E0 */
 };
 /* erfc(0.75) = C17a + C17b to extra precision.  */
-static const long double C17a = 0.2888336181640625L;
-static const long double C17b = 1.0748182422368401062165408589222625794046E-5L;
+static const _Float128 C17a = 0.2888336181640625L;
+static const _Float128 C17b = 1.0748182422368401062165408589222625794046E-5L;
 
 
 /* erfc(x + 0.875) = erfc(0.875) + x R(x)
    0 <= x < 0.125
    Peak relative error 2.2e-35  */
 #define NRNr18 8
-static const long double RNr18[NRNr18 + 1] =
+static const _Float128 RNr18[NRNr18 + 1] =
 {
  -1.342044899087593397419622771847219619588E3L,
   6.127221294229172997509252330961641850598E2L,
@@ -395,7 +395,7 @@ static const long double RNr18[NRNr18 + 1] =
  -5.557645435858916025452563379795159124753E-2L
 };
 #define NRDr18 7
-static const long double RDr18[NRDr18 + 1] =
+static const _Float128 RDr18[NRDr18 + 1] =
 {
   2.557518000661700588758505116291983092951E3L,
   1.070171433382888994954602511991940418588E3L,
@@ -408,14 +408,14 @@ static const long double RDr18[NRDr18 + 1] =
   /* 1.0E0 */
 };
 /* erfc(0.875) = C18a + C18b to extra precision.  */
-static const long double C18a = 0.215911865234375L;
-static const long double C18b = 1.3073705765341685464282101150637224028267E-5L;
+static const _Float128 C18a = 0.215911865234375L;
+static const _Float128 C18b = 1.3073705765341685464282101150637224028267E-5L;
 
 /* erfc(x + 1.0) = erfc(1.0) + x R(x)
    0 <= x < 0.125
    Peak relative error 1.6e-35  */
 #define NRNr19 8
-static const long double RNr19[NRNr19 + 1] =
+static const _Float128 RNr19[NRNr19 + 1] =
 {
  -1.139180936454157193495882956565663294826E3L,
   6.134903129086899737514712477207945973616E2L,
@@ -428,7 +428,7 @@ static const long double RNr19[NRNr19 + 1] =
  -8.629945436917752003058064731308767664446E-2L
 };
 #define NRDr19 7
-static const long double RDr19[NRDr19 + 1] =
+static const _Float128 RDr19[NRDr19 + 1] =
 {
   2.744303447981132701432716278363418643778E3L,
   1.266396359526187065222528050591302171471E3L,
@@ -441,14 +441,14 @@ static const long double RDr19[NRDr19 + 1] =
   /* 1.0E0 */
 };
 /* erfc(1.0) = C19a + C19b to extra precision.  */
-static const long double C19a = 0.15728759765625L;
-static const long double C19b = 1.1609394035130658779364917390740703933002E-5L;
+static const _Float128 C19a = 0.15728759765625L;
+static const _Float128 C19b = 1.1609394035130658779364917390740703933002E-5L;
 
 /* erfc(x + 1.125) = erfc(1.125) + x R(x)
    0 <= x < 0.125
    Peak relative error 3.6e-36  */
 #define NRNr20 8
-static const long double RNr20[NRNr20 + 1] =
+static const _Float128 RNr20[NRNr20 + 1] =
 {
  -9.652706916457973956366721379612508047640E2L,
   5.577066396050932776683469951773643880634E2L,
@@ -461,7 +461,7 @@ static const long double RNr20[NRNr20 + 1] =
  -9.611744011489092894027478899545635991213E-2L
 };
 #define NRDr20 7
-static const long double RDr20[NRDr20 + 1] =
+static const _Float128 RDr20[NRDr20 + 1] =
 {
   3.032829629520142564106649167182428189014E3L,
   1.659648470721967719961167083684972196891E3L,
@@ -474,14 +474,14 @@ static const long double RDr20[NRDr20 + 1] =
  /* 1.0E0 */
 };
 /* erfc(1.125) = C20a + C20b to extra precision.  */
-static const long double C20a = 0.111602783203125L;
-static const long double C20b = 8.9850951672359304215530728365232161564636E-6L;
+static const _Float128 C20a = 0.111602783203125L;
+static const _Float128 C20b = 8.9850951672359304215530728365232161564636E-6L;
 
 /* erfc(1/x) = 1/x exp (-1/x^2 - 0.5625 + R(1/x^2))
    7/8 <= 1/x < 1
    Peak relative error 1.4e-35  */
 #define NRNr8 9
-static const long double RNr8[NRNr8 + 1] =
+static const _Float128 RNr8[NRNr8 + 1] =
 {
   3.587451489255356250759834295199296936784E1L,
   5.406249749087340431871378009874875889602E2L,
@@ -495,7 +495,7 @@ static const long double RNr8[NRNr8 + 1] =
   4.876422978828717219629814794707963640913E-2L
 };
 #define NRDr8 8
-static const long double RDr8[NRDr8 + 1] =
+static const _Float128 RDr8[NRDr8 + 1] =
 {
   6.358593134096908350929496535931630140282E1L,
   9.900253816552450073757174323424051765523E2L,
@@ -513,7 +513,7 @@ static const long double RDr8[NRDr8 + 1] =
    0.75 <= 1/x <= 0.875
    Peak relative error 2.0e-36  */
 #define NRNr7 9
-static const long double RNr7[NRNr7 + 1] =
+static const _Float128 RNr7[NRNr7 + 1] =
 {
  1.686222193385987690785945787708644476545E1L,
  1.178224543567604215602418571310612066594E3L,
@@ -527,7 +527,7 @@ static const long double RNr7[NRNr7 + 1] =
  6.700393957480661937695573729183733234400E2L
 };
 #define NRDr7 9
-static const long double RDr7[NRDr7 + 1] =
+static const _Float128 RDr7[NRDr7 + 1] =
 {
 -1.709305024718358874701575813642933561169E3L,
 -3.280033887481333199580464617020514788369E4L,
@@ -546,7 +546,7 @@ static const long double RDr7[NRDr7 + 1] =
    5/8 <= 1/x < 3/4
    Peak relative error 1.9e-35  */
 #define NRNr6 9
-static const long double RNr6[NRNr6 + 1] =
+static const _Float128 RNr6[NRNr6 + 1] =
 {
  1.642076876176834390623842732352935761108E0L,
  1.207150003611117689000664385596211076662E2L,
@@ -560,7 +560,7 @@ static const long double RNr6[NRNr6 + 1] =
  4.506934806567986810091824791963991057083E2L
 };
 #define NRDr6 9
-static const long double RDr6[NRDr6 + 1] =
+static const _Float128 RDr6[NRDr6 + 1] =
 {
 -1.664557643928263091879301304019826629067E2L,
 -3.800035902507656624590531122291160668452E3L,
@@ -579,7 +579,7 @@ static const long double RDr6[NRDr6 + 1] =
    1/2 <= 1/x < 5/8
    Peak relative error 4.6e-36  */
 #define NRNr5 10
-static const long double RNr5[NRNr5 + 1] =
+static const _Float128 RNr5[NRNr5 + 1] =
 {
 -3.332258927455285458355550878136506961608E-3L,
 -2.697100758900280402659586595884478660721E-1L,
@@ -594,7 +594,7 @@ static const long double RNr5[NRNr5 + 1] =
 -2.077715925587834606379119585995758954399E0L
 };
 #define NRDr5 9
-static const long double RDr5[NRDr5 + 1] =
+static const _Float128 RDr5[NRDr5 + 1] =
 {
  3.377879570417399341550710467744693125385E-1L,
  1.021963322742390735430008860602594456187E1L,
@@ -613,7 +613,7 @@ static const long double RDr5[NRDr5 + 1] =
    3/8 <= 1/x < 1/2
    Peak relative error 2.0e-36  */
 #define NRNr4 10
-static const long double RNr4[NRNr4 + 1] =
+static const _Float128 RNr4[NRNr4 + 1] =
 {
  3.258530712024527835089319075288494524465E-3L,
  2.987056016877277929720231688689431056567E-1L,
@@ -628,7 +628,7 @@ static const long double RNr4[NRNr4 + 1] =
  2.127493573166454249221983582495245662319E2L
 };
 #define NRDr4 10
-static const long double RDr4[NRDr4 + 1] =
+static const _Float128 RDr4[NRDr4 + 1] =
 {
 -3.303141981514540274165450687270180479586E-1L,
 -1.353768629363605300707949368917687066724E1L,
@@ -648,7 +648,7 @@ static const long double RDr4[NRDr4 + 1] =
    1/4 <= 1/x < 3/8
    Peak relative error 8.4e-37  */
 #define NRNr3 11
-static const long double RNr3[NRNr3 + 1] =
+static const _Float128 RNr3[NRNr3 + 1] =
 {
 -1.952401126551202208698629992497306292987E-6L,
 -2.130881743066372952515162564941682716125E-4L,
@@ -664,7 +664,7 @@ static const long double RNr3[NRNr3 + 1] =
 -1.787995944187565676837847610706317833247E0L
 };
 #define NRDr3 10
-static const long double RDr3[NRDr3 + 1] =
+static const _Float128 RDr3[NRDr3 + 1] =
 {
  1.979130686770349481460559711878399476903E-4L,
  1.156941716128488266238105813374635099057E-2L,
@@ -684,7 +684,7 @@ static const long double RDr3[NRDr3 + 1] =
    1/8 <= 1/x < 1/4
    Peak relative error 1.5e-36  */
 #define NRNr2 11
-static const long double RNr2[NRNr2 + 1] =
+static const _Float128 RNr2[NRNr2 + 1] =
 {
 -2.638914383420287212401687401284326363787E-8L,
 -3.479198370260633977258201271399116766619E-6L,
@@ -700,7 +700,7 @@ static const long double RNr2[NRNr2 + 1] =
 -1.572436106228070195510230310658206154374E0L
 };
 #define NRDr2 10
-static const long double RDr2[NRDr2 + 1] =
+static const _Float128 RDr2[NRDr2 + 1] =
 {
  2.675042728136731923554119302571867799673E-6L,
  2.170997868451812708585443282998329996268E-4L,
@@ -720,7 +720,7 @@ static const long double RDr2[NRDr2 + 1] =
    1/128 <= 1/x < 1/8
    Peak relative error 2.2e-36  */
 #define NRNr1 9
-static const long double RNr1[NRNr1 + 1] =
+static const _Float128 RNr1[NRNr1 + 1] =
 {
 -4.250780883202361946697751475473042685782E-8L,
 -5.375777053288612282487696975623206383019E-6L,
@@ -734,7 +734,7 @@ static const long double RNr1[NRNr1 + 1] =
 -1.290865243944292370661544030414667556649E0L
 };
 #define NRDr1 8
-static const long double RDr1[NRDr1 + 1] =
+static const _Float128 RDr1[NRDr1 + 1] =
 {
  4.308976661749509034845251315983612976224E-6L,
  3.265390126432780184125233455960049294580E-4L,
@@ -749,10 +749,10 @@ static const long double RDr1[NRDr1 + 1] =
 };
 
 
-long double
-__erfl (long double x)
+_Float128
+__erfl (_Float128 x)
 {
-  long double a, y, z;
+  _Float128 a, y, z;
   int32_t i, ix, sign;
   ieee854_long_double_shape_type u;
 
@@ -763,7 +763,7 @@ __erfl (long double x)
   if (ix >= 0x7fff0000)
     {				/* erf(nan)=nan */
       i = ((sign & 0xffff0000) >> 31) << 1;
-      return (long double) (1 - i) + one / x;	/* erf(+-inf)=+-1 */
+      return (_Float128) (1 - i) + one / x;	/* erf(+-inf)=+-1 */
     }
 
   if (ix >= 0x3fff0000) /* |x| >= 1.0 */
@@ -784,7 +784,7 @@ __erfl (long double x)
 	  if (ix < 0x00080000)
 	    {
 	      /* Avoid spurious underflow.  */
-	      long double ret =  0.0625 * (16.0 * x + (16.0 * efx) * x);
+	      _Float128 ret =  0.0625 * (16.0 * x + (16.0 * efx) * x);
 	      math_check_force_underflow (ret);
 	      return ret;
 	    }
@@ -804,10 +804,10 @@ __erfl (long double x)
 }
 
 weak_alias (__erfl, erfl)
-long double
-__erfcl (long double x)
+_Float128
+__erfcl (_Float128 x)
 {
-  long double y, z, p, r;
+  _Float128 y, z, p, r;
   int32_t i, ix, sign;
   ieee854_long_double_shape_type u;
 
@@ -819,7 +819,7 @@ __erfcl (long double x)
   if (ix >= 0x7fff0000)
     {				/* erfc(nan)=nan */
       /* erfc(+-inf)=0,2 */
-      return (long double) (((u_int32_t) sign >> 31) << 1) + one / x;
+      return (_Float128) (((u_int32_t) sign >> 31) << 1) + one / x;
     }
 
   if (ix < 0x3ffd0000) /* |x| <1/4 */
@@ -925,7 +925,7 @@ __erfcl (long double x)
 	__ieee754_expl ((z - x) * (z + x) + p);
       if ((sign & 0x80000000) == 0)
 	{
-	  long double ret = r / x;
+	  _Float128 ret = r / x;
 	  if (ret == 0)
 	    __set_errno (ERANGE);
 	  return ret;
diff --git a/sysdeps/ieee754/ldbl-128/s_expm1l.c b/sysdeps/ieee754/ldbl-128/s_expm1l.c
index da902ef..8f9e838 100644
--- a/sysdeps/ieee754/ldbl-128/s_expm1l.c
+++ b/sysdeps/ieee754/ldbl-128/s_expm1l.c
@@ -62,7 +62,7 @@
    -.5 ln 2  <  x  <  .5 ln 2
    Theoretical peak relative error = 8.1e-36  */
 
-static const long double
+static const _Float128
   P0 = 2.943520915569954073888921213330863757240E8L,
   P1 = -5.722847283900608941516165725053359168840E7L,
   P2 = 8.944630806357575461578107295909719817253E6L,
@@ -88,10 +88,10 @@ static const long double
   minarg = -7.9018778583833765273564461846232128760607E1L, big = 1e4932L;
 
 
-long double
-__expm1l (long double x)
+_Float128
+__expm1l (_Float128 x)
 {
-  long double px, qx, xx;
+  _Float128 px, qx, xx;
   int32_t ix, sign;
   ieee854_long_double_shape_type u;
   int k;
diff --git a/sysdeps/ieee754/ldbl-128/s_fabsl.c b/sysdeps/ieee754/ldbl-128/s_fabsl.c
index a1bb6c5..0ce6f73 100644
--- a/sysdeps/ieee754/ldbl-128/s_fabsl.c
+++ b/sysdeps/ieee754/ldbl-128/s_fabsl.c
@@ -24,7 +24,7 @@ static char rcsid[] = "$NetBSD: $";
 #include <math.h>
 #include <math_private.h>
 
-long double __fabsl(long double x)
+_Float128 __fabsl(_Float128 x)
 {
 	u_int64_t hx;
 	GET_LDOUBLE_MSW64(hx,x);
diff --git a/sysdeps/ieee754/ldbl-128/s_finitel.c b/sysdeps/ieee754/ldbl-128/s_finitel.c
index ea8a9ba..feb4590 100644
--- a/sysdeps/ieee754/ldbl-128/s_finitel.c
+++ b/sysdeps/ieee754/ldbl-128/s_finitel.c
@@ -25,7 +25,7 @@ static char rcsid[] = "$NetBSD: $";
 #include <math.h>
 #include <math_private.h>
 
-int __finitel(long double x)
+int __finitel(_Float128 x)
 {
 	int64_t hx;
 	GET_LDOUBLE_MSW64(hx,x);
diff --git a/sysdeps/ieee754/ldbl-128/s_floorl.c b/sysdeps/ieee754/ldbl-128/s_floorl.c
index 14a0efe..13ad084 100644
--- a/sysdeps/ieee754/ldbl-128/s_floorl.c
+++ b/sysdeps/ieee754/ldbl-128/s_floorl.c
@@ -27,7 +27,7 @@ static char rcsid[] = "$NetBSD: $";
 #include <math.h>
 #include <math_private.h>
 
-long double __floorl(long double x)
+_Float128 __floorl(_Float128 x)
 {
 	int64_t i0,i1,j0;
 	u_int64_t i,j;
diff --git a/sysdeps/ieee754/ldbl-128/s_fmal.c b/sysdeps/ieee754/ldbl-128/s_fmal.c
index 728949c..df01ab7 100644
--- a/sysdeps/ieee754/ldbl-128/s_fmal.c
+++ b/sysdeps/ieee754/ldbl-128/s_fmal.c
@@ -28,8 +28,8 @@
    double rounding.  See a paper by Boldo and Melquiond:
    http://www.lri.fr/~melquion/doc/08-tc.pdf  */
 
-long double
-__fmal (long double x, long double y, long double z)
+_Float128
+__fmal (_Float128 x, _Float128 y, _Float128 z)
 {
   union ieee854_long_double u, v, w;
   int adjust = 0;
@@ -75,7 +75,7 @@ __fmal (long double x, long double y, long double z)
 	  < IEEE854_LONG_DOUBLE_BIAS - LDBL_MANT_DIG - 2)
 	{
 	  int neg = u.ieee.negative ^ v.ieee.negative;
-	  long double tiny = neg ? -0x1p-16494L : 0x1p-16494L;
+	  _Float128 tiny = neg ? -0x1p-16494L : 0x1p-16494L;
 	  if (w.ieee.exponent >= 3)
 	    return tiny + z;
 	  /* Scaling up, adding TINY and scaling down produces the
@@ -94,7 +94,7 @@ __fmal (long double x, long double y, long double z)
 		     && w.ieee.mantissa1 == 0
 		     && w.ieee.mantissa0 == 0)))
 	    {
-	      long double force_underflow = x * y;
+	      _Float128 force_underflow = x * y;
 	      math_force_eval (force_underflow);
 	    }
 	  return v.d * 0x1p-114L;
@@ -190,22 +190,22 @@ __fmal (long double x, long double y, long double z)
 
   /* Multiplication m1 + m2 = x * y using Dekker's algorithm.  */
 #define C ((1LL << (LDBL_MANT_DIG + 1) / 2) + 1)
-  long double x1 = x * C;
-  long double y1 = y * C;
-  long double m1 = x * y;
+  _Float128 x1 = x * C;
+  _Float128 y1 = y * C;
+  _Float128 m1 = x * y;
   x1 = (x - x1) + x1;
   y1 = (y - y1) + y1;
-  long double x2 = x - x1;
-  long double y2 = y - y1;
-  long double m2 = (((x1 * y1 - m1) + x1 * y2) + x2 * y1) + x2 * y2;
+  _Float128 x2 = x - x1;
+  _Float128 y2 = y - y1;
+  _Float128 m2 = (((x1 * y1 - m1) + x1 * y2) + x2 * y1) + x2 * y2;
 
   /* Addition a1 + a2 = z + m1 using Knuth's algorithm.  */
-  long double a1 = z + m1;
-  long double t1 = a1 - z;
-  long double t2 = a1 - t1;
+  _Float128 a1 = z + m1;
+  _Float128 t1 = a1 - z;
+  _Float128 t2 = a1 - t1;
   t1 = m1 - t1;
   t2 = z - t2;
-  long double a2 = t1 + t2;
+  _Float128 a2 = t1 + t2;
   /* Ensure the arithmetic is not scheduled after feclearexcept call.  */
   math_force_eval (m2);
   math_force_eval (a2);
diff --git a/sysdeps/ieee754/ldbl-128/s_fpclassifyl.c b/sysdeps/ieee754/ldbl-128/s_fpclassifyl.c
index c89686f..42203cf 100644
--- a/sysdeps/ieee754/ldbl-128/s_fpclassifyl.c
+++ b/sysdeps/ieee754/ldbl-128/s_fpclassifyl.c
@@ -24,7 +24,7 @@
 
 
 int
-__fpclassifyl (long double x)
+__fpclassifyl (_Float128 x)
 {
   u_int64_t hx, lx;
   int retval = FP_NORMAL;
diff --git a/sysdeps/ieee754/ldbl-128/s_frexpl.c b/sysdeps/ieee754/ldbl-128/s_frexpl.c
index 70b2d3a..cbf1911 100644
--- a/sysdeps/ieee754/ldbl-128/s_frexpl.c
+++ b/sysdeps/ieee754/ldbl-128/s_frexpl.c
@@ -30,10 +30,10 @@ static char rcsid[] = "$NetBSD: $";
 #include <math.h>
 #include <math_private.h>
 
-static const long double
+static const _Float128
 two114 = 2.0769187434139310514121985316880384E+34L; /* 0x4071000000000000, 0 */
 
-long double __frexpl(long double x, int *eptr)
+_Float128 __frexpl(_Float128 x, int *eptr)
 {
 	u_int64_t hx, lx, ix;
 	GET_LDOUBLE_WORDS64(hx,lx,x);
diff --git a/sysdeps/ieee754/ldbl-128/s_isinfl.c b/sysdeps/ieee754/ldbl-128/s_isinfl.c
index 03e4d13..dce8fc0 100644
--- a/sysdeps/ieee754/ldbl-128/s_isinfl.c
+++ b/sysdeps/ieee754/ldbl-128/s_isinfl.c
@@ -17,7 +17,7 @@ static char rcsid[] = "$NetBSD: $";
 #include <math_private.h>
 
 int
-__isinfl (long double x)
+__isinfl (_Float128 x)
 {
 	int64_t hx,lx;
 	GET_LDOUBLE_WORDS64(hx,lx,x);
diff --git a/sysdeps/ieee754/ldbl-128/s_isnanl.c b/sysdeps/ieee754/ldbl-128/s_isnanl.c
index 74960e7..1dee642 100644
--- a/sysdeps/ieee754/ldbl-128/s_isnanl.c
+++ b/sysdeps/ieee754/ldbl-128/s_isnanl.c
@@ -25,7 +25,7 @@ static char rcsid[] = "$NetBSD: $";
 #include <math.h>
 #include <math_private.h>
 
-int __isnanl(long double x)
+int __isnanl(_Float128 x)
 {
 	int64_t hx,lx;
 	GET_LDOUBLE_WORDS64(hx,lx,x);
diff --git a/sysdeps/ieee754/ldbl-128/s_issignalingl.c b/sysdeps/ieee754/ldbl-128/s_issignalingl.c
index c06f14d..6af1db4 100644
--- a/sysdeps/ieee754/ldbl-128/s_issignalingl.c
+++ b/sysdeps/ieee754/ldbl-128/s_issignalingl.c
@@ -20,7 +20,7 @@
 #include <math_private.h>
 
 int
-__issignalingl (long double x)
+__issignalingl (_Float128 x)
 {
   u_int64_t hxi, lxi __attribute__ ((unused));
   GET_LDOUBLE_WORDS64 (hxi, lxi, x);
diff --git a/sysdeps/ieee754/ldbl-128/s_llrintl.c b/sysdeps/ieee754/ldbl-128/s_llrintl.c
index 84fc576..0e52757 100644
--- a/sysdeps/ieee754/ldbl-128/s_llrintl.c
+++ b/sysdeps/ieee754/ldbl-128/s_llrintl.c
@@ -26,19 +26,19 @@
 #include <math_private.h>
 #include <fix-fp-int-convert-overflow.h>
 
-static const long double two112[2] =
+static const _Float128 two112[2] =
 {
   5.19229685853482762853049632922009600E+33L, /* 0x406F000000000000, 0 */
  -5.19229685853482762853049632922009600E+33L  /* 0xC06F000000000000, 0 */
 };
 
 long long int
-__llrintl (long double x)
+__llrintl (_Float128 x)
 {
   int32_t j0;
   u_int64_t i0,i1;
-  long double w;
-  long double t;
+  _Float128 w;
+  _Float128 t;
   long long int result;
   int sx;
 
@@ -52,7 +52,7 @@ __llrintl (long double x)
     {
 #if defined FE_INVALID || defined FE_INEXACT
       /* X < LLONG_MAX + 1 implied by J0 < 63.  */
-      if (x > (long double) LLONG_MAX)
+      if (x > (_Float128) LLONG_MAX)
 	{
 	  /* In the event of overflow we must raise the "invalid"
 	     exception, but not "inexact".  */
@@ -83,8 +83,8 @@ __llrintl (long double x)
 	 FE_INVALID must be raised and the return value is
 	 unspecified.  */
 #if defined FE_INVALID || defined FE_INEXACT
-      if (x < (long double) LLONG_MIN
-	  && x > (long double) LLONG_MIN - 1.0L)
+      if (x < (_Float128) LLONG_MIN
+	  && x > (_Float128) LLONG_MIN - 1.0L)
 	{
 	  /* If truncation produces LLONG_MIN, the cast will not raise
 	     the exception, but may raise "inexact".  */
@@ -92,7 +92,7 @@ __llrintl (long double x)
 	  feraiseexcept (t == LLONG_MIN ? FE_INEXACT : FE_INVALID);
 	  return LLONG_MIN;
 	}
-      else if (FIX_LDBL_LLONG_CONVERT_OVERFLOW && x != (long double) LLONG_MIN)
+      else if (FIX_LDBL_LLONG_CONVERT_OVERFLOW && x != (_Float128) LLONG_MIN)
 	{
 	  feraiseexcept (FE_INVALID);
 	  return sx == 0 ? LLONG_MAX : LLONG_MIN;
diff --git a/sysdeps/ieee754/ldbl-128/s_llroundl.c b/sysdeps/ieee754/ldbl-128/s_llroundl.c
index bfc81cc..dd8fe1a 100644
--- a/sysdeps/ieee754/ldbl-128/s_llroundl.c
+++ b/sysdeps/ieee754/ldbl-128/s_llroundl.c
@@ -26,7 +26,7 @@
 #include <fix-fp-int-convert-overflow.h>
 
 long long int
-__llroundl (long double x)
+__llroundl (_Float128 x)
 {
   int64_t j0;
   u_int64_t i1, i0;
@@ -79,13 +79,13 @@ __llroundl (long double x)
 	 unspecified.  */
 #ifdef FE_INVALID
       if (FIX_LDBL_LLONG_CONVERT_OVERFLOW
-	  && !(sign == -1 && x > (long double) LLONG_MIN - 0.5L))
+	  && !(sign == -1 && x > (_Float128) LLONG_MIN - 0.5L))
 	{
 	  feraiseexcept (FE_INVALID);
 	  return sign == 1 ? LLONG_MAX : LLONG_MIN;
 	}
       else if (!FIX_LDBL_LLONG_CONVERT_OVERFLOW
-	       && x <= (long double) LLONG_MIN - 0.5L)
+	       && x <= (_Float128) LLONG_MIN - 0.5L)
 	{
 	  /* If truncation produces LLONG_MIN, the cast will not raise
 	     the exception, but may raise "inexact".  */
diff --git a/sysdeps/ieee754/ldbl-128/s_log1pl.c b/sysdeps/ieee754/ldbl-128/s_log1pl.c
index b348f41..ec99efb 100644
--- a/sysdeps/ieee754/ldbl-128/s_log1pl.c
+++ b/sysdeps/ieee754/ldbl-128/s_log1pl.c
@@ -62,7 +62,7 @@
  * Theoretical peak relative error = 5.3e-37,
  * relative peak error spread = 2.3e-14
  */
-static const long double
+static const _Float128
   P12 = 1.538612243596254322971797716843006400388E-6L,
   P11 = 4.998469661968096229986658302195402690910E-1L,
   P10 = 2.321125933898420063925789532045674660756E1L,
@@ -96,7 +96,7 @@ static const long double
  * Theoretical peak relative error = 1.1e-35,
  * relative peak error spread 1.1e-9
  */
-static const long double
+static const _Float128
   R5 = -8.828896441624934385266096344596648080902E-1L,
   R4 = 8.057002716646055371965756206836056074715E1L,
   R3 = -2.024301798136027039250415126250455056397E3L,
@@ -112,17 +112,17 @@ static const long double
   S0 = 1.701761051846631278975701529965589676574E6L;
 
 /* C1 + C2 = ln 2 */
-static const long double C1 = 6.93145751953125E-1L;
-static const long double C2 = 1.428606820309417232121458176568075500134E-6L;
+static const _Float128 C1 = 6.93145751953125E-1L;
+static const _Float128 C2 = 1.428606820309417232121458176568075500134E-6L;
 
-static const long double sqrth = 0.7071067811865475244008443621048490392848L;
+static const _Float128 sqrth = 0.7071067811865475244008443621048490392848L;
 /* ln (2^16384 * (1 - 2^-113)) */
-static const long double zero = 0.0L;
+static const _Float128 zero = 0.0L;
 
-long double
-__log1pl (long double xm1)
+_Float128
+__log1pl (_Float128 xm1)
 {
-  long double x, y, z, r, s;
+  _Float128 x, y, z, r, s;
   ieee854_long_double_shape_type u;
   int32_t hx;
   int e;
diff --git a/sysdeps/ieee754/ldbl-128/s_logbl.c b/sysdeps/ieee754/ldbl-128/s_logbl.c
index b7c1ca1..24baae6 100644
--- a/sysdeps/ieee754/ldbl-128/s_logbl.c
+++ b/sysdeps/ieee754/ldbl-128/s_logbl.c
@@ -26,8 +26,8 @@ static char rcsid[] = "$NetBSD: $";
 #include <math.h>
 #include <math_private.h>
 
-long double
-__logbl (long double x)
+_Float128
+__logbl (_Float128 x)
 {
   int64_t lx, hx, ex;
 
@@ -48,7 +48,7 @@ __logbl (long double x)
 	ma = __builtin_clzll (hx);
       ex -= ma - 16;
     }
-  return (long double) (ex - 16383);
+  return (_Float128) (ex - 16383);
 }
 
 weak_alias (__logbl, logbl)
diff --git a/sysdeps/ieee754/ldbl-128/s_lrintl.c b/sysdeps/ieee754/ldbl-128/s_lrintl.c
index 23f828f..b961f5b 100644
--- a/sysdeps/ieee754/ldbl-128/s_lrintl.c
+++ b/sysdeps/ieee754/ldbl-128/s_lrintl.c
@@ -26,19 +26,19 @@
 #include <math_private.h>
 #include <fix-fp-int-convert-overflow.h>
 
-static const long double two112[2] =
+static const _Float128 two112[2] =
 {
   5.19229685853482762853049632922009600E+33L, /* 0x406F000000000000, 0 */
  -5.19229685853482762853049632922009600E+33L  /* 0xC06F000000000000, 0 */
 };
 
 long int
-__lrintl (long double x)
+__lrintl (_Float128 x)
 {
   int32_t j0;
   u_int64_t i0,i1;
-  long double w;
-  long double t;
+  _Float128 w;
+  _Float128 t;
   long int result;
   int sx;
 
@@ -55,7 +55,7 @@ __lrintl (long double x)
 #if defined FE_INVALID || defined FE_INEXACT
 	  /* X < LONG_MAX + 1 implied by J0 < 31.  */
 	  if (sizeof (long int) == 4
-	      && x > (long double) LONG_MAX)
+	      && x > (_Float128) LONG_MAX)
 	    {
 	      /* In the event of overflow we must raise the "invalid"
 		 exception, but not "inexact".  */
@@ -82,7 +82,7 @@ __lrintl (long double x)
 #if defined FE_INVALID || defined FE_INEXACT
 	  /* X < LONG_MAX + 1 implied by J0 < 63.  */
 	  if (sizeof (long int) == 8
-	      && x > (long double) LONG_MAX)
+	      && x > (_Float128) LONG_MAX)
 	    {
 	      /* In the event of overflow we must raise the "invalid"
 		 exception, but not "inexact".  */
@@ -112,8 +112,8 @@ __lrintl (long double x)
 	 FE_INVALID must be raised and the return value is
 	 unspecified.  */
 #if defined FE_INVALID || defined FE_INEXACT
-      if (x < (long double) LONG_MIN
-	  && x > (long double) LONG_MIN - 1.0L)
+      if (x < (_Float128) LONG_MIN
+	  && x > (_Float128) LONG_MIN - 1.0L)
 	{
 	  /* If truncation produces LONG_MIN, the cast will not raise
 	     the exception, but may raise "inexact".  */
@@ -121,7 +121,7 @@ __lrintl (long double x)
 	  feraiseexcept (t == LONG_MIN ? FE_INEXACT : FE_INVALID);
 	  return LONG_MIN;
 	}
-      else if (FIX_LDBL_LONG_CONVERT_OVERFLOW && x != (long double) LONG_MIN)
+      else if (FIX_LDBL_LONG_CONVERT_OVERFLOW && x != (_Float128) LONG_MIN)
 	{
 	  feraiseexcept (FE_INVALID);
 	  return sx == 0 ? LONG_MAX : LONG_MIN;
diff --git a/sysdeps/ieee754/ldbl-128/s_lroundl.c b/sysdeps/ieee754/ldbl-128/s_lroundl.c
index f032625..3a949c5 100644
--- a/sysdeps/ieee754/ldbl-128/s_lroundl.c
+++ b/sysdeps/ieee754/ldbl-128/s_lroundl.c
@@ -26,7 +26,7 @@
 #include <fix-fp-int-convert-overflow.h>
 
 long int
-__lroundl (long double x)
+__lroundl (_Float128 x)
 {
   int64_t j0;
   u_int64_t i1, i0;
@@ -88,13 +88,13 @@ __lroundl (long double x)
 	 unspecified.  */
 #ifdef FE_INVALID
       if (FIX_LDBL_LONG_CONVERT_OVERFLOW
-	  && !(sign == -1 && x > (long double) LONG_MIN - 0.5L))
+	  && !(sign == -1 && x > (_Float128) LONG_MIN - 0.5L))
 	{
 	  feraiseexcept (FE_INVALID);
 	  return sign == 1 ? LONG_MAX : LONG_MIN;
 	}
       else if (!FIX_LDBL_LONG_CONVERT_OVERFLOW
-	       && x <= (long double) LONG_MIN - 0.5L)
+	       && x <= (_Float128) LONG_MIN - 0.5L)
 	{
 	  /* If truncation produces LONG_MIN, the cast will not raise
 	     the exception, but may raise "inexact".  */
diff --git a/sysdeps/ieee754/ldbl-128/s_modfl.c b/sysdeps/ieee754/ldbl-128/s_modfl.c
index 597a5c9..01e150b 100644
--- a/sysdeps/ieee754/ldbl-128/s_modfl.c
+++ b/sysdeps/ieee754/ldbl-128/s_modfl.c
@@ -30,9 +30,9 @@ static char rcsid[] = "$NetBSD: $";
 #include <math.h>
 #include <math_private.h>
 
-static const long double one = 1.0;
+static const _Float128 one = 1.0;
 
-long double __modfl(long double x, long double *iptr)
+_Float128 __modfl(_Float128 x, _Float128 *iptr)
 {
 	int64_t i0,i1,j0;
 	u_int64_t i;
diff --git a/sysdeps/ieee754/ldbl-128/s_nearbyintl.c b/sysdeps/ieee754/ldbl-128/s_nearbyintl.c
index 2017c04..80cc6c9 100644
--- a/sysdeps/ieee754/ldbl-128/s_nearbyintl.c
+++ b/sysdeps/ieee754/ldbl-128/s_nearbyintl.c
@@ -27,18 +27,18 @@
 #include <math.h>
 #include <math_private.h>
 
-static const long double
+static const _Float128
 TWO112[2]={
   5.19229685853482762853049632922009600E+33L, /* 0x406F000000000000, 0 */
  -5.19229685853482762853049632922009600E+33L  /* 0xC06F000000000000, 0 */
 };
 
-long double __nearbyintl(long double x)
+_Float128 __nearbyintl(_Float128 x)
 {
 	fenv_t env;
 	int64_t i0,j0,sx;
 	u_int64_t i1 __attribute__ ((unused));
-	long double w,t;
+	_Float128 w,t;
 	GET_LDOUBLE_WORDS64(i0,i1,x);
 	sx = (((u_int64_t)i0)>>63);
 	j0 = ((i0>>48)&0x7fff)-0x3fff;
diff --git a/sysdeps/ieee754/ldbl-128/s_nextafterl.c b/sysdeps/ieee754/ldbl-128/s_nextafterl.c
index 4e9a2ce..d29f58a 100644
--- a/sysdeps/ieee754/ldbl-128/s_nextafterl.c
+++ b/sysdeps/ieee754/ldbl-128/s_nextafterl.c
@@ -28,7 +28,7 @@ static char rcsid[] = "$NetBSD: $";
 #include <math.h>
 #include <math_private.h>
 
-long double __nextafterl(long double x, long double y)
+_Float128 __nextafterl(_Float128 x, _Float128 y)
 {
 	int64_t hx,hy,ix,iy;
 	u_int64_t lx,ly;
@@ -43,7 +43,7 @@ long double __nextafterl(long double x, long double y)
 	   return x+y;
 	if(x==y) return y;		/* x=y, return y */
 	if((ix|lx)==0) {			/* x == 0 */
-	    long double u;
+	    _Float128 u;
 	    SET_LDOUBLE_WORDS64(x,hy&0x8000000000000000ULL,1);/* return +-minsubnormal */
 	    u = math_opt_barrier (x);
 	    u = u * u;
@@ -69,12 +69,12 @@ long double __nextafterl(long double x, long double y)
 	}
 	hy = hx&0x7fff000000000000LL;
 	if(hy==0x7fff000000000000LL) {
-	    long double u = x + x;		/* overflow  */
+	    _Float128 u = x + x;		/* overflow  */
 	    math_force_eval (u);
 	    __set_errno (ERANGE);
 	}
 	if(hy==0) {
-	    long double u = x*x;		/* underflow */
+	    _Float128 u = x*x;		/* underflow */
 	    math_force_eval (u);		/* raise underflow flag */
 	    __set_errno (ERANGE);
 	}
diff --git a/sysdeps/ieee754/ldbl-128/s_nextupl.c b/sysdeps/ieee754/ldbl-128/s_nextupl.c
index 3ee47d8..9881804 100644
--- a/sysdeps/ieee754/ldbl-128/s_nextupl.c
+++ b/sysdeps/ieee754/ldbl-128/s_nextupl.c
@@ -20,8 +20,8 @@
 #include <math_private.h>
 
 /* Return the least floating-point number greater than X.  */
-long double
-__nextupl (long double x)
+_Float128
+__nextupl (_Float128 x)
 {
   int64_t hx, ix;
   u_int64_t lx;
diff --git a/sysdeps/ieee754/ldbl-128/s_remquol.c b/sysdeps/ieee754/ldbl-128/s_remquol.c
index 7356f5f..f22026d 100644
--- a/sysdeps/ieee754/ldbl-128/s_remquol.c
+++ b/sysdeps/ieee754/ldbl-128/s_remquol.c
@@ -23,11 +23,11 @@
 #include <math_private.h>
 
 
-static const long double zero = 0.0;
+static const _Float128 zero = 0.0;
 
 
-long double
-__remquol (long double x, long double y, int *quo)
+_Float128
+__remquol (_Float128 x, _Float128 y, int *quo)
 {
   int64_t hx,hy;
   u_int64_t sx,lx,ly,qs;
@@ -87,7 +87,7 @@ __remquol (long double x, long double y, int *quo)
     }
   else
     {
-      long double y_half = 0.5L * y;
+      _Float128 y_half = 0.5L * y;
       if (x > y_half)
 	{
 	  x -= y;
diff --git a/sysdeps/ieee754/ldbl-128/s_rintl.c b/sysdeps/ieee754/ldbl-128/s_rintl.c
index ae2142b..4109516 100644
--- a/sysdeps/ieee754/ldbl-128/s_rintl.c
+++ b/sysdeps/ieee754/ldbl-128/s_rintl.c
@@ -30,17 +30,17 @@ static char rcsid[] = "$NetBSD: $";
 #include <math.h>
 #include <math_private.h>
 
-static const long double
+static const _Float128
 TWO112[2]={
   5.19229685853482762853049632922009600E+33L, /* 0x406F000000000000, 0 */
  -5.19229685853482762853049632922009600E+33L  /* 0xC06F000000000000, 0 */
 };
 
-long double __rintl(long double x)
+_Float128 __rintl(_Float128 x)
 {
 	int64_t i0,j0,sx;
 	u_int64_t i1 __attribute__ ((unused));
-	long double w,t;
+	_Float128 w,t;
 	GET_LDOUBLE_WORDS64(i0,i1,x);
 	sx = (((u_int64_t)i0)>>63);
 	j0 = ((i0>>48)&0x7fff)-0x3fff;
diff --git a/sysdeps/ieee754/ldbl-128/s_roundl.c b/sysdeps/ieee754/ldbl-128/s_roundl.c
index 63ffd73..36db9dc 100644
--- a/sysdeps/ieee754/ldbl-128/s_roundl.c
+++ b/sysdeps/ieee754/ldbl-128/s_roundl.c
@@ -23,8 +23,8 @@
 #include <math_private.h>
 
 
-long double
-__roundl (long double x)
+_Float128
+__roundl (_Float128 x)
 {
   int32_t j0;
   u_int64_t i1, i0;
diff --git a/sysdeps/ieee754/ldbl-128/s_scalblnl.c b/sysdeps/ieee754/ldbl-128/s_scalblnl.c
index 1e24197..eff13d9 100644
--- a/sysdeps/ieee754/ldbl-128/s_scalblnl.c
+++ b/sysdeps/ieee754/ldbl-128/s_scalblnl.c
@@ -28,13 +28,13 @@ static char rcsid[] = "$NetBSD: $";
 #include <math.h>
 #include <math_private.h>
 
-static const long double
+static const _Float128
 two114 = 2.0769187434139310514121985316880384E+34L, /* 0x4071000000000000, 0 */
 twom114 = 4.8148248609680896326399448564623183E-35L, /* 0x3F8D000000000000, 0 */
 huge   = 1.0E+4900L,
 tiny   = 1.0E-4900L;
 
-long double __scalblnl (long double x, long int n)
+_Float128 __scalblnl (_Float128 x, long int n)
 {
 	int64_t k,hx,lx;
 	GET_LDOUBLE_WORDS64(hx,lx,x);
diff --git a/sysdeps/ieee754/ldbl-128/s_scalbnl.c b/sysdeps/ieee754/ldbl-128/s_scalbnl.c
index a5cbd0d..6053106 100644
--- a/sysdeps/ieee754/ldbl-128/s_scalbnl.c
+++ b/sysdeps/ieee754/ldbl-128/s_scalbnl.c
@@ -28,13 +28,13 @@ static char rcsid[] = "$NetBSD: $";
 #include <math.h>
 #include <math_private.h>
 
-static const long double
+static const _Float128
 two114 = 2.0769187434139310514121985316880384E+34L, /* 0x4071000000000000, 0 */
 twom114 = 4.8148248609680896326399448564623183E-35L, /* 0x3F8D000000000000, 0 */
 huge   = 1.0E+4900L,
 tiny   = 1.0E-4900L;
 
-long double __scalbnl (long double x, int n)
+_Float128 __scalbnl (_Float128 x, int n)
 {
 	int64_t k,hx,lx;
 	GET_LDOUBLE_WORDS64(hx,lx,x);
diff --git a/sysdeps/ieee754/ldbl-128/s_signbitl.c b/sysdeps/ieee754/ldbl-128/s_signbitl.c
index ee5d77e..53ed4a5 100644
--- a/sysdeps/ieee754/ldbl-128/s_signbitl.c
+++ b/sysdeps/ieee754/ldbl-128/s_signbitl.c
@@ -18,9 +18,10 @@
    <http://www.gnu.org/licenses/>.  */
 
 #include <math.h>
+#include <math_private.h>
 
 int
-__signbitl (long double x)
+__signbitl (_Float128 x)
 {
   return __builtin_signbitl (x);
 }
diff --git a/sysdeps/ieee754/ldbl-128/s_sincosl.c b/sysdeps/ieee754/ldbl-128/s_sincosl.c
index 1abdb44..9130cdf 100644
--- a/sysdeps/ieee754/ldbl-128/s_sincosl.c
+++ b/sysdeps/ieee754/ldbl-128/s_sincosl.c
@@ -24,7 +24,7 @@
 #include <math_private.h>
 
 void
-__sincosl (long double x, long double *sinx, long double *cosx)
+__sincosl (_Float128 x, _Float128 *sinx, _Float128 *cosx)
 {
   int64_t ix;
 
@@ -45,7 +45,7 @@ __sincosl (long double x, long double *sinx, long double *cosx)
   else
     {
       /* Argument reduction needed.  */
-      long double y[2];
+      _Float128 y[2];
       int n;
 
       n = __ieee754_rem_pio2l (x, y);
diff --git a/sysdeps/ieee754/ldbl-128/s_sinl.c b/sysdeps/ieee754/ldbl-128/s_sinl.c
index 582a53f..ad7a3de 100644
--- a/sysdeps/ieee754/ldbl-128/s_sinl.c
+++ b/sysdeps/ieee754/ldbl-128/s_sinl.c
@@ -48,9 +48,9 @@
 #include <math.h>
 #include <math_private.h>
 
-long double __sinl(long double x)
+_Float128 __sinl(_Float128 x)
 {
-	long double y[2],z=0.0L;
+	_Float128 y[2],z=0.0L;
 	int64_t n, ix;
 
     /* High word of x. */
diff --git a/sysdeps/ieee754/ldbl-128/s_tanhl.c b/sysdeps/ieee754/ldbl-128/s_tanhl.c
index f7a1d20..ad418c0 100644
--- a/sysdeps/ieee754/ldbl-128/s_tanhl.c
+++ b/sysdeps/ieee754/ldbl-128/s_tanhl.c
@@ -45,12 +45,12 @@
 #include <math.h>
 #include <math_private.h>
 
-static const long double one = 1.0, two = 2.0, tiny = 1.0e-4900L;
+static const _Float128 one = 1.0, two = 2.0, tiny = 1.0e-4900L;
 
-long double
-__tanhl (long double x)
+_Float128
+__tanhl (_Float128 x)
 {
-  long double t, z;
+  _Float128 t, z;
   u_int32_t jx, ix;
   ieee854_long_double_shape_type u;
 
diff --git a/sysdeps/ieee754/ldbl-128/s_tanl.c b/sysdeps/ieee754/ldbl-128/s_tanl.c
index c7d6374..3d67631 100644
--- a/sysdeps/ieee754/ldbl-128/s_tanl.c
+++ b/sysdeps/ieee754/ldbl-128/s_tanl.c
@@ -48,9 +48,9 @@
 #include <math.h>
 #include <math_private.h>
 
-long double __tanl(long double x)
+_Float128 __tanl(_Float128 x)
 {
-	long double y[2],z=0.0L;
+	_Float128 y[2],z=0.0L;
 	int64_t n, ix;
 
     /* High word of x. */
diff --git a/sysdeps/ieee754/ldbl-128/s_truncl.c b/sysdeps/ieee754/ldbl-128/s_truncl.c
index c71f0ab..72e74ab 100644
--- a/sysdeps/ieee754/ldbl-128/s_truncl.c
+++ b/sysdeps/ieee754/ldbl-128/s_truncl.c
@@ -23,8 +23,8 @@
 #include <math_private.h>
 
 
-long double
-__truncl (long double x)
+_Float128
+__truncl (_Float128 x)
 {
   int32_t j0;
   u_int64_t i0, i1, sx;
diff --git a/sysdeps/ieee754/ldbl-128/t_expl.h b/sysdeps/ieee754/ldbl-128/t_expl.h
index a23d3d9..849d22f 100644
--- a/sysdeps/ieee754/ldbl-128/t_expl.h
+++ b/sysdeps/ieee754/ldbl-128/t_expl.h
@@ -29,7 +29,7 @@
    __expl_table[T_EXPL_ARGN+2*i] == i/S+s
    where absl(s) <= 2^-54 and absl(r) <= 2^-212.  */
 
-static const long double __expl_table [] = {
+static const _Float128 __expl_table [] = {
  -3.47656250000000000584188889839535373E-01L, /* bffd640000000000002b1b04213cf000 */
   6.90417668990715641167244540876988960E-32L, /* 3f97667c3fdb588a6ae1af8748357a17 */
  -3.43749999999999981853132895957607418E-01L, /* bffd5ffffffffffffac4ff5f4050b000 */
diff --git a/sysdeps/ieee754/ldbl-128/t_sincosl.c b/sysdeps/ieee754/ldbl-128/t_sincosl.c
index de5fe0d..564d6d4 100644
--- a/sysdeps/ieee754/ldbl-128/t_sincosl.c
+++ b/sysdeps/ieee754/ldbl-128/t_sincosl.c
@@ -25,7 +25,10 @@
    Computed using gmp.
  */
 
-const long double __sincosl_table[] = {
+/* Include to grab typedefs and wrappers for _Float128 and such.  */
+#include <math_private.h>
+
+const _Float128 __sincosl_table[] = {
 
 /* x =  1.48437500000000000000000000000000000e-01L 3ffc3000000000000000000000000000 */
 /* cos(x) = 0.fd2f5320e1b790209b4dda2f98f79caaa7b873aff1014b0fbc5243766d03cb006bc837c4358 */
diff --git a/sysdeps/ieee754/ldbl-128/x2y2m1l.c b/sysdeps/ieee754/ldbl-128/x2y2m1l.c
index 4e97885..0f7f8bc 100644
--- a/sysdeps/ieee754/ldbl-128/x2y2m1l.c
+++ b/sysdeps/ieee754/ldbl-128/x2y2m1l.c
@@ -27,7 +27,7 @@
    overflow occurs.  */
 
 static inline void
-add_split (long double *hi, long double *lo, long double x, long double y)
+add_split (_Float128 *hi, _Float128 *lo, _Float128 x, _Float128 y)
 {
   /* Apply Dekker's algorithm.  */
   *hi = x + y;
@@ -40,8 +40,8 @@ add_split (long double *hi, long double *lo, long double x, long double y)
 static int
 compare (const void *p, const void *q)
 {
-  long double pld = fabsl (*(const long double *) p);
-  long double qld = fabsl (*(const long double *) q);
+  _Float128 pld = fabsl (*(const _Float128 *) p);
+  _Float128 qld = fabsl (*(const _Float128 *) q);
   if (pld < qld)
     return -1;
   else if (pld == qld)
@@ -54,22 +54,22 @@ compare (const void *p, const void *q)
    It is given that 1 > X >= Y >= epsilon / 2, and that X^2 + Y^2 >=
    0.5.  */
 
-long double
-__x2y2m1l (long double x, long double y)
+_Float128
+__x2y2m1l (_Float128 x, _Float128 y)
 {
-  long double vals[5];
+  _Float128 vals[5];
   SET_RESTORE_ROUNDL (FE_TONEAREST);
   mul_splitl (&vals[1], &vals[0], x, x);
   mul_splitl (&vals[3], &vals[2], y, y);
   vals[4] = -1.0L;
-  qsort (vals, 5, sizeof (long double), compare);
+  qsort (vals, 5, sizeof (_Float128), compare);
   /* Add up the values so that each element of VALS has absolute value
      at most equal to the last set bit of the next nonzero
      element.  */
   for (size_t i = 0; i <= 3; i++)
     {
       add_split (&vals[i + 1], &vals[i], vals[i + 1], vals[i]);
-      qsort (vals + i + 1, 4 - i, sizeof (long double), compare);
+      qsort (vals + i + 1, 4 - i, sizeof (_Float128), compare);
     }
   /* Now any error from this addition will be small.  */
   return vals[4] + vals[3] + vals[2] + vals[1] + vals[0];
diff --git a/sysdeps/ieee754/ldbl-128ibm/e_expl.c b/sysdeps/ieee754/ldbl-128ibm/e_expl.c
index ca3cbb5..5916caf 100644
--- a/sysdeps/ieee754/ldbl-128ibm/e_expl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/e_expl.c
@@ -65,6 +65,10 @@
 #include <fenv.h>
 #include <inttypes.h>
 #include <math_private.h>
+
+#define _Float128 long double
+#define L(x) x ## L
+
 #include <sysdeps/ieee754/ldbl-128/t_expl.h>
 
 static const long double C[] = {
diff --git a/sysdeps/ieee754/ldbl-128ibm/e_j0l.c b/sysdeps/ieee754/ldbl-128ibm/e_j0l.c
index 39a238a..00bce29 100644
--- a/sysdeps/ieee754/ldbl-128ibm/e_j0l.c
+++ b/sysdeps/ieee754/ldbl-128ibm/e_j0l.c
@@ -1,3 +1,5 @@
 /* Looks like we can use ieee854 e_j0l.c as is for IBM extended format. */
+#define _Float128 long double
+#define L(x) x ## L
 #include <sysdeps/ieee754/ldbl-128/e_j0l.c>
 
diff --git a/sysdeps/ieee754/ldbl-128ibm/e_j1l.c b/sysdeps/ieee754/ldbl-128ibm/e_j1l.c
index c86e24f..da9fd9e 100644
--- a/sysdeps/ieee754/ldbl-128ibm/e_j1l.c
+++ b/sysdeps/ieee754/ldbl-128ibm/e_j1l.c
@@ -1,2 +1,4 @@
 /* Looks like we can use ieee854 e_j1l.c as is for IBM extended format. */
+#define _Float128 long double
+#define L(x) x ## L
 #include <sysdeps/ieee754/ldbl-128/e_j1l.c>
diff --git a/sysdeps/ieee754/ldbl-128ibm/e_lgammal_r.c b/sysdeps/ieee754/ldbl-128ibm/e_lgammal_r.c
index 9bcaaf7..8ac8283 100644
--- a/sysdeps/ieee754/ldbl-128ibm/e_lgammal_r.c
+++ b/sysdeps/ieee754/ldbl-128ibm/e_lgammal_r.c
@@ -1,3 +1,5 @@
 /* Looks like we can use ieee854 e_lgammal_r.c as is for IBM extended format. */
+#define _Float128 long double
+#define L(x) x ## L
 #include <sysdeps/ieee754/ldbl-128/e_lgammal_r.c>
 
diff --git a/sysdeps/ieee754/ldbl-128ibm/s_cbrtl.c b/sysdeps/ieee754/ldbl-128ibm/s_cbrtl.c
index 010a671..64bfc46 100644
--- a/sysdeps/ieee754/ldbl-128ibm/s_cbrtl.c
+++ b/sysdeps/ieee754/ldbl-128ibm/s_cbrtl.c
@@ -2,5 +2,9 @@
 #include <math_ldbl_opt.h>
 #undef weak_alias
 #define weak_alias(n,a)
+
+#define _Float128 long double
+#define L(x) x ## L
+
 #include <sysdeps/ieee754/ldbl-128/s_cbrtl.c>
 long_double_symbol (libm, __cbrtl, cbrtl);
