Refactor type specific macros using regexes

Replace most of the type specific macros  with the equivalent
type-generic macro using the following sed replacement command below:

sed -ri -e 's/defined TEST_FLOAT/TEST_COND_binary32/' \
        -e 's/ndef TEST_FLOAT/ !TEST_COND_binary32/'  \
        -e 's/def TEST_FLOAT/ TEST_COND_binary32/'    \
        -e 's/defined TEST_DOUBLE/TEST_COND_binary64/'\
        -e 's/ndef TEST_DOUBLE/ !TEST_COND_binary64/' \
        -e 's/def TEST_DOUBLE/ TEST_COND_binary64/'   \
        -e 's/defined TEST_LDOUBLE && //'             \
        -e 's/ifdef TEST_LDOUBLE/if MANT_DIG >= 64/'  \
        -e 's/defined TEST_LDOUBLE/MANT_DIG >= 64/'   \
        -e '/nexttoward_test_data\[\]/,/  };/!s/LDBL_(MIN_EXP|MAX_EXP|MANT_DIG)/\1/g' \
        libm-test.inc

With a little extra manual cleanup to simplify the following case:

#if MANT_DIG >= 64
# if MANT_DIG >= 64
...
# endif
...

Note, TEST_LDOUBLE checks are replaced by MANT_DIG >= 64 excepting
where another property of the type is being tested. And, the final
regex is intended to avoid replacing LDBL_ macro usage within the
nexttoward tests which explicitly take argument 2 as long double.
This commit is contained in:
Paul E. Murphy 2016-05-12 11:35:34 -05:00
parent 5f7b8f457f
commit de628893f6
2 changed files with 343 additions and 343 deletions

View File

@ -1,3 +1,15 @@
2016-05-27 Paul E. Murphy <murphyp@linux.vnet.ibm.com>
* math/libm-test.inc:
(TEST_FLOAT): Change usage to TEST_COND_binary32.
(TEST_DOUBLE): Change usage to TEST_COND_binary64.
(TEST_LDOUBLE): Update usage to evaluate as true if
the guarded tests match the property being tested.
(LDBL_MAX_EXP): Change to MAX_EXP.
(LDBL_MIN_EXP): Change to MIN_EXP.
(LDBL_MANT_DIG): Change to MANT_DIG, except for
nexttoward tests.
2016-05-27 Paul E. Murphy <murphyp@linux.vnet.ibm.com>
* math/libm-test.inc:

File diff suppressed because it is too large Load Diff