aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaciej W. Rozycki <macro@redhat.com>2025-03-25 09:40:20 +0000
committerMaciej W. Rozycki <macro@redhat.com>2025-03-25 09:40:20 +0000
commit771cda3c9cbbfc33a1a337d964e7749b245dec38 (patch)
treefcc02a2f1a94f6b946a2c659ba3a0df0de3c9e61
parent1890e63c86ceb04a49a914dc2cafa9862e938ef6 (diff)
downloadglibc-771cda3c9cbbfc33a1a337d964e7749b245dec38.tar.xz
glibc-771cda3c9cbbfc33a1a337d964e7749b245dec38.zip
stdio-common: Add scanf long double data for IEEE 754 binary64 format
Add Makefile infrastructure and 64-bit `long double' real input data for targets switching between the IEEE 754 binary64 and IEEE 754 binary128 formats with `-mlong-double-64' and `-mlong-double-128'. Use modified output file names for the IEEE 754 binary64 format so as not to clash with the names used for IEEE 754 binary128 format tests made with common rules for the 'long double' data type. Keep input data disabled and referring to BZ #12701 for entries that are are currently incorrectly accepted as valid data, such as '0e', '0e+', '0x', '0x8p', '0x0p-', etc. Reviewed-by: Joseph Myers <josmyers@redhat.com>
-rw-r--r--sysdeps/ieee754/ldbl-64-128/Makefile14
-rw-r--r--sysdeps/ieee754/ldbl-opt/Makefile55
-rw-r--r--sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-a.input682
-rw-r--r--sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-aa.input682
-rw-r--r--sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-e.input558
-rw-r--r--sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-ee.input558
-rw-r--r--sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-f.input558
-rw-r--r--sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-ff.input558
-rw-r--r--sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-g.input682
-rw-r--r--sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-gg.input682
10 files changed, 5028 insertions, 1 deletions
diff --git a/sysdeps/ieee754/ldbl-64-128/Makefile b/sysdeps/ieee754/ldbl-64-128/Makefile
new file mode 100644
index 0000000000..7a37fa179f
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-64-128/Makefile
@@ -0,0 +1,14 @@
+ifeq ($(subdir),stdio-common)
+ifeq ($(run-built-tests),yes)
+# Put long double IEEE binary128 format inputs in sysdeps/ieee754/ldbl-128
+# first in vpath. Otherwise the ordering of sysdeps would cause long double
+# IEEE binary64 format inputs in sysdeps/ieee754/ldbl-opt to be used instead
+# for the common rules requested in sysdeps/ieee754/ldbl-128 with targets
+# using the dual -mlong-double-128/-mlong-double-64 arrangement.
+define tst-scanf-format-64-128-vpath
+vpath tst-scanf-format-ldouble-$(1).input ../sysdeps/ieee754/ldbl-128
+endef
+$(foreach f,$(fmts-xscanf-real), \
+ $(eval $(call tst-scanf-format-64-128-vpath,$(f))))
+endif # $(run-built-tests) == yes
+endif # $(subdir) == stdio-common
diff --git a/sysdeps/ieee754/ldbl-opt/Makefile b/sysdeps/ieee754/ldbl-opt/Makefile
index 474f68ad7e..67fd5a0ddc 100644
--- a/sysdeps/ieee754/ldbl-opt/Makefile
+++ b/sysdeps/ieee754/ldbl-opt/Makefile
@@ -451,6 +451,59 @@ CFLAGS-tst-nldbl-errorfptr.c += -mlong-double-64
endif
ifeq ($(subdir), stdio-common)
+# We already have the long double conversion defined with our common rules
+# for the IEEE binary128 format, so define these special rules to build
+# and run extra executables for the IEEE binary64 format, reusing the same
+# sources.
+define tst-scanf-format-64-tests
+test-srcs += \
+ tst-scanf-format-$(1)-ldouble-64 \
+ # test-srcs
+
+$$(objpfx)tst-scanf-format-$(1)-ldouble-64.o: \
+ tst-scanf-format-$(1)-ldouble.c $$(before-compile)
+ $$(compile-command.c)
+$$(objpfx)tst-scanf-format-$(1)-ldouble-64: $$(libm)
+endef
+$(foreach p,$(xscanf-funcs), \
+ $(eval $(call tst-scanf-format-64-tests,$(p))))
+
+# Use the IEEE binary64 format for long double scanf format tests.
+$(foreach suf,$(all-object-suffixes), \
+ $(foreach p,$(xscanf-funcs), \
+ $(objpfx)tst-scanf-format-$(p)-ldouble-64$(suf))): \
+ sysdep-CFLAGS += -mlong-double-64
+
+ifeq ($(run-built-tests),yes)
+define tst-scanf-format-64-rule
+tests-special += \
+ $$(objpfx)tst-scanf-format-$(1)-ldouble-64-$(2).out \
+ # tests-special
+
+$$(objpfx)tst-scanf-format-$(1)-ldouble-64-$(2).out: \
+ ../sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-$(2).input \
+ $$(objpfx)tst-scanf-format-$(1)-ldouble-64
+ $$(make-tst-scanf-format-out) > $$@ < $$<; \
+ $$(evaluate-test)
+
+ifeq (yes,$(build-shared))
+ifneq ($(PERL),no)
+tests-special += \
+ $$(objpfx)tst-scanf-format-$(1)-ldouble-64-$(2)-mem.out \
+ # tests-special
+
+generated += \
+ $$(objpfx)tst-scanf-format-$(1)-ldouble-64-$(2)-mem.out \
+ $$(objpfx)tst-scanf-format-$(1)-ldouble-64-$(2).mtrace \
+ # generated
+endif
+endif
+endef
+$(foreach f,$(fmts-xscanf-real), \
+ $(foreach p,$(xscanf-funcs), \
+ $(eval $(call tst-scanf-format-64-rule,$(p),$(f)))))
+endif # $(run-built-tests) == yes
+
tests += \
tst-nldbl-scanf-binary-c11 \
tst-nldbl-scanf-binary-c23 \
@@ -471,7 +524,7 @@ CFLAGS-tst-nldbl-scanf-binary-gnu11.c += -mlong-double-64 -std=gnu11 \
CFLAGS-tst-nldbl-scanf-binary-gnu89.c += -mlong-double-64 -std=gnu89 \
-DOBJPFX=\"$(objpfx)\"
-endif
+endif # $(subdir) == stdio-common
ifeq ($(subdir), wcsmbs)
tests += \
diff --git a/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-a.input b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-a.input
new file mode 100644
index 0000000000..42a1ffa84a
--- /dev/null
+++ b/sysdeps/ieee754/ldbl-opt/tst-scanf-format-ldouble-a.input
@@ -0,0 +1,682 @@
+%La::0:-1:
+%*La::0:-1:
+%La:-infinity:1:9:-inf:
+%*La:-infinity:0:9:
+%La:-0xf.ffffffffffff8p+1020:1:24:-0x1.fffffffffffffp1023:
+%*La:-0xf.ffffffffffff8p+1020:0:24:
+%La:-0x7.ffffffffffffcp1021:1:23:-0x1.fffffffffffffp1023:
+%*La:-0x7.ffffffffffffcp1021:0:23:
+%La:-0x2.3456789abcdfep+123:1:23:-0x1.1a2b3c4d5e6ffp124:
+%*La:-0x2.3456789abcdfep+123:0:23:
+%La:-0x2.3456789abcdfep0123:1:23:-0x1.1a2b3c4d5e6ffp124:
+%*La:-0x2.3456789abcdfep0123:0:23:
+%La:-0x8p-1025:1:10:-0x1p-1022:
+%*La:-0x8p-1025:0:10:
+%La:-0x0p+0:1:7:-0x0:
+%*La:-0x0p+0:0:7:
+%La:-0x0p0:1:6:-0x0:
+%*La:-0x0p0:0:6:
+%La:-nan(09A_Zaz):1:13:-nan:
+%*La:-nan(09A_Zaz):0:13:
+%La:-nan():1:6:-nan:
+%*La:-nan():0:6:
+%La:nan():1:5:nan:
+%*La:nan():0:5:
+%La:nan(09A_Zaz):1:12:nan:
+%*La:nan(09A_Zaz):0:12:
+%La:0x0p0:1:5:0x0:
+%*La:0x0p0:0:5:
+%La:0x0p+0:1:6:0x0:
+%*La:0x0p+0:0:6:
+%La:0x8p-1025:1:9:0x1p-1022:
+%*La:0x8p-1025:0:9:
+%La:0x2.3456789abcdfep0123:1:22:0x1.1a2b3c4d5e6ffp124:
+%*La:0x2.3456789abcdfep0123:0:22:
+%La:0x2.3456789abcdfep+123:1:22:0x1.1a2b3c4d5e6ffp124:
+%*La:0x2.3456789abcdfep+123:0:22:
+%La:0x7.ffffffffffffcp1021:1:22:0x1.fffffffffffffp1023:
+%*La:0x7.ffffffffffffcp1021:0:22:
+%La:0xf.ffffffffffff8p+1020:1:23:0x1.fffffffffffffp1023:
+%*La:0xf.ffffffffffff8p+1020:0:23:
+%La:infinity:1:8:inf:
+%*La:infinity:0:8:
+%La:+nan():1:6:nan:
+%*La:+nan():0:6:
+%La:+nan(09A_Zaz):1:13:nan:
+%*La:+nan(09A_Zaz):0:13:
+%La:+0x0p0:1:6:0x0:
+%*La:+0x0p0:0:6:
+%La:+0x0p+0:1:7:0x0:
+%*La:+0x0p+0:0:7:
+%La:+0x8p-1025:1:10:0x1p-1022:
+%*La:+0x8p-1025:0:10:
+%La:+0x2.3456789abcdfep0123:1:23:0x1.1a2b3c4d5e6ffp124:
+%*La:+0x2.3456789abcdfep0123:0:23:
+%La:+0x2.3456789abcdfep+123:1:23:0x1.1a2b3c4d5e6ffp124:
+%*La:+0x2.3456789abcdfep+123:0:23:
+%La:+0x7.ffffffffffffcp1021:1:23:0x1.fffffffffffffp1023:
+%*La:+0x7.ffffffffffffcp1021:0:23:
+%La:+0xf.ffffffffffff8p+1020:1:24:0x1.fffffffffffffp1023:
+%*La:+0xf.ffffffffffff8p+1020:0:24:
+%La:+infinity:1:9:inf:
+%*La:+infinity:0:9:
+%1La::0:-1:
+%*1La::0:-1:
+%1La:-infinity:0:-1:
+%*1La:-infinity:0:-1:
+%1La:-0xf.ffffffffffff8p+1020:0:-1:
+%*1La:-0xf.ffffffffffff8p+1020:0:-1:
+%1La:-0x7.ffffffffffffcp1021:0:-1:
+%*1La:-0x7.ffffffffffffcp1021:0:-1:
+%1La:-0x2.3456789abcdfep+123:0:-1:
+%*1La:-0x2.3456789abcdfep+123:0:-1:
+%1La:-0x2.3456789abcdfep0123:0:-1:
+%*1La:-0x2.3456789abcdfep0123:0:-1:
+%1La:-0x8p-1025:0:-1:
+%*1La:-0x8p-1025:0:-1:
+%1La:-0x0p+0:0:-1:
+%*1La:-0x0p+0:0:-1:
+%1La:-0x0p0:0:-1:
+%*1La:-0x0p0:0:-1:
+%1La:-nan(09A_Zaz):0:-1:
+%*1La:-nan(09A_Zaz):0:-1:
+%1La:-nan():0:-1:
+%*1La:-nan():0:-1:
+%1La:nan():0:-1:
+%*1La:nan():0:-1:
+%1La:nan(09A_Zaz):0:-1:
+%*1La:nan(09A_Zaz):0:-1:
+%1La:0x0p0:1:1:0x0:
+%*1La:0x0p0:0:1:
+%1La:0x0p+0:1:1:0x0:
+%*1La:0x0p+0:0:1:
+%1La:0x8p-1025:1:1:0x0:
+%*1La:0x8p-1025:0:1:
+%1La:0x2.3456789abcdfep0123:1:1:0x0:
+%*1La:0x2.3456789abcdfep0123:0:1:
+%1La:0x2.3456789abcdfep+123:1:1:0x0:
+%*1La:0x2.3456789abcdfep+123:0:1:
+%1La:0x7.ffffffffffffcp1021:1:1:0x0:
+%*1La:0x7.ffffffffffffcp1021:0:1:
+%1La:0xf.ffffffffffff8p+1020:1:1:0x0:
+%*1La:0xf.ffffffffffff8p+1020:0:1:
+%1La:infinity:0:-1:
+%*1La:infinity:0:-1:
+%1La:+nan():0:-1:
+%*1La:+nan():0:-1:
+%1La:+nan(09A_Zaz):0:-1:
+%*1La:+nan(09A_Zaz):0:-1:
+%1La:+0x0p0:0:-1:
+%*1La:+0x0p0:0:-1:
+%1La:+0x0p+0:0:-1:
+%*1La:+0x0p+0:0:-1:
+%1La:+0x8p-1025:0:-1:
+%*1La:+0x8p-1025:0:-1:
+%1La:+0x2.3456789abcdfep0123:0:-1:
+%*1La:+0x2.3456789abcdfep0123:0:-1:
+%1La:+0x2.3456789abcdfep+123:0:-1:
+%*1La:+0x2.3456789abcdfep+123:0:-1:
+%1La:+0x7.ffffffffffffcp1021:0:-1:
+%*1La:+0x7.ffffffffffffcp1021:0:-1:
+%1La:+0xf.ffffffffffff8p+1020:0:-1:
+%*1La:+0xf.ffffffffffff8p+1020:0:-1:
+%1La:+infinity:0:-1:
+%*1La:+infinity:0:-1:
+%2La::0:-1:
+%*2La::0:-1:
+%2La:-infinity:0:-1:
+%*2La:-infinity:0:-1:
+%2La:-0xf.ffffffffffff8p+1020:1:2:-0x0:
+%*2La:-0xf.ffffffffffff8p+1020:0:2:
+%2La:-0x7.ffffffffffffcp1021:1:2:-0x0:
+%*2La:-0x7.ffffffffffffcp1021:0:2:
+%2La:-0x2.3456789abcdfep+123:1:2:-0x0:
+%*2La:-0x2.3456789abcdfep+123:0:2:
+%2La:-0x2.3456789abcdfep0123:1:2:-0x0:
+%*2La:-0x2.3456789abcdfep0123:0:2:
+%2La:-0x8p-1025:1:2:-0x0:
+%*2La:-0x8p-1025:0:2:
+%2La:-0x0p+0:1:2:-0x0:
+%*2La:-0x0p+0:0:2:
+%2La:-0x0p0:1:2:-0x0:
+%*2La:-0x0p0:0:2:
+%2La:-nan(09A_Zaz):0:-1:
+%*2La:-nan(09A_Zaz):0:-1:
+%2La:-nan():0:-1:
+%*2La:-nan():0:-1:
+%2La:nan():0:-1:
+%*2La:nan():0:-1:
+%2La:nan(09A_Zaz):0:-1:
+%*2La:nan(09A_Zaz):0:-1:
+# BZ12701 %2La:0x0p0:0:-1:
+# BZ12701 %*2La:0x0p0:0:-1:
+# BZ12701 %2La:0x0p+0:0:-1:
+# BZ12701 %*2La:0x0p+0:0:-1:
+# BZ12701 %2La:0x8p-1025:0:-1:
+# BZ12701 %*2La:0x8p-1025:0:-1:
+# BZ12701 %2La:0x2.3456789abcdfep0123:0:-1:
+# BZ12701 %*2La:0x2.3456789abcdfep0123:0:-1:
+# BZ12701 %2La:0x2.3456789abcdfep+123:0:-1:
+# BZ12701 %*2La:0x2.3456789abcdfep+123:0:-1:
+# BZ12701 %2La:0x7.ffffffffffffcp1021:0:-1:
+# BZ12701 %*2La:0x7.ffffffffffffcp1021:0:-1:
+# BZ12701 %2La:0xf.ffffffffffff8p+1020:0:-1:
+# BZ12701 %*2La:0xf.ffffffffffff8p+1020:0:-1:
+%2La:infinity:0:-1:
+%*2La:infinity:0:-1:
+%2La:+nan():0:-1:
+%*2La:+nan():0:-1:
+%2La:+nan(09A_Zaz):0:-1:
+%*2La:+nan(09A_Zaz):0:-1:
+%2La:+0x0p0:1:2:0x0:
+%*2La:+0x0p0:0:2:
+%2La:+0x0p+0:1:2:0x0:
+%*2La:+0x0p+0:0:2:
+%2La:+0x8p-1025:1:2:0x0:
+%*2La:+0x8p-1025:0:2:
+%2La:+0x2.3456789abcdfep0123:1:2:0x0:
+%*2La:+0x2.3456789abcdfep0123:0:2:
+%2La:+0x2.3456789abcdfep+123:1:2:0x0:
+%*2La:+0x2.3456789abcdfep+123:0:2:
+%2La:+0x7.ffffffffffffcp1021:1:2:0x0:
+%*2La:+0x7.ffffffffffffcp1021:0:2:
+%2La:+0xf.ffffffffffff8p+1020:1:2:0x0:
+%*2La:+0xf.ffffffffffff8p+1020:0:2:
+%2La:+infinity:0:-1:
+%*2La:+infinity:0:-1:
+%3La::0:-1:
+%*3La::0:-1:
+%3La:-infinity:0:-1:
+%*3La:-infinity:0:-1:
+# BZ12701 %3La:-0xf.ffffffffffff8p+1020:0:-1:
+# BZ12701 %*3La:-0xf.ffffffffffff8p+1020:0:-1:
+# BZ12701 %3La:-0x7.ffffffffffffcp1021:0:-1:
+# BZ12701 %*3La:-0x7.ffffffffffffcp1021:0:-1:
+# BZ12701 %3La:-0x2.3456789abcdfep+123:0:-1:
+# BZ12701 %*3La:-0x2.3456789abcdfep+123:0:-1:
+# BZ12701 %3La:-0x2.3456789abcdfep0123:0:-1:
+# BZ12701 %*3La:-0x2.3456789abcdfep0123:0:-1:
+# BZ12701 %3La:-0x8p-1025:0:-1:
+# BZ12701 %*3La:-0x8p-1025:0:-1:
+# BZ12701 %3La:-0x0p+0:0:-1:
+# BZ12701 %*3La:-0x0p+0:0:-1:
+# BZ12701 %3La:-0x0p0:0:-1:
+# BZ12701 %*3La:-0x0p0:0:-1:
+%3La:-nan(09A_Zaz):0:-1:
+%*3La:-nan(09A_Zaz):0:-1:
+%3La:-nan():0:-1:
+%*3La:-nan():0:-1:
+%3La:nan():1:3:nan:
+%*3La:nan():0:3:
+%3La:nan(09A_Zaz):1:3:nan:
+%*3La:nan(09A_Zaz):0:3:
+%3La:0x0p0:1:3:0x0:
+%*3La:0x0p0:0:3:
+%3La:0x0p+0:1:3:0x0:
+%*3La:0x0p+0:0:3:
+%3La:0x8p-1025:1:3:0x1p3:
+%*3La:0x8p-1025:0:3:
+%3La:0x2.3456789abcdfep0123:1:3:0x1p1:
+%*3La:0x2.3456789abcdfep0123:0:3:
+%3La:0x2.3456789abcdfep+123:1:3:0x1p1:
+%*3La:0x2.3456789abcdfep+123:0:3:
+%3La:0x7.ffffffffffffcp1021:1:3:0x1.cp2:
+%*3La:0x7.ffffffffffffcp1021:0:3:
+%3La:0xf.ffffffffffff8p+1020:1:3:0x1.ep3:
+%*3La:0xf.ffffffffffff8p+1020:0:3:
+%3La:infinity:1:3:inf:
+%*3La:infinity:0:3:
+%3La:+nan():0:-1:
+%*3La:+nan():0:-1:
+%3La:+nan(09A_Zaz):0:-1:
+%*3La:+nan(09A_Zaz):0:-1:
+# BZ12701 %3La:+0x0p0:0:-1:
+# BZ12701 %*3La:+0x0p0:0:-1:
+# BZ12701 %3La:+0x0p+0:0:-1:
+# BZ12701 %*3La:+0x0p+0:0:-1:
+# BZ12701 %3La:+0x8p-1025:0:-1:
+# BZ12701 %*3La:+0x8p-1025:0:-1:
+# BZ12701 %3La:+0x2.3456789abcdfep0123:0:-1:
+# BZ12701 %*3La:+0x2.3456789abcdfep0123:0:-1:
+# BZ12701 %3La:+0x2.3456789abcdfep+123:0:-1:
+# BZ12701 %*3La:+0x2.3456789abcdfep+123:0:-1:
+# BZ12701 %3La:+0x7.ffffffffffffcp1021:0:-1:
+# BZ12701 %*3La:+0x7.ffffffffffffcp1021:0:-1:
+# BZ12701 %3La:+0xf.ffffffffffff8p+1020:0:-1:
+# BZ12701 %*3La:+0xf.ffffffffffff8p+1020:0:-1:
+%3La:+infinity:0:-1:
+%*3La:+infinity:0:-1:
+%4La::0:-1:
+%*4La::0:-1:
+%4La:-infinity:1:4:-inf:
+%*4La:-infinity:0:4:
+%4La:-0xf.ffffffffffff8p+1020:1:4:-0x1.ep3:
+%*4La:-0xf.ffffffffffff8p+1020:0:4:
+%4La:-0x7.ffffffffffffcp1021:1:4:-0x1.cp2:
+%*4La:-0x7.ffffffffffffcp1021:0:4:
+%4La:-0x2.3456789abcdfep+123:1:4:-0x1p1:
+%*4La:-0x2.3456789abcdfep+123:0:4:
+%4La:-0x2.3456789abcdfep0123:1:4:-0x1p1:
+%*4La:-0x2.3456789abcdfep0123:0:4:
+%4La:-0x8p-1025:1:4:-0x1p3:
+%*4La:-0x8p-1025:0:4:
+%4La:-0x0p+0:1:4:-0x0:
+%*4La:-0x0p+0:0:4:
+%4La:-0x0p0:1:4:-0x0:
+%*4La:-0x0p0:0:4:
+%4La:-nan(09A_Zaz):1:4:-nan:
+%*4La:-nan(09A_Zaz):0:4:
+%4La:-nan():1:4:-nan:
+%*4La:-nan():0:4:
+%4La:nan():0:-1:
+%*4La:nan():0:-1:
+%4La:nan(09A_Zaz):0:-1:
+%*4La:nan(09A_Zaz):0:-1:
+# BZ12701 %4La:0x0p0:0:-1:
+# BZ12701 %*4La:0x0p0:0:-1:
+# BZ12701 %4La:0x0p+0:0:-1:
+# BZ12701 %*4La:0x0p+0:0:-1:
+# BZ12701 %4La:0x8p-1025:0:-1:
+# BZ12701 %*4La:0x8p-1025:0:-1:
+%4La:0x2.3456789abcdfep0123:1:4:0x1p1:
+%*4La:0x2.3456789abcdfep0123:0:4:
+%4La:0x2.3456789abcdfep+123:1:4:0x1p1:
+%*4La:0x2.3456789abcdfep+123:0:4:
+%4La:0x7.ffffffffffffcp1021:1:4:0x1.cp2:
+%*4La:0x7.ffffffffffffcp1021:0:4:
+%4La:0xf.ffffffffffff8p+1020:1:4:0x1.ep3:
+%*4La:0xf.ffffffffffff8p+1020:0:4:
+%4La:infinity:0:-1:
+%*4La:infinity:0:-1:
+%4La:+nan():1:4:nan:
+%*4La:+nan():0:4:
+%4La:+nan(09A_Zaz):1:4:nan:
+%*4La:+nan(09A_Zaz):0:4:
+%4La:+0x0p0:1:4:0x0:
+%*4La:+0x0p0:0:4:
+%4La:+0x0p+0:1:4:0x0:
+%*4La:+0x0p+0:0:4:
+%4La:+0x8p-1025:1:4:0x1p3:
+%*4La:+0x8p-1025:0:4:
+%4La:+0x2.3456789abcdfep0123:1:4:0x1p1:
+%*4La:+0x2.3456789abcdfep0123:0:4:
+%4La:+0x2.3456789abcdfep+123:1:4:0x1p1:
+%*4La:+0x2.3456789abcdfep+123:0:4:
+%4La:+0x7.ffffffffffffcp1021:1:4:0x1.cp2:
+%*4La:+0x7.ffffffffffffcp1021:0:4:
+%4La:+0xf.ffffffffffff8p+1020:1:4:0x1.ep3:
+%*4La:+0xf.ffffffffffff8p+1020:0:4:
+%4La:+infinity:1:4:inf:
+%*4La:+infinity:0:4:
+%5La::0:-1:
+%*5La::0:-1:
+%5La:-infinity:0:-1:
+%*5La:-infinity:0:-1:
+%5La:-0xf.ffffffffffff8p+1020:1:5:-0x1.ep3:
+%*5La:-0xf.ffffffffffff8p+1020:0:5:
+%5La:-0x7.ffffffffffffcp1021:1:5:-0x1.cp2:
+%*5La:-0x7.ffffffffffffcp1021:0:5:
+%5La:-0x2.3456789abcdfep+123:1:5:-0x1p1:
+%*5La:-0x2.3456789abcdfep+123:0:5:
+%5La:-0x2.3456789abcdfep0123:1:5:-0x1p1:
+%*5La:-0x2.3456789abcdfep0123:0:5:
+# BZ12701 %5La:-0x8p-1025:0:-1:
+# BZ12701 %*5La:-0x8p-1025:0:-1:
+# BZ12701 %5La:-0x0p+0:0:-1:
+# BZ12701 %*5La:-0x0p+0:0:-1:
+# BZ12701 %5La:-0x0p0:0:-1:
+# BZ12701 %*5La:-0x0p0:0:-1:
+%5La:-nan(09A_Zaz):0:-1:
+%*5La:-nan(09A_Zaz):0:-1:
+%5La:-nan():0:-1:
+%*5La:-nan():0:-1:
+%5La:nan():1:5:nan:
+%*5La:nan():0:5:
+%5La:nan(09A_Zaz):0:-1:
+%*5La:nan(09A_Zaz):0:-1:
+%5La:0x0p0:1:5:0x0:
+%*5La:0x0p0:0:5:
+# BZ12701 %5La:0x0p+0:0:-1:
+# BZ12701 %*5La:0x0p+0:0:-1:
+# BZ12701 %5La:0x8p-1025:0:-1:
+# BZ12701 %*5La:0x8p-1025:0:-1:
+%5La:0x2.3456789abcdfep0123:1:5:0x1.18p1:
+%*5La:0x2.3456789abcdfep0123:0:5:
+%5La:0x2.3456789abcdfep+123:1:5:0x1.18p1:
+%*5La:0x2.3456789abcdfep+123:0:5:
+%5La:0x7.ffffffffffffcp1021:1:5:0x1.fcp2:
+%*5La:0x7.ffffffffffffcp1021:0:5:
+%5La:0xf.ffffffffffff8p+1020:1:5:0x1.fep3:
+%*5La:0xf.ffffffffffff8p+1020:0:5:
+%5La:infinity:0:-1:
+%*5La:infinity:0:-1:
+%5La:+nan():0:-1:
+%*5La:+nan():0:-1:
+%5La:+nan(09A_Zaz):0:-1:
+%*5La:+nan(09A_Zaz):0:-1:
+# BZ12701 %5La:+0x0p0:0:-1:
+# BZ12701 %*5La:+0x0p0:0:-1:
+# BZ12701 %5La:+0x0p+0:0:-1:
+# BZ12701 %*5La:+0x0p+0:0:-1:
+# BZ12701 %5La:+0x8p-1025:0:-1:
+# BZ12701 %*5La:+0x8p-1025:0:-1:
+%5La:+0x2.3456789abcdfep0123:1:5:0x1p1:
+%*5La:+0x2.3456789abcdfep0123:0:5:
+%5La:+0x2.3456789abcdfep+123:1:5:0x1p1:
+%*5La:+0x2.3456789abcdfep+123:0:5:
+%5La:+0x7.ffffffffffffcp1021:1:5:0x1.cp2:
+%*5La:+0x7.ffffffffffffcp1021:0:5:
+%5La:+0xf.ffffffffffff8p+1020:1:5:0x1.ep3:
+%*5La:+0xf.ffffffffffff8p+1020:0:5:
+%5La:+infinity:0:-1:
+%*5La:+infinity:0:-1:
+%6La::0:-1:
+%*6La::0:-1:
+%6La:-infinity:0:-1:
+%*6La:-infinity:0:-1:
+%6La:-0xf.ffffffffffff8p+1020:1:6:-0x1.fep3:
+%*6La:-0xf.ffffffffffff8p+1020:0:6:
+%6La:-0x7.ffffffffffffcp1021:1:6:-0x1.fcp2:
+%*6La:-0x7.ffffffffffffcp1021:0:6:
+%6La:-0x2.3456789abcdfep+123:1:6:-0x1.18p1:
+%*6La:-0x2.3456789abcdfep+123:0:6:
+%6La:-0x2.3456789abcdfep0123:1:6:-0x1.18p1:
+%*6La:-0x2.3456789abcdfep0123:0:6:
+# BZ12701 %6La:-0x8p-1025:0:-1:
+# BZ12701 %*6La:-0x8p-1025:0:-1:
+# BZ12701 %6La:-0x0p+0:0:-1:
+# BZ12701 %*6La:-0x0p+0:0:-1:
+%6La:-0x0p0:1:6:-0x0:
+%*6La:-0x0p0:0:6:
+%6La:-nan(09A_Zaz):0:-1:
+%*6La:-nan(09A_Zaz):0:-1:
+%6La:-nan():1:6:-nan:
+%*6La:-nan():0:6:
+%6La:nan():1:5:nan:
+%*6La:nan():0:5:
+%6La:nan(09A_Zaz):0:-1:
+%*6La:nan(09A_Zaz):0:-1:
+%6La:0x0p0:1:5:0x0:
+%*6La:0x0p0:0:5:
+%6La:0x0p+0:1:6:0x0:
+%*6La:0x0p+0:0:6:
+%6La:0x8p-1025:1:6:0x1p2:
+%*6La:0x8p-1025:0:6:
+%6La:0x2.3456789abcdfep0123:1:6:0x1.1ap1:
+%*6La:0x2.3456789abcdfep0123:0:6:
+%6La:0x2.3456789abcdfep+123:1:6:0x1.1ap1:
+%*6La:0x2.3456789abcdfep+123:0:6:
+%6La:0x7.ffffffffffffcp1021:1:6:0x1.ffcp2:
+%*6La:0x7.ffffffffffffcp1021:0:6:
+%6La:0xf.ffffffffffff8p+1020:1:6:0x1.ffep3:
+%*6La:0xf.ffffffffffff8p+1020:0:6:
+%6La:infinity:0:-1:
+%*6La:infinity:0:-1:
+%6La:+nan():1:6:nan:
+%*6La:+nan():0:6:
+%6La:+nan(09A_Zaz):0:-1:
+%*6La:+nan(09A_Zaz):0:-1:
+%6La:+0x0p0:1:6:0x0:
+%*6La:+0x0p0:0:6:
+# BZ12701 %6La:+0x0p+0:0:-1:
+# BZ12701 %*6La:+0x0p+0:0:-1:
+# BZ12701 %6La:+0x8p-1025:0:-1:
+# BZ12701 %*6La:+0x8p-1025:0:-1:
+%6La:+0x2.3456789abcdfep0123:1:6:0x1.18p1:
+%*6La:+0x2.3456789abcdfep0123:0:6:
+%6La:+0x2.3456789abcdfep+123:1:6:0x1.18p1:
+%*6La:+0x2.3456789abcdfep+123:0:6:
+%6La:+0x7.ffffffffffffcp1021:1:6:0x1.fcp2:
+%*6La:+0x7.ffffffffffffcp1021:0:6:
+%6La:+0xf.ffffffffffff8p+1020:1:6:0x1.fep3:
+%*6La:+0xf.ffffffffffff8p+1020:0:6:
+%6La:+infinity:0:-1:
+%*6La:+infinity:0:-1:
+%20La::0:-1:
+%*20La::0:-1:
+%20La:-infinity:1:9:-inf:
+%*20La:-infinity:0:9:
+# BZ12701 %20La:-0xf.ffffffffffff8p+1020:0:-1:
+# BZ12701 %*20La:-0xf.ffffffffffff8p+1020:0:-1:
+%20La:-0x7.ffffffffffffcp1021:1:20:-0x1.fffffffffffffp3:
+%*20La:-0x7.ffffffffffffcp1021:0:20:
+# BZ12701 %20La:-0x2.3456789abcdfep+123:0:-1:
+# BZ12701 %*20La:-0x2.3456789abcdfep+123:0:-1:
+%20La:-0x2.3456789abcdfep0123:1:20:-0x1.1a2b3c4d5e6ffp1:
+%*20La:-0x2.3456789abcdfep0123:0:20:
+%20La:-0x8p-1025:1:10:-0x1p-1022:
+%*20La:-0x8p-1025:0:10:
+%20La:-0x0p+0:1:7:-0x0:
+%*20La:-0x0p+0:0:7:
+%20La:-0x0p0:1:6:-0x0:
+%*20La:-0x0p0:0:6:
+%20La:-nan(09A_Zaz):1:13:-nan:
+%*20La:-nan(09A_Zaz):0:13:
+%20La:-nan():1:6:-nan:
+%*20La:-nan():0:6:
+%20La:nan():1:5:nan:
+%*20La:nan():0:5:
+%20La:nan(09A_Zaz):1:12:nan:
+%*20La:nan(09A_Zaz):0:12:
+%20La:0x0p0:1:5:0x0:
+%*20La:0x0p0:0:5:
+%20La:0x0p+0:1:6:0x0:
+%*20La:0x0p+0:0:6:
+%20La:0x8p-1025:1:9:0x1p-1022:
+%*20La:0x8p-1025:0:9:
+%20La:0x2.3456789abcdfep0123:1:20:0x1.1a2b3c4d5e6ffp2:
+%*20La:0x2.3456789abcdfep0123:0:20:
+%20La:0x2.3456789abcdfep+123:1:20:0x1.1a2b3c4d5e6ffp2:
+%*20La:0x2.3456789abcdfep+123:0:20:
+%20La:0x7.ffffffffffffcp1021:1:20:0x1.fffffffffffffp12:
+%*20La:0x7.ffffffffffffcp1021:0:20:
+%20La:0xf.ffffffffffff8p+1020:1:20:0x1.fffffffffffffp4:
+%*20La:0xf.ffffffffffff8p+1020:0:20:
+%20La:infinity:1:8:inf:
+%*20La:infinity:0:8:
+%20La:+nan():1:6:nan:
+%*20La:+nan():0:6:
+%20La:+nan(09A_Zaz):1:13:nan:
+%*20La:+nan(09A_Zaz):0:13:
+%20La:+0x0p0:1:6:0x0:
+%*20La:+0x0p0:0:6:
+%20La:+0x0p+0:1:7:0x0:
+%*20La:+0x0p+0:0:7:
+%20La:+0x8p-1025:1:10:0x1p-1022:
+%*20La:+0x8p-1025:0:10:
+%20La:+0x2.3456789abcdfep0123:1:20:0x1.1a2b3c4d5e6ffp1:
+%*20La:+0x2.3456789abcdfep0123:0:20:
+# BZ12701 %20La:+0x2.3456789abcdfep+123:0:-1:
+# BZ12701 %*20La:+0x2.3456789abcdfep+123:0:-1:
+%20La:+0x7.ffffffffffffcp1021:1:20:0x1.fffffffffffffp3:
+%*20La:+0x7.ffffffffffffcp1021:0:20:
+# BZ12701 %20La:+0xf.ffffffffffff8p+1020:0:-1:
+# BZ12701 %*20La:+0xf.ffffffffffff8p+1020:0:-1:
+%20La:+infinity:1:9:inf:
+%*20La:+infinity:0:9:
+%32La::0:-1:
+%*32La::0:-1:
+%32La:-infinity:1:9:-inf:
+%*32La:-infinity:0:9:
+%32La:-0xf.ffffffffffff8p+1020:1:24:-0x1.fffffffffffffp1023:
+%*32La:-0xf.ffffffffffff8p+1020:0:24:
+%32La:-0x7.ffffffffffffcp1021:1:23:-0x1.fffffffffffffp1023:
+%*32La:-0x7.ffffffffffffcp1021:0:23:
+%32La:-0x2.3456789abcdfep+123:1:23:-0x1.1a2b3c4d5e6ffp124:
+%*32La:-0x2.3456789abcdfep+123:0:23:
+%32La:-0x2.3456789abcdfep0123:1:23:-0x1.1a2b3c4d5e6ffp124:
+%*32La:-0x2.3456789abcdfep0123:0:23:
+%32La:-0x8p-1025:1:10:-0x1p-1022:
+%*32La:-0x8p-1025:0:10:
+%32La:-0x0p+0:1:7:-0x0:
+%*32La:-0x0p+0:0:7:
+%32La:-0x0p0:1:6:-0x0:
+%*32La:-0x0p0:0:6:
+%32La:-nan(09A_Zaz):1:13:-nan:
+%*32La:-nan(09A_Zaz):0:13:
+%32La:-nan():1:6:-nan:
+%*32La:-nan():0:6:
+%32La:nan():1:5:nan:
+%*32La:nan():0:5:
+%32La:nan(09A_Zaz):1:12:nan:
+%*32La:nan(09A_Zaz)