fix malloc-brk-fail master
authorSzabolcs Nagy <nsz@port70.net>
Tue, 16 Apr 2024 22:14:30 +0000 (22:14 +0000)
committerSzabolcs Nagy <nsz@port70.net>
Tue, 16 Apr 2024 22:14:30 +0000 (22:14 +0000)
RLIMIT_DATA was changed in linux 4.7 to include mmap as well, not just
brk, however the test should work without the limit (unless the kernel
reserves space after brk that is not available for mmap, but that does
not seem to be the case).

13 files changed:
Makefile
src/functional/string_memset.c
src/math/special/fma.h
src/math/special/fmaf.h
src/math/special/fmal.h
src/math/special/sqrt.h
src/math/special/sqrtl.h
src/musl/pleval.mk [new file with mode: 0644]
src/regression/flockfile-list.c
src/regression/malloc-brk-fail.c
src/regression/pthread_once-deadlock.c
src/regression/scanf-nullbyte-char.c
src/regression/sem_close-unmap.c [new file with mode: 0644]

index 86b6ff5..cf2ab2b 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -133,11 +133,11 @@ $(B)/%.s:: src/%.c
 $(B)/%.lo:: src/%.c
        $(CC) $(CFLAGS) $($*.CFLAGS) -fPIC -DSHARED -c -o $@ $< 2>$@.err || echo BUILDERROR $@; cat $@.err
 $(B)/%.so: $(B)/%.lo
-       $(CC) -shared $(LDFLAGS) $($*.so.LDFLAGS) -o $@ $< $($*.so.LOBJS) $(LDLIBS) $($*.so.LDLIBS) 2>$@.err || echo BUILDERROR $@; cat $@.err
+       $(CC) -shared $(LDFLAGS) $($*.so.LDFLAGS) -o $@ $(sort $< $($*.so.LOBJS)) $(LDLIBS) $($*.so.LDLIBS) 2>$@.err || echo BUILDERROR $@; cat $@.err
 $(B)/%-static.exe: $(B)/%.o
-       $(CC) -static $(LDFLAGS) $($*-static.LDFLAGS) -o $@ $< $($*-static.OBJS) $(LDLIBS) $($*-static.LDLIBS) 2>$@.ld.err || echo BUILDERROR $@; cat $@.ld.err
+       $(CC) -static $(LDFLAGS) $($*-static.LDFLAGS) -o $@ $(sort $< $($*-static.OBJS)) $(LDLIBS) $($*-static.LDLIBS) 2>$@.ld.err || echo BUILDERROR $@; cat $@.ld.err
 $(B)/%.exe: $(B)/%.o
-       $(CC) $(LDFLAGS) $($*.LDFLAGS) -o $@ $< $($*.OBJS) $(LDLIBS) $($*.LDLIBS) 2>$@.ld.err || echo BUILDERROR $@; cat $@.ld.err
+       $(CC) $(LDFLAGS) $($*.LDFLAGS) -o $@ $(sort $< $($*.OBJS)) $(LDLIBS) $($*.LDLIBS) 2>$@.ld.err || echo BUILDERROR $@; cat $@.ld.err
 
 %.o.err: %.o
        touch $@
index 405d49e..e688742 100644 (file)
@@ -3,7 +3,7 @@
 #include <stdint.h>
 #include "test.h"
 
-#define N 400
+#define N 500
 static char buf[N];
 static char buf2[N];
 
@@ -57,8 +57,8 @@ int main(void)
 
        pmemset = memset;
 
-       for (i = 0; i < 16; i++)
-               for (j = 0; j < 200; j++)
+       for (i = 0; i < 64; i++)
+               for (j = 0; j < N-256; j++)
                        test_align(i,j);
 
        test_value('c');
index 5a3db10..d63f816 100644 (file)
@@ -847,3 +847,11 @@ T(RZ,              -0x1p-1000,          0x1.000001p-74,               0x1p-1022,
 //T(RU,              -0x1p-1000,                0x1p-200,               0x1p-1022,               0x1p-1022,         0x1p-26, INEXACT)
 T(RD,              -0x1p-1000,                0x1p-200,               0x1p-1022, 0x1.ffffffffffffep-1023,         -0x1p+0, INEXACT|UNDERFLOW)
 T(RZ,              -0x1p-1000,                0x1p-200,               0x1p-1022, 0x1.ffffffffffffep-1023,         -0x1p+0, INEXACT|UNDERFLOW)
+T(RN,              -0x1p-1000,                0x1p-100,                  0x0p+0,                 -0x0p+0,         0x1p-26, INEXACT|UNDERFLOW)
+T(RN,              -0x1p-1000,                0x1p-100,                 -0x0p+0,                 -0x0p+0,         0x1p-26, INEXACT|UNDERFLOW)
+T(RZ,              -0x1p-1000,                0x1p-100,                  0x0p+0,                 -0x0p+0,         0x1p-26, INEXACT|UNDERFLOW)
+T(RZ,              -0x1p-1000,                0x1p-100,                 -0x0p+0,                 -0x0p+0,         0x1p-26, INEXACT|UNDERFLOW)
+T(RD,              -0x1p-1000,                0x1p-100,                  0x0p+0,              -0x1p-1074,         -0x1p+0, INEXACT|UNDERFLOW)
+T(RD,              -0x1p-1000,                0x1p-100,                 -0x0p+0,              -0x1p-1074,         -0x1p+0, INEXACT|UNDERFLOW)
+T(RU,              -0x1p-1000,                0x1p-100,                  0x0p+0,                 -0x0p+0,         0x1p-26, INEXACT|UNDERFLOW)
+T(RU,              -0x1p-1000,                0x1p-100,                 -0x0p+0,                 -0x0p+0,         0x1p-26, INEXACT|UNDERFLOW)
index e034279..fdbb6d9 100644 (file)
@@ -53,3 +53,24 @@ T(RN, -0x1.26524ep-54, -0x1.cb7868p+11,  0x1.d10f5ep-29,  0x1.d1179ep-29,
 T(RU, -0x1.26524ep-54, -0x1.cb7868p+11,  0x1.d10f5ep-29,   0x1.d117ap-29,          0x1p-1, INEXACT)
 T(RD, -0x1.26524ep-54, -0x1.cb7868p+11,  0x1.d10f5ep-29,  0x1.d1179ep-29,         -0x1p-1, INEXACT)
 T(RZ, -0x1.26524ep-54, -0x1.cb7868p+11,  0x1.d10f5ep-29,  0x1.d1179ep-29,         -0x1p-1, INEXACT)
+// double precision x*y+z is a half-way float
+T(RN,   0x1.000002p+0,   0x1.fffffep+0,  0x1.fffffep-47,          0x1p+1,         -0x1p-1, INEXACT)
+T(RN,   0x1.000002p+0,   0x1.fffffep+0,         0x1p-46,          0x1p+1,         -0x1p-1, INEXACT)
+T(RN,   0x1.000002p+0,   0x1.fffffep+0,  0x1.000002p-46,   0x1.000002p+1,          0x1p-1, INEXACT)
+T(RN,   0x1.000002p+0,  -0x1.fffffep+0, -0x1.fffffep-47,         -0x1p+1,          0x1p-1, INEXACT)
+T(RN,   0x1.000002p+0,  -0x1.fffffep+0,        -0x1p-46,         -0x1p+1,          0x1p-1, INEXACT)
+T(RN,   0x1.000002p+0,  -0x1.fffffep+0, -0x1.000002p-46,  -0x1.000002p+1,         -0x1p-1, INEXACT)
+T(RN,   0x1.000004p+0,   0x1.fffffep+0,  0x1.fffffep-46,   0x1.000002p+1,         -0x1p-1, INEXACT)
+T(RN,   0x1.000004p+0,   0x1.fffffep+0,         0x1p-45,   0x1.000004p+1,          0x1p-1, INEXACT)
+T(RN,   0x1.000004p+0,   0x1.fffffep+0,  0x1.000002p-45,   0x1.000004p+1,          0x1p-1, INEXACT)
+T(RN,   0x1.000004p+0,  -0x1.fffffep+0, -0x1.fffffep-46,  -0x1.000002p+1,          0x1p-1, INEXACT)
+T(RN,   0x1.000004p+0,  -0x1.fffffep+0,        -0x1p-45,  -0x1.000004p+1,         -0x1p-1, INEXACT)
+T(RN,   0x1.000004p+0,  -0x1.fffffep+0, -0x1.000002p-45,  -0x1.000004p+1,         -0x1p-1, INEXACT)
+T(RN,       -0x1p-100,        0x1p-100,          0x0p+0,         -0x0p+0,         0x1p-51, INEXACT|UNDERFLOW)
+T(RN,       -0x1p-100,        0x1p-100,         -0x0p+0,         -0x0p+0,         0x1p-51, INEXACT|UNDERFLOW)
+T(RZ,       -0x1p-100,        0x1p-100,          0x0p+0,         -0x0p+0,         0x1p-51, INEXACT|UNDERFLOW)
+T(RZ,       -0x1p-100,        0x1p-100,         -0x0p+0,         -0x0p+0,         0x1p-51, INEXACT|UNDERFLOW)
+T(RD,       -0x1p-100,        0x1p-100,          0x0p+0,       -0x1p-149,         -0x1p+0, INEXACT|UNDERFLOW)
+T(RD,       -0x1p-100,        0x1p-100,         -0x0p+0,       -0x1p-149,         -0x1p+0, INEXACT|UNDERFLOW)
+T(RU,       -0x1p-100,        0x1p-100,          0x0p+0,         -0x0p+0,         0x1p-51, INEXACT|UNDERFLOW)
+T(RU,       -0x1p-100,        0x1p-100,         -0x0p+0,         -0x0p+0,         0x1p-51, INEXACT|UNDERFLOW)
index 1f60313..161b791 100644 (file)
@@ -47,3 +47,11 @@ T(RN,                   -0x1p-10000L,       0x1.0000000000001p-6445L,
 T(RU,                   -0x1p-10000L,       0x1.0000000000001p-6445L,                    0x1p-16382L,   0x1.fffffffffffffffcp-16383L,         0x1p-52, INEXACT|UNDERFLOW)
 T(RD,                   -0x1p-10000L,       0x1.0000000000001p-6445L,                    0x1p-16382L,   0x1.fffffffffffffff8p-16383L,         -0x1p+0, INEXACT|UNDERFLOW)
 T(RZ,                   -0x1p-10000L,       0x1.0000000000001p-6445L,                    0x1p-16382L,   0x1.fffffffffffffff8p-16383L,         -0x1p+0, INEXACT|UNDERFLOW)
+T(RN,                   -0x1p-10000L,                     0x1p-6500L,                        0x0p+0L,                       -0x0p+0L,         0x1p-55, INEXACT|UNDERFLOW)
+T(RN,                   -0x1p-10000L,                     0x1p-6500L,                       -0x0p+0L,                       -0x0p+0L,         0x1p-55, INEXACT|UNDERFLOW)
+T(RZ,                   -0x1p-10000L,                     0x1p-6500L,                        0x0p+0L,                       -0x0p+0L,         0x1p-55, INEXACT|UNDERFLOW)
+T(RZ,                   -0x1p-10000L,                     0x1p-6500L,                       -0x0p+0L,                       -0x0p+0L,         0x1p-55, INEXACT|UNDERFLOW)
+T(RD,                   -0x1p-10000L,                     0x1p-6500L,                        0x0p+0L,                   -0x1p-16445L,         -0x1p+0, INEXACT|UNDERFLOW)
+T(RD,                   -0x1p-10000L,                     0x1p-6500L,                       -0x0p+0L,                   -0x1p-16445L,         -0x1p+0, INEXACT|UNDERFLOW)
+T(RU,                   -0x1p-10000L,                     0x1p-6500L,                        0x0p+0L,                       -0x0p+0L,         0x1p-55, INEXACT|UNDERFLOW)
+T(RU,                   -0x1p-10000L,                     0x1p-6500L,                       -0x0p+0L,                       -0x0p+0L,         0x1p-55, INEXACT|UNDERFLOW)
index 45246f5..d956185 100644 (file)
@@ -72,4 +72,255 @@ T(RN,      0x1.c4942f3cp-1016,  0x1.5461e59227ab5p-508,  -0x1.ffc3bcp-2, INEXACT
 T(RN,      0x1.dbb258c8p-1016,  0x1.5cf7b0f78d3afp-508,   0x1.ffdd36p-2, INEXACT)
 T(RN,      0x1.57103ea4p-1015,  0x1.a31ab946d340bp-508,   0x1.ffd4acp-2, INEXACT)
 T(RN,      0x1.9b294f88p-1015,  0x1.cad197e28e85bp-508,   0x1.ffdb24p-2, INEXACT)
-
+T(RN,  0x1.5b95344972fe2p+105,   0x1.a5db1ce4c605bp+52,          0x1p-1, INEXACT)
+T(RN,  0x1.d407bb3641da5p+104,   0x1.5a24e31b39fa6p+52,          0x1p-1, INEXACT)
+T(RN,  0x1.4eb5f85e783a9p+105,   0x1.9df88f9ecb617p+52,          0x1p-1, INEXACT)
+T(RN,  0x1.e99893042c2cbp+104,   0x1.62077061349eap+52,          0x1p-1, INEXACT)
+T(RN,  0x1.8444088dbdcb5p+105,   0x1.bddc6d1af94e5p+52,          0x1p-1, INEXACT)
+T(RN,  0x1.955d8279a3c0fp+104,   0x1.422392e506b1cp+52,          0x1p-1, INEXACT)
+T(RN,  0x1.92e58e3597929p+105,   0x1.c62f1afef218bp+52,          0x1p-1, INEXACT)
+T(RN,  0x1.80b07a7182913p+104,   0x1.39d0e5010de76p+52,          0x1p-1, INEXACT)
+T(RN,  0x1.e63a86a12a838p+105,   0x1.f2f2ac85941a9p+52,          0x1p-1, INEXACT)
+T(RN,  0x1.1ac50220dc67dp+104,   0x1.0d0d537a6be58p+52,          0x1p-1, INEXACT)
+T(RN,  0x1.004c704e61a6bp+105,   0x1.6a3fef4175ea2p+52,          0x1p-1, INEXACT)
+T(RN,  0x1.d2221598a924ap+105,   0x1.e88750b32d14dp+52,          0x1p-1, INEXACT)
+T(RN,  0x1.311846fe43cc9p+104,   0x1.1778af4cd2eb4p+52,          0x1p-1, INEXACT)
+T(RN,  0x1.0f4057e306261p+105,   0x1.74aabff5dcd77p+52,          0x1p-1, INEXACT)
+T(RN,   0x1.54b152148723p+105,   0x1.a1a75b170c36ep+52,          0x1p-1, INEXACT)
+T(RN,  0x1.df76819ec4fcfp+104,   0x1.5e58a4e8f3c93p+52,          0x1p-1, INEXACT)
+T(RN,  0x1.8cc6767d8db65p+105,   0x1.c2b86f8821e3cp+52,          0x1p-1, INEXACT)
+T(RN,  0x1.893a4fca50165p+104,   0x1.3d479077de1c5p+52,          0x1p-1, INEXACT)
+T(RN,  0x1.2e22e3ec9f181p+105,   0x1.894fb184f34f2p+52,          0x1p-1, INEXACT)
+T(RN,  0x1.c4d4dd56d8601p+105,   0x1.e181fcfc796d1p+52,          0x1p-1, INEXACT)
+T(RN,  0x1.409dccc2d831fp+104,    0x1.1e7e03038693p+52,          0x1p-1, INEXACT)
+T(RN,  0x1.e915af26394a2p+105,   0x1.f469445af52ccp+52,          0x1p-1, INEXACT)
+T(RN,  0x1.17b3c42ab387fp+104,   0x1.0b96bba50ad35p+52,          0x1p-1, INEXACT)
+T(RN,  0x1.408e1bfb27b24p+105,   0x1.951f5a6dc2542p+52,          0x1p-1, INEXACT)
+T(RN,  0x1.e10511b03937ap+105,   0x1.f044a989ca91bp+52,          0x1p-1, INEXACT)
+T(RN,  0x1.206e2a25b3055p+104,   0x1.0fbb5676356e6p+52,          0x1p-1, INEXACT)
+T(RN,  0x1.122d8405a6886p+105,   0x1.76ac0187f47d4p+52,          0x1p-1, INEXACT)
+T(RN,  0x1.e34fa523c7406p+105,   0x1.f172e3572032ap+52,          0x1p-1, INEXACT)
+T(RN,  0x1.1dedf63ccd513p+104,   0x1.0e8d1ca8dfcd7p+52,          0x1p-1, INEXACT)
+T(RN,  0x1.3b94b3f5399c5p+105,   0x1.91f78829a106fp+52,          0x1p-1, INEXACT)
+T(RN,  0x1.26f7a31fd7d81p+105,   0x1.849dfc49fc24bp+52,          0x1p-1, INEXACT)
+T(RN,  0x1.1af23bc3c2ecap+105,   0x1.7c9dabee35f64p+52,          0x1p-1, INEXACT)
+T(RN,  0x1.2da51b80dd183p+105,   0x1.88fdca416a27ap+52,          0x1p-1, INEXACT)
+T(RN,   0x1.5834bb88d555p+105,   0x1.a3cd3c09ea385p+52,          0x1p-1, INEXACT)
+T(RN,  0x1.d99a0ed62d585p+104,   0x1.5c32c3f615c7cp+52,          0x1p-1, INEXACT)
+T(RN,  0x1.b3f8fa06a2ccbp+105,   0x1.d875a00071232p+52,          0x1p-1, INEXACT)
+T(RN,  0x1.5530340a9ec6dp+104,   0x1.278a5fff8edcfp+52,          0x1p-1, INEXACT)
+T(RN,  0x1.0e56ba9f7aed7p+105,    0x1.740a22b30117p+52,          0x1p-1, INEXACT)
+T(RN,  0x1.7113604516542p+105,   0x1.b2b3fbdef6484p+52,          0x1p-1, INEXACT)
+T(RN,  0x1.b1eed95066f6fp+104,   0x1.4d4c042109b7dp+52,          0x1p-1, INEXACT)
+T(RN,  0x1.6bf5355c8c95ap+105,   0x1.afadb8f8bf0e7p+52,          0x1p-1, INEXACT)
+T(RN,  0x1.b9d814e49ed4dp+104,   0x1.5052470740f1ap+52,          0x1p-1, INEXACT)
+T(RN,  0x1.43f8e1433f3c7p+105,   0x1.9746a985244b8p+52,          0x1p-1, INEXACT)
+T(RN,  0x1.fc49c967a4b41p+104,   0x1.68b9567adbb49p+52,          0x1p-1, INEXACT)
+T(RN,  0x1.a466de7840cedp+105,   0x1.cff2224245983p+52,          0x1p-1, INEXACT)
+T(RN,  0x1.6920ef62e00cbp+104,   0x1.300dddbdba67ep+52,          0x1p-1, INEXACT)
+T(RN,  0x1.4cc05fcb09836p+105,   0x1.9cc1eb16ea6f5p+52,          0x1p-1, INEXACT)
+T(RN,  0x1.ecf53d0c946b1p+104,   0x1.633e14e91590cp+52,          0x1p-1, INEXACT)
+T(RN,  0x1.e582e3d428926p+105,   0x1.f2946b565ea82p+52,          0x1p-1, INEXACT)
+T(RN,  0x1.1b8b43a219343p+104,   0x1.0d6b94a9a157fp+52,          0x1p-1, INEXACT)
+T(RN,  0x1.106ce24747471p+105,   0x1.7578fafbfbf81p+52,          0x1p-1, INEXACT)
+T(RN,  0x1.b2a13cbfcfb81p+105,   0x1.d7bb3a4fbae26p+52,          0x1p-1, INEXACT)
+T(RN,  0x1.56df1ba13e221p+104,   0x1.2844c5b0451dbp+52,          0x1p-1, INEXACT)
+T(RN,  0x1.e82e1ff49a7cfp+105,   0x1.f3f2c0504d214p+52,          0x1p-1, INEXACT)
+T(RN,  0x1.18abbe0766329p+104,   0x1.0c0d3fafb2dedp+52,          0x1p-1, INEXACT)
+T(RN,  0x1.867111aa6ea58p+105,   0x1.bf1bcffb3a397p+52,          0x1p-1, INEXACT)
+T(RN,  0x1.923b43717ff29p+104,   0x1.40e43004c5c6ap+52,          0x1p-1, INEXACT)
+T(RN,  0x1.4397d6aceee18p+105,   0x1.9709a5bc51865p+52,          0x1p-1, INEXACT)
+T(RN,  0x1.fcf5caeff49d5p+104,   0x1.68f65a43ae79cp+52,          0x1p-1, INEXACT)
+T(RN,  0x1.d539343604b1cp+105,    0x1.ea2531e60719p+52,          0x1p-1, INEXACT)
+T(RN,  0x1.2d933d07decdbp+104,   0x1.15dace19f8e71p+52,          0x1p-1, INEXACT)
+T(RN,  0x1.0ceb7a037208dp+105,   0x1.730fda68bc30bp+52,          0x1p-1, INEXACT)
+T(RN,  0x1.1080513139899p+105,   0x1.75864cd829c47p+52,          0x1p-1, INEXACT)
+T(RN,  0x1.c9de43a39a0a8p+105,   0x1.e42d9e73dd6d8p+52,          0x1p-1, INEXACT)
+T(RN,  0x1.3aaad09003843p+104,   0x1.1bd2618c22929p+52,          0x1p-1, INEXACT)
+T(RN,  0x1.b3ec881cb96fdp+105,   0x1.d86ee1ae4c82cp+52,          0x1p-1, INEXACT)
+T(RN,  0x1.553fc623a7cf5p+104,   0x1.27911e51b37d5p+52,          0x1p-1, INEXACT)
+T(RN,  0x1.4ff5bc007e6c9p+105,   0x1.9ebe1e8cdea3bp+52,          0x1p-1, INEXACT)
+T(RN,  0x1.e776c0b3c5033p+104,   0x1.6141e173215c6p+52,          0x1p-1, INEXACT)
+T(RN,  0x1.cd2a19fffb1cep+105,   0x1.e5eafb54dbabcp+52,          0x1p-1, INEXACT)
+T(RN,  0x1.36d25002d0337p+104,   0x1.1a1504ab24545p+52,          0x1p-1, INEXACT)
+T(RN,   0x1.1066b4e45e49p+105,   0x1.7574befc42651p+52,          0x1p-1, INEXACT)
+T(RN,  0x1.ab2da631d3a34p+105,   0x1.d3ab89fd4393dp+52,          0x1p-1, INEXACT)
+T(RN,  0x1.6056107411cfdp+104,   0x1.2c547602bc6c4p+52,          0x1p-1, INEXACT)
+T(RN,  0x1.3999aa6650897p+105,   0x1.90b41b8c1f0f8p+52,          0x1p-1, INEXACT)
+T(RN,  0x1.1517f1291b7f8p+105,   0x1.78a8a9f0969bep+52,          0x1p-1, INEXACT)
+T(RN,  0x1.1afedabae41bfp+105,   0x1.7ca628f6c7f4cp+52,          0x1p-1, INEXACT)
+T(RN,  0x1.050a544bf6295p+105,   0x1.6d95da6eca566p+52,          0x1p-1, INEXACT)
+T(RN,  0x1.e086dfcb31497p+105,   0x1.f0038c4497c54p+52,          0x1p-1, INEXACT)
+T(RN,  0x1.20f875fad3f39p+104,   0x1.0ffc73bb683adp+52,          0x1p-1, INEXACT)
+T(RN,  0x1.481169fc8aefap+105,   0x1.99d7aa56daa57p+52,          0x1p-1, INEXACT)
+T(RN,  0x1.f514d5eff5fedp+104,   0x1.662855a9255aap+52,          0x1p-1, INEXACT)
+T(RN,  0x1.d1b4372a774b2p+105,   0x1.e84dba6bdeef9p+52,          0x1p-1, INEXACT)
+T(RN,  0x1.31960fcdb4f91p+104,   0x1.17b2459421108p+52,          0x1p-1, INEXACT)
+T(RN,  0x1.efe37bcdd7621p+105,   0x1.f7e14202b15efp+52,          0x1p-1, INEXACT)
+T(RN,  0x1.107f6b8b868abp+104,   0x1.081ebdfd4ea12p+52,          0x1p-1, INEXACT)
+T(RN,  0x1.e625b487e7145p+105,    0x1.f2e7fda4849dp+52,          0x1p-1, INEXACT)
+T(RN,  0x1.1adb7734b27adp+104,   0x1.0d18025b7b631p+52,          0x1p-1, INEXACT)
+T(RN,  0x1.e6d250d4590b8p+105,   0x1.f34087cbcdc36p+52,          0x1p-1, INEXACT)
+T(RN,  0x1.1a2172e1df82fp+104,   0x1.0cbf7834323cbp+52,          0x1p-1, INEXACT)
+T(RN,  0x1.c138e21d2d40cp+105,   0x1.df95c22b7dc1dp+52,          0x1p-1, INEXACT)
+T(RN,  0x1.44ef373567f6dp+104,   0x1.206a3dd4823e4p+52,          0x1p-1, INEXACT)
+T(RN,  0x1.b4aea5678d612p+105,   0x1.d8d80590bc4fap+52,          0x1p-1, INEXACT)
+T(RN,  0x1.544d296ab0e4bp+104,   0x1.2727fa6f43b07p+52,          0x1p-1, INEXACT)
+T(RN,  0x1.db4670ed5c584p+105,   0x1.ed4bc29449318p+52,          0x1p-1, INEXACT)
+T(RN,  0x1.26c652610187bp+104,   0x1.12b43d6bb6ce9p+52,          0x1p-1, INEXACT)
+T(RN,  0x1.1d70daf24b2f3p+105,   0x1.7e4a43221475ep+52,          0x1p-1, INEXACT)
+T(RN,  0x1.cd8f896bdbe15p+105,   0x1.e62069048e19fp+52,          0x1p-1, INEXACT)
+T(RN,  0x1.365c9cbc63273p+104,   0x1.19df96fb71e62p+52,          0x1p-1, INEXACT)
+T(RN,  0x1.3a0c77ff9e212p+105,   0x1.90fd6d286a2fbp+52,          0x1p-1, INEXACT)
+T(RN,  0x1.6a0fb44de32e8p+105,   0x1.ae8d6d175828dp+52,          0x1p-1, INEXACT)
+T(RN,  0x1.bcceda0fb5685p+104,   0x1.517292e8a7d74p+52,          0x1p-1, INEXACT)
+T(RN,  0x1.46a1c8f457c6ap+105,   0x1.98f1c8048ae4ap+52,          0x1p-1, INEXACT)
+T(RN,  0x1.f798e1cd6e31bp+104,   0x1.670e37fb751b7p+52,          0x1p-1, INEXACT)
+T(RN,  0x1.aecec8b785d0ep+105,   0x1.d5a7110823728p+52,          0x1p-1, INEXACT)
+T(RN,  0x1.5bb32b3e36f2fp+104,   0x1.2a58eef7dc8d9p+52,          0x1p-1, INEXACT)
+T(RN,  0x1.506f082d9f44bp+105,   0x1.9f08f6c296ad3p+52,          0x1p-1, INEXACT)
+T(RN,  0x1.e6a847cbb67a7p+104,   0x1.60f7093d6952ep+52,          0x1p-1, INEXACT)
+T(RN,  0x1.71b747570cd0dp+105,   0x1.b314772f738fcp+52,          0x1p-1, INEXACT)
+T(RN,  0x1.b0f3c39164435p+104,   0x1.4ceb88d08c705p+52,          0x1p-1, INEXACT)
+T(RN,  0x1.c7b2b1cb67e06p+105,   0x1.e30785ed8182bp+52,          0x1p-1, INEXACT)
+T(RN,  0x1.3d384005c6b0dp+104,   0x1.1cf87a127e7d6p+52,          0x1p-1, INEXACT)
+T(RN,  0x1.6ace3a1b30035p+105,   0x1.aefea65f32e67p+52,          0x1p-1, INEXACT)
+T(RN,  0x1.bba48dfb2ea03p+104,   0x1.510159a0cd19ap+52,          0x1p-1, INEXACT)
+T(RN,  0x1.1d434042e01ccp+105,   0x1.7e2bb7fa1ccfep+52,          0x1p-1, INEXACT)
+T(RN,  0x1.ffffffffffffbp+105,   0x1.ffffffffffffdp+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.0000000000005p+104,   0x1.0000000000002p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.77483d37ce205p+105,   0x1.b657c6d214c37p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.a881d1831fabdp+104,   0x1.49a8392deb3c8p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.ffffffffffff9p+105,   0x1.ffffffffffffcp+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.0000000000007p+104,   0x1.0000000000003p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.1ac9955fd90d2p+105,   0x1.7c8253abfead5p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.69ca8fa07c526p+105,   0x1.ae644e924e0efp+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.bd3b47d3244afp+104,    0x1.519bb16db1f1p+52,         -0x1p-1, INEXACT)
+T(RN,   0x1.e4054716ef6ap+105,   0x1.f1d0539c8f7b1p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.1d28988281f17p+104,   0x1.0e2fac637084ep+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.ffffffffffff7p+105,   0x1.ffffffffffffbp+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.0000000000009p+104,   0x1.0000000000004p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.0d4cef742baf7p+105,   0x1.7353113c1682dp+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.f974b2f9b9fd3p+105,   0x1.fcb7a7dc3ab8cp+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.069b76ca13a5bp+104,   0x1.03485823c5473p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.ffffffffffff5p+105,   0x1.ffffffffffffap+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.000000000000bp+104,   0x1.0000000000005p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.3ac226a62efabp+105,    0x1.917159bb0fc2p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.202a5c6165a5ep+105,   0x1.801c3c8c7f69ep+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.a903217634cb4p+105,   0x1.d27b9ce7e656bp+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.6320957d038e3p+104,   0x1.2d84631819a94p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.ffffffffffff3p+105,   0x1.ffffffffffff9p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.000000000000dp+104,   0x1.0000000000006p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.906249f1ac465p+105,   0x1.c4c3f656b1ae3p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.842ccddb2e775p+104,   0x1.3b3c09a94e51cp+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.86114026e1d57p+105,   0x1.bee4efcdfc972p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.92c4e179d81ffp+104,   0x1.411b10320368dp+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.ffffffffffff1p+105,   0x1.ffffffffffff8p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.000000000000fp+104,   0x1.0000000000007p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.bd38b7f5a2e32p+105,   0x1.dd71d78f19353p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.49c66290ae86fp+104,   0x1.228e2870e6cacp+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.41f10ef33393fp+105,   0x1.95ff6801e853ep+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.ffe5addaf5307p+104,   0x1.6a0097fe17ac1p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.3373d07e38531p+105,   0x1.8cc1a26e959b4p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.0ba47e5d96a17p+105,   0x1.722dfec721cbdp+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.fffffffffffefp+105,   0x1.ffffffffffff7p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.0000000000011p+104,   0x1.0000000000008p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.2dd951d9fc451p+105,   0x1.891fcbcecfdc3p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.aaac304200df4p+105,   0x1.d364a6e7a846ap+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.60fc771610169p+104,   0x1.2c9b591857b95p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.5ccb5b03f4034p+105,   0x1.a697297c578afp+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.d20bbd1ddac4bp+104,    0x1.5968d683a875p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.a64a0786c5018p+105,   0x1.d0fc70090acedp+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.66a96ed74929fp+104,   0x1.2f038ff6f5312p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.27f0f3892e966p+105,   0x1.854215b8a5e18p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.fffffffffffedp+105,   0x1.ffffffffffff6p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.0000000000013p+104,   0x1.0000000000009p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.9cf37dc067513p+105,   0x1.cbd0f5aa4c73ap+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.7301398303ec7p+104,   0x1.342f0a55b38c5p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.2de7d612d1581p+105,    0x1.89293facadc6p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.91e2e1888fb81p+105,   0x1.c59d36661abdep+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.82167cac7efcbp+104,   0x1.3a62c999e5421p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.66fe83bf9d389p+105,   0x1.acb9923c92f2bp+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.c1a39a13c8c0dp+104,   0x1.53466dc36d0d4p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.08013920711f5p+105,   0x1.6fa7c41e7da28p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.fffffffffffebp+105,   0x1.ffffffffffff5p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.0000000000015p+104,   0x1.000000000000ap+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.2e23b951167f3p+105,   0x1.89503c69a508fp+52,         -0x1p-1, INEXACT)
+T(RN,   0x1.8448f9061c55p+105,   0x1.bddf431dfa7d1p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.95565f5859bb7p+104,   0x1.4220bce20582ep+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.49871c81c0e73p+105,   0x1.9ac0d43859164p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.f2893fb16b48bp+104,   0x1.653f2bc7a6e9bp+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.585a518f34574p+105,   0x1.a3e427096cbc7p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.d95bb8e5dc43bp+104,   0x1.5c1bd8f693438p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.4640c61a107d3p+105,   0x1.98b508d7696ecp+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.f8435727a861bp+104,   0x1.674af72896913p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.109491841853dp+105,   0x1.75942dbb1eedap+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.2fec5e46b945fp+105,   0x1.8a7904fc03f7fp+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.fffffffffffe9p+105,   0x1.ffffffffffff4p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.0000000000017p+104,   0x1.000000000000bp+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.128b05f79555cp+105,   0x1.76ebe008ed97dp+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.fb6ad7a73a0cbp+105,   0x1.fdb41a4dd1b83p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.049d117b89c81p+104,   0x1.024be5b22e47cp+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.6b287cde410f1p+105,   0x1.af343fdf7ac55p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.bb177a7fa17e1p+104,   0x1.50cbc020853aap+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.1705e87e6572cp+105,   0x1.79f7cf7bd7da7p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.a0857af57261ep+105,   0x1.cdccb8f9c56c9p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.6e3ea01044383p+104,   0x1.323347063a936p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.fffffffffffe7p+105,   0x1.ffffffffffff3p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.0000000000019p+104,   0x1.000000000000cp+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.8b19714a4836dp+105,   0x1.c1c480c871185p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.8b97dde1e9db9p+104,   0x1.3e3b7f378ee7ap+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.a0caf669ea303p+105,   0x1.cdf33be5a3ee1p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.6de28571fccbdp+104,   0x1.320cc41a5c11ep+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.ae6b9477b0f4ep+105,   0x1.d570fad5ae714p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.5c3147ed4b421p+104,   0x1.2a8f052a518ebp+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.c9c9ea9823206p+105,   0x1.e422dc265cc22p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.3ac2ac4a19b3dp+104,   0x1.1bdd23d9a33ddp+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.8e513e0c5bbddp+105,   0x1.c39871e63f668p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.870fd0b33b147p+104,   0x1.3c678e19c0997p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.80448ded551a3p+105,   0x1.bb8f4135f5663p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.9b2d9496e9cf1p+104,   0x1.4470beca0a99cp+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.962c00ed2f202p+105,   0x1.c806bd1a17f4ap+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.7c2f933dce845p+104,   0x1.37f942e5e80b5p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.fffffffffffe5p+105,   0x1.ffffffffffff2p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.000000000001bp+104,   0x1.000000000000dp+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.e986e9749149ep+105,   0x1.f4a32dcc3b787p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.173ac01fbdc0fp+104,   0x1.0b5cd233c4878p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.b90968dfbd58ep+105,   0x1.db321028321d6p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.4ee670ce4e015p+104,   0x1.24cdefd7cde29p+52,         -0x1p-1, INEXACT)
+T(RN,   0x1.adf3a892c378p+105,   0x1.d52f90bb839e5p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.5cc9ecc07139fp+104,   0x1.2ad06f447c61ap+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.21f25ca11cdefp+105,   0x1.814bae81d5041p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.dcd8582acf913p+105,   0x1.ee1c28bdd8634p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.2507bbe28ccebp+104,   0x1.11e3d742279cbp+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.5bdd34dbf3f7cp+105,   0x1.a606cc4bbc777p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.d3919ff17d22bp+104,   0x1.59f933b443888p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.6a4d09ea19a7dp+105,   0x1.aeb1e37cf98d9p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.bc6ebee659fe1p+104,   0x1.514e1c8306726p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.991f1e263175ap+105,   0x1.c9addf0205943p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.782b02404171fp+104,   0x1.365220fdfa6bcp+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.08e9256b12fa6p+105,   0x1.70491de5982eap+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.1da509e4fd3bdp+105,   0x1.7e6d33563082fp+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.fffffffffffe3p+105,   0x1.ffffffffffff1p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.000000000001dp+104,   0x1.000000000000ep+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.1c8fba5105937p+105,   0x1.7db363c14e992p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.12307f6aa1598p+105,   0x1.76ae0b2037967p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.350b181f61a1bp+105,   0x1.8dc815e13b276p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.1a2f79400dc0ap+105,   0x1.7c1a96d138a45p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.a4005a0d21cc4p+105,    0x1.cfb98d7063cep+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.69a76377ecc45p+104,   0x1.3046728f9c31fp+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.17fcdcccc3eb2p+105,   0x1.7a9eee07bc9a1p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.1a4b4ce34b56fp+105,   0x1.7c2d54204e09dp+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.c5edba7fe6b83p+105,   0x1.e217391120d57p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.3f501e99086f9p+104,   0x1.1de8c6eedf2a8p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.cf9db38790aa3p+105,   0x1.e7352fd68c3c6p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.33fc4807d7e9fp+104,   0x1.18cad02973c39p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.fc2018f397d65p+105,   0x1.fe0f1b5c1a175p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.03e58dbe93209p+104,   0x1.01f0e4a3e5e8ap+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.fffffffffffe1p+105,    0x1.ffffffffffffp+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.000000000001fp+104,   0x1.000000000000fp+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.6015db7c6744cp+105,   0x1.a894573ff12aep+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.ccb1ab7927881p+104,   0x1.576ba8c00ed51p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.2095fab55f69fp+105,   0x1.8063ef77e2b32p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.dbb7a32c9c655p+105,   0x1.ed867d956c347p+52,         -0x1p-1, INEXACT)
+T(RN,  0x1.264854d8af8fdp+104,   0x1.1279826a93cb8p+52,         -0x1p-1, INEXACT)
index f5fdf3a..9288e2d 100644 (file)
@@ -21,3 +21,274 @@ T(RN,       0x1.0000000000000002p+0L,                        0x1p+0L,         -0
 T(RN,       0x1.0000000000000004p+0L,       0x1.0000000000000002p+0L,         0x1p-64, INEXACT)
 T(RN,       0x1.0000000000000002p+1L,       0x1.6a09e667f3bcc90ap+0L,  -0x1.d04f9cp-5, INEXACT)
 T(RN,       0x1.0000000000000004p+1L,       0x1.6a09e667f3bcc90cp+0L,    0x1.e3c48p-3, INEXACT)
+T(RN,     0x1.cde0ef5187b8db94p+127L,      0x1.e64b449c63673f4cp+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.35fe42f8bb063b66p+126L,      0x1.19b4bb639c98c0b6p+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.39da5627c175e958p+127L,      0x1.90dd6a7f8211bb28p+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.7f61b4a7026b4554p+127L,      0x1.bb0c40ee0c2693d4p+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.9c79e3b9bbef13b6p+126L,      0x1.44f3bf11f3d96c2ep+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.4bb7b80aafa4b282p+127L,      0x1.9c1da57bcb44839cp+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.eebd8f2e9bae4f62p+126L,      0x1.63e25a8434bb7c66p+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.4d1729b5ad49e596p+127L,      0x1.9cf7bb8da35f29cap+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.ec5fee198658d076p+126L,      0x1.630844725ca0d638p+63L,          0x1p-1, INEXACT)
+T(RN,      0x1.716132891ca8c0bp+127L,      0x1.b2e1cdd52a35bde2p+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.b17792133c0f0e1ap+126L,       0x1.4d1e322ad5ca422p+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.68b94525310eac18p+127L,       0x1.adc1a1aa6f4d7cbp+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.bee8c04bc64c6c16p+126L,      0x1.523e5e5590b28352p+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.4fb0d00a2e806ea8p+127L,      0x1.9e9391a0b5ac24c6p+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.e7ec36501af800b2p+126L,      0x1.616c6e5f4a53db3cp+63L,          0x1p-1, INEXACT)
+T(RN,      0x1.dcc61fc33c3cfcap+127L,      0x1.ee12b80217d142bep+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.251bef79e99268d2p+126L,      0x1.11ed47fde82ebd44p+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.30336a34b2f6bf28p+127L,      0x1.8aa71daac75df7c2p+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.d985d3b5acb84462p+127L,      0x1.ec62bbaa70bf6b32p+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.28bb416cb4f4059ep+126L,       0x1.139d44558f4094dp+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.1f34a686b8eb8dbcp+127L,      0x1.7f78570df1043c78p+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.a0a7b797ac7f12cep+127L,      0x1.cddfb3492a31c44ep+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.6e113b785bd38bcep+126L,      0x1.32204cb6d5ce3bb4p+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.a9bf3c72c0b7b4fcp+127L,       0x1.d2e2cc5a1c5970fp+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.622daec8d756c45ep+126L,      0x1.2d1d33a5e3a68f12p+63L,          0x1p-1, INEXACT)
+T(RN,      0x1.ad24a0f909cb4efp+127L,      0x1.d4be8d288b5ea598p+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.5dd1f2fecf5ebc56p+126L,      0x1.2b4172d774a15a6ap+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.8ceb4e3aae84415ap+127L,      0x1.c2cd5c14b247b57ep+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.890673f92f5a41c6p+126L,      0x1.3d32a3eb4db84a84p+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.0ad9ff6f06413144p+127L,      0x1.71a1dab8f5efdf82p+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.969545e171f8f1d6p+127L,      0x1.c841d1a3951bf9aep+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.7b9fa1ed654a099ep+126L,      0x1.37be2e5c6ae40654p+63L,          0x1p-1, INEXACT)
+T(RN,      0x1.679a654e2950819p+127L,       0x1.ad169c872ca9911p+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.c0ad1f7146a79cc6p+126L,      0x1.52e96378d3566ef2p+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.1ced7a4a3c5250e8p+127L,      0x1.7df23ef1053420dep+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.37088a2f67c02fdap+127L,      0x1.8f0f6c4076c07b6cp+63L,          0x1p-1, INEXACT)
+T(RN,      0x1.93c99c2980bc68cp+127L,      0x1.c6af93b57dc6bec8p+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.7f75c2120ed058d6p+126L,      0x1.39506c4a8239413ap+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.6d988c115ee1a02ap+127L,      0x1.b0a6201936d381bcp+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.b74c578b74ce35f2p+126L,      0x1.4f59dfe6c92c7e46p+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.ac5feef0a66fdb06p+127L,      0x1.d453147d8a58a7c4p+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.5ecd62f00ecbc77ap+126L,      0x1.2baceb8275a7583ep+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.b092174c5e52f7b8p+127L,       0x1.d69cd0c25ad648cp+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.59774a0a9ba03af6p+126L,      0x1.29632f3da529b742p+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.1ea2f30108bc7ad8p+127L,      0x1.7f1705fea8f6dd0cp+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.14fdcff11de8b82ep+127L,      0x1.7896e72031817794p+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.72eea62f8ad1c65ap+127L,      0x1.b3cb86587ec2b8f8p+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.af18264c1d1336eap+126L,      0x1.4c3479a7813d470ap+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.4ec9fe451ed1382ap+127L,      0x1.9e04f14bfff1db9ep+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.e97654c23df74aa6p+126L,      0x1.61fb0eb4000e2464p+63L,          0x1p-1, INEXACT)
+T(RN,       0x1.88415de4a024b2p+127L,      0x1.c02558ab000aad56p+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.8fa2a7c740095402p+126L,      0x1.3fdaa754fff552acp+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.0f5136a0cd3ebfdcp+127L,      0x1.74b6567f7bdec908p+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.99c96bc8453285fap+127L,      0x1.ca0d172acf5b7692p+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.77444c8fae40448ep+126L,       0x1.35f2e8d530a4897p+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.6fec2f0247dc8f58p+127L,      0x1.b20601bbb7b74cfcp+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.b3b4539e416d50cep+126L,      0x1.4df9fe444848b306p+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.6eb1c6e70e956cb8p+127L,      0x1.b14c67c29d22b218p+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.b5991f3e6e5aace6p+126L,      0x1.4eb3983d62dd4deap+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.f1260b7d9ddc8806p+127L,      0x1.f8850898b608a3b6p+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.0f2de366f78539cep+126L,      0x1.077af76749f75c4cp+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.f40f05bb26545e76p+127L,      0x1.f9fe7e580a09a428p+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.0c271566106ee402p+126L,      0x1.060181a7f5f65bdap+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.62c6afd018c6a8eap+127L,      0x1.aa32e134b78a30cap+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.c85c1863e4502d1ep+126L,      0x1.55cd1ecb4875cf38p+63L,          0x1p-1, INEXACT)
+T(RN,      0x1.5bef0b16ee0000ep+127L,      0x1.a6119e04b2e879ecp+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.d3746211aa8d263ep+126L,      0x1.59ee61fb4d178616p+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.8a7a00aabbd2ab48p+127L,      0x1.c169b77f8d406348p+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.8c79b458282302e6p+126L,      0x1.3e96488072bf9cbap+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.f364a9dfb490fcecp+127L,      0x1.f9a8463ea42797c6p+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.0cd7ae4790346b3ap+126L,      0x1.0657b9c15bd8683cp+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.70c38505f9c86506p+127L,      0x1.b284f223ca366faap+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.b2695d35364a2c16p+126L,      0x1.4d7b0ddc35c99058p+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.da8ac02fa744eac8p+127L,       0x1.ecea51aa1f9ac94p+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.2797966290e91e16p+126L,      0x1.1315ae55e06536c2p+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.53b44dd3ed8cc5f2p+127L,      0x1.a10c283c2e642b8cp+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.e11faa3ec4c086a2p+126L,      0x1.5ef3d7c3d19bd476p+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.908c17e5b499a994p+127L,      0x1.c4db98c1e577799ap+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.83f29b4008667992p+126L,      0x1.3b24673e1a888668p+63L,          0x1p-1, INEXACT)
+T(RN,      0x1.70eb6d96982826cp+127L,      0x1.b29c74a986a5ca14p+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.b22c1f34086d910ep+126L,      0x1.4d638b56795a35eep+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.46749cc71b8cae26p+127L,       0x1.98d57fd7ea06e5dp+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.f7e83a7ebaeff972p+126L,      0x1.672a802815f91a32p+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.47c3a9f578d2a81cp+127L,      0x1.99a716cd5be94c26p+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.f59ccb1aca2d875ap+126L,      0x1.6658e932a416b3dcp+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.ef9b9da9d294c174p+127L,      0x1.f7bcbd5f6a9b7578p+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.10cacb172584c21ep+126L,      0x1.084342a095648a8ap+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.c6056a0ddc755b7cp+127L,      0x1.e223ccc621b5f12cp+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.3f340776eea70ff6p+126L,      0x1.1ddc3339de4a0ed6p+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.7498bc3264ee3be6p+127L,      0x1.b4c58a8ec0578d88p+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.ac90390c47cf26a2p+126L,      0x1.4b3a75713fa8727ap+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.59eff319925bf762p+127L,      0x1.a4db2ca9f6e5607ep+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.d6bcda375b57abd6p+126L,      0x1.5b24d356091a9f84p+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.99841e224c601668p+127L,       0x1.c9e659e82bb1218p+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.77a220d3929963d6p+126L,      0x1.3619a617d44ede82p+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.ef88e795b6625336p+127L,      0x1.f7b33af54adb54aep+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.10de6d6baba0aa5ep+126L,      0x1.084cc50ab524ab54p+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.0ea956a3989ded6cp+127L,       0x1.7442f648b284221p+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.7f4abe5a2b343fbap+127L,      0x1.bafefc2840562bdep+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.9c9b93c2d4637846p+126L,      0x1.450103d7bfa9d424p+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.b5e219044b5e6482p+127L,       0x1.d97e5cffb49093ap+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.52ce040a5b59534ap+126L,      0x1.2681a3004b6f6c62p+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.ecac67ac92780106p+127L,      0x1.f63e6810f979b86cp+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.13e25ef34c15af8ap+126L,      0x1.09c197ef06864796p+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.06b821799b7117b4p+127L,      0x1.6ec25687ad76d9d2p+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.25267121cfd66972p+127L,       0x1.836b1107674f89cp+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.9951bc879958c06ep+127L,      0x1.c9ca2e525d14fae8p+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.77e6632104339f72p+126L,      0x1.3635d1ada2eb051ap+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.31332be976c33edap+127L,      0x1.8b4ce1c6ff6ea36ep+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.9c77e1b69721f34ep+127L,      0x1.cb8c1ee127ad2a5cp+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.73a70a264034e87ap+126L,      0x1.3473e11ed852d5a6p+63L,          0x1p-1, INEXACT)
+T(RN,      0x1.f30223cb646a36ap+127L,      0x1.f976628ee5ee71f8p+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.0d3df83d653dc176p+126L,      0x1.06899d711a118e0ap+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.5acdf7d655c7e564p+127L,      0x1.a56223e46268a69ep+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.d54f18525d1be31ap+126L,      0x1.5a9ddc1b9d975964p+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.50989ca3ec069c86p+127L,      0x1.9f229ba2e4e87c22p+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.e66193767a9a5046p+126L,       0x1.60dd645d1b1783ep+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.e726a6dd73b3ba6cp+127L,      0x1.f36bc49507a96dfap+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.19c6b23cb96ee102p+126L,      0x1.0c943b6af8569208p+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.84705c27fef0c8d6p+127L,      0x1.bdf5dfd4cbe65ccep+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.951d7953367b64dep+126L,      0x1.420a202b3419a334p+63L,          0x1p-1, INEXACT)
+T(RN,      0x1.d2ad4444bf68ea6p+127L,      0x1.e8d03a8900bc6606p+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.307929537a6770a2p+126L,      0x1.172fc576ff4399fcp+63L,          0x1p-1, INEXACT)
+T(RN,     0x1.179c7bc8b6abe4b2p+127L,      0x1.7a5dbe0ccc2cd916p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.fffffffffffffff6p+127L,      0x1.fffffffffffffffap+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.000000000000000ap+126L,      0x1.0000000000000004p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.70cac0ab044c46dap+127L,       0x1.b289350725bd679p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.b25e432b2628204ep+126L,      0x1.4d76caf8da42986ep+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.fffffffffffffff2p+127L,      0x1.fffffffffffffff8p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.000000000000000ep+126L,      0x1.0000000000000006p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.968edef2b2f84e26p+127L,      0x1.c83e3a0a7391ef62p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.7ba861a6b084fffap+126L,      0x1.37c1c5f58c6e109cp+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.ffffffffffffffeep+127L,      0x1.fffffffffffffff6p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.0000000000000012p+126L,      0x1.0000000000000008p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.a86703bb7c0fd9d6p+127L,      0x1.d225e8563eb7cc4ep+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.63ea95717fd0e9d2p+126L,       0x1.2dda17a9c14833bp+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.e55bec8c09c1f9f8p+127L,      0x1.f280690b0478a8e6p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.1bb562d5f8affe86p+126L,      0x1.0d7f96f4fb875718p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.ffffffffffffffeap+127L,      0x1.fffffffffffffff4p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.0000000000000016p+126L,      0x1.000000000000000ap+63L,         -0x1p-1, INEXACT)
+T(RN,      0x1.04a697769b1e886p+127L,      0x1.6d4ffc786e7012c2p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.498ee9156f7bff2cp+127L,      0x1.9ac5b08c63033528p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.f27baee08ce4bf62p+126L,      0x1.653a4f739cfccad6p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.39e8fd2810e3c6a4p+127L,      0x1.90e6c5d99b7974bap+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.2a09d1d4244471dcp+127L,       0x1.86a289ff20933bdp+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.ffffffffffffffe6p+127L,      0x1.fffffffffffffff2p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.000000000000001ap+126L,      0x1.000000000000000cp+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.7162ed1ab39542dap+127L,      0x1.b2e2d25b3a2c3e6ap+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.b174ec120a210f32p+126L,      0x1.4d1d2da4c5d3c194p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.7cf7e4a22d5829fap+127L,      0x1.b9a6b5520de3519ep+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.a0078958075c6a3ap+126L,       0x1.46594aadf21cae6p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.c6c276d15e4a9946p+127L,      0x1.e288236206406d1ap+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.3e5419569712a3eap+126L,      0x1.1d77dc9df9bf92e4p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.ffffffffffffffe2p+127L,       0x1.fffffffffffffffp+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.000000000000001ep+126L,      0x1.000000000000000ep+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.d353e91b2e3d55a6p+127L,      0x1.e92778f72c806152p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.2fbafc6b5178635ap+126L,      0x1.16d88708d37f9eacp+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.c3602b7a85e2b098p+127L,      0x1.e0bbae3af1e326a6p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.425a419360727946p+126L,      0x1.1f4451c50e1cd958p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.7f2dd3501e562cc4p+127L,      0x1.baee45bfd8e4397ap+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.9cc60421275300a6p+126L,      0x1.4511ba40271bc684p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.ffffffffffffffdep+127L,      0x1.ffffffffffffffeep+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.0000000000000022p+126L,       0x1.000000000000001p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.b6009c64780842b8p+127L,      0x1.d98edc0686260478p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.52a810a1cb2c6a9ap+126L,      0x1.267123f979d9fb86p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.ee9b52032ee67c5ep+127L,      0x1.f73a6c94dcf508d4p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.11d81889300ec3bep+126L,      0x1.08c5936b230af72ap+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.db1a3f9689faa2a4p+127L,      0x1.ed34d2e52f8af15ep+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.26f78dcdf6b39d0ep+126L,       0x1.12cb2d1ad0750eap+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.b4bdbbd4ef4f3fd8p+127L,      0x1.d8e030a1d308b4e2p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.543a53deec6a425ep+126L,      0x1.271fcf5e2cf74b1cp+63L,         -0x1p-1, INEXACT)
+T(RN,       0x1.5c16d880b0b303p+127L,      0x1.a629c1935a560376p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.d333278d4361f136p+126L,      0x1.59d63e6ca5a9fc88p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.e3f0f536e9eb3a48p+127L,      0x1.f1c5e071fedea624p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.1d3ea7c1da9e8fb2p+126L,      0x1.0e3a1f8e012159dap+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.ffffffffffffffdap+127L,      0x1.ffffffffffffffecp+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.0000000000000026p+126L,      0x1.0000000000000012p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.a70c274d00f7339cp+127L,      0x1.d16743fa02653466p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.65acb6bdf38f2ccep+126L,      0x1.2e98bc05fd9acb98p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.7aea36e031a47532p+127L,      0x1.b875973247925e56p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.a312e292b5dab45ap+126L,      0x1.478a68cdb86da1a8p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.46d55441bc2cb6c2p+127L,      0x1.99120b077c304baep+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.f73e66568f37a76ap+126L,       0x1.66edf4f883cfb45p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.ffffffffffffffd6p+127L,      0x1.ffffffffffffffeap+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.000000000000002ap+126L,      0x1.0000000000000014p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.618817402d45468cp+127L,      0x1.a973581a870b22c8p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.ca5c1de13047bc62p+126L,      0x1.568ca7e578f4dd36p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.5cee36de3912af38p+127L,      0x1.a6ac46ea7cc9969ap+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.d1d2c43d856bd6cep+126L,      0x1.5953b91583366964p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.67cc7a0c169fa3ccp+127L,      0x1.ad347c84e12d978ep+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.c05e08fae62dba3ep+126L,       0x1.52cb837b1ed2687p+63L,         -0x1p-1, INEXACT)
+T(RN,      0x1.1ea4fa0be8b4cafp+127L,      0x1.7f1860d7bbee912cp+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.486db6ab89224656p+127L,      0x1.9a114d7a489c224ap+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.f4739c795e9bbeeap+126L,      0x1.65eeb285b763ddb4p+63L,         -0x1p-1, INEXACT)
+T(RN,      0x1.a85f6e80a96a8ccp+127L,      0x1.d221be3afb212b02p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.63f4679f700e176ep+126L,      0x1.2dde41c504ded4fcp+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.ffffffffffffffd2p+127L,      0x1.ffffffffffffffe8p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.000000000000002ep+126L,      0x1.0000000000000016p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.646aafb801f467dep+127L,      0x1.ab2edd7c011db2fap+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.c5bc2e87fd369ddap+126L,      0x1.54d12283fee24d04p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.eee9e82427775bf8p+127L,      0x1.f7626565ebd460dep+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.11856fe4c7f472b6p+126L,       0x1.089d9a9a142b9f2p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.d813955c0b795f14p+127L,      0x1.eba216f6e159b908p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.2a5aa0eeced867f2p+126L,      0x1.145de9091ea646f6p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.a5b08ae143d37ac8p+127L,      0x1.d0a7e79f9722dca4p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.6771a804fcd5c9b2p+126L,      0x1.2f58186068dd235ap+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.ffffffffffffffcep+127L,      0x1.ffffffffffffffe6p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.0000000000000032p+126L,      0x1.0000000000000018p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.479191a3c1aac88ap+127L,      0x1.9987c76fe6f1dcf4p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.f5f476a819aa6356p+126L,      0x1.66783890190e230ap+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.b36992d8d0773854p+127L,      0x1.d827e5d2eda6c6bep+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.55e3c2c00f05c82ep+126L,       0x1.27d81a2d1259394p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.3876399544d47f0ap+127L,      0x1.8ff9be677cb47dc2p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.670372b2577128ecp+127L,      0x1.acbc845b84cb9844p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.c19bcb3f921cc03ap+126L,      0x1.53437ba47b3467bap+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.6767d8eb5d44074ep+127L,       0x1.acf8730e3cc7ecdp+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.c0fcff814dd881b6p+126L,      0x1.53078cf1c338132ep+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.de7ff5647b18b5bep+127L,      0x1.eef771e826beacc6p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.23333f580db95ed2p+126L,      0x1.11088e17d9415338p+63L,         -0x1p-1, INEXACT)
+T(RN,      0x1.b18b0c23832450cp+127L,      0x1.d7242a2b3f5e309ep+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.583d1b438a137dc6p+126L,       0x1.28dbd5d4c0a1cf6p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.c941b845af5415f8p+127L,      0x1.e3dad24949f6f522p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.3b6282d3a2de6d1ep+126L,      0x1.1c252db6b6090adcp+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.7753f2a581ef3b58p+127L,      0x1.b65e9d5190be40b6p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.a87035619f68f266p+126L,      0x1.49a162ae6f41bf48p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.ffffffffffffffcap+127L,      0x1.ffffffffffffffe4p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.0000000000000036p+126L,      0x1.000000000000001ap+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.5195b98136452306p+127L,      0x1.9fbe9465b9876f0ep+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.e4b3f8a0135dabb2p+126L,       0x1.60416b9a467890fp+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.868b059b283b8d72p+127L,      0x1.bf2aabd73040bda6p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.9216042b2ef2a8fap+126L,      0x1.40d55428cfbf4258p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.51a0b90e688b8ee4p+127L,      0x1.9fc55a0de88f8c34p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.e4a155c95db9d48ap+126L,      0x1.603aa5f2177073cap+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.22225511475b87acp+127L,      0x1.816b8c9e28511e7ep+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.784d57967412ff0cp+127L,      0x1.b6f02975d03aa082p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.a6f9b66a06c63b06p+126L,      0x1.490fd68a2fc55f7cp+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.1651d3d342990f48p+127L,      0x1.797dc38517bb0c68p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.7cfcf03e61caab2ap+127L,      0x1.b9a9a1fbca339384p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.a0001496065fe136p+126L,      0x1.46565e0435cc6c7ap+63L,         -0x1p-1, INEXACT)
+T(RN,      0x1.def6865415a19d3p+127L,      0x1.ef34c0d989778eeep+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.22b0878ef275e0c6p+126L,       0x1.10cb3f267688711p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.00f828fb05843592p+127L,      0x1.6ab935bbe040b286p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.2500754e0c74b0f8p+127L,      0x1.8351f6dc434cfa2ap+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.5e315537f82f8a86p+127L,      0x1.a76fcda66ac6105ep+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.cfc3d8896fbab2d2p+126L,       0x1.589032599539efap+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.ffffffffffffffc6p+127L,      0x1.ffffffffffffffe2p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.000000000000003ap+126L,      0x1.000000000000001cp+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.19293ef9b6810efap+127L,      0x1.7b69d176db90ca76p+63L,         -0x1p-1, INEXACT)
+T(RN,      0x1.105f5d2be51c3f3p+127L,      0x1.756fb66c7829d324p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.7d412738db49ab4cp+127L,       0x1.b9d12a3e9bf90d3p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.9f9b50fa0ebd0772p+126L,      0x1.462ed5c16406f2cep+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.11d83d8c6bf114d2p+127L,      0x1.7671b902bc2764ecp+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.7cf0075083695e3ep+127L,      0x1.b9a2264a7616f498p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.a01328e2424900e6p+126L,      0x1.465dd9b589e90b66p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.099cf94165883908p+127L,      0x1.70c608ce51f3863ep+63L,         -0x1p-1, INEXACT)
+T(RN,       0x1.47396fb8bb472dp+127L,      0x1.9950ac223f086cbcp+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.f68ed6a3fc5bcd92p+126L,      0x1.66af53ddc0f79342p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.3f03ab57df9dd33ep+127L,      0x1.9425cda820c44556p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.60ad256fd7c6bc88p+127L,      0x1.a8ef85aa8409c13ap+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.cbbd28e09752f1aep+126L,      0x1.57107a557bf63ec4p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.5a265a0d1846d676p+127L,      0x1.a4fc42e722241aaep+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.d66322af63b50cd2p+126L,       0x1.5b03bd18dddbe55p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.802f7e7041496b8cp+127L,      0x1.bb83195a052e7872p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.9b4c64c4637c0466p+126L,      0x1.447ce6a5fad1878cp+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.ffffffffffffffc2p+127L,       0x1.ffffffffffffffep+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.000000000000003ep+126L,      0x1.000000000000001ep+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.18c26b650b11dd64p+127L,      0x1.7b2469ea6d8e1bc8p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.66b8d3966de9b7ccp+127L,      0x1.ac8ff3821103a99ap+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.c211f22075bd75f6p+126L,      0x1.53700c7deefc5664p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.779114a6e711cc14p+127L,       0x1.b6824f304d52797p+63L,         -0x1p-1, INEXACT)
+T(RN,     0x1.a8144e2bfe34bf82p+126L,      0x1.497db0cfb2ad868ep+63L,         -0x1p-1, INEXACT)
diff --git a/src/musl/pleval.mk b/src/musl/pleval.mk
new file mode 100644 (file)
index 0000000..c15058a
--- /dev/null
@@ -0,0 +1,5 @@
+# suppress warnings, with gcc -Wno-parentheses -Wno-bool-compare is needed
+$(N).CFLAGS := -w
+# do not build and run the dynamic link tests (__pleval is no longer public)
+$(B)/$(N).err:
+       touch $@
index 09f18ff..a269cb8 100644 (file)
@@ -6,6 +6,84 @@
 #include <string.h>
 #include "test.h"
 
+#define t_fatal(...) (t_error(__VA_ARGS__), _Exit(t_status))
+#define length(a) (sizeof(a)/sizeof*(a))
+
+// interpose malloc functions
+// freed memory is not reused, it is checked for clobber.
+
+static unsigned char buf[1<<20];
+static size_t pos;
+static struct {
+       size_t pos;
+       size_t n;
+       int freed;
+} alloc[100];
+static int idx;
+
+void *malloc(size_t n)
+{
+       if (n == 0) n++;
+       if (n > sizeof buf - pos)
+               t_fatal("test buffer is small, pos: %zu, need: %zu\n", pos, n);
+       if (idx >= length(alloc))
+               t_fatal("test buffer is small, idx: %d\n", idx);
+       void *p = buf + pos;
+       alloc[idx].pos = pos;
+       alloc[idx].n = n;
+       pos += n;
+       idx++;
+       return p;
+}
+
+void *calloc(size_t n, size_t m)
+{
+       return memset(malloc(n*m), 0, n*m);
+}
+
+void *aligned_alloc(size_t a, size_t n)
+{
+       t_fatal("aligned_alloc is unsupported\n");
+}
+
+static int findidx(void *p)
+{
+       size_t pos = (unsigned char *)p - buf;
+       for (int i=0; i<idx; i++)
+               if (alloc[i].pos == pos)
+                       return i;
+       t_fatal("%p is not an allocated pointer\n", p);
+       return -1;
+}
+
+void *realloc(void *p, size_t n)
+{
+       void *q = malloc(n);
+       size_t m = alloc[findidx(p)].n;
+       memcpy(q, p, m < n ? m : n);
+       free(p);
+       return q;
+}
+
+void free(void *p)
+{
+       if (p == 0) return;
+       int i = findidx(p);
+       memset(p, 42, alloc[i].n);
+       alloc[i].freed = 1;
+}
+
+static void checkfreed(void)
+{
+       for (int i=0; i<idx; i++)
+               if (alloc[i].freed)
+                       for (size_t j=0; j<alloc[i].n; j++)
+                               if (buf[alloc[i].pos + j] != 42) {
+                                       t_error("freed allocation %d (pos: %zu, len: %zu) is clobbered\n", i, alloc[i].pos, alloc[i].n);
+                                       break;
+                               }
+}
+
 int main()
 {
        FILE *f = tmpfile();
@@ -14,29 +92,8 @@ int main()
        flockfile(f);
        funlockfile(g);
        fclose(g);
-
-       /* fill memory */
-       if (t_vmfill(0,0,0) < 0)
-               t_error("vmfill failed: %s\n", strerror(errno));
-       size_t i,n;
-       unsigned char *p;
-       for (n = 1; n < 10000; n++) {
-               if (!(p=malloc(n))) break;
-               free(p);
-       }
-       n--;
-       if (!(p=malloc(n))) {
-               t_error("bad malloc fragmentation\n");
-               return t_status;
-       }
-       memset(p, 0xff, n);
-
        /* may corrupt memory */
        funlockfile(f);
-       for (i=0; i<n; i++) {
-               if (p[i]!=0xff) {
-                       t_error("p[%zu] = %.2x\n", i, p[i]);
-               }
-       }
+       checkfreed();
        return t_status;
 }
index d0ccd35..420b000 100644 (file)
@@ -21,8 +21,6 @@ int main(void)
                t_error("vmfill failed\n");
                return 1;
        }
-       errno = 0;
-       T(t_setrlim(RLIMIT_DATA, 0));
 
        // malloc should fail here
        errno = 0;
@@ -32,8 +30,8 @@ int main(void)
        else if (errno != ENOMEM)
                t_error("malloc did not fail with ENOMEM, got %s\n", strerror(errno));
 
-       // make some space available for mmap
-       T(munmap((char*)p+65536, 65536));
+       // make space available for mmap, but ensure it's not contiguous with brk
+       T(munmap((char*)p+65536, n-65536));
 
        // malloc should succeed now
        q = malloc(10000);
index 28d0d98..f8970c3 100644 (file)
@@ -50,15 +50,18 @@ int main(void)
        pthread_t t1,t2,t3;
        pthread_once_t once = PTHREAD_ONCE_INIT;
        sem_t s1,s2,s3;
+       void *a1[] = {&once, &s1};
+       void *a2[] = {&once, &s2};
+       void *a3[] = {&once, &s3};
        void *p;
        int r;
 
        E(sem_init(&s1,0,0));
        E(sem_init(&s2,0,0));
        E(sem_init(&s3,0,0));
-       T(pthread_create(&t1, 0, start, (void*[]){&once,&s1}));
-       T(pthread_create(&t2, 0, start, (void*[]){&once,&s2}));
-       T(pthread_create(&t3, 0, start, (void*[]){&once,&s3}));
+       T(pthread_create(&t1, 0, start, a1));
+       T(pthread_create(&t2, 0, start, a2));
+       T(pthread_create(&t3, 0, start, a3));
        if (!deadlocked(&s1)) T(pthread_join(t1,&p));
        if (!deadlocked(&s2)) T(pthread_join(t2,&p));
        if (!deadlocked(&s3)) T(pthread_join(t3,&p));
index 449922d..48c6930 100644 (file)
@@ -6,7 +6,7 @@
 int main(void)
 {
        char dst[] = { 'a', 'a' }; 
-       char src[] = { 'b', 'b' };
+       char src[] = { 'b', 'b', 0 };
 
        if (sscanf(src, "%c", dst) != 1)
                t_error("sscanf %%c failed\n");
diff --git a/src/regression/sem_close-unmap.c b/src/regression/sem_close-unmap.c
new file mode 100644 (file)
index 0000000..fdf750e
--- /dev/null
@@ -0,0 +1,19 @@
+// commit: f70375df85d26235a45e74559afd69be59e5ff99 2020-10-28
+#define _GNU_SOURCE 1
+#include <fcntl.h>
+#include <stdlib.h>
+#include <semaphore.h>
+
+int main()
+{
+       char buf[] = "mysemXXXXXX";
+       if (!mktemp(buf)) return 1;
+       // open twice
+       sem_t *sem = sem_open(buf, O_CREAT|O_EXCL, 0600, 0);
+       sem_open(buf, 0);
+       sem_unlink(buf);
+       // close once
+       sem_close(sem);
+       // semaphore should be still mapped
+       sem_post(sem);
+}