diff options
| author | Joseph Myers <josmyers@redhat.com> | 2025-03-07 19:15:26 +0000 |
|---|---|---|
| committer | Joseph Myers <josmyers@redhat.com> | 2025-03-07 19:15:26 +0000 |
| commit | 77261698b4e938020a1b2032709a54d942ba330f (patch) | |
| tree | 6d7b1dd547ad3ed168503f308f627327a4f69b89 /math | |
| parent | ee3b1d15da412be19583085f81c220653b270c1f (diff) | |
| download | glibc-77261698b4e938020a1b2032709a54d942ba330f.tar.xz glibc-77261698b4e938020a1b2032709a54d942ba330f.zip | |
Implement C23 rsqrt
C23 adds various <math.h> function families originally defined in TS
18661-4. Add the rsqrt functions (1/sqrt(x)). The test inputs are
taken from those for sqrt.
Tested for x86_64 and x86, and with build-many-glibcs.py.
Diffstat (limited to 'math')
| -rw-r--r-- | math/Makefile | 6 | ||||
| -rw-r--r-- | math/Versions | 6 | ||||
| -rw-r--r-- | math/auto-libm-test-in | 68 | ||||
| -rw-r--r-- | math/auto-libm-test-out-rsqrt | 3375 | ||||
| -rw-r--r-- | math/bits/mathcalls.h | 5 | ||||
| -rw-r--r-- | math/gen-auto-libm-tests.c | 3 | ||||
| -rwxr-xr-x | math/gen-tgmath-tests.py | 1 | ||||
| -rw-r--r-- | math/libm-test-rsqrt.inc | 58 | ||||
| -rw-r--r-- | math/s_rsqrt_template.c | 29 | ||||
| -rw-r--r-- | math/test-tgmath.c | 12 | ||||
| -rw-r--r-- | math/tgmath.h | 4 |
11 files changed, 3566 insertions, 1 deletions
diff --git a/math/Makefile b/math/Makefile index 6dab60095b..7aabf355b4 100644 --- a/math/Makefile +++ b/math/Makefile @@ -139,6 +139,7 @@ gen-libm-calls = \ s_log2p1F \ s_nanF \ s_nextdownF \ + s_rsqrtF \ s_significandF \ s_sinpiF \ s_tanpiF \ @@ -682,6 +683,7 @@ libm-test-funcs-auto = \ log1p \ log2p1 \ pow \ + rsqrt \ sin \ sincos \ sinh \ @@ -1017,6 +1019,7 @@ tgmath3-macros = \ rint \ round \ roundeven \ + rsqrt \ scalb \ scalbln \ scalbn \ @@ -1462,6 +1465,7 @@ CFLAGS-s_remquo.c += -fno-builtin-remquol CFLAGS-s_rint.c += -fno-builtin-rintl CFLAGS-s_round.c += -fno-builtin-roundl CFLAGS-s_roundeven.c += -fno-builtin-roundevenl +CFLAGS-s_rsqrt.c += -fno-builtin-rsqrtl CFLAGS-w_scalb.c += -fno-builtin-scalbl CFLAGS-w_scalbln.c += -fno-builtin-scalblnl CFLAGS-s_scalbn.c += -fno-builtin-scalbnl @@ -1596,6 +1600,7 @@ CFLAGS-s_remquo.c += -fno-builtin-remquof32x -fno-builtin-remquof64 CFLAGS-s_rint.c += -fno-builtin-rintf32x -fno-builtin-rintf64 CFLAGS-s_round.c += -fno-builtin-roundf32x -fno-builtin-roundf64 CFLAGS-s_roundeven.c += -fno-builtin-roundevenf32x -fno-builtin-roundevenf64 +CFLAGS-s_rsqrt.c += -fno-builtin-rsqrtf32x -fno-builtin-rsqrtf64 CFLAGS-w_scalbln.c += -fno-builtin-scalblnf32x -fno-builtin-scalblnf64 CFLAGS-s_scalbn.c += -fno-builtin-scalbnf32x -fno-builtin-scalbnf64 CFLAGS-s_setpayload.c += -fno-builtin-setpayloadf32x -fno-builtin-setpayloadf64 @@ -1721,6 +1726,7 @@ CFLAGS-s_remquof.c += -fno-builtin-remquof32 CFLAGS-s_rintf.c += -fno-builtin-rintf32 CFLAGS-s_roundf.c += -fno-builtin-roundf32 CFLAGS-s_roundevenf.c += -fno-builtin-roundevenf32 +CFLAGS-s_rsqrtf.c += -fno-builtin-rsqrtf32 CFLAGS-w_scalblnf.c += -fno-builtin-scalblnf32 CFLAGS-s_scalbnf.c += -fno-builtin-scalbnf32 CFLAGS-s_setpayloadf.c += -fno-builtin-setpayloadf32 diff --git a/math/Versions b/math/Versions index e4fbef3f6d..34cdf2f8e8 100644 --- a/math/Versions +++ b/math/Versions @@ -671,4 +671,10 @@ libm { sinpif64x; sinpif128; tanpif64x; tanpif128; } + GLIBC_2.42 { + # Functions not involving _Float64x or _Float128, for all configurations. + rsqrt; rsqrtf; rsqrtl; rsqrtf32; rsqrtf64; rsqrtf32x; + # Functions involving _Float64x or _Float128, for some configurations. + rsqrtf64x; rsqrtf128; + } } diff --git a/math/auto-libm-test-in b/math/auto-libm-test-in index 7dd9cde9c9..989ce5d736 100644 --- a/math/auto-libm-test-in +++ b/math/auto-libm-test-in @@ -8151,6 +8151,74 @@ pow 0x1.059c76p+0 0x1.ff80bep+11 pow 0x1.7ac7cp+5 23 pow -0x1.7ac7cp+5 23 +rsqrt 2209 +rsqrt 4 +rsqrt 2 +rsqrt 0.25 +rsqrt 6642.25 +rsqrt 15190.5625 +rsqrt 0.75 +rsqrt 0x1.fffffffffffffp+1023 +rsqrt 0x1.ffffffffffffbp+1023 +rsqrt 0x1.ffffffffffff7p+1023 +rsqrt 0x1.ffffffffffff3p+1023 +rsqrt 0x1.fffffffffffefp+1023 +rsqrt 0x1.fffffffffffebp+1023 +rsqrt 0x1.fffffffffffe7p+1023 +rsqrt 0x1.fffffffffffe3p+1023 +rsqrt 0x1.fffffffffffdfp+1023 +rsqrt 0x1.fffffffffffdbp+1023 +rsqrt 0x1.fffffffffffd7p+1023 +rsqrt 0x1.0000000000003p-1022 +rsqrt 0x1.0000000000007p-1022 +rsqrt 0x1.000000000000bp-1022 +rsqrt 0x1.000000000000fp-1022 +rsqrt 0x1.0000000000013p-1022 +rsqrt 0x1.0000000000017p-1022 +rsqrt 0x1.000000000001bp-1022 +rsqrt 0x1.000000000001fp-1022 +rsqrt 0x1.0000000000023p-1022 +rsqrt 0x1.0000000000027p-1022 +rsqrt 0x1.000000000002bp-1022 +rsqrt 0x1.000000000002fp-1022 +rsqrt 0x1.0000000000033p-1022 +rsqrt 0x1.0000000000037p-1022 +rsqrt 0x1.7167bc36eaa3bp+6 +rsqrt 0x1.7570994273ad7p+6 +rsqrt 0x1.7dae969442fe6p+6 +rsqrt 0x1.7f8444fcf67e5p+6 +rsqrt 0x1.8364650e63a54p+6 +rsqrt 0x1.85bedd274edd8p+6 +rsqrt 0x1.8609cf496ab77p+6 +rsqrt 0x1.873849c70a375p+6 +rsqrt 0x1.8919c962cbaaep+6 +rsqrt 0x1.8de4493e22dc6p+6 +rsqrt 0x1.924829a17a288p+6 +rsqrt 0x1.92702cd992f12p+6 +rsqrt 0x1.92b763a8311fdp+6 +rsqrt 0x1.947da013c7293p+6 +rsqrt 0x1.9536091c494d2p+6 +rsqrt 0x1.61b04c6p-1019 +rsqrt 0x1.93789f1p-1018 +rsqrt 0x1.a1989b4p-1018 +rsqrt 0x1.f93bc9p-1018 +rsqrt 0x1.2f675e3p-1017 +rsqrt 0x1.a158508p-1017 +rsqrt 0x1.cd31f078p-1017 +rsqrt 0x1.33b43b08p-1016 +rsqrt 0x1.6e66a858p-1016 +rsqrt 0x1.8661cbf8p-1016 +rsqrt 0x1.bbb221b4p-1016 +rsqrt 0x1.c4942f3cp-1016 +rsqrt 0x1.dbb258c8p-1016 +rsqrt 0x1.57103ea4p-1015 +rsqrt 0x1.9b294f88p-1015 +rsqrt 0x1.0000000000001p+0 +rsqrt 0x1.fffffffffffffp-1 +rsqrt max +rsqrt min +rsqrt min_subnorm + sin 0 sin -0 sin pi/6 diff --git a/math/auto-libm-test-out-rsqrt b/math/auto-libm-test-out-rsqrt new file mode 100644 index 0000000000..cc28e827c3 --- /dev/null +++ b/math/auto-libm-test-out-rsqrt @@ -0,0 +1,3375 @@ +rsqrt 2209 += rsqrt downward binary32 0x8.a1p+8 : 0x5.726208p-8 : inexact += rsqrt tonearest binary32 0x8.a1p+8 : 0x5.726208p-8 : inexact += rsqrt towardzero binary32 0x8.a1p+8 : 0x5.726208p-8 : inexact += rsqrt upward binary32 0x8.a1p+8 : 0x5.72621p-8 : inexact += rsqrt downward binary64 0x8.a1p+8 : 0x5.72620ae4c415cp-8 : inexact += rsqrt tonearest binary64 0x8.a1p+8 : 0x5.72620ae4c415cp-8 : inexact += rsqrt towardzero binary64 0x8.a1p+8 : 0x5.72620ae4c415cp-8 : inexact += rsqrt upward binary64 0x8.a1p+8 : 0x5.72620ae4c416p-8 : inexact += rsqrt downward intel96 0x8.a1p+8 : 0x5.72620ae4c415c988p-8 : inexact += rsqrt tonearest intel96 0x8.a1p+8 : 0x5.72620ae4c415c988p-8 : inexact += rsqrt towardzero intel96 0x8.a1p+8 : 0x5.72620ae4c415c988p-8 : inexact += rsqrt upward intel96 0x8.a1p+8 : 0x5.72620ae4c415c99p-8 : inexact += rsqrt downward m68k96 0x8.a1p+8 : 0x5.72620ae4c415c988p-8 : inexact += rsqrt tonearest m68k96 0x8.a1p+8 : 0x5.72620ae4c415c988p-8 : inexact += rsqrt towardzero m68k96 0x8.a1p+8 : 0x5.72620ae4c415c988p-8 : inexact += rsqrt upward m68k96 0x8.a1p+8 : 0x5.72620ae4c415c99p-8 : inexact += rsqrt downward binary128 0x8.a1p+8 : 0x5.72620ae4c415c9882b931057262p-8 : inexact += rsqrt tonearest binary128 0x8.a1p+8 : 0x5.72620ae4c415c9882b931057262p-8 : inexact += rsqrt towardzero binary128 0x8.a1p+8 : 0x5.72620ae4c415c9882b931057262p-8 : inexact += rsqrt upward binary128 0x8.a1p+8 : 0x5.72620ae4c415c9882b9310572624p-8 : inexact += rsqrt downward ibm128 0x8.a1p+8 : 0x5.72620ae4c415c9882b93105726p-8 : inexact += rsqrt tonearest ibm128 0x8.a1p+8 : 0x5.72620ae4c415c9882b93105726p-8 : inexact += rsqrt towardzero ibm128 0x8.a1p+8 : 0x5.72620ae4c415c9882b93105726p-8 : inexact += rsqrt upward ibm128 0x8.a1p+8 : 0x5.72620ae4c415c9882b93105728p-8 : inexact +rsqrt 4 += rsqrt downward binary32 0x4p+0 : 0x8p-4 : += rsqrt tonearest binary32 0x4p+0 : 0x8p-4 : += rsqrt towardzero binary32 0x4p+0 : 0x8p-4 : += rsqrt upward binary32 0x4p+0 : 0x8p-4 : += rsqrt downward binary64 0x4p+0 : 0x8p-4 : += rsqrt tonearest binary64 0x4p+0 : 0x8p-4 : += rsqrt towardzero binary64 0x4p+0 : 0x8p-4 : += rsqrt upward binary64 0x4p+0 : 0x8p-4 : += rsqrt downward intel96 0x4p+0 : 0x8p-4 : += rsqrt tonearest intel96 0x4p+0 : 0x8p-4 : += rsqrt towardzero intel96 0x4p+0 : 0x8p-4 : += rsqrt upward intel96 0x4p+0 : 0x8p-4 : += rsqrt downward m68k96 0x4p+0 : 0x8p-4 : += rsqrt tonearest m68k96 0x4p+0 : 0x8p-4 : += rsqrt towardzero m68k96 0x4p+0 : 0x8p-4 : += rsqrt upward m68k96 0x4p+0 : 0x8p-4 : += rsqrt downward binary128 0x4p+0 : 0x8p-4 : += rsqrt tonearest binary128 0x4p+0 : 0x8p-4 : += rsqrt towardzero binary128 0x4p+0 : 0x8p-4 : += rsqrt upward binary128 0x4p+0 : 0x8p-4 : += rsqrt downward ibm128 0x4p+0 : 0x8p-4 : += rsqrt tonearest ibm128 0x4p+0 : 0x8p-4 : += rsqrt towardzero ibm128 0x4p+0 : 0x8p-4 : += rsqrt upward ibm128 0x4p+0 : 0x8p-4 : +rsqrt 2 += rsqrt downward binary32 0x2p+0 : 0xb.504f3p-4 : inexact += rsqrt tonearest binary32 0x2p+0 : 0xb.504f3p-4 : inexact += rsqrt towardzero binary32 0x2p+0 : 0xb.504f3p-4 : inexact += rsqrt upward binary32 0x2p+0 : 0xb.504f4p-4 : inexact += rsqrt downward binary64 0x2p+0 : 0xb.504f333f9de6p-4 : inexact += rsqrt tonearest binary64 0x2p+0 : 0xb.504f333f9de68p-4 : inexact += rsqrt towardzero binary64 0x2p+0 : 0xb.504f333f9de6p-4 : inexact += rsqrt upward binary64 0x2p+0 : 0xb.504f333f9de68p-4 : inexact += rsqrt downward intel96 0x2p+0 : 0xb.504f333f9de6484p-4 : inexact += rsqrt tonearest intel96 0x2p+0 : 0xb.504f333f9de6484p-4 : inexact += rsqrt towardzero intel96 0x2p+0 : 0xb.504f333f9de6484p-4 : inexact += rsqrt upward intel96 0x2p+0 : 0xb.504f333f9de6485p-4 : inexact += rsqrt downward m68k96 0x2p+0 : 0xb.504f333f9de6484p-4 : inexact += rsqrt tonearest m68k96 0x2p+0 : 0xb.504f333f9de6484p-4 : inexact += rsqrt towardzero m68k96 0x2p+0 : 0xb.504f333f9de6484p-4 : inexact += rsqrt upward m68k96 0x2p+0 : 0xb.504f333f9de6485p-4 : inexact += rsqrt downward binary128 0x2p+0 : 0xb.504f333f9de6484597d89b3754a8p-4 : inexact += rsqrt tonearest binary128 0x2p+0 : 0xb.504f333f9de6484597d89b3754a8p-4 : inexact += rsqrt towardzero binary128 0x2p+0 : 0xb.504f333f9de6484597d89b3754a8p-4 : inexact += rsqrt upward binary128 0x2p+0 : 0xb.504f333f9de6484597d89b3754bp-4 : inexact += rsqrt downward ibm128 0x2p+0 : 0xb.504f333f9de6484597d89b3754p-4 : inexact += rsqrt tonearest ibm128 0x2p+0 : 0xb.504f333f9de6484597d89b3754p-4 : inexact += rsqrt towardzero ibm128 0x2p+0 : 0xb.504f333f9de6484597d89b3754p-4 : inexact += rsqrt upward ibm128 0x2p+0 : 0xb.504f333f9de6484597d89b3758p-4 : inexact +rsqrt 0.25 += rsqrt downward binary32 0x4p-4 : 0x2p+0 : += rsqrt tonearest binary32 0x4p-4 : 0x2p+0 : += rsqrt towardzero binary32 0x4p-4 : 0x2p+0 : += rsqrt upward binary32 0x4p-4 : 0x2p+0 : += rsqrt downward binary64 0x4p-4 : 0x2p+0 : += rsqrt tonearest binary64 0x4p-4 : 0x2p+0 : += rsqrt towardzero binary64 0x4p-4 : 0x2p+0 : += rsqrt upward binary64 0x4p-4 : 0x2p+0 : += rsqrt downward intel96 0x4p-4 : 0x2p+0 : += rsqrt tonearest intel96 0x4p-4 : 0x2p+0 : += rsqrt towardzero intel96 0x4p-4 : 0x2p+0 : += rsqrt upward intel96 0x4p-4 : 0x2p+0 : += rsqrt downward m68k96 0x4p-4 : 0x2p+0 : += rsqrt tonearest m68k96 0x4p-4 : 0x2p+0 : += rsqrt towardzero m68k96 0x4p-4 : 0x2p+0 : += rsqrt upward m68k96 0x4p-4 : 0x2p+0 : += rsqrt downward binary128 0x4p-4 : 0x2p+0 : += rsqrt tonearest binary128 0x4p-4 : 0x2p+0 : += rsqrt towardzero binary128 0x4p-4 : 0x2p+0 : += rsqrt upward binary128 0x4p-4 : 0x2p+0 : += rsqrt downward ibm128 0x4p-4 : 0x2p+0 : += rsqrt tonearest ibm128 0x4p-4 : 0x2p+0 : += rsqrt towardzero ibm128 0x4p-4 : 0x2p+0 : += rsqrt upward ibm128 0x4p-4 : 0x2p+0 : +rsqrt 6642.25 += rsqrt downward binary32 0x1.9f24p+12 : 0x3.241f68p-8 : inexact += rsqrt tonearest binary32 0x1.9f24p+12 : 0x3.241f68p-8 : inexact += rsqrt towardzero binary32 0x1.9f24p+12 : 0x3.241f68p-8 : inexact += rsqrt upward binary32 0x1.9f24p+12 : 0x3.241f6cp-8 : inexact += rsqrt downward binary64 0x1.9f24p+12 : 0x3.241f693a1c45p-8 : inexact += rsqrt tonearest binary64 0x1.9f24p+12 : 0x3.241f693a1c452p-8 : inexact += rsqrt towardzero binary64 0x1.9f24p+12 : 0x3.241f693a1c45p-8 : inexact += rsqrt upward binary64 0x1.9f24p+12 : 0x3.241f693a1c452p-8 : inexact += rsqrt downward intel96 0x1.9f24p+12 : 0x3.241f693a1c451abp-8 : inexact += rsqrt tonearest intel96 0x1.9f24p+12 : 0x3.241f693a1c451ab4p-8 : inexact += rsqrt towardzero intel96 0x1.9f24p+12 : 0x3.241f693a1c451abp-8 : inexact += rsqrt upward intel96 0x1.9f24p+12 : 0x3.241f693a1c451ab4p-8 : inexact += rsqrt downward m68k96 0x1.9f24p+12 : 0x3.241f693a1c451abp-8 : inexact += rsqrt tonearest m68k96 0x1.9f24p+12 : 0x3.241f693a1c451ab4p-8 : inexact += rsqrt towardzero m68k96 0x1.9f24p+12 : 0x3.241f693a1c451abp-8 : inexact += rsqrt upward m68k96 0x1.9f24p+12 : 0x3.241f693a1c451ab4p-8 : inexact += rsqrt downward binary128 0x1.9f24p+12 : 0x3.241f693a1c451ab30afe6df04b62p-8 : inexact += rsqrt tonearest binary128 0x1.9f24p+12 : 0x3.241f693a1c451ab30afe6df04b62p-8 : inexact += rsqrt towardzero binary128 0x1.9f24p+12 : 0x3.241f693a1c451ab30afe6df04b62p-8 : inexact += rsqrt upward binary128 0x1.9f24p+12 : 0x3.241f693a1c451ab30afe6df04b64p-8 : inexact += rsqrt downward ibm128 0x1.9f24p+12 : 0x3.241f693a1c451ab30afe6df04bp-8 : inexact += rsqrt tonearest ibm128 0x1.9f24p+12 : 0x3.241f693a1c451ab30afe6df04bp-8 : inexact += rsqrt towardzero ibm128 0x1.9f24p+12 : 0x3.241f693a1c451ab30afe6df04bp-8 : inexact += rsqrt upward ibm128 0x1.9f24p+12 : 0x3.241f693a1c451ab30afe6df04cp-8 : inexact +rsqrt 15190.5625 += rsqrt downward binary32 0x3.b569p+12 : 0x2.13bb74p-8 : inexact += rsqrt tonearest binary32 0x3.b569p+12 : 0x2.13bb74p-8 : inexact += rsqrt towardzero binary32 0x3.b569p+12 : 0x2.13bb74p-8 : inexact += rsqrt upward binary32 0x3.b569p+12 : 0x2.13bb78p-8 : inexact += rsqrt downward binary64 0x3.b569p+12 : 0x2.13bb74d5f06cp-8 : inexact += rsqrt tonearest binary64 0x3.b569p+12 : 0x2.13bb74d5f06cp-8 : inexact += rsqrt towardzero binary64 0x3.b569p+12 : 0x2.13bb74d5f06cp-8 : inexact += rsqrt upward binary64 0x3.b569p+12 : 0x2.13bb74d5f06c2p-8 : inexact += rsqrt downward intel96 0x3.b569p+12 : 0x2.13bb74d5f06c021p-8 : inexact += rsqrt tonearest intel96 0x3.b569p+12 : 0x2.13bb74d5f06c0214p-8 : inexact += rsqrt towardzero intel96 0x3.b569p+12 : 0x2.13bb74d5f06c021p-8 : inexact += rsqrt upward intel96 0x3.b569p+12 : 0x2.13bb74d5f06c0214p-8 : inexact += rsqrt downward m68k96 0x3.b569p+12 : 0x2.13bb74d5f06c021p-8 : inexact += rsqrt tonearest m68k96 0x3.b569p+12 : 0x2.13bb74d5f06c0214p-8 : inexact += rsqrt towardzero m68k96 0x3.b569p+12 : 0x2.13bb74d5f06c021p-8 : inexact += rsqrt upward m68k96 0x3.b569p+12 : 0x2.13bb74d5f06c0214p-8 : inexact += rsqrt downward binary128 0x3.b569p+12 : 0x2.13bb74d5f06c0213bb74d5f06c02p-8 : inexact += rsqrt tonearest binary128 0x3.b569p+12 : 0x2.13bb74d5f06c0213bb74d5f06c02p-8 : inexact += rsqrt towardzero binary128 0x3.b569p+12 : 0x2.13bb74d5f06c0213bb74d5f06c02p-8 : inexact += rsqrt upward binary128 0x3.b569p+12 : 0x2.13bb74d5f06c0213bb74d5f06c04p-8 : inexact += rsqrt downward ibm128 0x3.b569p+12 : 0x2.13bb74d5f06c0213bb74d5f06cp-8 : inexact += rsqrt tonearest ibm128 0x3.b569p+12 : 0x2.13bb74d5f06c0213bb74d5f06cp-8 : inexact += rsqrt towardzero ibm128 0x3.b569p+12 : 0x2.13bb74d5f06c0213bb74d5f06cp-8 : inexact += rsqrt upward ibm128 0x3.b569p+12 : 0x2.13bb74d5f06c0213bb74d5f06dp-8 : inexact +rsqrt 0.75 += rsqrt downward binary32 0xcp-4 : 0x1.279a74p+0 : inexact += rsqrt tonearest binary32 0xcp-4 : 0x1.279a74p+0 : inexact += rsqrt towardzero binary32 0xcp-4 : 0x1.279a74p+0 : inexact += rsqrt upward binary32 0xcp-4 : 0x1.279a76p+0 : inexact += rsqrt downward binary64 0xcp-4 : 0x1.279a74590331cp+0 : inexact += rsqrt tonearest binary64 0xcp-4 : 0x1.279a74590331cp+0 : inexact += rsqrt towardzero binary64 0xcp-4 : 0x1.279a74590331cp+0 : inexact += rsqrt upward binary64 0xcp-4 : 0x1.279a74590331dp+0 : inexact += rsqrt downward intel96 0xcp-4 : 0x1.279a74590331c4d2p+0 : inexact += rsqrt tonearest intel96 0xcp-4 : 0x1.279a74590331c4d2p+0 : inexact += rsqrt towardzero intel96 0xcp-4 : 0x1.279a74590331c4d2p+0 : inexact += rsqrt upward intel96 0xcp-4 : 0x1.279a74590331c4d4p+0 : inexact += rsqrt downward m68k96 0xcp-4 : 0x1.279a74590331c4d2p+0 : inexact += rsqrt tonearest m68k96 0xcp-4 : 0x1.279a74590331c4d2p+0 : inexact += rsqrt towardzero m68k96 0xcp-4 : 0x1.279a74590331c4d2p+0 : inexact += rsqrt upward m68k96 0xcp-4 : 0x1.279a74590331c4d4p+0 : inexact += rsqrt downward binary128 0xcp-4 : 0x1.279a74590331c4d218f81e4afb25p+0 : inexact += rsqrt tonearest binary128 0xcp-4 : 0x1.279a74590331c4d218f81e4afb25p+0 : inexact += rsqrt towardzero binary128 0xcp-4 : 0x1.279a74590331c4d218f81e4afb25p+0 : inexact += rsqrt upward binary128 0xcp-4 : 0x1.279a74590331c4d218f81e4afb26p+0 : inexact += rsqrt downward ibm128 0xcp-4 : 0x1.279a74590331c4d218f81e4afbp+0 : inexact += rsqrt tonearest ibm128 0xcp-4 : 0x1.279a74590331c4d218f81e4afbp+0 : inexact += rsqrt towardzero ibm128 0xcp-4 : 0x1.279a74590331c4d218f81e4afbp+0 : inexact += rsqrt upward ibm128 0xcp-4 : 0x1.279a74590331c4d218f81e4afb8p+0 : inexact +rsqrt 0x1.fffffffffffffp+1023 += rsqrt downward binary32 0xf.fffffp+124 : 0x1p-64 : inexact += rsqrt tonearest binary32 0xf.fffffp+124 : 0x1p-64 : inexact += rsqrt towardzero binary32 0xf.fffffp+124 : 0x1p-64 : inexact += rsqrt upward binary32 0xf.fffffp+124 : 0x1.000002p-64 : inexact += rsqrt downward binary64 0xf.fffffp+124 : 0x1.0000008000006p-64 : inexact += rsqrt tonearest binary64 0xf.fffffp+124 : 0x1.0000008000006p-64 : inexact += rsqrt towardzero binary64 0xf.fffffp+124 : 0x1.0000008000006p-64 : inexact += rsqrt upward binary64 0xf.fffffp+124 : 0x1.0000008000007p-64 : inexact += rsqrt downward intel96 0xf.fffffp+124 : 0x1.0000008000006p-64 : inexact += rsqrt tonearest intel96 0xf.fffffp+124 : 0x1.0000008000006p-64 : inexact += rsqrt towardzero intel96 0xf.fffffp+124 : 0x1.0000008000006p-64 : inexact += rsqrt upward intel96 0xf.fffffp+124 : 0x1.0000008000006002p-64 : inexact += rsqrt downward m68k96 0xf.fffffp+124 : 0x1.0000008000006p-64 : inexact += rsqrt tonearest m68k96 0xf.fffffp+124 : 0x1.0000008000006p-64 : inexact += rsqrt towardzero m68k96 0xf.fffffp+124 : 0x1.0000008000006p-64 : inexact += rsqrt upward m68k96 0xf.fffffp+124 : 0x1.0000008000006002p-64 : inexact += rsqrt downward binary128 0xf.fffffp+124 : 0x1.00000080000060000050000046p-64 : inexact += rsqrt tonearest binary128 0xf.fffffp+124 : 0x1.00000080000060000050000046p-64 : inexact += rsqrt towardzero binary128 0xf.fffffp+124 : 0x1.00000080000060000050000046p-64 : inexact += rsqrt upward binary128 0xf.fffffp+124 : 0x1.0000008000006000005000004601p-64 : inexact += rsqrt downward ibm128 0xf.fffffp+124 : 0x1.00000080000060000050000046p-64 : inexact += rsqrt tonearest ibm128 0xf.fffffp+124 : 0x1.00000080000060000050000046p-64 : inexact += rsqrt towardzero ibm128 0xf.fffffp+124 : 0x1.00000080000060000050000046p-64 : inexact += rsqrt upward ibm128 0xf.fffffp+124 : 0x1.000000800000600000500000468p-64 : inexact += rsqrt downward binary64 0xf.ffffffffffff8p+1020 : 0x1p-512 : inexact += rsqrt tonearest binary64 0xf.ffffffffffff8p+1020 : 0x1p-512 : inexact += rsqrt towardzero binary64 0xf.ffffffffffff8p+1020 : 0x1p-512 : inexact += rsqrt upward binary64 0xf.ffffffffffff8p+1020 : 0x1.0000000000001p-512 : inexact += rsqrt downward intel96 0xf.ffffffffffff8p+1020 : 0x1.00000000000004p-512 : inexact += rsqrt tonearest intel96 0xf.ffffffffffff8p+1020 : 0x1.00000000000004p-512 : inexact += rsqrt towardzero intel96 0xf.ffffffffffff8p+1020 : 0x1.00000000000004p-512 : inexact += rsqrt upward intel96 0xf.ffffffffffff8p+1020 : 0x1.0000000000000402p-512 : inexact += rsqrt downward m68k96 0xf.ffffffffffff8p+1020 : 0x1.00000000000004p-512 : inexact += rsqrt tonearest m68k96 0xf.ffffffffffff8p+1020 : 0x1.00000000000004p-512 : inexact += rsqrt towardzero m68k96 0xf.ffffffffffff8p+1020 : 0x1.00000000000004p-512 : inexact += rsqrt upward m68k96 0xf.ffffffffffff8p+1020 : 0x1.0000000000000402p-512 : inexact += rsqrt downward binary128 0xf.ffffffffffff8p+1020 : 0x1.0000000000000400000000000018p-512 : inexact += rsqrt tonearest binary128 0xf.ffffffffffff8p+1020 : 0x1.0000000000000400000000000018p-512 : inexact += rsqrt towardzero binary128 0xf.ffffffffffff8p+1020 : 0x1.0000000000000400000000000018p-512 : inexact += rsqrt upward binary128 0xf.ffffffffffff8p+1020 : 0x1.0000000000000400000000000019p-512 : inexact += rsqrt downward ibm128 0xf.ffffffffffff8p+1020 : 0x1.00000000000004p-512 : inexact += rsqrt tonearest ibm128 0xf.ffffffffffff8p+1020 : 0x1.00000000000004p-512 : inexact += rsqrt towardzero ibm128 0xf.ffffffffffff8p+1020 : 0x1.00000000000004p-512 : inexact += rsqrt upward ibm128 0xf.ffffffffffff8p+1020 : 0x1.000000000000040000000000008p-512 : inexact +rsqrt 0x1.ffffffffffffbp+1023 += rsqrt downward binary32 0xf.fffffp+124 : 0x1p-64 : inexact += rsqrt tonearest binary32 0xf.fffffp+124 : 0x1p-64 : inexact += rsqrt towardzero binary32 0xf.fffffp+124 : 0x1p-64 : inexact += rsqrt upward binary32 0xf.fffffp+124 : 0x1.000002p-64 : inexact += rsqrt downward binary64 0xf.fffffp+124 : 0x1.0000008000006p-64 : inexact += rsqrt tonearest binary64 0xf.fffffp+124 : 0x1.0000008000006p-64 : inexact += rsqrt towardzero binary64 0xf.fffffp+124 : 0x1.0000008000006p-64 : inexact += rsqrt upward binary64 0xf.fffffp+124 : 0x1.0000008000007p-64 : inexact += rsqrt downward intel96 0xf.fffffp+124 : 0x1.0000008000006p-64 : inexact += rsqrt tonearest intel96 0xf.fffffp+124 : 0x1.0000008000006p-64 : inexact += rsqrt towardzero intel96 0xf.fffffp+124 : 0x1.0000008000006p-64 : inexact += rsqrt upward intel96 0xf.fffffp+124 : 0x1.0000008000006002p-64 : inexact += rsqrt downward m68k96 0xf.fffffp+124 : 0x1.0000008000006p-64 : inexact += rsqrt tonearest m68k96 0xf.fffffp+124 : 0x1.0000008000006p-64 : inexact += rsqrt towardzero m68k96 0xf.fffffp+124 : 0x1.0000008000006p-64 : inexact += rsqrt upward m68k96 0xf.fffffp+124 : 0x1.0000008000006002p-64 : inexact += rsqrt downward binary128 0xf.fffffp+124 : 0x1.00000080000060000050000046p-64 : inexact += rsqrt tonearest binary128 0xf.fffffp+124 : 0x1.00000080000060000050000046p-64 : inexact += rsqrt towardzero binary128 0xf.fffffp+124 : 0x1.00000080000060000050000046p-64 : inexact += rsqrt upward binary128 0xf.fffffp+124 : 0x1.0000008000006000005000004601p-64 : inexact += rsqrt downward ibm128 0xf.fffffp+124 : 0x1.00000080000060000050000046p-64 : inexact += rsqrt tonearest ibm128 0xf.fffffp+124 : 0x1.00000080000060000050000046p-64 : inexact += rsqrt towardzero ibm128 0xf.fffffp+124 : 0x1.00000080000060000050000046p-64 : inexact += rsqrt upward ibm128 0xf.fffffp+124 : 0x1.000000800000600000500000468p-64 : inexact += rsqrt downward binary64 0xf.fffffffffffd8p+1020 : 0x1.0000000000001p-512 : inexact += rsqrt tonearest binary64 0xf.fffffffffffd8p+1020 : 0x1.0000000000001p-512 : inexact += rsqrt towardzero binary64 0xf.fffffffffffd8p+1020 : 0x1.0000000000001p-512 : inexact += rsqrt upward binary64 0xf.fffffffffffd8p+1020 : 0x1.0000000000002p-512 : inexact += rsqrt downward intel96 0xf.fffffffffffd8p+1020 : 0x1.00000000000014p-512 : inexact += rsqrt tonearest intel96 0xf.fffffffffffd8p+1020 : 0x1.00000000000014p-512 : inexact += rsqrt towardzero intel96 0xf.fffffffffffd8p+1020 : 0x1.00000000000014p-512 : inexact += rsqrt upward intel96 0xf.fffffffffffd8p+1020 : 0x1.0000000000001402p-512 : inexact += rsqrt downward m68k96 0xf.fffffffffffd8p+1020 : 0x1.00000000000014p-512 : inexact += rsqrt tonearest m68k96 0xf.fffffffffffd8p+1020 : 0x1.00000000000014p-512 : inexact += rsqrt towardzero m68k96 0xf.fffffffffffd8p+1020 : 0x1.00000000000014p-512 : inexact += rsqrt upward m68k96 0xf.fffffffffffd8p+1020 : 0x1.0000000000001402p-512 : inexact += rsqrt downward binary128 0xf.fffffffffffd8p+1020 : 0x1.0000000000001400000000000258p-512 : inexact += rsqrt tonearest binary128 0xf.fffffffffffd8p+1020 : 0x1.0000000000001400000000000258p-512 : inexact += rsqrt towardzero binary128 0xf.fffffffffffd8p+1020 : 0x1.0000000000001400000000000258p-512 : inexact += rsqrt upward binary128 0xf.fffffffffffd8p+1020 : 0x1.0000000000001400000000000259p-512 : inexact += rsqrt downward ibm128 0xf.fffffffffffd8p+1020 : 0x1.00000000000014000000000002p-512 : inexact += rsqrt tonearest ibm128 0xf.fffffffffffd8p+1020 : 0x1.000000000000140000000000028p-512 : inexact += rsqrt towardzero ibm128 0xf.fffffffffffd8p+1020 : 0x1.00000000000014000000000002p-512 : inexact += rsqrt upward ibm128 0xf.fffffffffffd8p+1020 : 0x1.000000000000140000000000028p-512 : inexact +rsqrt 0x1.ffffffffffff7p+1023 += rsqrt downward binary32 0xf.fffffp+124 : 0x1p-64 : inexact += rsqrt tonearest binary32 0xf.fffffp+124 : 0x1p-64 : inexact += rsqrt towardzero binary32 0xf.fffffp+124 : 0x1p-64 : inexact += rsqrt upward binary32 0xf.fffffp+124 : 0x1.000002p-64 : inexact += rsqrt downward binary64 0xf.fffffp+124 : 0x1.0000008000006p-64 : inexact += rsqrt tonearest binary64 0xf.fffffp+124 : 0x1.0000008000006p-64 : inexact += rsqrt towardzero binary64 0xf.fffffp+124 : 0x1.0000008000006p-64 : inexact += rsqrt upward binary64 0xf.fffffp+124 : 0x1.0000008000007p-64 : inexact += rsqrt downward intel96 0xf.fffffp+124 : 0x1.0000008000006p-64 : inexact += rsqrt tonearest intel96 0xf.fffffp+124 : 0x1.0000008000006p-64 : inexact += rsqrt towardzero intel96 0xf.fffffp+124 : 0x1.0000008000006p-64 : inexact += rsqrt upward intel96 0xf.fffffp+124 : 0x1.0000008000006002p-64 : inexact += rsqrt downward m68k96 0xf.fffffp+124 : 0x1.0000008000006p-64 : inexact += rsqrt tonearest m68k96 0xf.fffffp+124 : 0x1.0000008000006p-64 : inexact += rsqrt towardzero m68k96 0xf.fffffp+124 : 0x1.0000008000006p-64 : inexact += rsqrt upward m68k96 0xf.fffffp+124 : 0x1.0000008000006002p-64 : inexact += rsqrt downward binary128 0xf.fffffp+124 : 0x1.00000080000060000050000046p-64 : inexact += rsqrt tonearest binary128 0xf.fffffp+124 : 0x1.00000080000060000050000046p-64 : inexact += rsqrt towardzero binary128 0xf.fffffp+124 : 0x1.00000080000060000050000046p-64 : inexact += rsqrt upward binary128 0xf.fffffp+124 : 0x1.0000008000006000005000004601p-64 : inexact += rsqrt downward ibm128 0xf.fffffp+124 : 0x1.00000080000060000050000046p-64 : inexact += rsqrt tonearest ibm128 0xf.fffffp+124 : 0x1.00000080000060000050000046p-64 : inexact += rsqrt towardzero ibm128 0xf.fffffp+124 : 0x1.00000080000060000050000046p-64 : inexact |
