Release 3e.  See "doc/TestFloat-history.html".
diff --git a/COPYING.txt b/COPYING.txt
index faf2001..196f34d 100644
--- a/COPYING.txt
+++ b/COPYING.txt
@@ -1,13 +1,13 @@
 
-License for Berkeley TestFloat Release 3d
+License for Berkeley TestFloat Release 3e
 
 John R. Hauser
-2017 August 18
+2018 January 20
 
-The following applies to the whole of TestFloat Release 3d as well as to
+The following applies to the whole of TestFloat Release 3e as well as to
 each source file individually.
 
-Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
+Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 The Regents of the
 University of California.  All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
diff --git a/README.html b/README.html
index 80c645c..131968e 100644
--- a/README.html
+++ b/README.html
@@ -7,11 +7,11 @@
 
 <BODY>
 
-<H1>Package Overview for Berkeley TestFloat Release 3d</H1>
+<H1>Package Overview for Berkeley TestFloat Release 3e</H1>
 
 <P>
 John R. Hauser<BR>
-2017 August 18<BR>
+2018 January 20<BR>
 </P>
 
 <P>
diff --git a/README.md b/README.md
index d4cee62..e87a854 100644
--- a/README.md
+++ b/README.md
@@ -1,9 +1,9 @@
 
-Package Overview for Berkeley TestFloat Release 3d
+Package Overview for Berkeley TestFloat Release 3e
 ==================================================
 
 John R. Hauser<br>
-2017 August 18
+2018 January 20
 
 
 Berkeley TestFloat is a small collection of programs for testing that an
diff --git a/README.txt b/README.txt
index e736084..9bbda57 100644
--- a/README.txt
+++ b/README.txt
@@ -1,8 +1,8 @@
 
-Package Overview for Berkeley TestFloat Release 3d
+Package Overview for Berkeley TestFloat Release 3e
 
 John R. Hauser
-2017 August 18
+2018 January 20
 
 Berkeley TestFloat is a small collection of programs for testing that an
 implementation of binary floating-point conforms to the IEEE Standard for
diff --git a/build/Linux-386-GCC/Makefile b/build/Linux-386-GCC/Makefile
index 9c3ffbe..4c420e0 100644
--- a/build/Linux-386-GCC/Makefile
+++ b/build/Linux-386-GCC/Makefile
@@ -1,7 +1,7 @@
 
 #=============================================================================
 #
-# This Makefile is part of TestFloat, Release 3d, a package of programs for
+# This Makefile is part of TestFloat, Release 3e, a package of programs for
 # testing the correctness of floating-point arithmetic complying with the IEEE
 # Standard for Floating-Point, by John R. Hauser.
 #
diff --git a/build/Linux-386-GCC/platform.h b/build/Linux-386-GCC/platform.h
index 802bc4c..8b0de31 100644
--- a/build/Linux-386-GCC/platform.h
+++ b/build/Linux-386-GCC/platform.h
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C header file is part of TestFloat, Release 3d, a package of programs for
+This C header file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/build/Linux-386-SSE2-GCC/Makefile b/build/Linux-386-SSE2-GCC/Makefile
index 42f579d..b98d6b9 100644
--- a/build/Linux-386-SSE2-GCC/Makefile
+++ b/build/Linux-386-SSE2-GCC/Makefile
@@ -1,7 +1,7 @@
 
 #=============================================================================
 #
-# This Makefile is part of TestFloat, Release 3d, a package of programs for
+# This Makefile is part of TestFloat, Release 3e, a package of programs for
 # testing the correctness of floating-point arithmetic complying with the IEEE
 # Standard for Floating-Point, by John R. Hauser.
 #
diff --git a/build/Linux-386-SSE2-GCC/platform.h b/build/Linux-386-SSE2-GCC/platform.h
index 802bc4c..8b0de31 100644
--- a/build/Linux-386-SSE2-GCC/platform.h
+++ b/build/Linux-386-SSE2-GCC/platform.h
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C header file is part of TestFloat, Release 3d, a package of programs for
+This C header file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/build/Linux-ARM-VFPv2-GCC/Makefile b/build/Linux-ARM-VFPv2-GCC/Makefile
new file mode 100644
index 0000000..2c47a5b
--- /dev/null
+++ b/build/Linux-ARM-VFPv2-GCC/Makefile
@@ -0,0 +1,353 @@
+
+#=============================================================================
+#
+# This Makefile is part of TestFloat, Release 3e, a package of programs for
+# testing the correctness of floating-point arithmetic complying with the IEEE
+# Standard for Floating-Point, by John R. Hauser.
+#
+# Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
+# University of California.  All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+#
+#  1. Redistributions of source code must retain the above copyright notice,
+#     this list of conditions, and the following disclaimer.
+#
+#  2. Redistributions in binary form must reproduce the above copyright
+#     notice, this list of conditions, and the following disclaimer in the
+#     documentation and/or other materials provided with the distribution.
+#
+#  3. Neither the name of the University nor the names of its contributors
+#     may be used to endorse or promote products derived from this software
+#     without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
+# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
+# DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
+# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+#=============================================================================
+
+SOURCE_DIR ?= ../../source
+SOFTFLOAT_DIR ?= ../../../berkeley-softfloat-3
+PLATFORM ?= Linux-ARM-VFPv2-GCC
+
+SUBJ_SOURCE_DIR = $(SOURCE_DIR)/subj-C
+SOFTFLOAT_INCLUDE_DIR = $(SOFTFLOAT_DIR)/source/include
+
+SOFTFLOAT_H = \
+  $(SOFTFLOAT_INCLUDE_DIR)/softfloat_types.h \
+  $(SOFTFLOAT_INCLUDE_DIR)/softfloat.h
+SOFTFLOAT_LIB = $(SOFTFLOAT_DIR)/build/$(PLATFORM)/softfloat$(LIB)
+
+TESTFLOAT_OPTS ?= -DFLOAT16 -DFLOAT64 -DEXTFLOAT80 -DFLOAT128 -DFLOAT_ROUND_ODD
+
+DELETE = rm -f
+C_INCLUDES = \
+  -I. -I$(SUBJ_SOURCE_DIR) -I$(SOURCE_DIR) -I$(SOFTFLOAT_INCLUDE_DIR)
+COMPILE_C = \
+  gcc -std=c99 -c -Werror-implicit-function-declaration $(TESTFLOAT_OPTS) \
+    $(C_INCLUDES) -O2 -o $@
+COMPILE_SLOWFLOAT_C = \
+  gcc -std=c99 -c -Werror-implicit-function-declaration $(TESTFLOAT_OPTS) \
+    $(C_INCLUDES) -O3 -o $@
+MAKELIB = ar crs $@
+LINK = gcc -o $@
+OTHER_LIBS = -lm
+
+OBJ = .o
+LIB = .a
+EXE =
+
+.PHONY: all
+all: \
+  testsoftfloat$(EXE) \
+  timesoftfloat$(EXE) \
+  testfloat_gen$(EXE) \
+  testfloat_ver$(EXE) \
+  testfloat$(EXE) \
+
+OBJS_GENCASES = \
+  genCases_ui32$(OBJ) \
+  genCases_ui64$(OBJ) \
+  genCases_i32$(OBJ) \
+  genCases_i64$(OBJ) \
+  genCases_f16$(OBJ) \
+  genCases_f32$(OBJ) \
+  genCases_f64$(OBJ) \
+  genCases_extF80$(OBJ) \
+  genCases_f128$(OBJ) \
+
+OBJS_WRITECASE = \
+  writeCase_a_ui32$(OBJ) \
+  writeCase_a_ui64$(OBJ) \
+  writeCase_a_f16$(OBJ) \
+  writeCase_ab_f16$(OBJ) \
+  writeCase_abc_f16$(OBJ) \
+  writeCase_a_f32$(OBJ) \
+  writeCase_ab_f32$(OBJ) \
+  writeCase_abc_f32$(OBJ) \
+  writeCase_a_f64$(OBJ) \
+  writeCase_ab_f64$(OBJ) \
+  writeCase_abc_f64$(OBJ) \
+  writeCase_a_extF80M$(OBJ) \
+  writeCase_ab_extF80M$(OBJ) \
+  writeCase_a_f128M$(OBJ) \
+  writeCase_ab_f128M$(OBJ) \
+  writeCase_abc_f128M$(OBJ) \
+  writeCase_z_bool$(OBJ) \
+  writeCase_z_ui32$(OBJ) \
+  writeCase_z_ui64$(OBJ) \
+  writeCase_z_f16$(OBJ) \
+  writeCase_z_f32$(OBJ) \
+  writeCase_z_f64$(OBJ) \
+  writeCase_z_extF80M$(OBJ) \
+  writeCase_z_f128M$(OBJ) \
+
+OBJS_TEST = \
+  test_a_ui32_z_f16$(OBJ) \
+  test_a_ui32_z_f32$(OBJ) \
+  test_a_ui32_z_f64$(OBJ) \
+  test_a_ui32_z_extF80$(OBJ) \
+  test_a_ui32_z_f128$(OBJ) \
+  test_a_ui64_z_f16$(OBJ) \
+  test_a_ui64_z_f32$(OBJ) \
+  test_a_ui64_z_f64$(OBJ) \
+  test_a_ui64_z_extF80$(OBJ) \
+  test_a_ui64_z_f128$(OBJ) \
+  test_a_i32_z_f16$(OBJ) \
+  test_a_i32_z_f32$(OBJ) \
+  test_a_i32_z_f64$(OBJ) \
+  test_a_i32_z_extF80$(OBJ) \
+  test_a_i32_z_f128$(OBJ) \
+  test_a_i64_z_f16$(OBJ) \
+  test_a_i64_z_f32$(OBJ) \
+  test_a_i64_z_f64$(OBJ) \
+  test_a_i64_z_extF80$(OBJ) \
+  test_a_i64_z_f128$(OBJ) \
+  test_a_f16_z_ui32_rx$(OBJ) \
+  test_a_f16_z_ui64_rx$(OBJ) \
+  test_a_f16_z_i32_rx$(OBJ) \
+  test_a_f16_z_i64_rx$(OBJ) \
+  test_a_f16_z_ui32_x$(OBJ) \
+  test_a_f16_z_ui64_x$(OBJ) \
+  test_a_f16_z_i32_x$(OBJ) \
+  test_a_f16_z_i64_x$(OBJ) \
+  test_a_f16_z_f32$(OBJ) \
+  test_a_f16_z_f64$(OBJ) \
+  test_a_f16_z_extF80$(OBJ) \
+  test_a_f16_z_f128$(OBJ) \
+  test_az_f16$(OBJ) \
+  test_az_f16_rx$(OBJ) \
+  test_abz_f16$(OBJ) \
+  test_abcz_f16$(OBJ) \
+  test_ab_f16_z_bool$(OBJ) \
+  test_a_f32_z_ui32_rx$(OBJ) \
+  test_a_f32_z_ui64_rx$(OBJ) \
+  test_a_f32_z_i32_rx$(OBJ) \
+  test_a_f32_z_i64_rx$(OBJ) \
+  test_a_f32_z_ui32_x$(OBJ) \
+  test_a_f32_z_ui64_x$(OBJ) \
+  test_a_f32_z_i32_x$(OBJ) \
+  test_a_f32_z_i64_x$(OBJ) \
+  test_a_f32_z_f16$(OBJ) \
+  test_a_f32_z_f64$(OBJ) \
+  test_a_f32_z_extF80$(OBJ) \
+  test_a_f32_z_f128$(OBJ) \
+  test_az_f32$(OBJ) \
+  test_az_f32_rx$(OBJ) \
+  test_abz_f32$(OBJ) \
+  test_abcz_f32$(OBJ) \
+  test_ab_f32_z_bool$(OBJ) \
+  test_a_f64_z_ui32_rx$(OBJ) \
+  test_a_f64_z_ui64_rx$(OBJ) \
+  test_a_f64_z_i32_rx$(OBJ) \
+  test_a_f64_z_i64_rx$(OBJ) \
+  test_a_f64_z_ui32_x$(OBJ) \
+  test_a_f64_z_ui64_x$(OBJ) \
+  test_a_f64_z_i32_x$(OBJ) \
+  test_a_f64_z_i64_x$(OBJ) \
+  test_a_f64_z_f16$(OBJ) \
+  test_a_f64_z_f32$(OBJ) \
+  test_a_f64_z_extF80$(OBJ) \
+  test_a_f64_z_f128$(OBJ) \
+  test_az_f64$(OBJ) \
+  test_az_f64_rx$(OBJ) \
+  test_abz_f64$(OBJ) \
+  test_abcz_f64$(OBJ) \
+  test_ab_f64_z_bool$(OBJ) \
+  test_a_extF80_z_ui32_rx$(OBJ) \
+  test_a_extF80_z_ui64_rx$(OBJ) \
+  test_a_extF80_z_i32_rx$(OBJ) \
+  test_a_extF80_z_i64_rx$(OBJ) \
+  test_a_extF80_z_ui32_x$(OBJ) \
+  test_a_extF80_z_ui64_x$(OBJ) \
+  test_a_extF80_z_i32_x$(OBJ) \
+  test_a_extF80_z_i64_x$(OBJ) \
+  test_a_extF80_z_f16$(OBJ) \
+  test_a_extF80_z_f32$(OBJ) \
+  test_a_extF80_z_f64$(OBJ) \
+  test_a_extF80_z_f128$(OBJ) \
+  test_az_extF80$(OBJ) \
+  test_az_extF80_rx$(OBJ) \
+  test_abz_extF80$(OBJ) \
+  test_ab_extF80_z_bool$(OBJ) \
+  test_a_f128_z_ui32_rx$(OBJ) \
+  test_a_f128_z_ui64_rx$(OBJ) \
+  test_a_f128_z_i32_rx$(OBJ) \
+  test_a_f128_z_i64_rx$(OBJ) \
+  test_a_f128_z_ui32_x$(OBJ) \
+  test_a_f128_z_ui64_x$(OBJ) \
+  test_a_f128_z_i32_x$(OBJ) \
+  test_a_f128_z_i64_x$(OBJ) \
+  test_a_f128_z_f16$(OBJ) \
+  test_a_f128_z_f32$(OBJ) \
+  test_a_f128_z_f64$(OBJ) \
+  test_a_f128_z_extF80$(OBJ) \
+  test_az_f128$(OBJ) \
+  test_az_f128_rx$(OBJ) \
+  test_abz_f128$(OBJ) \
+  test_abcz_f128$(OBJ) \
+  test_ab_f128_z_bool$(OBJ) \
+
+OBJS_LIB = \
+  uint128_inline$(OBJ) \
+  uint128$(OBJ) \
+  fail$(OBJ) \
+  functions_common$(OBJ) \
+  functionInfos$(OBJ) \
+  standardFunctionInfos$(OBJ) \
+  random$(OBJ) \
+  genCases_common$(OBJ) \
+  $(OBJS_GENCASES) \
+  genCases_writeTestsTotal$(OBJ) \
+  verCases_inline$(OBJ) \
+  verCases_common$(OBJ) \
+  verCases_writeFunctionName$(OBJ) \
+  readHex$(OBJ) \
+  writeHex$(OBJ) \
+  $(OBJS_WRITECASE) \
+  testLoops_common$(OBJ) \
+  $(OBJS_TEST) \
+
+uint128$(OBJ): $(SOURCE_DIR)/uint128.h
+fail$(OBJ): $(SOURCE_DIR)/fail.h
+functions_common$(OBJ): $(SOFTFLOAT_H) $(SOURCE_DIR)/functions.h
+functionInfos$(OBJ): $(SOURCE_DIR)/functions.h
+standardFunctionInfos$(OBJ): $(SOURCE_DIR)/functions.h
+random$(OBJ): $(SOURCE_DIR)/random.h
+genCases_common$(OBJ): $(SOURCE_DIR)/fail.h $(SOURCE_DIR)/genCases.h
+$(OBJS_GENCASES): \
+  $(SOURCE_DIR)/random.h $(SOFTFLOAT_H) $(SOURCE_DIR)/genCases.h
+genCases_f128$(OBJ): $(SOURCE_DIR)/uint128.h
+genCases_writeTestsTotal$(OBJ): $(SOURCE_DIR)/genCases.h
+verCases_common$(OBJ): $(SOURCE_DIR)/verCases.h
+verCases_writeFunctionName$(OBJ): $(SOURCE_DIR)/verCases.h
+readHex$(OBJ): $(SOURCE_DIR)/readHex.h
+writeHex$(OBJ): $(SOURCE_DIR)/uint128.h $(SOFTFLOAT_H) $(SOURCE_DIR)/writeHex.h
+$(OBJS_WRITECASE): \
+  $(SOFTFLOAT_H) $(SOURCE_DIR)/writeHex.h $(SOURCE_DIR)/writeCase.h
+testLoops_common$(OBJ): $(SOURCE_DIR)/testLoops.h
+$(OBJS_TEST): \
+  $(SOURCE_DIR)/uint128.h $(SOFTFLOAT_H) $(SOURCE_DIR)/genCases.h \
+  $(SOURCE_DIR)/verCases.h $(SOURCE_DIR)/writeCase.h $(SOURCE_DIR)/testLoops.h
+$(OBJS_LIB): %$(OBJ): platform.h $(SOURCE_DIR)/%.c
+	$(COMPILE_C) $(SOURCE_DIR)/$*.c
+testfloat$(LIB): $(OBJS_LIB)
+	$(MAKELIB) $^
+
+OBJS_TESTSOFTFLOAT = slowfloat$(OBJ) testsoftfloat$(OBJ)
+
+slowfloat$(OBJ): \
+  platform.h $(SOURCE_DIR)/uint128.h $(SOFTFLOAT_H) \
+  $(SOURCE_DIR)/slowfloat.h $(SOURCE_DIR)/slowfloat.c
+	$(COMPILE_SLOWFLOAT_C) $(SOURCE_DIR)/slowfloat.c
+testsoftfloat$(OBJ): \
+  platform.h $(SOURCE_DIR)/uint128.h $(SOURCE_DIR)/fail.h $(SOFTFLOAT_H) \
+  $(SOURCE_DIR)/slowfloat.h $(SOURCE_DIR)/functions.h \
+  $(SOURCE_DIR)/genCases.h $(SOURCE_DIR)/verCases.h $(SOURCE_DIR)/writeCase.h \
+  $(SOURCE_DIR)/testLoops.h $(SOURCE_DIR)/testsoftfloat.c
+	$(COMPILE_C) $(SOURCE_DIR)/testsoftfloat.c
+
+testsoftfloat$(EXE): $(OBJS_TESTSOFTFLOAT) testfloat$(LIB) $(SOFTFLOAT_LIB)
+	$(LINK) $^ $(OTHER_LIBS)
+
+OBJS_TIMESOFTFLOAT = timesoftfloat$(OBJ)
+
+timesoftfloat$(OBJ): \
+  platform.h $(SOURCE_DIR)/uint128.h $(SOURCE_DIR)/fail.h $(SOFTFLOAT_H) \
+  $(SOURCE_DIR)/functions.h $(SOURCE_DIR)/timesoftfloat.c
+	$(COMPILE_C) $(SOURCE_DIR)/timesoftfloat.c
+
+timesoftfloat$(EXE): $(OBJS_TIMESOFTFLOAT) testfloat$(LIB) $(SOFTFLOAT_LIB)
+	$(LINK) $^ $(OTHER_LIBS)
+
+OBJS_TESTFLOAT_GEN = genLoops$(OBJ) testfloat_gen$(OBJ)
+
+genLoops$(OBJ): \
+  platform.h $(SOURCE_DIR)/uint128.h $(SOURCE_DIR)/fail.h $(SOFTFLOAT_H) \
+  $(SOURCE_DIR)/genCases.h $(SOURCE_DIR)/writeHex.h $(SOURCE_DIR)/genLoops.h \
+  $(SOURCE_DIR)/genLoops.c
+	$(COMPILE_C) $(SOURCE_DIR)/genLoops.c
+testfloat_gen$(OBJ): \
+  $(SOURCE_DIR)/fail.h $(SOFTFLOAT_H) $(SOURCE_DIR)/functions.h \
+  $(SOURCE_DIR)/genCases.h $(SOURCE_DIR)/genLoops.h \
+  $(SOURCE_DIR)/testfloat_gen.c
+	$(COMPILE_C) $(SOURCE_DIR)/testfloat_gen.c
+
+testfloat_gen$(EXE): $(OBJS_TESTFLOAT_GEN) testfloat$(LIB) $(SOFTFLOAT_LIB)
+	$(LINK) $^ $(OTHER_LIBS)
+
+OBJS_TESTFLOAT_VER = verLoops$(OBJ) testfloat_ver$(OBJ)
+
+verLoops$(OBJ): \
+  platform.h $(SOURCE_DIR)/uint128.h $(SOURCE_DIR)/fail.h $(SOFTFLOAT_H) \
+  $(SOURCE_DIR)/readHex.h $(SOURCE_DIR)/verCases.h $(SOURCE_DIR)/writeCase.h \
+  $(SOURCE_DIR)/verLoops.h $(SOURCE_DIR)/verLoops.c
+	$(COMPILE_C) $(SOURCE_DIR)/verLoops.c
+testfloat_ver$(OBJ): \
+  platform.h $(SOURCE_DIR)/uint128.h $(SOURCE_DIR)/fail.h $(SOFTFLOAT_H) \
+  $(SOURCE_DIR)/functions.h $(SOURCE_DIR)/verCases.h \
+  $(SOURCE_DIR)/writeCase.h $(SOURCE_DIR)/verLoops.h \
+  $(SOURCE_DIR)/testfloat_ver.c
+	$(COMPILE_C) $(SOURCE_DIR)/testfloat_ver.c
+
+testfloat_ver$(EXE): $(OBJS_TESTFLOAT_VER) testfloat$(LIB) $(SOFTFLOAT_LIB)
+	$(LINK) $^ $(OTHER_LIBS)
+
+OBJS_TESTFLOAT = subjfloat$(OBJ) subjfloat_functions$(OBJ) testfloat$(OBJ)
+
+subjfloat$(OBJ): \
+  platform.h $(SOFTFLOAT_H) $(SUBJ_SOURCE_DIR)/subjfloat_config.h \
+  $(SOURCE_DIR)/subjfloat.h $(SUBJ_SOURCE_DIR)/subjfloat.c
+	$(COMPILE_C) $(SUBJ_SOURCE_DIR)/subjfloat.c
+subjfloat_functions$(OBJ): \
+  platform.h $(SUBJ_SOURCE_DIR)/subjfloat_config.h $(SOURCE_DIR)/subjfloat.h \
+  $(SOURCE_DIR)/functions.h $(SOURCE_DIR)/subjfloat_functions.c
+	$(COMPILE_C) $(SOURCE_DIR)/subjfloat_functions.c
+testfloat$(OBJ): \
+  platform.h $(SOURCE_DIR)/uint128.h $(SOURCE_DIR)/fail.h $(SOFTFLOAT_H) \
+  $(SUBJ_SOURCE_DIR)/subjfloat_config.h $(SOURCE_DIR)/subjfloat.h \
+  $(SOURCE_DIR)/functions.h $(SOURCE_DIR)/genCases.h $(SOURCE_DIR)/verCases.h \
+  $(SOURCE_DIR)/testLoops.h $(SOURCE_DIR)/testfloat.c
+	$(COMPILE_C) $(SOURCE_DIR)/testfloat.c
+
+testfloat$(EXE): $(OBJS_TESTFLOAT) testfloat$(LIB) $(SOFTFLOAT_LIB)
+	$(LINK) $^ $(OTHER_LIBS)
+
+.PHONY: clean
+clean:
+	$(DELETE) $(OBJS_LIB) testfloat$(LIB)
+	$(DELETE) $(OBJS_TESTSOFTFLOAT) testsoftfloat$(EXE)
+	$(DELETE) $(OBJS_TIMESOFTFLOAT) timesoftfloat$(EXE)
+	$(DELETE) $(OBJS_TESTFLOAT_GEN) testfloat_gen$(EXE)
+	$(DELETE) $(OBJS_TESTFLOAT_VER) testfloat_ver$(EXE)
+	$(DELETE) $(OBJS_TESTFLOAT) testfloat$(EXE)
+
diff --git a/build/Linux-ARM-VFPv2-GCC/platform.h b/build/Linux-ARM-VFPv2-GCC/platform.h
new file mode 100644
index 0000000..8b0de31
--- /dev/null
+++ b/build/Linux-ARM-VFPv2-GCC/platform.h
@@ -0,0 +1,49 @@
+
+/*============================================================================
+
+This C header file is part of TestFloat, Release 3e, a package of programs for
+testing the correctness of floating-point arithmetic complying with the IEEE
+Standard for Floating-Point, by John R. Hauser.
+
+Copyright 2011, 2012, 2013, 2014, 2015, 2016 The Regents of the University of
+California.  All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+ 1. Redistributions of source code must retain the above copyright notice,
+    this list of conditions, and the following disclaimer.
+
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+    this list of conditions, and the following disclaimer in the documentation
+    and/or other materials provided with the distribution.
+
+ 3. Neither the name of the University nor the names of its contributors may
+    be used to endorse or promote products derived from this software without
+    specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS", AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ARE
+DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+=============================================================================*/
+
+/*----------------------------------------------------------------------------
+*----------------------------------------------------------------------------*/
+#define LITTLEENDIAN 1
+
+/*----------------------------------------------------------------------------
+*----------------------------------------------------------------------------*/
+#ifdef __GNUC_STDC_INLINE__
+#define INLINE inline
+#else
+#define INLINE extern inline
+#endif
+
diff --git a/build/Linux-x86_64-GCC/Makefile b/build/Linux-x86_64-GCC/Makefile
index ffccb0d..49726fd 100644
--- a/build/Linux-x86_64-GCC/Makefile
+++ b/build/Linux-x86_64-GCC/Makefile
@@ -1,7 +1,7 @@
 
 #=============================================================================
 #
-# This Makefile is part of TestFloat, Release 3d, a package of programs for
+# This Makefile is part of TestFloat, Release 3e, a package of programs for
 # testing the correctness of floating-point arithmetic complying with the IEEE
 # Standard for Floating-Point, by John R. Hauser.
 #
diff --git a/build/Linux-x86_64-GCC/platform.h b/build/Linux-x86_64-GCC/platform.h
index 802bc4c..8b0de31 100644
--- a/build/Linux-x86_64-GCC/platform.h
+++ b/build/Linux-x86_64-GCC/platform.h
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C header file is part of TestFloat, Release 3d, a package of programs for
+This C header file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/build/Win32-MinGW/Makefile b/build/Win32-MinGW/Makefile
index 34f0ce8..662d20b 100644
--- a/build/Win32-MinGW/Makefile
+++ b/build/Win32-MinGW/Makefile
@@ -1,7 +1,7 @@
 
 #=============================================================================
 #
-# This Makefile is part of TestFloat, Release 3d, a package of programs for
+# This Makefile is part of TestFloat, Release 3e, a package of programs for
 # testing the correctness of floating-point arithmetic complying with the IEEE
 # Standard for Floating-Point, by John R. Hauser.
 #
diff --git a/build/Win32-MinGW/platform.h b/build/Win32-MinGW/platform.h
index 802bc4c..8b0de31 100644
--- a/build/Win32-MinGW/platform.h
+++ b/build/Win32-MinGW/platform.h
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C header file is part of TestFloat, Release 3d, a package of programs for
+This C header file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/build/Win32-SSE2-MinGW/Makefile b/build/Win32-SSE2-MinGW/Makefile
index cf02838..76ccce8 100644
--- a/build/Win32-SSE2-MinGW/Makefile
+++ b/build/Win32-SSE2-MinGW/Makefile
@@ -1,7 +1,7 @@
 
 #=============================================================================
 #
-# This Makefile is part of TestFloat, Release 3d, a package of programs for
+# This Makefile is part of TestFloat, Release 3e, a package of programs for
 # testing the correctness of floating-point arithmetic complying with the IEEE
 # Standard for Floating-Point, by John R. Hauser.
 #
diff --git a/build/Win32-SSE2-MinGW/platform.h b/build/Win32-SSE2-MinGW/platform.h
index 802bc4c..8b0de31 100644
--- a/build/Win32-SSE2-MinGW/platform.h
+++ b/build/Win32-SSE2-MinGW/platform.h
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C header file is part of TestFloat, Release 3d, a package of programs for
+This C header file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/build/Win64-MinGW-w64/Makefile b/build/Win64-MinGW-w64/Makefile
index 4339beb..7e1d07e 100644
--- a/build/Win64-MinGW-w64/Makefile
+++ b/build/Win64-MinGW-w64/Makefile
@@ -1,7 +1,7 @@
 
 #=============================================================================
 #
-# This Makefile is part of TestFloat, Release 3d, a package of programs for
+# This Makefile is part of TestFloat, Release 3e, a package of programs for
 # testing the correctness of floating-point arithmetic complying with the IEEE
 # Standard for Floating-Point, by John R. Hauser.
 #
diff --git a/build/Win64-MinGW-w64/platform.h b/build/Win64-MinGW-w64/platform.h
index 802bc4c..8b0de31 100644
--- a/build/Win64-MinGW-w64/platform.h
+++ b/build/Win64-MinGW-w64/platform.h
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C header file is part of TestFloat, Release 3d, a package of programs for
+This C header file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/build/template/Makefile b/build/template/Makefile
index 30c18fd..ba6652e 100644
--- a/build/template/Makefile
+++ b/build/template/Makefile
@@ -1,7 +1,7 @@
 
 #=============================================================================
 #
-# This Makefile template is part of TestFloat, Release 3d, a package of
+# This Makefile template is part of TestFloat, Release 3e, a package of
 # programs for testing the correctness of floating-point arithmetic complying
 # with the IEEE Standard for Floating-Point, by John R. Hauser.
 #
diff --git a/build/template/platform.h b/build/template/platform.h
index d0cb069..45042e6 100644
--- a/build/template/platform.h
+++ b/build/template/platform.h
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C header template is part of TestFloat, Release 3d, a package of programs
+This C header template is part of TestFloat, Release 3e, a package of programs
 for testing the correctness of floating-point arithmetic complying with the
 IEEE Standard for Floating-Point, by John R. Hauser.
 
diff --git a/doc/TestFloat-general.html b/doc/TestFloat-general.html
index c82f06e..55f67d7 100644
--- a/doc/TestFloat-general.html
+++ b/doc/TestFloat-general.html
@@ -7,11 +7,11 @@
 
 <BODY>
 
-<H1>Berkeley TestFloat Release 3d: General Documentation</H1>
+<H1>Berkeley TestFloat Release 3e: General Documentation</H1>
 
 <P>
 John R. Hauser<BR>
-2017 August 18<BR>
+2018 January 20<BR>
 </P>
 
 
@@ -78,16 +78,24 @@
 </P>
 
 <P>
-The current version of TestFloat is <NOBR>Release 3d</NOBR>.
-This version differs from earlier releases 3b <NOBR>and 3c</NOBR> in only minor
-ways.
-Compared to the original <NOBR>Release 3</NOBR>, <NOBR>Release 3b</NOBR> added
-the ability to test the <NOBR>16-bit</NOBR> half-precision format, while
+The current version of TestFloat is <NOBR>Release 3e</NOBR>.
+This version differs from earlier releases 3b through 3d in only minor ways.
+Compared to the original <NOBR>Release 3</NOBR>:
+<UL>
+<LI>
+<NOBR>Release 3b</NOBR> added the ability to test the <NOBR>16-bit</NOBR>
+half-precision format.
+<LI>
 <NOBR>Release 3c</NOBR> added the ability to test a rarely used rounding mode,
 <I>round to odd</I>, also known as <I>jamming</I>.
-This release modifies the code for testing C arithmetic to potentially include
-testing newer library functions <CODE>sqrtf</CODE>, <CODE>sqrtl</CODE>,
-<CODE>fmaf</CODE>, <CODE>fma</CODE>, and <CODE>fmal</CODE>.
+<LI>
+<NOBR>Release 3d</NOBR> modified the code for testing C arithmetic to
+potentially include testing newer library functions <CODE>sqrtf</CODE>,
+<CODE>sqrtl</CODE>, <CODE>fmaf</CODE>, <CODE>fma</CODE>, and <CODE>fmal</CODE>.
+</UL>
+This release adds a few more small improvements, including modifying the
+expected behavior of rounding mode <CODE>odd</CODE> and fixing a minor bug in
+the all-in-one <CODE>testfloat</CODE> program.
 </P>
 
 <P>
@@ -124,7 +132,7 @@
 The TestFloat package was written by me, <NOBR>John R.</NOBR> Hauser.
 <NOBR>Release 3</NOBR> of TestFloat was a completely new implementation
 supplanting earlier releases.
-The project to create <NOBR>Release 3</NOBR> (now <NOBR>through 3d</NOBR>) was
+The project to create <NOBR>Release 3</NOBR> (now <NOBR>through 3e</NOBR>) was
 done in the employ of the University of California, Berkeley, within the
 Department of Electrical Engineering and Computer Sciences, first for the
 Parallel Computing Laboratory (Par Lab) and then for the ASPIRE Lab.
@@ -158,12 +166,12 @@
 </P>
 
 <P>
-The following applies to the whole of TestFloat <NOBR>Release 3d</NOBR> as well
+The following applies to the whole of TestFloat <NOBR>Release 3e</NOBR> as well
 as to each source file individually.
 </P>
 
 <P>
-Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
+Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 The Regents of the
 University of California.
 All rights reserved.
 </P>
@@ -280,8 +288,9 @@
 This laxness can be overridden so that TestFloat checks for particular bit
 patterns within NaN results.
 See <NOBR>section 8</NOBR> below, <I>Variations Allowed by the IEEE
-Floating-Point Standard</I>, plus the <CODE>-checkNaNs</CODE> option documented
-for programs <CODE>testfloat_ver</CODE> and <CODE>testfloat</CODE>.
+Floating-Point Standard</I>, plus the <CODE>-checkNaNs</CODE> and
+<CODE>-checkInvInts</CODE> options documented for programs
+<CODE>testfloat_ver</CODE> and <CODE>testfloat</CODE>.
 </P>
 
 <P>
@@ -585,13 +594,6 @@
 exception.
 </P>
 
-<P>
-When converting to an integer, if the rounding mode is <CODE>odd</CODE>
-(possible only when the rounding mode is not in the function name), TestFloat
-expects the result to be rounded <EM>not</EM> to an odd integer but rather to
-minimum magnitude, the same as when the rounding mode is <CODE>minMag</CODE>.
-</P>
-
 <H3>6.2. Basic Arithmetic Operations</H3>
 
 <P>
@@ -691,13 +693,6 @@
 specification for the round-to-integer operations.
 </P>
 
-<P>
-If the rounding mode is <CODE>odd</CODE> (possible only when the rounding mode
-is not in the function name), TestFloat expects the result to be rounded
-<EM>not</EM> to an odd integer but rather to minimum magnitude, the same as
-when the rounding mode is <CODE>minMag</CODE>.
-</P>
-
 <H3>6.6. Comparison Operations</H3>
 
 <P>
@@ -1131,7 +1126,12 @@
 In such cases, TestFloat expects the result value to be the largest-magnitude
 positive or negative integer or zero, as detailed earlier in
 <NOBR>section 6.1</NOBR>, <I>Conversion Operations</I>.
-The current version of TestFloat provides no means to alter these expectations.
+If option <CODE>-checkInvInts</CODE> is selected with programs
+<CODE>testfloat_ver</CODE> and <CODE>testfloat</CODE>, integer results of
+invalid operations are checked for an exact match.
+In order for this option to be sensible, TestFloat must have been compiled so
+that its internal floating-point implementation (SoftFloat) generates the
+proper integer results for the system being tested.
 </P>
 
 
diff --git a/doc/TestFloat-history.html b/doc/TestFloat-history.html
index ed34043..1c247de 100644
--- a/doc/TestFloat-history.html
+++ b/doc/TestFloat-history.html
@@ -7,11 +7,11 @@
 
 <BODY>
 
-<H1>History of Berkeley TestFloat, to Release 3d</H1>
+<H1>History of Berkeley TestFloat, to Release 3e</H1>
 
 <P>
 John R. Hauser<BR>
-2017 August 18<BR>
+2018 January 20<BR>
 </P>
 
 
@@ -23,13 +23,41 @@
 </P>
 
 
+<H3>Release 3e (2018 January)</H3>
+
+<UL>
+
+<LI>
+Fixed a problem with the all-in-one <CODE>testfloat</CODE> program whereby
+function set <CODE>-all1</CODE> incorrectly also tested the three-operand fused
+multiply-add operations.
+
+<LI>
+Modified the expected behavior of rounding mode <CODE>odd</CODE> (jamming) when
+rounding to an integer value (either conversion to an integer format or a
+&lsquo;<CODE>roundToInt</CODE>&rsquo; function).
+Previously, for those cases only, rounding mode <CODE>odd</CODE> was expected
+to act the same as rounding to minimum magnitude.
+Now, when rounding to an integer value, the nearest odd integer is expected,
+consistent with the round-to-odd result of other operations.
+
+<LI>
+Added options <CODE>-checkInvInts</CODE> and <CODE>-checkAll</CODE> to programs
+<CODE>testfloat_ver</CODE> and <CODE>testfloat</CODE>.
+
+<LI>
+Improved the checking of integer results of invalid operations.
+
+</UL>
+
+
 <H3>Release 3d (2017 August)</H3>
 
 <UL>
 
 <LI>
 When the all-in-one <CODE>testfloat</CODE> program is compiled to test the C
-language's arithmetic, added the ability to test library functions
+language&rsquo;s arithmetic, added the ability to test library functions
 <CODE>sqrtf</CODE>, <CODE>sqrtl</CODE>, <CODE>fmaf</CODE>, <CODE>fma</CODE>,
 and <CODE>fmal</CODE>, which were added to the <NOBR>C Standard</NOBR> in 1999.
 
diff --git a/doc/TestFloat-source.html b/doc/TestFloat-source.html
index 2f1dbd1..24fb594 100644
--- a/doc/TestFloat-source.html
+++ b/doc/TestFloat-source.html
@@ -7,11 +7,11 @@
 
 <BODY>
 
-<H1>Berkeley TestFloat Release 3d: Source Documentation</H1>
+<H1>Berkeley TestFloat Release 3e: Source Documentation</H1>
 
 <P>
 John R. Hauser<BR>
-2017 August 18<BR>
+2018 January 20<BR>
 </P>
 
 
@@ -66,7 +66,7 @@
 <P>
 <NOBR>Release 3</NOBR> of TestFloat was a complete rewrite relative to
 <NOBR>Release 2c</NOBR> or earlier.
-The current version of TestFloat is <NOBR>Release 3d</NOBR>.
+The current version of TestFloat is <NOBR>Release 3e</NOBR>.
 </P>
 
 <P>
@@ -120,7 +120,7 @@
 The TestFloat package was written by me, <NOBR>John R.</NOBR> Hauser.
 <NOBR>Release 3</NOBR> of TestFloat was a completely new implementation
 supplanting earlier releases.
-The project to create <NOBR>Release 3</NOBR> (now <NOBR>through 3d</NOBR>) was
+The project to create <NOBR>Release 3</NOBR> (now <NOBR>through 3e</NOBR>) was
 done in the employ of the University of California, Berkeley, within the
 Department of Electrical Engineering and Computer Sciences, first for the
 Parallel Computing Laboratory (Par Lab) and then for the ASPIRE Lab.
@@ -154,12 +154,12 @@
 </P>
 
 <P>
-The following applies to the whole of TestFloat <NOBR>Release 3d</NOBR> as well
+The following applies to the whole of TestFloat <NOBR>Release 3e</NOBR> as well
 as to each source file individually.
 </P>
 
 <P>
-Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
+Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 The Regents of the
 University of California.
 All rights reserved.
 </P>
@@ -224,6 +224,7 @@
     Linux-386-GCC
     Linux-386-SSE2-GCC
     Linux-x86_64-GCC
+    Linux-ARM-VFPv2-GCC
     Win32-MinGW
     Win32-SSE2-MinGW
     Win64-MinGW-w64
@@ -263,19 +264,19 @@
 For the example targets,
 <NOBR><CODE>&lt;<I>execution-environment</I>&gt;</CODE></NOBR> is
 <NOBR><CODE>Linux-386</CODE></NOBR>, <NOBR><CODE>Linux-386-SSE2</CODE></NOBR>,
-<NOBR><CODE>Linux-x86_64</CODE></NOBR>, <CODE>Win32</CODE>,
+<NOBR><CODE>Linux-x86_64</CODE></NOBR>,
+<NOBR><CODE>Linux-ARM-VFPv2</CODE></NOBR>, <CODE>Win32</CODE>,
 <NOBR><CODE>Win32-SSE2</CODE></NOBR>, or <CODE>Win64</CODE>, and
 <NOBR><CODE>&lt;<I>compiler</I>&gt;</CODE></NOBR> is <CODE>GCC</CODE>,
 <CODE>MinGW</CODE>, or <NOBR><CODE>MinGW-w64</CODE></NOBR>.
 </P>
 
 <P>
-At the current time, all of the supplied target directories are merely examples
-that may or may not be correct for compiling on any particular system.
+All of the supplied target directories are merely examples that may or may not
+be correct for compiling on any particular system.
 There are currently no plans to include and maintain in the TestFloat package
 the build files needed for a great many users&rsquo; compilation environments,
-which after all can span a broad range of operating systems, compilers, and
-other tools.
+which can span a huge range of operating systems, compilers, and other tools.
 </P>
 
 <P>
diff --git a/doc/testfloat.html b/doc/testfloat.html
index 27736b8..f9404e0 100644
--- a/doc/testfloat.html
+++ b/doc/testfloat.html
@@ -7,11 +7,11 @@
 
 <BODY>
 
-<H1>Berkeley TestFloat Release 3d: <CODE>testfloat</CODE></H1>
+<H1>Berkeley TestFloat Release 3e: <CODE>testfloat</CODE></H1>
 
 <P>
 John R. Hauser<BR>
-2017 August 18<BR>
+2018 January 20<BR>
 </P>
 
 
@@ -193,6 +193,23 @@
 tested.
 </P>
 
+<H3><CODE>-checkInvInts</CODE></H3>
+
+<P>
+The <CODE>-checkInvInts</CODE> option causes <CODE>testfloat</CODE> to verify
+the bitwise correctness of integer results of invalid operations.
+In order for this option to be sensible, <CODE>testfloat</CODE> must have been
+compiled so that its internal reference implementation of floating-point
+(Berkeley SoftFloat) generates the proper integer results for the system being
+tested.
+</P>
+
+<H3><CODE>-checkAll</CODE></H3>
+
+<P>
+Enables both <CODE>-checkNaNs</CODE> and <CODE>-checkInvInts</CODE>.
+</P>
+
 <H3><CODE>-precision32, -precision64, -precision80</CODE></H3>
 
 <P>
diff --git a/doc/testfloat_gen.html b/doc/testfloat_gen.html
index f4cb733..5190567 100644
--- a/doc/testfloat_gen.html
+++ b/doc/testfloat_gen.html
@@ -7,11 +7,11 @@
 
 <BODY>
 
-<H1>Berkeley TestFloat Release 3d: <CODE>testfloat_gen</CODE></H1>
+<H1>Berkeley TestFloat Release 3e: <CODE>testfloat_gen</CODE></H1>
 
 <P>
 John R. Hauser<BR>
-2017 August 18<BR>
+2018 January 20<BR>
 </P>
 
 
diff --git a/doc/testfloat_ver.html b/doc/testfloat_ver.html
index 8d83e3d..0790896 100644
--- a/doc/testfloat_ver.html
+++ b/doc/testfloat_ver.html
@@ -7,11 +7,11 @@
 
 <BODY>
 
-<H1>Berkeley TestFloat Release 3d: <CODE>testfloat_ver</CODE></H1>
+<H1>Berkeley TestFloat Release 3e: <CODE>testfloat_ver</CODE></H1>
 
 <P>
 John R. Hauser<BR>
-2017 August 18<BR>
+2018 January 20<BR>
 </P>
 
 
@@ -116,6 +116,23 @@
 tested.
 </P>
 
+<H3><CODE>-checkInvInts</CODE></H3>
+
+<P>
+The <CODE>-checkInvInts</CODE> option causes <CODE>testfloat_ver</CODE> to
+verify the bitwise correctness of integer results of invalid operations.
+In order for this option to be sensible, <CODE>testfloat_ver</CODE> must have
+been compiled so that its internal reference implementation of floating-point
+(Berkeley SoftFloat) generates the proper integer results for the system being
+tested.
+</P>
+
+<H3><CODE>-checkAll</CODE></H3>
+
+<P>
+Enables both <CODE>-checkNaNs</CODE> and <CODE>-checkInvInts</CODE>.
+</P>
+
 <H3><CODE>-precision32, -precision64, -precision80</CODE></H3>
 
 <P>
diff --git a/doc/testsoftfloat.html b/doc/testsoftfloat.html
index 703d2fe..09e488b 100644
--- a/doc/testsoftfloat.html
+++ b/doc/testsoftfloat.html
@@ -7,11 +7,11 @@
 
 <BODY>
 
-<H1>Berkeley TestFloat Release 3d: <CODE>testsoftfloat</CODE></H1>
+<H1>Berkeley TestFloat Release 3e: <CODE>testsoftfloat</CODE></H1>
 
 <P>
 John R. Hauser<BR>
-2017 August 18<BR>
+2018 January 20<BR>
 </P>
 
 
diff --git a/doc/timesoftfloat.html b/doc/timesoftfloat.html
index 8d54493..8808fe6 100644
--- a/doc/timesoftfloat.html
+++ b/doc/timesoftfloat.html
@@ -7,11 +7,11 @@
 
 <BODY>
 
-<H1>Berkeley TestFloat Release 3d: <CODE>timesoftfloat</CODE></H1>
+<H1>Berkeley TestFloat Release 3e: <CODE>timesoftfloat</CODE></H1>
 
 <P>
 John R. Hauser<BR>
-2017 August 18<BR>
+2018 January 20<BR>
 </P>
 
 
diff --git a/source/fail.c b/source/fail.c
index 1850c7f..f68e941 100644
--- a/source/fail.c
+++ b/source/fail.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/fail.h b/source/fail.h
index 73b29bc..e981473 100644
--- a/source/fail.h
+++ b/source/fail.h
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C header file is part of TestFloat, Release 3d, a package of programs for
+This C header file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/functionInfos.c b/source/functionInfos.c
index b9eeec5..8e40106 100644
--- a/source/functionInfos.c
+++ b/source/functionInfos.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/functions.h b/source/functions.h
index 2b405eb..ee66bbd 100644
--- a/source/functions.h
+++ b/source/functions.h
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C header file is part of TestFloat, Release 3d, a package of programs for
+This C header file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/functions_common.c b/source/functions_common.c
index 6b89bc3..71bcde3 100644
--- a/source/functions_common.c
+++ b/source/functions_common.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/genCases.h b/source/genCases.h
index 8639b9a..e710091 100644
--- a/source/genCases.h
+++ b/source/genCases.h
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C header file is part of TestFloat, Release 3d, a package of programs for
+This C header file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/genCases_common.c b/source/genCases_common.c
index 81ce006..b358b49 100644
--- a/source/genCases_common.c
+++ b/source/genCases_common.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/genCases_extF80.c b/source/genCases_extF80.c
index 0cd2330..0e0109d 100644
--- a/source/genCases_extF80.c
+++ b/source/genCases_extF80.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/genCases_f128.c b/source/genCases_f128.c
index eed5e09..839da22 100644
--- a/source/genCases_f128.c
+++ b/source/genCases_f128.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/genCases_f16.c b/source/genCases_f16.c
index 8f46df0..ea4c025 100644
--- a/source/genCases_f16.c
+++ b/source/genCases_f16.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/genCases_f32.c b/source/genCases_f32.c
index 289f449..3da3a29 100644
--- a/source/genCases_f32.c
+++ b/source/genCases_f32.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/genCases_f64.c b/source/genCases_f64.c
index a9d25a3..5229e89 100644
--- a/source/genCases_f64.c
+++ b/source/genCases_f64.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/genCases_i32.c b/source/genCases_i32.c
index 261c2a1..94c4db0 100644
--- a/source/genCases_i32.c
+++ b/source/genCases_i32.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/genCases_i64.c b/source/genCases_i64.c
index f13d510..10f0716 100644
--- a/source/genCases_i64.c
+++ b/source/genCases_i64.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/genCases_ui32.c b/source/genCases_ui32.c
index a0c9aa8..bc89782 100644
--- a/source/genCases_ui32.c
+++ b/source/genCases_ui32.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/genCases_ui64.c b/source/genCases_ui64.c
index 7404ea4..915df78 100644
--- a/source/genCases_ui64.c
+++ b/source/genCases_ui64.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/genCases_writeTestsTotal.c b/source/genCases_writeTestsTotal.c
index 8ae044a..8ad6f91 100644
--- a/source/genCases_writeTestsTotal.c
+++ b/source/genCases_writeTestsTotal.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/genLoops.c b/source/genLoops.c
index 11914b5..913391a 100644
--- a/source/genLoops.c
+++ b/source/genLoops.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/genLoops.h b/source/genLoops.h
index 63d9ad8..2ca88c7 100644
--- a/source/genLoops.h
+++ b/source/genLoops.h
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C header file is part of TestFloat, Release 3d, a package of programs for
+This C header file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/random.c b/source/random.c
index 04b746d..715c8cc 100644
--- a/source/random.c
+++ b/source/random.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/random.h b/source/random.h
index b3dd355..08c8cd2 100644
--- a/source/random.h
+++ b/source/random.h
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C header file is part of TestFloat, Release 3d, a package of programs for
+This C header file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/readHex.c b/source/readHex.c
index ba1514a..0e1b50c 100644
--- a/source/readHex.c
+++ b/source/readHex.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/readHex.h b/source/readHex.h
index aff2060..ff32381 100644
--- a/source/readHex.h
+++ b/source/readHex.h
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C header file is part of TestFloat, Release 3d, a package of programs for
+This C header file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/slowfloat.c b/source/slowfloat.c
index 629811c..4e84656 100644
--- a/source/slowfloat.c
+++ b/source/slowfloat.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
@@ -94,7 +94,7 @@
             if ( roundBits < UINT64_C( 0x100000000000 ) ) goto noIncrement;
             if (
                 (roundBits == UINT64_C( 0x100000000000 ))
-                    && ! (sigX64 & UINT64_C( 0x200000000000 ))
+                    && !(sigX64 & UINT64_C( 0x200000000000 ))
             ) {
                 goto noIncrement;
             }
@@ -102,7 +102,7 @@
          case softfloat_round_minMag:
             goto noIncrement;
          case softfloat_round_min:
-            if ( ! xPtr->sign ) goto noIncrement;
+            if ( !xPtr->sign ) goto noIncrement;
             break;
          case softfloat_round_max:
             if ( xPtr->sign ) goto noIncrement;
@@ -147,7 +147,7 @@
             if ( roundBits < 0x80000000 ) goto noIncrement;
             if (
                 (roundBits == 0x80000000)
-                    && ! (sigX64 & UINT64_C( 0x100000000 ))
+                    && !(sigX64 & UINT64_C( 0x100000000 ))
             ) {
                 goto noIncrement;
             }
@@ -155,7 +155,7 @@
          case softfloat_round_minMag:
             goto noIncrement;
          case softfloat_round_min:
-            if ( ! xPtr->sign ) goto noIncrement;
+            if ( !xPtr->sign ) goto noIncrement;
             break;
          case softfloat_round_max:
             if ( xPtr->sign ) goto noIncrement;
@@ -198,12 +198,12 @@
         switch ( roundingMode ) {
          case softfloat_round_near_even:
             if ( roundBits < 4 ) goto noIncrement;
-            if ( (roundBits == 4) && ! (sigX64 & 8) ) goto noIncrement;
+            if ( (roundBits == 4) && !(sigX64 & 8) ) goto noIncrement;
             break;
          case softfloat_round_minMag:
             goto noIncrement;
          case softfloat_round_min:
-            if ( ! xPtr->sign ) goto noIncrement;
+            if ( !xPtr->sign ) goto noIncrement;
             break;
          case softfloat_round_max:
             if ( xPtr->sign ) goto noIncrement;
@@ -247,7 +247,7 @@
             if ( roundBits < UINT64_C( 0x0080000000000000 ) ) goto noIncrement;
             if (
                 (roundBits == UINT64_C( 0x0080000000000000 ))
-                    && ! (sigX0 & UINT64_C( 0x0100000000000000 ))
+                    && !(sigX0 & UINT64_C( 0x0100000000000000 ))
             ) {
                 goto noIncrement;
             }
@@ -255,7 +255,7 @@
          case softfloat_round_minMag:
             goto noIncrement;
          case softfloat_round_min:
-            if ( ! xPtr->sign ) goto noIncrement;
+            if ( !xPtr->sign ) goto noIncrement;
             break;
          case softfloat_round_max:
             if ( xPtr->sign ) goto noIncrement;
@@ -270,7 +270,7 @@
 #endif
         }
         sigX0 += UINT64_C( 0x100000000000000 );
-        sigX64 = xPtr->sig.v64 + ! sigX0;
+        sigX64 = xPtr->sig.v64 + !sigX0;
         if ( sigX64 == UINT64_C( 0x0100000000000000 ) ) {
             ++xPtr->exp;
             sigX64 = UINT64_C( 0x0080000000000000 );
@@ -300,12 +300,12 @@
         switch ( roundingMode ) {
          case softfloat_round_near_even:
             if ( roundBits < 0x40 ) goto noIncrement;
-            if ( (roundBits == 0x40) && ! (sigX0 & 0x80) ) goto noIncrement;
+            if ( (roundBits == 0x40) && !(sigX0 & 0x80) ) goto noIncrement;
             break;
          case softfloat_round_minMag:
             goto noIncrement;
          case softfloat_round_min:
-            if ( ! xPtr->sign ) goto noIncrement;
+            if ( !xPtr->sign ) goto noIncrement;
             break;
          case softfloat_round_max:
             if ( xPtr->sign ) goto noIncrement;
@@ -320,7 +320,7 @@
 #endif
         }
         sigX0 += 0x80;
-        sigX64 = xPtr->sig.v64 + ! sigX0;
+        sigX64 = xPtr->sig.v64 + !sigX0;
         if ( sigX64 == UINT64_C( 0x0100000000000000 ) ) {
             ++xPtr->exp;
             sigX64 = UINT64_C( 0x0080000000000000 );
@@ -373,9 +373,6 @@
         return (xPtr->isInf && xPtr->sign) ? 0 : 0xFFFFFFFF;
     }
     if ( xPtr->isZero ) return 0;
-    if ( roundingMode == softfloat_round_odd ) {
-        roundingMode = softfloat_round_minMag;
-    }
     savedExceptionFlags = slowfloat_exceptionFlags;
     x = *xPtr;
     shiftDist = 52 - x.exp;
@@ -442,9 +439,6 @@
             (xPtr->isInf && xPtr->sign) ? 0 : UINT64_C( 0xFFFFFFFFFFFFFFFF );
     }
     if ( xPtr->isZero ) return 0;
-    if ( roundingMode == softfloat_round_odd ) {
-        roundingMode = softfloat_round_minMag;
-    }
     savedExceptionFlags = slowfloat_exceptionFlags;
     x = *xPtr;
     shiftDist = 112 - x.exp;
@@ -512,9 +506,6 @@
         return (xPtr->isInf && xPtr->sign) ? -0x7FFFFFFF - 1 : 0x7FFFFFFF;
     }
     if ( xPtr->isZero ) return 0;
-    if ( roundingMode == softfloat_round_odd ) {
-        roundingMode = softfloat_round_minMag;
-    }
     savedExceptionFlags = slowfloat_exceptionFlags;
     x = *xPtr;
     shiftDist = 52 - x.exp;
@@ -588,9 +579,6 @@
                 : INT64_C( 0x7FFFFFFFFFFFFFFF );
     }
     if ( xPtr->isZero ) return 0;
-    if ( roundingMode == softfloat_round_odd ) {
-        roundingMode = softfloat_round_minMag;
-    }
     savedExceptionFlags = slowfloat_exceptionFlags;
     x = *xPtr;
     shiftDist = 112 - x.exp;
@@ -644,8 +632,8 @@
         } else {
             xPtr->isInf = true;
         }
-    } else if ( ! exp ) {
-        if ( ! sig64 ) {
+    } else if ( !exp ) {
+        if ( !sig64 ) {
             xPtr->isZero = true;
         } else {
             exp = 1 - 0xF;
@@ -780,8 +768,8 @@
         } else {
             xPtr->isInf = true;
         }
-    } else if ( ! exp ) {
-        if ( ! sig64 ) {
+    } else if ( !exp ) {
+        if ( !sig64 ) {
             xPtr->isZero = true;
         } else {
             exp = 1 - 0x7F;
@@ -915,8 +903,8 @@
         } else {
             xPtr->isInf = true;
         }
-    } else if ( ! exp ) {
-        if ( ! sig64 ) {
+    } else if ( !exp ) {
+        if ( !sig64 ) {
             xPtr->isZero = true;
         } else {
             exp = 1 - 0x3FF;
@@ -1056,10 +1044,10 @@
             xPtr->isInf = true;
         }
     } else {
-        if ( ! exp ) ++exp;
+        if ( !exp ) ++exp;
         exp -= 0x3FFF;
-        if ( ! (sig.v0 & UINT64_C( 0x8000000000000000 )) ) {
-            if ( ! sig.v0 ) {
+        if ( !(sig.v0 & UINT64_C( 0x8000000000000000 )) ) {
+            if ( !sig.v0 ) {
                 xPtr->isZero = true;
             } else {
                 do {
@@ -1241,8 +1229,8 @@
         } else {
             xPtr->isInf = true;
         }
-    } else if ( ! exp ) {
-        if ( ! sig.v64 && ! sig.v0 ) {
+    } else if ( !exp ) {
+        if ( !sig.v64 && !sig.v0 ) {
             xPtr->isZero = true;
         } else {
             exp = 1 - 0x3FFF;
@@ -1378,16 +1366,13 @@
     struct uint128 sig;
 
     if ( xPtr->isNaN || xPtr->isInf ) return;
-    if ( roundingMode == softfloat_round_odd ) {
-        roundingMode = softfloat_round_minMag;
-    }
     exp = xPtr->exp;
     shiftDist = 112 - exp;
     if ( shiftDist <= 0 ) return;
     if ( 119 < shiftDist ) {
         xPtr->exp = 112;
         xPtr->sig.v64 = 0;
-        xPtr->sig.v0 = ! xPtr->isZero;
+        xPtr->sig.v0 = !xPtr->isZero;
     } else {
         sig = xPtr->sig;
         while ( 0 < shiftDist ) {
@@ -1399,7 +1384,7 @@
         xPtr->sig = sig;
     }
     roundFloatXTo113( false, xPtr, roundingMode, exact );
-    if ( ! xPtr->sig.v64 && ! xPtr->sig.v0 ) xPtr->isZero = true;
+    if ( !xPtr->sig.v64 && !xPtr->sig.v0 ) xPtr->isZero = true;
 
 }
 
@@ -1466,7 +1451,7 @@
         xPtr->sig = add128( xPtr->sig, sigY );
     }
     if ( xPtr->sig.v64 & UINT64_C( 0x8000000000000000 ) ) {
-        xPtr->sign = ! xPtr->sign;
+        xPtr->sign = !xPtr->sign;
         xPtr->sig = neg128( xPtr->sig );
     }
     return;
@@ -1488,7 +1473,7 @@
         xPtr->sign = yPtr->sign;
         return;
     }
-    if ( yPtr->sign ) xPtr->sign = ! xPtr->sign;
+    if ( yPtr->sign ) xPtr->sign = !xPtr->sign;
     if ( xPtr->isInf ) {
         if ( yPtr->isZero ) floatXInvalid( xPtr );
         return;
@@ -1538,7 +1523,7 @@
         xPtr->sign = yPtr->sign;
         return;
     }
-    if ( yPtr->sign ) xPtr->sign = ! xPtr->sign;
+    if ( yPtr->sign ) xPtr->sign = !xPtr->sign;
     if ( xPtr->isInf ) {
         if ( yPtr->isInf ) floatXInvalid( xPtr );
         return;
@@ -1615,18 +1600,18 @@
     savedSigX = xPtr->sig;
     xPtr->sig = neg128( add128( xPtr->sig, negSigY ) );
     if ( lt128( xPtr->sig, savedSigX ) ) {
-        xPtr->sign = ! xPtr->sign;
+        xPtr->sign = !xPtr->sign;
     } else if ( lt128( savedSigX, xPtr->sig ) ) {
         goto restoreSavedSigX;
     } else {
         if ( lastQuotientBit ) {
-            xPtr->sign = ! xPtr->sign;
+            xPtr->sign = !xPtr->sign;
         } else {
  restoreSavedSigX:
             xPtr->sig = savedSigX;
         }
     }
-    if ( ! xPtr->sig.v64 && ! xPtr->sig.v0 ) xPtr->isZero = true;
+    if ( !xPtr->sig.v64 && !xPtr->sig.v0 ) xPtr->isZero = true;
 
 }
 
@@ -1642,7 +1627,7 @@
         return;
     }
     if ( xPtr->isInf ) return;
-    if ( ! (xPtr->exp & 1) ) xPtr->sig = shortShiftRightJam128( xPtr->sig, 1 );
+    if ( !(xPtr->exp & 1) ) xPtr->sig = shortShiftRightJam128( xPtr->sig, 1 );
     xPtr->exp >>= 1;
     sig.v64 = 0;
     sig.v0  = 0;
@@ -1877,10 +1862,10 @@
     x.isInf  = xPtr->isInf;
     x.isZero = xPtr->isZero;
     x.sign   = xPtr->sign;
-    if ( ! (x.isNaN | x.isInf | x.isZero) ) {
+    if ( !(x.isNaN | x.isInf | x.isZero) ) {
         expZ = xPtr->exp;
         sig = xPtr->sig;
-        while ( ! sig.v192 ) {
+        while ( !sig.v192 ) {
             expZ -= 64;
             sig.v192 = sig.v128;
             sig.v128 = sig.v64;
@@ -1977,7 +1962,7 @@
         add256M( &xPtr->sig, &sigY );
     }
     if ( xPtr->sig.v192 & UINT64_C( 0x8000000000000000 ) ) {
-        xPtr->sign = ! xPtr->sign;
+        xPtr->sign = !xPtr->sign;
         neg256M( &xPtr->sig );
     }
     return;
@@ -2000,7 +1985,7 @@
         xPtr->sign = yPtr->sign;
         return;
     }
-    if ( yPtr->sign ) xPtr->sign = ! xPtr->sign;
+    if ( yPtr->sign ) xPtr->sign = !xPtr->sign;
     if ( xPtr->isInf ) {
         if ( yPtr->isZero ) floatX256Invalid( xPtr );
         return;
@@ -2442,7 +2427,7 @@
 
     f16ToFloatX( a, &x );
     f16ToFloatX( b, &y );
-    y.sign = ! y.sign;
+    y.sign = !y.sign;
     floatXAdd( &x, &y );
     return floatXToF16( &x );
 
@@ -2732,7 +2717,7 @@
 
     f32ToFloatX( a, &x );
     f32ToFloatX( b, &y );
-    y.sign = ! y.sign;
+    y.sign = !y.sign;
     floatXAdd( &x, &y );
     return floatXToF32( &x );
 
@@ -3018,7 +3003,7 @@
 
     f64ToFloatX( a, &x );
     f64ToFloatX( b, &y );
-    y.sign = ! y.sign;
+    y.sign = !y.sign;
     floatXAdd( &x, &y );
     return floatXToF64( &x );
 
@@ -3322,7 +3307,7 @@
 
     extF80MToFloatX( aPtr, &x );
     extF80MToFloatX( bPtr, &y );
-    y.sign = ! y.sign;
+    y.sign = !y.sign;
     floatXAdd( &x, &y );
     floatXToExtF80M( &x, zPtr );
 
@@ -3617,7 +3602,7 @@
 
     f128MToFloatX( aPtr, &x );
     f128MToFloatX( bPtr, &y );
-    y.sign = ! y.sign;
+    y.sign = !y.sign;
     floatXAdd( &x, &y );
     floatXToF128M( &x, zPtr );
 
diff --git a/source/slowfloat.h b/source/slowfloat.h
index e3ee4a4..b2240e7 100644
--- a/source/slowfloat.h
+++ b/source/slowfloat.h
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C header file is part of TestFloat, Release 3d, a package of programs for
+This C header file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/standardFunctionInfos.c b/source/standardFunctionInfos.c
index 61e895a..2ccc001 100644
--- a/source/standardFunctionInfos.c
+++ b/source/standardFunctionInfos.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/subj-C/subjfloat.c b/source/subj-C/subjfloat.c
index 68a4ce7..f6526d1 100644
--- a/source/subj-C/subjfloat.c
+++ b/source/subj-C/subjfloat.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/subjfloat.h b/source/subjfloat.h
index 45196e8..aaf9776 100644
--- a/source/subjfloat.h
+++ b/source/subjfloat.h
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C header file is part of TestFloat, Release 3d, a package of programs for
+This C header file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/subjfloat_functions.c b/source/subjfloat_functions.c
index 49ebc98..13b2896 100644
--- a/source/subjfloat_functions.c
+++ b/source/subjfloat_functions.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/testLoops.h b/source/testLoops.h
index e8fab9c..f9b88d7 100644
--- a/source/testLoops.h
+++ b/source/testLoops.h
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C header file is part of TestFloat, Release 3d, a package of programs for
+This C header file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/testLoops_common.c b/source/testLoops_common.c
index f157165..ea6a53d 100644
--- a/source/testLoops_common.c
+++ b/source/testLoops_common.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/test_a_extF80_z_f128.c b/source/test_a_extF80_z_f128.c
index 4af07e2..d454095 100644
--- a/source/test_a_extF80_z_f128.c
+++ b/source/test_a_extF80_z_f128.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/test_a_extF80_z_f16.c b/source/test_a_extF80_z_f16.c
index 4535014..a1e4f8c 100644
--- a/source/test_a_extF80_z_f16.c
+++ b/source/test_a_extF80_z_f16.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/test_a_extF80_z_f32.c b/source/test_a_extF80_z_f32.c
index 6e13d0a..ff0e31a 100644
--- a/source/test_a_extF80_z_f32.c
+++ b/source/test_a_extF80_z_f32.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/test_a_extF80_z_f64.c b/source/test_a_extF80_z_f64.c
index 229b8e1..b105228 100644
--- a/source/test_a_extF80_z_f64.c
+++ b/source/test_a_extF80_z_f64.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/test_a_extF80_z_i32_rx.c b/source/test_a_extF80_z_i32_rx.c
index ba56986..fa9fe98 100644
--- a/source/test_a_extF80_z_i32_rx.c
+++ b/source/test_a_extF80_z_i32_rx.c
@@ -1,12 +1,12 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
+Copyright 2011, 2012, 2013, 2014, 2018 The Regents of the University of
+California.  All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
 modification, are permitted provided that the following conditions are met:
@@ -82,16 +82,12 @@
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
             if (
-                ! verCases_checkNaNs
-                    && extF80M_isSignalingNaN( &genCases_extF80_a )
-            ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
-            if (
-                   (trueZ != 0x7FFFFFFF)
-                || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1))
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1)
+                        && (! extF80M_isNaN( &genCases_extF80_a )
+                                || (subjZ != 0)))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
diff --git a/source/test_a_extF80_z_i32_x.c b/source/test_a_extF80_z_i32_x.c
index 0472ec1..b3dc9c9 100644
--- a/source/test_a_extF80_z_i32_x.c
+++ b/source/test_a_extF80_z_i32_x.c
@@ -1,12 +1,12 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
+Copyright 2011, 2012, 2013, 2014, 2018 The Regents of the University of
+California.  All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
 modification, are permitted provided that the following conditions are met:
@@ -81,16 +81,12 @@
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
             if (
-                ! verCases_checkNaNs
-                    && extF80M_isSignalingNaN( &genCases_extF80_a )
-            ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
-            if (
-                   (trueZ != 0x7FFFFFFF)
-                || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1))
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1)
+                        && (! extF80M_isNaN( &genCases_extF80_a )
+                                || (subjZ != 0)))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
diff --git a/source/test_a_extF80_z_i64_rx.c b/source/test_a_extF80_z_i64_rx.c
index cf0e260..0d71159 100644
--- a/source/test_a_extF80_z_i64_rx.c
+++ b/source/test_a_extF80_z_i64_rx.c
@@ -1,12 +1,12 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
+Copyright 2011, 2012, 2013, 2014, 2018 The Regents of the University of
+California.  All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
 modification, are permitted provided that the following conditions are met:
@@ -82,16 +82,13 @@
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
             if (
-                ! verCases_checkNaNs
-                    && extF80M_isSignalingNaN( &genCases_extF80_a )
-            ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
-            if (
-                   (trueZ != 0x7FFFFFFF)
-                || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1))
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != INT64_C( 0x7FFFFFFFFFFFFFFF ))
+                        && (subjZ != -INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1)
+                        && (! extF80M_isNaN( &genCases_extF80_a )
+                                || (subjZ != 0)))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
diff --git a/source/test_a_extF80_z_i64_x.c b/source/test_a_extF80_z_i64_x.c
index 8a62c07..bfa9a6a 100644
--- a/source/test_a_extF80_z_i64_x.c
+++ b/source/test_a_extF80_z_i64_x.c
@@ -1,12 +1,12 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
+Copyright 2011, 2012, 2013, 2014, 2018 The Regents of the University of
+California.  All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
 modification, are permitted provided that the following conditions are met:
@@ -81,16 +81,13 @@
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
             if (
-                ! verCases_checkNaNs
-                    && extF80M_isSignalingNaN( &genCases_extF80_a )
-            ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
-            if (
-                   (trueZ != 0x7FFFFFFF)
-                || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1))
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != INT64_C( 0x7FFFFFFFFFFFFFFF ))
+                        && (subjZ != -INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1)
+                        && (! extF80M_isNaN( &genCases_extF80_a )
+                                || (subjZ != 0)))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
diff --git a/source/test_a_extF80_z_ui32_rx.c b/source/test_a_extF80_z_ui32_rx.c
index 67ad4ba..9fa9cff 100644
--- a/source/test_a_extF80_z_ui32_rx.c
+++ b/source/test_a_extF80_z_ui32_rx.c
@@ -1,12 +1,12 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
+Copyright 2011, 2012, 2013, 2014, 2018 The Regents of the University of
+California.  All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
 modification, are permitted provided that the following conditions are met:
@@ -82,16 +82,10 @@
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
             if (
-                ! verCases_checkNaNs
-                    && extF80M_isSignalingNaN( &genCases_extF80_a )
-            ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
-            if (
-                   (trueZ != 0xFFFFFFFF)
-                || (subjZ != 0xFFFFFFFF)
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != 0xFFFFFFFF) && (subjZ != 0))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
diff --git a/source/test_a_extF80_z_ui32_x.c b/source/test_a_extF80_z_ui32_x.c
index 3db7369..df7d820 100644
--- a/source/test_a_extF80_z_ui32_x.c
+++ b/source/test_a_extF80_z_ui32_x.c
@@ -1,12 +1,12 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
+Copyright 2011, 2012, 2013, 2014, 2018 The Regents of the University of
+California.  All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
 modification, are permitted provided that the following conditions are met:
@@ -81,16 +81,10 @@
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
             if (
-                ! verCases_checkNaNs
-                    && extF80M_isSignalingNaN( &genCases_extF80_a )
-            ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
-            if (
-                   (trueZ != 0xFFFFFFFF)
-                || (subjZ != 0xFFFFFFFF)
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != 0xFFFFFFFF) && (subjZ != 0))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
diff --git a/source/test_a_extF80_z_ui64_rx.c b/source/test_a_extF80_z_ui64_rx.c
index 8462722..3a768d7 100644
--- a/source/test_a_extF80_z_ui64_rx.c
+++ b/source/test_a_extF80_z_ui64_rx.c
@@ -1,12 +1,12 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
+Copyright 2011, 2012, 2013, 2014, 2018 The Regents of the University of
+California.  All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
 modification, are permitted provided that the following conditions are met:
@@ -82,16 +82,10 @@
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
             if (
-                ! verCases_checkNaNs
-                    && extF80M_isSignalingNaN( &genCases_extF80_a )
-            ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
-            if (
-                   (trueZ != 0xFFFFFFFF)
-                || (subjZ != 0xFFFFFFFF)
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != UINT64_C( 0xFFFFFFFFFFFFFFFF )) && (subjZ != 0))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
diff --git a/source/test_a_extF80_z_ui64_x.c b/source/test_a_extF80_z_ui64_x.c
index 283f4e6..48c5965 100644
--- a/source/test_a_extF80_z_ui64_x.c
+++ b/source/test_a_extF80_z_ui64_x.c
@@ -1,12 +1,12 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
+Copyright 2011, 2012, 2013, 2014, 2018 The Regents of the University of
+California.  All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
 modification, are permitted provided that the following conditions are met:
@@ -81,16 +81,10 @@
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
             if (
-                ! verCases_checkNaNs
-                    && extF80M_isSignalingNaN( &genCases_extF80_a )
-            ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
-            if (
-                   (trueZ != UINT64_C( 0xFFFFFFFFFFFFFFFF ))
-                || (subjZ != UINT64_C( 0xFFFFFFFFFFFFFFFF ))
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != UINT64_C( 0xFFFFFFFFFFFFFFFF )) && (subjZ != 0))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
diff --git a/source/test_a_f128_z_extF80.c b/source/test_a_f128_z_extF80.c
index d47351e..ec7dfbb 100644
--- a/source/test_a_f128_z_extF80.c
+++ b/source/test_a_f128_z_extF80.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/test_a_f128_z_f16.c b/source/test_a_f128_z_f16.c
index ed7ebb1..1254078 100644
--- a/source/test_a_f128_z_f16.c
+++ b/source/test_a_f128_z_f16.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/test_a_f128_z_f32.c b/source/test_a_f128_z_f32.c
index 4bcafa5..24cae7d 100644
--- a/source/test_a_f128_z_f32.c
+++ b/source/test_a_f128_z_f32.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/test_a_f128_z_f64.c b/source/test_a_f128_z_f64.c
index 42967fb..bcd91bc 100644
--- a/source/test_a_f128_z_f64.c
+++ b/source/test_a_f128_z_f64.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/test_a_f128_z_i32_rx.c b/source/test_a_f128_z_i32_rx.c
index 488f4bc..9084833 100644
--- a/source/test_a_f128_z_i32_rx.c
+++ b/source/test_a_f128_z_i32_rx.c
@@ -1,12 +1,12 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
+Copyright 2011, 2012, 2013, 2014, 2018 The Regents of the University of
+California.  All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
 modification, are permitted provided that the following conditions are met:
@@ -82,16 +82,11 @@
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
             if (
-                ! verCases_checkNaNs
-                    && f128M_isSignalingNaN( &genCases_f128_a )
-            ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
-            if (
-                   (trueZ != 0x7FFFFFFF)
-                || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1))
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1)
+                        && (! f128M_isNaN( &genCases_f128_a ) || (subjZ != 0)))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
diff --git a/source/test_a_f128_z_i32_x.c b/source/test_a_f128_z_i32_x.c
index cf9987e..5295176 100644
--- a/source/test_a_f128_z_i32_x.c
+++ b/source/test_a_f128_z_i32_x.c
@@ -1,12 +1,12 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
+Copyright 2011, 2012, 2013, 2014, 2018 The Regents of the University of
+California.  All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
 modification, are permitted provided that the following conditions are met:
@@ -81,16 +81,11 @@
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
             if (
-                ! verCases_checkNaNs
-                    && f128M_isSignalingNaN( &genCases_f128_a )
-            ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
-            if (
-                   (trueZ != 0x7FFFFFFF)
-                || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1))
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1)
+                        && (! f128M_isNaN( &genCases_f128_a ) || (subjZ != 0)))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
diff --git a/source/test_a_f128_z_i64_rx.c b/source/test_a_f128_z_i64_rx.c
index b16183f..e7da2f0 100644
--- a/source/test_a_f128_z_i64_rx.c
+++ b/source/test_a_f128_z_i64_rx.c
@@ -1,12 +1,12 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
+Copyright 2011, 2012, 2013, 2014, 2018 The Regents of the University of
+California.  All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
 modification, are permitted provided that the following conditions are met:
@@ -82,16 +82,12 @@
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
             if (
-                ! verCases_checkNaNs
-                    && f128M_isSignalingNaN( &genCases_f128_a )
-            ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
-            if (
-                   (trueZ != 0x7FFFFFFF)
-                || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1))
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != INT64_C( 0x7FFFFFFFFFFFFFFF ))
+                        && (subjZ != -INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1)
+                        && (! f128M_isNaN( &genCases_f128_a ) || (subjZ != 0)))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
diff --git a/source/test_a_f128_z_i64_x.c b/source/test_a_f128_z_i64_x.c
index e80cdff..0597367 100644
--- a/source/test_a_f128_z_i64_x.c
+++ b/source/test_a_f128_z_i64_x.c
@@ -1,12 +1,12 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
+Copyright 2011, 2012, 2013, 2014, 2018 The Regents of the University of
+California.  All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
 modification, are permitted provided that the following conditions are met:
@@ -81,16 +81,12 @@
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
             if (
-                ! verCases_checkNaNs
-                    && f128M_isSignalingNaN( &genCases_f128_a )
-            ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
-            if (
-                   (trueZ != 0x7FFFFFFF)
-                || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1))
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != INT64_C( 0x7FFFFFFFFFFFFFFF ))
+                        && (subjZ != -INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1)
+                        && (! f128M_isNaN( &genCases_f128_a ) || (subjZ != 0)))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
diff --git a/source/test_a_f128_z_ui32_rx.c b/source/test_a_f128_z_ui32_rx.c
index 3edb180..31ede56 100644
--- a/source/test_a_f128_z_ui32_rx.c
+++ b/source/test_a_f128_z_ui32_rx.c
@@ -1,12 +1,12 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
+Copyright 2011, 2012, 2013, 2014, 2018 The Regents of the University of
+California.  All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
 modification, are permitted provided that the following conditions are met:
@@ -82,16 +82,10 @@
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
             if (
-                ! verCases_checkNaNs
-                    && f128M_isSignalingNaN( &genCases_f128_a )
-            ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
-            if (
-                   (trueZ != 0xFFFFFFFF)
-                || (subjZ != 0xFFFFFFFF)
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != 0xFFFFFFFF) && (subjZ != 0))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
diff --git a/source/test_a_f128_z_ui32_x.c b/source/test_a_f128_z_ui32_x.c
index 00e2298..b5623e1 100644
--- a/source/test_a_f128_z_ui32_x.c
+++ b/source/test_a_f128_z_ui32_x.c
@@ -1,12 +1,12 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
+Copyright 2011, 2012, 2013, 2014, 2018 The Regents of the University of
+California.  All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
 modification, are permitted provided that the following conditions are met:
@@ -81,16 +81,10 @@
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
             if (
-                ! verCases_checkNaNs
-                    && f128M_isSignalingNaN( &genCases_f128_a )
-            ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
-            if (
-                   (trueZ != 0xFFFFFFFF)
-                || (subjZ != 0xFFFFFFFF)
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != 0xFFFFFFFF) && (subjZ != 0))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
diff --git a/source/test_a_f128_z_ui64_rx.c b/source/test_a_f128_z_ui64_rx.c
index 284c0ce..cd58c92 100644
--- a/source/test_a_f128_z_ui64_rx.c
+++ b/source/test_a_f128_z_ui64_rx.c
@@ -1,12 +1,12 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
+Copyright 2011, 2012, 2013, 2014, 2018 The Regents of the University of
+California.  All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
 modification, are permitted provided that the following conditions are met:
@@ -82,16 +82,10 @@
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
             if (
-                ! verCases_checkNaNs
-                    && f128M_isSignalingNaN( &genCases_f128_a )
-            ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
-            if (
-                   (trueZ != UINT64_C( 0xFFFFFFFFFFFFFFFF ))
-                || (subjZ != UINT64_C( 0xFFFFFFFFFFFFFFFF ))
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != UINT64_C( 0xFFFFFFFFFFFFFFFF )) && (subjZ != 0))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
diff --git a/source/test_a_f128_z_ui64_x.c b/source/test_a_f128_z_ui64_x.c
index 0b58a89..9e103f8 100644
--- a/source/test_a_f128_z_ui64_x.c
+++ b/source/test_a_f128_z_ui64_x.c
@@ -1,12 +1,12 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
+Copyright 2011, 2012, 2013, 2014, 2018 The Regents of the University of
+California.  All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
 modification, are permitted provided that the following conditions are met:
@@ -81,16 +81,10 @@
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
             if (
-                ! verCases_checkNaNs
-                    && f128M_isSignalingNaN( &genCases_f128_a )
-            ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
-            if (
-                   (trueZ != UINT64_C( 0xFFFFFFFFFFFFFFFF ))
-                || (subjZ != UINT64_C( 0xFFFFFFFFFFFFFFFF ))
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != UINT64_C( 0xFFFFFFFFFFFFFFFF )) && (subjZ != 0))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
diff --git a/source/test_a_f16_z_extF80.c b/source/test_a_f16_z_extF80.c
index 62cac93..dc442af 100644
--- a/source/test_a_f16_z_extF80.c
+++ b/source/test_a_f16_z_extF80.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/test_a_f16_z_f128.c b/source/test_a_f16_z_f128.c
index e71f092..49c1fe7 100644
--- a/source/test_a_f16_z_f128.c
+++ b/source/test_a_f16_z_f128.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/test_a_f16_z_f32.c b/source/test_a_f16_z_f32.c
index 8c1b0ba..097e9cc 100644
--- a/source/test_a_f16_z_f32.c
+++ b/source/test_a_f16_z_f32.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/test_a_f16_z_f64.c b/source/test_a_f16_z_f64.c
index eb4d842..349cc69 100644
--- a/source/test_a_f16_z_f64.c
+++ b/source/test_a_f16_z_f64.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/test_a_f16_z_i32_rx.c b/source/test_a_f16_z_i32_rx.c
index 6cde315..ecb5f69 100644
--- a/source/test_a_f16_z_i32_rx.c
+++ b/source/test_a_f16_z_i32_rx.c
@@ -1,11 +1,11 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
-Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
+Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 The Regents of the
 University of California.  All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
@@ -82,15 +82,11 @@
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
             if (
-                ! verCases_checkNaNs && f16_isSignalingNaN( genCases_f16_a )
-            ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
-            if (
-                   (trueZ != 0x7FFFFFFF)
-                || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1))
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1)
+                        && (! f16_isNaN( genCases_f16_a ) || (subjZ != 0)))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
diff --git a/source/test_a_f16_z_i32_x.c b/source/test_a_f16_z_i32_x.c
index 9ac3421..373eaf2 100644
--- a/source/test_a_f16_z_i32_x.c
+++ b/source/test_a_f16_z_i32_x.c
@@ -1,11 +1,11 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
-Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
+Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 The Regents of the
 University of California.  All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
@@ -81,15 +81,11 @@
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
             if (
-                ! verCases_checkNaNs && f16_isSignalingNaN( genCases_f16_a )
-            ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
-            if (
-                   (trueZ != 0x7FFFFFFF)
-                || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1))
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1)
+                        && (! f16_isNaN( genCases_f16_a ) || (subjZ != 0)))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
diff --git a/source/test_a_f16_z_i64_rx.c b/source/test_a_f16_z_i64_rx.c
index ac04f80..0ffdd63 100644
--- a/source/test_a_f16_z_i64_rx.c
+++ b/source/test_a_f16_z_i64_rx.c
@@ -1,11 +1,11 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
-Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
+Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 The Regents of the
 University of California.  All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
@@ -82,16 +82,12 @@
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
             if (
-                ! verCases_checkNaNs && f16_isSignalingNaN( genCases_f16_a )
-            ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
-            if (
-                   (trueZ != INT64_C( 0x7FFFFFFFFFFFFFFF ))
-                || ((subjZ != INT64_C( 0x7FFFFFFFFFFFFFFF ))
-                        && (subjZ != -INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1))
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != INT64_C( 0x7FFFFFFFFFFFFFFF ))
+                        && (subjZ != -INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1)
+                        && (! f16_isNaN( genCases_f16_a ) || (subjZ != 0)))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
diff --git a/source/test_a_f16_z_i64_x.c b/source/test_a_f16_z_i64_x.c
index 127eb5b..df73dd5 100644
--- a/source/test_a_f16_z_i64_x.c
+++ b/source/test_a_f16_z_i64_x.c
@@ -1,11 +1,11 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
-Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
+Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 The Regents of the
 University of California.  All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
@@ -81,16 +81,12 @@
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
             if (
-                ! verCases_checkNaNs && f16_isSignalingNaN( genCases_f16_a )
-            ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
-            if (
-                   (trueZ != INT64_C( 0x7FFFFFFFFFFFFFFF ))
-                || ((subjZ != INT64_C( 0x7FFFFFFFFFFFFFFF ))
-                        && (subjZ != -INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1))
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != INT64_C( 0x7FFFFFFFFFFFFFFF ))
+                        && (subjZ != -INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1)
+                        && (! f16_isNaN( genCases_f16_a ) || (subjZ != 0)))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
diff --git a/source/test_a_f16_z_ui32_rx.c b/source/test_a_f16_z_ui32_rx.c
index e86b1ed..434dd4c 100644
--- a/source/test_a_f16_z_ui32_rx.c
+++ b/source/test_a_f16_z_ui32_rx.c
@@ -1,11 +1,11 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
-Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
+Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 The Regents of the
 University of California.  All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
@@ -82,15 +82,10 @@
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
             if (
-                ! verCases_checkNaNs && f16_isSignalingNaN( genCases_f16_a )
-            ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
-            if (
-                   (trueZ != 0xFFFFFFFF)
-                || (subjZ != 0xFFFFFFFF)
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != 0xFFFFFFFF) && (subjZ != 0))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
diff --git a/source/test_a_f16_z_ui32_x.c b/source/test_a_f16_z_ui32_x.c
index 7d68ec6..392c3bd 100644
--- a/source/test_a_f16_z_ui32_x.c
+++ b/source/test_a_f16_z_ui32_x.c
@@ -1,11 +1,11 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
-Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
+Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 The Regents of the
 University of California.  All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
@@ -81,15 +81,10 @@
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
             if (
-                ! verCases_checkNaNs && f16_isSignalingNaN( genCases_f16_a )
-            ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
-            if (
-                   (trueZ != 0xFFFFFFFF)
-                || (subjZ != 0xFFFFFFFF)
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != 0xFFFFFFFF) && (subjZ != 0))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
diff --git a/source/test_a_f16_z_ui64_rx.c b/source/test_a_f16_z_ui64_rx.c
index 0f43eee..8b47c95 100644
--- a/source/test_a_f16_z_ui64_rx.c
+++ b/source/test_a_f16_z_ui64_rx.c
@@ -1,11 +1,11 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
-Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
+Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 The Regents of the
 University of California.  All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
@@ -82,15 +82,10 @@
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
             if (
-                ! verCases_checkNaNs && f16_isSignalingNaN( genCases_f16_a )
-            ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
-            if (
-                   (trueZ != 0xFFFFFFFF)
-                || (subjZ != 0xFFFFFFFF)
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != UINT64_C( 0xFFFFFFFFFFFFFFFF )) && (subjZ != 0))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
diff --git a/source/test_a_f16_z_ui64_x.c b/source/test_a_f16_z_ui64_x.c
index 0674575..e13ab5e 100644
--- a/source/test_a_f16_z_ui64_x.c
+++ b/source/test_a_f16_z_ui64_x.c
@@ -1,11 +1,11 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
-Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
+Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 The Regents of the
 University of California.  All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
@@ -81,15 +81,10 @@
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
             if (
-                ! verCases_checkNaNs && f16_isSignalingNaN( genCases_f16_a )
-            ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
-            if (
-                   (trueZ != 0xFFFFFFFF)
-                || (subjZ != 0xFFFFFFFF)
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != UINT64_C( 0xFFFFFFFFFFFFFFFF )) && (subjZ != 0))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
diff --git a/source/test_a_f32_z_extF80.c b/source/test_a_f32_z_extF80.c
index 972c764..f0473ff 100644
--- a/source/test_a_f32_z_extF80.c
+++ b/source/test_a_f32_z_extF80.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/test_a_f32_z_f128.c b/source/test_a_f32_z_f128.c
index 68b6eee..956e292 100644
--- a/source/test_a_f32_z_f128.c
+++ b/source/test_a_f32_z_f128.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/test_a_f32_z_f16.c b/source/test_a_f32_z_f16.c
index 60982a7..3f9e4ab 100644
--- a/source/test_a_f32_z_f16.c
+++ b/source/test_a_f32_z_f16.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/test_a_f32_z_f64.c b/source/test_a_f32_z_f64.c
index e418664..c1d8c4d 100644
--- a/source/test_a_f32_z_f64.c
+++ b/source/test_a_f32_z_f64.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/test_a_f32_z_i32_rx.c b/source/test_a_f32_z_i32_rx.c
index 4329ffd..12d2053 100644
--- a/source/test_a_f32_z_i32_rx.c
+++ b/source/test_a_f32_z_i32_rx.c
@@ -1,12 +1,12 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
+Copyright 2011, 2012, 2013, 2014, 2018 The Regents of the University of
+California.  All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
 modification, are permitted provided that the following conditions are met:
@@ -80,15 +80,11 @@
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
             if (
-                ! verCases_checkNaNs && f32_isSignalingNaN( genCases_f32_a )
-            ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
-            if (
-                   (trueZ != 0x7FFFFFFF)
-                || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1))
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1)
+                        && (! f32_isNaN( genCases_f32_a ) || (subjZ != 0)))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
diff --git a/source/test_a_f32_z_i32_x.c b/source/test_a_f32_z_i32_x.c
index f1bc615..df920ae 100644
--- a/source/test_a_f32_z_i32_x.c
+++ b/source/test_a_f32_z_i32_x.c
@@ -1,12 +1,12 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
+Copyright 2011, 2012, 2013, 2014, 2018 The Regents of the University of
+California.  All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
 modification, are permitted provided that the following conditions are met:
@@ -79,15 +79,11 @@
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
             if (
-                ! verCases_checkNaNs && f32_isSignalingNaN( genCases_f32_a )
-            ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
-            if (
-                   (trueZ != 0x7FFFFFFF)
-                || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1))
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1)
+                        && (! f32_isNaN( genCases_f32_a ) || (subjZ != 0)))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
diff --git a/source/test_a_f32_z_i64_rx.c b/source/test_a_f32_z_i64_rx.c
index de5b4e8..44efc79 100644
--- a/source/test_a_f32_z_i64_rx.c
+++ b/source/test_a_f32_z_i64_rx.c
@@ -1,12 +1,12 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
+Copyright 2011, 2012, 2013, 2014, 2018 The Regents of the University of
+California.  All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
 modification, are permitted provided that the following conditions are met:
@@ -80,16 +80,12 @@
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
             if (
-                ! verCases_checkNaNs && f32_isSignalingNaN( genCases_f32_a )
-            ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
-            if (
-                   (trueZ != INT64_C( 0x7FFFFFFFFFFFFFFF ))
-                || ((subjZ != INT64_C( 0x7FFFFFFFFFFFFFFF ))
-                        && (subjZ != -INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1))
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != INT64_C( 0x7FFFFFFFFFFFFFFF ))
+                        && (subjZ != -INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1)
+                        && (! f32_isNaN( genCases_f32_a ) || (subjZ != 0)))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
diff --git a/source/test_a_f32_z_i64_x.c b/source/test_a_f32_z_i64_x.c
index d45e5a3..a8dc17a 100644
--- a/source/test_a_f32_z_i64_x.c
+++ b/source/test_a_f32_z_i64_x.c
@@ -1,12 +1,12 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
+Copyright 2011, 2012, 2013, 2014, 2018 The Regents of the University of
+California.  All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
 modification, are permitted provided that the following conditions are met:
@@ -79,16 +79,12 @@
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
             if (
-                ! verCases_checkNaNs && f32_isSignalingNaN( genCases_f32_a )
-            ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
-            if (
-                   (trueZ != INT64_C( 0x7FFFFFFFFFFFFFFF ))
-                || ((subjZ != INT64_C( 0x7FFFFFFFFFFFFFFF ))
-                        && (subjZ != -INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1))
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != INT64_C( 0x7FFFFFFFFFFFFFFF ))
+                        && (subjZ != -INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1)
+                        && (! f32_isNaN( genCases_f32_a ) || (subjZ != 0)))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
diff --git a/source/test_a_f32_z_ui32_rx.c b/source/test_a_f32_z_ui32_rx.c
index 533e5ac..62f865c 100644
--- a/source/test_a_f32_z_ui32_rx.c
+++ b/source/test_a_f32_z_ui32_rx.c
@@ -1,12 +1,12 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
+Copyright 2011, 2012, 2013, 2014, 2018 The Regents of the University of
+California.  All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
 modification, are permitted provided that the following conditions are met:
@@ -80,15 +80,10 @@
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
             if (
-                ! verCases_checkNaNs && f32_isSignalingNaN( genCases_f32_a )
-            ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
-            if (
-                   (trueZ != 0xFFFFFFFF)
-                || (subjZ != 0xFFFFFFFF)
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != 0xFFFFFFFF) && (subjZ != 0))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
diff --git a/source/test_a_f32_z_ui32_x.c b/source/test_a_f32_z_ui32_x.c
index 209efab..91589c4 100644
--- a/source/test_a_f32_z_ui32_x.c
+++ b/source/test_a_f32_z_ui32_x.c
@@ -1,12 +1,12 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
+Copyright 2011, 2012, 2013, 2014, 2018 The Regents of the University of
+California.  All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
 modification, are permitted provided that the following conditions are met:
@@ -79,15 +79,10 @@
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
             if (
-                ! verCases_checkNaNs && f32_isSignalingNaN( genCases_f32_a )
-            ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
-            if (
-                   (trueZ != 0xFFFFFFFF)
-                || (subjZ != 0xFFFFFFFF)
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != 0xFFFFFFFF) && (subjZ != 0))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
diff --git a/source/test_a_f32_z_ui64_rx.c b/source/test_a_f32_z_ui64_rx.c
index d3376d5..021102d 100644
--- a/source/test_a_f32_z_ui64_rx.c
+++ b/source/test_a_f32_z_ui64_rx.c
@@ -1,12 +1,12 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
+Copyright 2011, 2012, 2013, 2014, 2018 The Regents of the University of
+California.  All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
 modification, are permitted provided that the following conditions are met:
@@ -80,15 +80,10 @@
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
             if (
-                ! verCases_checkNaNs && f32_isSignalingNaN( genCases_f32_a )
-            ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
-            if (
-                   (trueZ != UINT64_C( 0xFFFFFFFFFFFFFFFF ))
-                || (subjZ != UINT64_C( 0xFFFFFFFFFFFFFFFF ))
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != UINT64_C( 0xFFFFFFFFFFFFFFFF )) && (subjZ != 0))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
diff --git a/source/test_a_f32_z_ui64_x.c b/source/test_a_f32_z_ui64_x.c
index f684c0f..2287ccb 100644
--- a/source/test_a_f32_z_ui64_x.c
+++ b/source/test_a_f32_z_ui64_x.c
@@ -1,12 +1,12 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
-Copyright 2011, 2012, 2013, 2014 The Regents of the University of California.
-All rights reserved.
+Copyright 2011, 2012, 2013, 2014, 2018 The Regents of the University of
+California.  All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
 modification, are permitted provided that the following conditions are met:
@@ -79,15 +79,10 @@
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
             if (
-                ! verCases_checkNaNs && f32_isSignalingNaN( genCases_f32_a )
-            ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
-            if (
-                   (trueZ != UINT64_C( 0xFFFFFFFFFFFFFFFF ))
-                || (subjZ != UINT64_C( 0xFFFFFFFFFFFFFFFF ))
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != UINT64_C( 0xFFFFFFFFFFFFFFFF )) && (subjZ != 0))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
diff --git a/source/test_a_f64_z_extF80.c b/source/test_a_f64_z_extF80.c
index 7a6a2b4..ce18476 100644
--- a/source/test_a_f64_z_extF80.c
+++ b/source/test_a_f64_z_extF80.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/test_a_f64_z_f128.c b/source/test_a_f64_z_f128.c
index e4bacd5..3f36e9e 100644
--- a/source/test_a_f64_z_f128.c
+++ b/source/test_a_f64_z_f128.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/test_a_f64_z_f16.c b/source/test_a_f64_z_f16.c
index 7f975c0..63f6c15 100644
--- a/source/test_a_f64_z_f16.c
+++ b/source/test_a_f64_z_f16.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/test_a_f64_z_f32.c b/source/test_a_f64_z_f32.c
index 9a8a2e9..8fdad44 100644
--- a/source/test_a_f64_z_f32.c
+++ b/source/test_a_f64_z_f32.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/test_a_f64_z_i32_rx.c b/source/test_a_f64_z_i32_rx.c
index 81b5e79..bd20ad9 100644
--- a/source/test_a_f64_z_i32_rx.c
+++ b/source/test_a_f64_z_i32_rx.c
@@ -1,11 +1,11 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
-Copyright 2011, 2012, 2013, 2014, 2017 The Regents of the University of
+Copyright 2011, 2012, 2013, 2014, 2017, 2018 The Regents of the University of
 California.  All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
@@ -82,15 +82,11 @@
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
             if (
-                ! verCases_checkNaNs && f64_isSignalingNaN( genCases_f64_a )
-            ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
-            if (
-                   (trueZ != 0x7FFFFFFF)
-                || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1))
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1)
+                        && (! f64_isNaN( genCases_f64_a ) || (subjZ != 0)))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
diff --git a/source/test_a_f64_z_i32_x.c b/source/test_a_f64_z_i32_x.c
index 3e532b1..cf1ab50 100644
--- a/source/test_a_f64_z_i32_x.c
+++ b/source/test_a_f64_z_i32_x.c
@@ -1,11 +1,11 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
-Copyright 2011, 2012, 2013, 2014, 2017 The Regents of the University of
+Copyright 2011, 2012, 2013, 2014, 2017, 2018 The Regents of the University of
 California.  All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
@@ -81,15 +81,11 @@
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
             if (
-                ! verCases_checkNaNs && f64_isSignalingNaN( genCases_f64_a )
-            ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
-            if (
-                   (trueZ != 0x7FFFFFFF)
-                || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1))
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1)
+                        && (! f64_isNaN( genCases_f64_a ) || (subjZ != 0)))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
diff --git a/source/test_a_f64_z_i64_rx.c b/source/test_a_f64_z_i64_rx.c
index 558209b..93dc6a0 100644
--- a/source/test_a_f64_z_i64_rx.c
+++ b/source/test_a_f64_z_i64_rx.c
@@ -1,11 +1,11 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
-Copyright 2011, 2012, 2013, 2014, 2017 The Regents of the University of
+Copyright 2011, 2012, 2013, 2014, 2017, 2018 The Regents of the University of
 California.  All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
@@ -82,16 +82,12 @@
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
             if (
-                ! verCases_checkNaNs && f64_isSignalingNaN( genCases_f64_a )
-            ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
-            if (
-                   (trueZ != INT64_C( 0x7FFFFFFFFFFFFFFF ))
-                || ((subjZ != INT64_C( 0x7FFFFFFFFFFFFFFF ))
-                        && (subjZ != -INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1))
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != INT64_C( 0x7FFFFFFFFFFFFFFF ))
+                        && (subjZ != -INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1)
+                        && (! f64_isNaN( genCases_f64_a ) || (subjZ != 0)))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
diff --git a/source/test_a_f64_z_i64_x.c b/source/test_a_f64_z_i64_x.c
index 3c6e3b2..6b1eade 100644
--- a/source/test_a_f64_z_i64_x.c
+++ b/source/test_a_f64_z_i64_x.c
@@ -1,11 +1,11 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
-Copyright 2011, 2012, 2013, 2014, 2017 The Regents of the University of
+Copyright 2011, 2012, 2013, 2014, 2017, 2018 The Regents of the University of
 California.  All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
@@ -81,16 +81,12 @@
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
             if (
-                ! verCases_checkNaNs && f64_isSignalingNaN( genCases_f64_a )
-            ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
-            if (
-                   (trueZ != INT64_C( 0x7FFFFFFFFFFFFFFF ))
-                || ((subjZ != INT64_C( 0x7FFFFFFFFFFFFFFF ))
-                        && (subjZ != -INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1))
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != INT64_C( 0x7FFFFFFFFFFFFFFF ))
+                        && (subjZ != -INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1)
+                        && (! f64_isNaN( genCases_f64_a ) || (subjZ != 0)))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
diff --git a/source/test_a_f64_z_ui32_rx.c b/source/test_a_f64_z_ui32_rx.c
index 5b29c98..a797467 100644
--- a/source/test_a_f64_z_ui32_rx.c
+++ b/source/test_a_f64_z_ui32_rx.c
@@ -1,11 +1,11 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
-Copyright 2011, 2012, 2013, 2014, 2017 The Regents of the University of
+Copyright 2011, 2012, 2013, 2014, 2017, 2018 The Regents of the University of
 California.  All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
@@ -82,15 +82,10 @@
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
             if (
-                ! verCases_checkNaNs && f64_isSignalingNaN( genCases_f64_a )
-            ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
-            if (
-                   (trueZ != 0xFFFFFFFF)
-                || (subjZ != 0xFFFFFFFF)
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != 0xFFFFFFFF) && (subjZ != 0))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
diff --git a/source/test_a_f64_z_ui32_x.c b/source/test_a_f64_z_ui32_x.c
index 4d6673b..40a6ee1 100644
--- a/source/test_a_f64_z_ui32_x.c
+++ b/source/test_a_f64_z_ui32_x.c
@@ -1,11 +1,11 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
-Copyright 2011, 2012, 2013, 2014, 2017 The Regents of the University of
+Copyright 2011, 2012, 2013, 2014, 2017, 2018 The Regents of the University of
 California.  All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
@@ -81,15 +81,10 @@
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
             if (
-                ! verCases_checkNaNs && f64_isSignalingNaN( genCases_f64_a )
-            ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
-            if (
-                   (trueZ != 0xFFFFFFFF)
-                || (subjZ != 0xFFFFFFFF)
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != 0xFFFFFFFF) && (subjZ != 0))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
diff --git a/source/test_a_f64_z_ui64_rx.c b/source/test_a_f64_z_ui64_rx.c
index 8eec065..83068dd 100644
--- a/source/test_a_f64_z_ui64_rx.c
+++ b/source/test_a_f64_z_ui64_rx.c
@@ -1,11 +1,11 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
-Copyright 2011, 2012, 2013, 2014, 2017 The Regents of the University of
+Copyright 2011, 2012, 2013, 2014, 2017, 2018 The Regents of the University of
 California.  All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
@@ -82,15 +82,10 @@
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
             if (
-                ! verCases_checkNaNs && f64_isSignalingNaN( genCases_f64_a )
-            ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
-            if (
-                   (trueZ != UINT64_C( 0xFFFFFFFFFFFFFFFF ))
-                || (subjZ != UINT64_C( 0xFFFFFFFFFFFFFFFF ))
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != UINT64_C( 0xFFFFFFFFFFFFFFFF )) && (subjZ != 0))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
diff --git a/source/test_a_f64_z_ui64_x.c b/source/test_a_f64_z_ui64_x.c
index e959215..38e7d55 100644
--- a/source/test_a_f64_z_ui64_x.c
+++ b/source/test_a_f64_z_ui64_x.c
@@ -1,11 +1,11 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
-Copyright 2011, 2012, 2013, 2014, 2017 The Regents of the University of
+Copyright 2011, 2012, 2013, 2014, 2017, 2018 The Regents of the University of
 California.  All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
@@ -81,15 +81,10 @@
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
             if (
-                ! verCases_checkNaNs && f64_isSignalingNaN( genCases_f64_a )
-            ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
-            if (
-                   (trueZ != UINT64_C( 0xFFFFFFFFFFFFFFFF ))
-                || (subjZ != UINT64_C( 0xFFFFFFFFFFFFFFFF ))
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != UINT64_C( 0xFFFFFFFFFFFFFFFF )) && (subjZ != 0))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
diff --git a/source/test_a_i32_z_extF80.c b/source/test_a_i32_z_extF80.c
index c9965d1..506f9e6 100644
--- a/source/test_a_i32_z_extF80.c
+++ b/source/test_a_i32_z_extF80.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/test_a_i32_z_f128.c b/source/test_a_i32_z_f128.c
index ae6555e..40e2f01 100644
--- a/source/test_a_i32_z_f128.c
+++ b/source/test_a_i32_z_f128.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/test_a_i32_z_f16.c b/source/test_a_i32_z_f16.c
index e9aedde..7c85d53 100644
--- a/source/test_a_i32_z_f16.c
+++ b/source/test_a_i32_z_f16.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/test_a_i32_z_f32.c b/source/test_a_i32_z_f32.c
index 2c68c3a..fa2f865 100644
--- a/source/test_a_i32_z_f32.c
+++ b/source/test_a_i32_z_f32.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/test_a_i32_z_f64.c b/source/test_a_i32_z_f64.c
index a8f312b..0dbad0b 100644
--- a/source/test_a_i32_z_f64.c
+++ b/source/test_a_i32_z_f64.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/test_a_i64_z_extF80.c b/source/test_a_i64_z_extF80.c
index 69d6b2b..d8dc8d5 100644
--- a/source/test_a_i64_z_extF80.c
+++ b/source/test_a_i64_z_extF80.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/test_a_i64_z_f128.c b/source/test_a_i64_z_f128.c
index e82ca57..f44f520 100644
--- a/source/test_a_i64_z_f128.c
+++ b/source/test_a_i64_z_f128.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/test_a_i64_z_f16.c b/source/test_a_i64_z_f16.c
index ccb1a55..53551b3 100644
--- a/source/test_a_i64_z_f16.c
+++ b/source/test_a_i64_z_f16.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/test_a_i64_z_f32.c b/source/test_a_i64_z_f32.c
index a3f3456..19695c8 100644
--- a/source/test_a_i64_z_f32.c
+++ b/source/test_a_i64_z_f32.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/test_a_i64_z_f64.c b/source/test_a_i64_z_f64.c
index ce68bf8..24c96c6 100644
--- a/source/test_a_i64_z_f64.c
+++ b/source/test_a_i64_z_f64.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/test_a_ui32_z_extF80.c b/source/test_a_ui32_z_extF80.c
index 1524434..bdcb2bf 100644
--- a/source/test_a_ui32_z_extF80.c
+++ b/source/test_a_ui32_z_extF80.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/test_a_ui32_z_f128.c b/source/test_a_ui32_z_f128.c
index 583bf09..534cd9a 100644
--- a/source/test_a_ui32_z_f128.c
+++ b/source/test_a_ui32_z_f128.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/test_a_ui32_z_f16.c b/source/test_a_ui32_z_f16.c
index a14bf73..6a4cc0e 100644
--- a/source/test_a_ui32_z_f16.c
+++ b/source/test_a_ui32_z_f16.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/test_a_ui32_z_f32.c b/source/test_a_ui32_z_f32.c
index c1ab0a0..fde8848 100644
--- a/source/test_a_ui32_z_f32.c
+++ b/source/test_a_ui32_z_f32.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/test_a_ui32_z_f64.c b/source/test_a_ui32_z_f64.c
index cb4d23d..b3f9d88 100644
--- a/source/test_a_ui32_z_f64.c
+++ b/source/test_a_ui32_z_f64.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/test_a_ui64_z_extF80.c b/source/test_a_ui64_z_extF80.c
index f2a642e..325d500 100644
--- a/source/test_a_ui64_z_extF80.c
+++ b/source/test_a_ui64_z_extF80.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/test_a_ui64_z_f128.c b/source/test_a_ui64_z_f128.c
index aff5e8d..2a57c05 100644
--- a/source/test_a_ui64_z_f128.c
+++ b/source/test_a_ui64_z_f128.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/test_a_ui64_z_f16.c b/source/test_a_ui64_z_f16.c
index d61d265..ce54c8f 100644
--- a/source/test_a_ui64_z_f16.c
+++ b/source/test_a_ui64_z_f16.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/test_a_ui64_z_f32.c b/source/test_a_ui64_z_f32.c
index 3554013..4a6dda3 100644
--- a/source/test_a_ui64_z_f32.c
+++ b/source/test_a_ui64_z_f32.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/test_a_ui64_z_f64.c b/source/test_a_ui64_z_f64.c
index bbe1e73..9fc9cd1 100644
--- a/source/test_a_ui64_z_f64.c
+++ b/source/test_a_ui64_z_f64.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/test_ab_extF80_z_bool.c b/source/test_ab_extF80_z_bool.c
index 9b175b2..1a830bc 100644
--- a/source/test_ab_extF80_z_bool.c
+++ b/source/test_ab_extF80_z_bool.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/test_ab_f128_z_bool.c b/source/test_ab_f128_z_bool.c
index 4379801..b5ee911 100644
--- a/source/test_ab_f128_z_bool.c
+++ b/source/test_ab_f128_z_bool.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/test_ab_f16_z_bool.c b/source/test_ab_f16_z_bool.c
index 9262398..02be465 100644
--- a/source/test_ab_f16_z_bool.c
+++ b/source/test_ab_f16_z_bool.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/test_ab_f32_z_bool.c b/source/test_ab_f32_z_bool.c
index c03f94c..677892e 100644
--- a/source/test_ab_f32_z_bool.c
+++ b/source/test_ab_f32_z_bool.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/test_ab_f64_z_bool.c b/source/test_ab_f64_z_bool.c
index eb443ab..03b208d 100644
--- a/source/test_ab_f64_z_bool.c
+++ b/source/test_ab_f64_z_bool.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/test_abcz_f128.c b/source/test_abcz_f128.c
index 07162dd..8e62446 100644
--- a/source/test_abcz_f128.c
+++ b/source/test_abcz_f128.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/test_abcz_f16.c b/source/test_abcz_f16.c
index 75516b6..7e455c7 100644
--- a/source/test_abcz_f16.c
+++ b/source/test_abcz_f16.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/test_abcz_f32.c b/source/test_abcz_f32.c
index bdfa3dc..c7b06c4 100644
--- a/source/test_abcz_f32.c
+++ b/source/test_abcz_f32.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/test_abcz_f64.c b/source/test_abcz_f64.c
index aaf08a4..c15f042 100644
--- a/source/test_abcz_f64.c
+++ b/source/test_abcz_f64.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/test_abz_extF80.c b/source/test_abz_extF80.c
index 84424d1..041e8b7 100644
--- a/source/test_abz_extF80.c
+++ b/source/test_abz_extF80.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/test_abz_f128.c b/source/test_abz_f128.c
index c2fe961..44f4d79 100644
--- a/source/test_abz_f128.c
+++ b/source/test_abz_f128.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/test_abz_f16.c b/source/test_abz_f16.c
index b0d64cc..40cd246 100644
--- a/source/test_abz_f16.c
+++ b/source/test_abz_f16.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/test_abz_f32.c b/source/test_abz_f32.c
index d6b31fb..f31da82 100644
--- a/source/test_abz_f32.c
+++ b/source/test_abz_f32.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/test_abz_f64.c b/source/test_abz_f64.c
index 14873cb..caded69 100644
--- a/source/test_abz_f64.c
+++ b/source/test_abz_f64.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/test_az_extF80.c b/source/test_az_extF80.c
index 5ce33ed..c9e3ed1 100644
--- a/source/test_az_extF80.c
+++ b/source/test_az_extF80.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/test_az_extF80_rx.c b/source/test_az_extF80_rx.c
index aa4851e..dd25111 100644
--- a/source/test_az_extF80_rx.c
+++ b/source/test_az_extF80_rx.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/test_az_f128.c b/source/test_az_f128.c
index 7318b00..fe4358c 100644
--- a/source/test_az_f128.c
+++ b/source/test_az_f128.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/test_az_f128_rx.c b/source/test_az_f128_rx.c
index a50f0bd..53583fa 100644
--- a/source/test_az_f128_rx.c
+++ b/source/test_az_f128_rx.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/test_az_f16.c b/source/test_az_f16.c
index dccc83f..a3c2b9a 100644
--- a/source/test_az_f16.c
+++ b/source/test_az_f16.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/test_az_f16_rx.c b/source/test_az_f16_rx.c
index f03a5e0..2d1dd1e 100644
--- a/source/test_az_f16_rx.c
+++ b/source/test_az_f16_rx.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/test_az_f32.c b/source/test_az_f32.c
index 0bca98c..46d62e3 100644
--- a/source/test_az_f32.c
+++ b/source/test_az_f32.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/test_az_f32_rx.c b/source/test_az_f32_rx.c
index 1f8a618..e3e9953 100644
--- a/source/test_az_f32_rx.c
+++ b/source/test_az_f32_rx.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/test_az_f64.c b/source/test_az_f64.c
index f364bb4..01f6760 100644
--- a/source/test_az_f64.c
+++ b/source/test_az_f64.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/test_az_f64_rx.c b/source/test_az_f64_rx.c
index 4def7b0..d0c6644 100644
--- a/source/test_az_f64_rx.c
+++ b/source/test_az_f64_rx.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/testfloat.c b/source/testfloat.c
index 352d730..87a1016 100644
--- a/source/testfloat.c
+++ b/source/testfloat.c
@@ -1,11 +1,11 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
-Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
+Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 The Regents of the
 University of California.  All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
@@ -1440,6 +1440,7 @@
     const char *functionNamePtr;
     unsigned long ui;
     long i;
+    int functionMatchAttrib;
 
     /*------------------------------------------------------------------------
     *------------------------------------------------------------------------*/
@@ -1478,7 +1479,9 @@
 " *  -errors 20\n"
 "    -errorstop       --Exit after first function with any error.\n"
 "    -forever         --Test one function repeatedly (implies '-level 2').\n"
-"    -checkNaNs       --Check for bitwise correctness of NaN results.\n"
+"    -checkNaNs       --Check for specific NaN results.\n"
+"    -checkInvInts    --Check for specific invalid integer results.\n"
+"    -checkAll        --Same as both '-checkNaNs' and '-checkInvInts'.\n"
 #ifdef EXTFLOAT80
 "    -precision32     --For extF80, test only 32-bit rounding precision.\n"
 "    -precision64     --For extF80, test only 64-bit rounding precision.\n"
@@ -1579,6 +1582,16 @@
             ! strcmp( argPtr, "checkNaNs" ) || ! strcmp( argPtr, "checknans" )
         ) {
             verCases_checkNaNs = true;
+        } else if (
+               ! strcmp( argPtr, "checkInvInts" )
+            || ! strcmp( argPtr, "checkinvints" )
+        ) {
+            verCases_checkInvInts = true;
+        } else if (
+            ! strcmp( argPtr, "checkAll" ) || ! strcmp( argPtr, "checkall" )
+        ) {
+            verCases_checkNaNs = true;
+            verCases_checkInvInts = true;
 #ifdef EXTFLOAT80
         } else if ( ! strcmp( argPtr, "precision32" ) ) {
             roundingPrecision = 32;
@@ -1673,48 +1686,23 @@
         if ( testLoops_forever ) {
             fail( "Can test only one function with '-forever' option" );
         }
-        if ( numOperands == 1 ) {
-            standardFunctionInfoPtr = standardFunctionInfos;
-            subjFunctionPtrPtr = subjfloat_functions;
-            while ( standardFunctionInfoPtr->namePtr ) {
-                subjFunctionPtr = *subjFunctionPtrPtr;
-                if (
-                    subjFunctionPtr
-                        && ! (functionInfos
-                                  [standardFunctionInfoPtr->functionCode]
-                                  .attribs
-                                  & FUNC_ARG_BINARY)
-                ) {
-                    testFunction(
-                        standardFunctionInfoPtr,
-                        roundingPrecision,
-                        roundingCode
-                    );
-                }
-                ++standardFunctionInfoPtr;
-                ++subjFunctionPtrPtr;
+        functionMatchAttrib =
+            (numOperands == 1) ? FUNC_ARG_UNARY : FUNC_ARG_BINARY;
+        standardFunctionInfoPtr = standardFunctionInfos;
+        subjFunctionPtrPtr = subjfloat_functions;
+        while ( standardFunctionInfoPtr->namePtr ) {
+            subjFunctionPtr = *subjFunctionPtrPtr;
+            if (
+                subjFunctionPtr
+                    && (functionInfos[standardFunctionInfoPtr->functionCode]
+                            .attribs
+                            & functionMatchAttrib)
+            ) {
+                testFunction(
+                    standardFunctionInfoPtr, roundingPrecision, roundingCode );
             }
-        } else {
-            standardFunctionInfoPtr = standardFunctionInfos;
-            subjFunctionPtrPtr = subjfloat_functions;
-            while ( standardFunctionInfoPtr->namePtr ) {
-                subjFunctionPtr = *subjFunctionPtrPtr;
-                if (
-                    subjFunctionPtr
-                        && (functionInfos
-                                [standardFunctionInfoPtr->functionCode]
-                                .attribs
-                                & FUNC_ARG_BINARY)
-                ) {
-                    testFunction(
-                        standardFunctionInfoPtr,
-                        roundingPrecision,
-                        roundingCode
-                    );
-                }
-                ++standardFunctionInfoPtr;
-                ++subjFunctionPtrPtr;
-            }
+            ++standardFunctionInfoPtr;
+            ++subjFunctionPtrPtr;
         }
     }
     verCases_exitWithStatus();
diff --git a/source/testfloat_gen.c b/source/testfloat_gen.c
index 458f97e..67882c1 100644
--- a/source/testfloat_gen.c
+++ b/source/testfloat_gen.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/testfloat_ver.c b/source/testfloat_ver.c
index 20cad96..e1e613c 100644
--- a/source/testfloat_ver.c
+++ b/source/testfloat_ver.c
@@ -1,11 +1,11 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
-Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
+Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 The Regents of the
 University of California.  All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
@@ -123,7 +123,9 @@
 "    -help            --Write this message and exit.\n"
 "    -errors <num>    --Stop after <num> errors.\n"
 " *  -errors 20\n"
-"    -checkNaNs       --Check for bitwise correctness of NaN results.\n"
+"    -checkNaNs       --Check for specific NaN results.\n"
+"    -checkInvInts    --Check for specific invalid integer results.\n"
+"    -checkAll        --Same as both '-checkNaNs' and '-checkInvInts'.\n"
 #ifdef EXTFLOAT80
 "    -precision32     --For extF80, rounding precision is 32 bits.\n"
 "    -precision64     --For extF80, rounding precision is 64 bits.\n"
@@ -186,6 +188,16 @@
             ! strcmp( argPtr, "checkNaNs" ) || ! strcmp( argPtr, "checknans" )
         ) {
             verCases_checkNaNs = true;
+        } else if (
+               ! strcmp( argPtr, "checkInvInts" )
+            || ! strcmp( argPtr, "checkinvints" )
+        ) {
+            verCases_checkInvInts = true;
+        } else if (
+            ! strcmp( argPtr, "checkAll" ) || ! strcmp( argPtr, "checkall" )
+        ) {
+            verCases_checkNaNs = true;
+            verCases_checkInvInts = true;
 #ifdef EXTFLOAT80
         } else if ( ! strcmp( argPtr, "precision32" ) ) {
             extF80_roundingPrecision = 32;
diff --git a/source/testsoftfloat.c b/source/testsoftfloat.c
index 70016d7..e60defe 100644
--- a/source/testsoftfloat.c
+++ b/source/testsoftfloat.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
@@ -895,6 +895,7 @@
     const char *argPtr;
     unsigned long ui;
     long i;
+    int functionMatchAttrib;
 
     /*------------------------------------------------------------------------
     *------------------------------------------------------------------------*/
@@ -1100,35 +1101,19 @@
         if ( testLoops_forever ) {
              fail( "Can test only one function with '-forever' option" );
         }
-        if ( numOperands == 1 ) {
-            for (
-                functionCode = 1; functionCode < NUM_FUNCTIONS; ++functionCode
-            ) {
-                if ( functionInfos[functionCode].attribs & FUNC_ARG_UNARY ) {
-                    testFunction(
-                        functionCode,
-                        roundingPrecision,
-                        roundingCode,
-                        tininessCode,
-                        exactCode
-                    );
-                }
-            }
-        } else {
-            for (
-                functionCode = 1; functionCode < NUM_FUNCTIONS; ++functionCode
-            ) {
-                if (
-                    functionInfos[functionCode].attribs & FUNC_ARG_BINARY
-                ) {
-                    testFunction(
-                        functionCode,
-                        roundingPrecision,
-                        roundingCode,
-                        tininessCode,
-                        exactCode
-                    );
-                }
+        functionMatchAttrib =
+            (numOperands == 1) ? FUNC_ARG_UNARY : FUNC_ARG_BINARY;
+        for (
+            functionCode = 1; functionCode < NUM_FUNCTIONS; ++functionCode
+        ) {
+            if ( functionInfos[functionCode].attribs & functionMatchAttrib ) {
+                testFunction(
+                    functionCode,
+                    roundingPrecision,
+                    roundingCode,
+                    tininessCode,
+                    exactCode
+                );
             }
         }
     }
diff --git a/source/timesoftfloat.c b/source/timesoftfloat.c
index eb313af..72337c9 100644
--- a/source/timesoftfloat.c
+++ b/source/timesoftfloat.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/uint128.c b/source/uint128.c
index 5ae0c52..0dcbdfe 100644
--- a/source/uint128.c
+++ b/source/uint128.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/uint128.h b/source/uint128.h
index 3d97a72..387c4be 100644
--- a/source/uint128.h
+++ b/source/uint128.h
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C header file is part of TestFloat, Release 3d, a package of programs for
+This C header file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/uint128_inline.c b/source/uint128_inline.c
index 0741e97..ab12c1e 100644
--- a/source/uint128_inline.c
+++ b/source/uint128_inline.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C header file is part of TestFloat, Release 3d, a package of programs for
+This C header file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/verCases.h b/source/verCases.h
index 0176fee..27ed1c9 100644
--- a/source/verCases.h
+++ b/source/verCases.h
@@ -1,11 +1,11 @@
 
 /*============================================================================
 
-This C header file is part of TestFloat, Release 3d, a package of programs for
+This C header file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
-Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
+Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 The Regents of the
 University of California.  All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
@@ -50,7 +50,7 @@
 extern int verCases_roundingCode;
 extern int verCases_tininessCode;
 extern bool verCases_usesExact, verCases_exact;
-extern bool verCases_checkNaNs;
+extern bool verCases_checkNaNs, verCases_checkInvInts;
 extern uint_fast32_t verCases_maxErrorCount;
 extern bool verCases_errorStop;
 
diff --git a/source/verCases_common.c b/source/verCases_common.c
index e4945f4..f1e3385 100644
--- a/source/verCases_common.c
+++ b/source/verCases_common.c
@@ -1,11 +1,11 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
-Copyright 2011, 2012, 2013, 2014, 2017 The Regents of the University of
+Copyright 2011, 2012, 2013, 2014, 2017, 2018 The Regents of the University of
 California.  All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
@@ -50,6 +50,7 @@
 bool verCases_usesExact = false;
 bool verCases_exact;
 bool verCases_checkNaNs = false;
+bool verCases_checkInvInts = false;
 uint_fast32_t verCases_maxErrorCount = 0;
 bool verCases_errorStop = false;
 
diff --git a/source/verCases_inline.c b/source/verCases_inline.c
index a32df59..8e2171e 100644
--- a/source/verCases_inline.c
+++ b/source/verCases_inline.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C header file is part of TestFloat, Release 3d, a package of programs for
+This C header file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/verCases_writeFunctionName.c b/source/verCases_writeFunctionName.c
index dcac6b2..b8a09ae 100644
--- a/source/verCases_writeFunctionName.c
+++ b/source/verCases_writeFunctionName.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/verLoops.c b/source/verLoops.c
index a45b0df..0173595 100644
--- a/source/verLoops.c
+++ b/source/verLoops.c
@@ -1,11 +1,11 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
-Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017 The Regents of the
+Copyright 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018 The Regents of the
 University of California.  All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
@@ -1193,14 +1193,11 @@
             count = 10000;
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
-            if ( ! verCases_checkNaNs && f16_isSignalingNaN( a ) ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
             if (
-                   (trueZ != 0xFFFFFFFF)
-                || (subjZ != 0xFFFFFFFF)
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != 0xFFFFFFFF) && (subjZ != 0))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
@@ -1244,14 +1241,11 @@
             count = 10000;
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
-            if ( ! verCases_checkNaNs && f16_isSignalingNaN( a ) ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
             if (
-                   (trueZ != UINT64_C( 0xFFFFFFFFFFFFFFFF ))
-                || (subjZ != UINT64_C( 0xFFFFFFFFFFFFFFFF ))
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != UINT64_C( 0xFFFFFFFFFFFFFFFF )) && (subjZ != 0))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
@@ -1295,14 +1289,12 @@
             count = 10000;
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
-            if ( ! verCases_checkNaNs && f16_isSignalingNaN( a ) ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
             if (
-                   (trueZ != 0x7FFFFFFF)
-                || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1))
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1)
+                        && (! f16_isNaN( a ) || (subjZ != 0)))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
@@ -1346,15 +1338,13 @@
             count = 10000;
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
-            if ( ! verCases_checkNaNs && f16_isSignalingNaN( a ) ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
             if (
-                   (trueZ != INT64_C( 0x7FFFFFFFFFFFFFFF ))
-                || ((subjZ != INT64_C( 0x7FFFFFFFFFFFFFFF ))
-                        && (subjZ != -INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1))
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != INT64_C( 0x7FFFFFFFFFFFFFFF ))
+                        && (subjZ != -INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1)
+                        && (! f16_isNaN( a ) || (subjZ != 0)))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
@@ -1395,14 +1385,11 @@
             count = 10000;
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
-            if ( ! verCases_checkNaNs && f16_isSignalingNaN( a ) ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
             if (
-                   (trueZ != 0xFFFFFFFF)
-                || (subjZ != 0xFFFFFFFF)
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != 0xFFFFFFFF) && (subjZ != 0))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
@@ -1443,14 +1430,11 @@
             count = 10000;
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
-            if ( ! verCases_checkNaNs && f16_isSignalingNaN( a ) ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
             if (
-                   (trueZ != UINT64_C( 0xFFFFFFFFFFFFFFFF ))
-                || (subjZ != UINT64_C( 0xFFFFFFFFFFFFFFFF ))
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != UINT64_C( 0xFFFFFFFFFFFFFFFF )) && (subjZ != 0))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
@@ -1491,14 +1475,12 @@
             count = 10000;
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
-            if ( ! verCases_checkNaNs && f16_isSignalingNaN( a ) ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
             if (
-                   (trueZ != 0x7FFFFFFF)
-                || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1))
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1)
+                        && (! f16_isNaN( a ) || (subjZ != 0)))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
@@ -1539,15 +1521,13 @@
             count = 10000;
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
-            if ( ! verCases_checkNaNs && f16_isSignalingNaN( a ) ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
             if (
-                   (trueZ != INT64_C( 0x7FFFFFFFFFFFFFFF ))
-                || ((subjZ != INT64_C( 0x7FFFFFFFFFFFFFFF ))
-                        && (subjZ != -INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1))
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != INT64_C( 0x7FFFFFFFFFFFFFFF ))
+                        && (subjZ != -INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1)
+                        && (! f16_isNaN( a ) || (subjZ != 0)))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
@@ -2040,14 +2020,11 @@
             count = 10000;
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
-            if ( ! verCases_checkNaNs && f32_isSignalingNaN( a ) ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
             if (
-                   (trueZ != 0xFFFFFFFF)
-                || (subjZ != 0xFFFFFFFF)
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != 0xFFFFFFFF) && (subjZ != 0))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
@@ -2091,14 +2068,11 @@
             count = 10000;
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
-            if ( ! verCases_checkNaNs && f32_isSignalingNaN( a ) ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
             if (
-                   (trueZ != UINT64_C( 0xFFFFFFFFFFFFFFFF ))
-                || (subjZ != UINT64_C( 0xFFFFFFFFFFFFFFFF ))
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != UINT64_C( 0xFFFFFFFFFFFFFFFF )) && (subjZ != 0))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
@@ -2142,14 +2116,12 @@
             count = 10000;
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
-            if ( ! verCases_checkNaNs && f32_isSignalingNaN( a ) ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
             if (
-                   (trueZ != 0x7FFFFFFF)
-                || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1))
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1)
+                        && (! f32_isNaN( a ) || (subjZ != 0)))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
@@ -2193,15 +2165,13 @@
             count = 10000;
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
-            if ( ! verCases_checkNaNs && f32_isSignalingNaN( a ) ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
             if (
-                   (trueZ != INT64_C( 0x7FFFFFFFFFFFFFFF ))
-                || ((subjZ != INT64_C( 0x7FFFFFFFFFFFFFFF ))
-                        && (subjZ != -INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1))
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != INT64_C( 0x7FFFFFFFFFFFFFFF ))
+                        && (subjZ != -INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1)
+                        && (! f32_isNaN( a ) || (subjZ != 0)))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
@@ -2242,14 +2212,11 @@
             count = 10000;
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
-            if ( ! verCases_checkNaNs && f32_isSignalingNaN( a ) ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
             if (
-                   (trueZ != 0xFFFFFFFF)
-                || (subjZ != 0xFFFFFFFF)
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != 0xFFFFFFFF) && (subjZ != 0))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
@@ -2290,14 +2257,11 @@
             count = 10000;
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
-            if ( ! verCases_checkNaNs && f32_isSignalingNaN( a ) ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
             if (
-                   (trueZ != UINT64_C( 0xFFFFFFFFFFFFFFFF ))
-                || (subjZ != UINT64_C( 0xFFFFFFFFFFFFFFFF ))
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != UINT64_C( 0xFFFFFFFFFFFFFFFF )) && (subjZ != 0))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
@@ -2338,14 +2302,12 @@
             count = 10000;
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
-            if ( ! verCases_checkNaNs && f32_isSignalingNaN( a ) ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
             if (
-                   (trueZ != 0x7FFFFFFF)
-                || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1))
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1)
+                        && (! f32_isNaN( a ) || (subjZ != 0)))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
@@ -2386,15 +2348,13 @@
             count = 10000;
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
-            if ( ! verCases_checkNaNs && f32_isSignalingNaN( a ) ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
             if (
-                   (trueZ != INT64_C( 0x7FFFFFFFFFFFFFFF ))
-                || ((subjZ != INT64_C( 0x7FFFFFFFFFFFFFFF ))
-                        && (subjZ != -INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1))
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != INT64_C( 0x7FFFFFFFFFFFFFFF ))
+                        && (subjZ != -INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1)
+                        && (! f32_isNaN( a ) || (subjZ != 0)))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
@@ -2891,14 +2851,11 @@
             count = 10000;
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
-            if ( ! verCases_checkNaNs && f64_isSignalingNaN( a ) ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
             if (
-                   (trueZ != 0xFFFFFFFF)
-                || (subjZ != 0xFFFFFFFF)
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != 0xFFFFFFFF) && (subjZ != 0))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
@@ -2942,14 +2899,11 @@
             count = 10000;
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
-            if ( ! verCases_checkNaNs && f64_isSignalingNaN( a ) ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
             if (
-                   (trueZ != UINT64_C( 0xFFFFFFFFFFFFFFFF ))
-                || (subjZ != UINT64_C( 0xFFFFFFFFFFFFFFFF ))
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != UINT64_C( 0xFFFFFFFFFFFFFFFF )) && (subjZ != 0))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
@@ -2993,14 +2947,12 @@
             count = 10000;
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
-            if ( ! verCases_checkNaNs && f64_isSignalingNaN( a ) ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
             if (
-                   (trueZ != 0x7FFFFFFF)
-                || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1))
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1)
+                        && (! f64_isNaN( a ) || (subjZ != 0)))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
@@ -3044,15 +2996,13 @@
             count = 10000;
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
-            if ( ! verCases_checkNaNs && f64_isSignalingNaN( a ) ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
             if (
-                   (trueZ != INT64_C( 0x7FFFFFFFFFFFFFFF ))
-                || ((subjZ != INT64_C( 0x7FFFFFFFFFFFFFFF ))
-                        && (subjZ != -INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1))
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != INT64_C( 0x7FFFFFFFFFFFFFFF ))
+                        && (subjZ != -INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1)
+                        && (! f64_isNaN( a ) || (subjZ != 0)))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
@@ -3093,14 +3043,11 @@
             count = 10000;
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
-            if ( ! verCases_checkNaNs && f64_isSignalingNaN( a ) ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
             if (
-                   (trueZ != 0xFFFFFFFF)
-                || (subjZ != 0xFFFFFFFF)
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != 0xFFFFFFFF) && (subjZ != 0))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
@@ -3141,14 +3088,11 @@
             count = 10000;
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
-            if ( ! verCases_checkNaNs && f64_isSignalingNaN( a ) ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
             if (
-                   (trueZ != UINT64_C( 0xFFFFFFFFFFFFFFFF ))
-                || (subjZ != UINT64_C( 0xFFFFFFFFFFFFFFFF ))
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != UINT64_C( 0xFFFFFFFFFFFFFFFF )) && (subjZ != 0))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
@@ -3189,14 +3133,12 @@
             count = 10000;
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
-            if ( ! verCases_checkNaNs && f64_isSignalingNaN( a ) ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
             if (
-                   (trueZ != 0x7FFFFFFF)
-                || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1))
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1)
+                        && (! f64_isNaN( a ) || (subjZ != 0)))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
@@ -3237,15 +3179,13 @@
             count = 10000;
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
-            if ( ! verCases_checkNaNs && f64_isSignalingNaN( a ) ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
             if (
-                   (trueZ != INT64_C( 0x7FFFFFFFFFFFFFFF ))
-                || ((subjZ != INT64_C( 0x7FFFFFFFFFFFFFFF ))
-                        && (subjZ != -INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1))
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != INT64_C( 0x7FFFFFFFFFFFFFFF ))
+                        && (subjZ != -INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1)
+                        && (! f64_isNaN( a ) || (subjZ != 0)))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
@@ -3740,14 +3680,11 @@
             count = 10000;
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
-            if ( ! verCases_checkNaNs && extF80M_isSignalingNaN( &a ) ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
             if (
-                   (trueZ != 0xFFFFFFFF)
-                || (subjZ != 0xFFFFFFFF)
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != 0xFFFFFFFF) && (subjZ != 0))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
@@ -3791,14 +3728,11 @@
             count = 10000;
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
-            if ( ! verCases_checkNaNs && extF80M_isSignalingNaN( &a ) ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
             if (
-                   (trueZ != UINT64_C( 0xFFFFFFFFFFFFFFFF ))
-                || (subjZ != UINT64_C( 0xFFFFFFFFFFFFFFFF ))
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != UINT64_C( 0xFFFFFFFFFFFFFFFF )) && (subjZ != 0))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
@@ -3842,14 +3776,12 @@
             count = 10000;
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
-            if ( ! verCases_checkNaNs && extF80M_isSignalingNaN( &a ) ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
             if (
-                   (trueZ != 0x7FFFFFFF)
-                || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1))
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1)
+                        && (! extF80M_isNaN( &a ) || (subjZ != 0)))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
@@ -3893,15 +3825,13 @@
             count = 10000;
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
-            if ( ! verCases_checkNaNs && extF80M_isSignalingNaN( &a ) ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
             if (
-                   (trueZ != INT64_C( 0x7FFFFFFFFFFFFFFF ))
-                || ((subjZ != INT64_C( 0x7FFFFFFFFFFFFFFF ))
-                    && (subjZ != -INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1))
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != INT64_C( 0x7FFFFFFFFFFFFFFF ))
+                        && (subjZ != -INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1)
+                        && (! extF80M_isNaN( &a ) || (subjZ != 0)))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
@@ -3942,14 +3872,11 @@
             count = 10000;
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
-            if ( ! verCases_checkNaNs && extF80M_isSignalingNaN( &a ) ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
             if (
-                   (trueZ != 0xFFFFFFFF)
-                || (subjZ != 0xFFFFFFFF)
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != 0xFFFFFFFF) && (subjZ != 0))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
@@ -3990,14 +3917,11 @@
             count = 10000;
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
-            if ( ! verCases_checkNaNs && extF80M_isSignalingNaN( &a ) ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
             if (
-                   (trueZ != UINT64_C( 0xFFFFFFFFFFFFFFFF ))
-                || (subjZ != UINT64_C( 0xFFFFFFFFFFFFFFFF ))
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != UINT64_C( 0xFFFFFFFFFFFFFFFF )) && (subjZ != 0))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
@@ -4038,14 +3962,12 @@
             count = 10000;
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
-            if ( ! verCases_checkNaNs && extF80M_isSignalingNaN( &a ) ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
             if (
-                   (trueZ != 0x7FFFFFFF)
-                || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1))
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1)
+                        && (! extF80M_isNaN( &a ) || (subjZ != 0)))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
@@ -4086,15 +4008,13 @@
             count = 10000;
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
-            if ( ! verCases_checkNaNs && extF80M_isSignalingNaN( &a ) ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
             if (
-                   (trueZ != INT64_C( 0x7FFFFFFFFFFFFFFF ))
-                || ((subjZ != INT64_C( 0x7FFFFFFFFFFFFFFF ))
-                        && (subjZ != -INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1))
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != INT64_C( 0x7FFFFFFFFFFFFFFF ))
+                        && (subjZ != -INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1)
+                        && (! extF80M_isNaN( &a ) || (subjZ != 0)))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
@@ -4548,14 +4468,11 @@
             count = 10000;
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
-            if ( ! verCases_checkNaNs && f128M_isSignalingNaN( &a ) ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
             if (
-                   (trueZ != 0xFFFFFFFF)
-                || (subjZ != 0xFFFFFFFF)
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != 0xFFFFFFFF) && (subjZ != 0))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
@@ -4599,14 +4516,11 @@
             count = 10000;
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
-            if ( ! verCases_checkNaNs && f128M_isSignalingNaN( &a ) ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
             if (
-                   (trueZ != UINT64_C( 0xFFFFFFFFFFFFFFFF ))
-                || (subjZ != UINT64_C( 0xFFFFFFFFFFFFFFFF ))
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != UINT64_C( 0xFFFFFFFFFFFFFFFF )) && (subjZ != 0))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
@@ -4650,14 +4564,12 @@
             count = 10000;
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
-            if ( ! verCases_checkNaNs && f128M_isSignalingNaN( &a ) ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
             if (
-                   (trueZ != 0x7FFFFFFF)
-                || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1))
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1)
+                        && (! f128M_isNaN( &a ) || (subjZ != 0)))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
@@ -4701,15 +4613,13 @@
             count = 10000;
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
-            if ( ! verCases_checkNaNs && f128M_isSignalingNaN( &a ) ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
             if (
-                   (trueZ != INT64_C( 0x7FFFFFFFFFFFFFFF ))
-                || ((subjZ != INT64_C( 0x7FFFFFFFFFFFFFFF ))
-                        && (subjZ != -INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1))
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != INT64_C( 0x7FFFFFFFFFFFFFFF ))
+                        && (subjZ != -INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1)
+                        && (! f128M_isNaN( &a ) || (subjZ != 0)))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
@@ -4750,14 +4660,11 @@
             count = 10000;
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
-            if ( ! verCases_checkNaNs && f128M_isSignalingNaN( &a ) ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
             if (
-                   (trueZ != 0xFFFFFFFF)
-                || (subjZ != 0xFFFFFFFF)
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != 0xFFFFFFFF) && (subjZ != 0))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
@@ -4798,14 +4705,11 @@
             count = 10000;
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
-            if ( ! verCases_checkNaNs && f128M_isSignalingNaN( &a ) ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
             if (
-                   (trueZ != UINT64_C( 0xFFFFFFFFFFFFFFFF ))
-                || (subjZ != UINT64_C( 0xFFFFFFFFFFFFFFFF ))
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != UINT64_C( 0xFFFFFFFFFFFFFFFF )) && (subjZ != 0))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
@@ -4846,14 +4750,12 @@
             count = 10000;
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
-            if ( ! verCases_checkNaNs && f128M_isSignalingNaN( &a ) ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
             if (
-                   (trueZ != 0x7FFFFFFF)
-                || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1))
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != 0x7FFFFFFF) && (subjZ != -0x7FFFFFFF - 1)
+                        && (! f128M_isNaN( &a ) || (subjZ != 0)))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
@@ -4894,15 +4796,13 @@
             count = 10000;
         }
         if ( (trueZ != subjZ) || (trueFlags != subjFlags) ) {
-            if ( ! verCases_checkNaNs && f128M_isSignalingNaN( &a ) ) {
-                trueFlags |= softfloat_flag_invalid;
-            }
             if (
-                   (trueZ != INT64_C( 0x7FFFFFFFFFFFFFFF ))
-                || ((subjZ != INT64_C( 0x7FFFFFFFFFFFFFFF ))
-                        && (subjZ != -INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1))
+                   verCases_checkInvInts
                 || (trueFlags != softfloat_flag_invalid)
                 || (subjFlags != softfloat_flag_invalid)
+                || ((subjZ != INT64_C( 0x7FFFFFFFFFFFFFFF ))
+                        && (subjZ != -INT64_C( 0x7FFFFFFFFFFFFFFF ) - 1)
+                        && (! f128M_isNaN( &a ) || (subjZ != 0)))
             ) {
                 ++verCases_errorCount;
                 verCases_writeErrorFound( 10000 - count );
diff --git a/source/verLoops.h b/source/verLoops.h
index 45ccb77..5115e91 100644
--- a/source/verLoops.h
+++ b/source/verLoops.h
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C header file is part of TestFloat, Release 3d, a package of programs for
+This C header file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/writeCase.h b/source/writeCase.h
index 294295d..d1054c8 100644
--- a/source/writeCase.h
+++ b/source/writeCase.h
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C header file is part of TestFloat, Release 3d, a package of programs for
+This C header file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/writeCase_a_extF80M.c b/source/writeCase_a_extF80M.c
index 97e8e78..b960f0d 100644
--- a/source/writeCase_a_extF80M.c
+++ b/source/writeCase_a_extF80M.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/writeCase_a_f128M.c b/source/writeCase_a_f128M.c
index 4eadb09..630f000 100644
--- a/source/writeCase_a_f128M.c
+++ b/source/writeCase_a_f128M.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/writeCase_a_f16.c b/source/writeCase_a_f16.c
index 782c6a4..f404b45 100644
--- a/source/writeCase_a_f16.c
+++ b/source/writeCase_a_f16.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/writeCase_a_f32.c b/source/writeCase_a_f32.c
index 8afb94d..edaaae2 100644
--- a/source/writeCase_a_f32.c
+++ b/source/writeCase_a_f32.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/writeCase_a_f64.c b/source/writeCase_a_f64.c
index 909ee8c..b5e0ec6 100644
--- a/source/writeCase_a_f64.c
+++ b/source/writeCase_a_f64.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/writeCase_a_ui32.c b/source/writeCase_a_ui32.c
index 5824623..5d96e04 100644
--- a/source/writeCase_a_ui32.c
+++ b/source/writeCase_a_ui32.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/writeCase_a_ui64.c b/source/writeCase_a_ui64.c
index 9867fe7..5666721 100644
--- a/source/writeCase_a_ui64.c
+++ b/source/writeCase_a_ui64.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/writeCase_ab_extF80M.c b/source/writeCase_ab_extF80M.c
index d735a10..e66e679 100644
--- a/source/writeCase_ab_extF80M.c
+++ b/source/writeCase_ab_extF80M.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/writeCase_ab_f128M.c b/source/writeCase_ab_f128M.c
index f720af7..8ff0dee 100644
--- a/source/writeCase_ab_f128M.c
+++ b/source/writeCase_ab_f128M.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/writeCase_ab_f16.c b/source/writeCase_ab_f16.c
index b1d0355..6c86e93 100644
--- a/source/writeCase_ab_f16.c
+++ b/source/writeCase_ab_f16.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/writeCase_ab_f32.c b/source/writeCase_ab_f32.c
index f84a2fc..1218dfb 100644
--- a/source/writeCase_ab_f32.c
+++ b/source/writeCase_ab_f32.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/writeCase_ab_f64.c b/source/writeCase_ab_f64.c
index c08bc26..251f009 100644
--- a/source/writeCase_ab_f64.c
+++ b/source/writeCase_ab_f64.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/writeCase_abc_f128M.c b/source/writeCase_abc_f128M.c
index 77dc6b5..c969744 100644
--- a/source/writeCase_abc_f128M.c
+++ b/source/writeCase_abc_f128M.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/writeCase_abc_f16.c b/source/writeCase_abc_f16.c
index 784bd77..17acf2a 100644
--- a/source/writeCase_abc_f16.c
+++ b/source/writeCase_abc_f16.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/writeCase_abc_f32.c b/source/writeCase_abc_f32.c
index 4da829f..09a46a3 100644
--- a/source/writeCase_abc_f32.c
+++ b/source/writeCase_abc_f32.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/writeCase_abc_f64.c b/source/writeCase_abc_f64.c
index 5b276cc..1f0a4ae 100644
--- a/source/writeCase_abc_f64.c
+++ b/source/writeCase_abc_f64.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/writeCase_z_bool.c b/source/writeCase_z_bool.c
index 27995f2..aca956b 100644
--- a/source/writeCase_z_bool.c
+++ b/source/writeCase_z_bool.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/writeCase_z_extF80M.c b/source/writeCase_z_extF80M.c
index 4f49a9c..8c0f3f0 100644
--- a/source/writeCase_z_extF80M.c
+++ b/source/writeCase_z_extF80M.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/writeCase_z_f128M.c b/source/writeCase_z_f128M.c
index 02a7edf..ec574bb 100644
--- a/source/writeCase_z_f128M.c
+++ b/source/writeCase_z_f128M.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/writeCase_z_f16.c b/source/writeCase_z_f16.c
index 756c6c8..f8a11ee 100644
--- a/source/writeCase_z_f16.c
+++ b/source/writeCase_z_f16.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/writeCase_z_f32.c b/source/writeCase_z_f32.c
index 1c31061..b1593b7 100644
--- a/source/writeCase_z_f32.c
+++ b/source/writeCase_z_f32.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/writeCase_z_f64.c b/source/writeCase_z_f64.c
index 58c2990..97f2bf5 100644
--- a/source/writeCase_z_f64.c
+++ b/source/writeCase_z_f64.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/writeCase_z_ui32.c b/source/writeCase_z_ui32.c
index 8431005..ed07ffc 100644
--- a/source/writeCase_z_ui32.c
+++ b/source/writeCase_z_ui32.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/writeCase_z_ui64.c b/source/writeCase_z_ui64.c
index a4756e8..f20cb18 100644
--- a/source/writeCase_z_ui64.c
+++ b/source/writeCase_z_ui64.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/writeHex.c b/source/writeHex.c
index f0e28b7..442bbb9 100644
--- a/source/writeHex.c
+++ b/source/writeHex.c
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C source file is part of TestFloat, Release 3d, a package of programs for
+This C source file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.
 
diff --git a/source/writeHex.h b/source/writeHex.h
index d520952..951a26f 100644
--- a/source/writeHex.h
+++ b/source/writeHex.h
@@ -1,7 +1,7 @@
 
 /*============================================================================
 
-This C header file is part of TestFloat, Release 3d, a package of programs for
+This C header file is part of TestFloat, Release 3e, a package of programs for
 testing the correctness of floating-point arithmetic complying with the IEEE
 Standard for Floating-Point, by John R. Hauser.