james.stine@okstate.edu 14 Jan 2022

These are the testvectors (TV) to test the floating-point units using
Berkeley TestFloat written originally by John Hauser.  TestFloat
requires both TestFloat and SoftFloat.

The locations at time of this README is found here:
TestFloat-3e:  http://www.jhauser.us/arithmetic/TestFloat.html
SoftFloat-3e:  http://www.jhauser.us/arithmetic/SoftFloat.html

These files have been compiled on a x86_64 environment by going into
the build/Linux-x86_64-GCC directory and typing make.  A script
createX.sh (e.g., create_vectors32.sh) has been included that create
the TV for each rounding mode  and operation.  These scripts must be
run in the build directory of TestFloat.

A set of scripts is also include that runs everything from the
baseline directory.  Please change the BUILD and OUTPUT variable to
change your baseline program where its compiled and where you want to
output the vectors.  By default, the vectors are output into the
vectors subdirectory.

After each TV has been created a script (included) is run called
undy.sh that puts an underscore between vector to allow SystemVerilog
readmemh to read correctly.

./undy.sh file.tv

To remove all the underscores from all the TV files, one can run the
command that will add underscores appropriately to all the files.

cd vectors
../undy.sh \*

Note: due to size, the fxx_fma_xx.tv vectors are not included.
However, they can easily be created with the create scripts.

Although not needed, a case.sh script is included to change the case
of the hex output.  This is for those that do not like to see
hexadecimal capitalized :P. 

   46464   185856   836352 f16_add_rd.tv
   46464   185856   836352 f16_add_rne.tv
   46464   185856   836352 f16_add_ru.tv
   46464   185856   836352 f16_add_rz.tv
   46464   185856   836352 f16_div_rd.tv
   46464   185856   836352 f16_div_rne.tv
   46464   185856   836352 f16_div_ru.tv
   46464   185856   836352 f16_div_rz.tv
   46464   185856   836352 f16_mul_rd.tv
   46464   185856   836352 f16_mul_rne.tv
   46464   185856   836352 f16_mul_ru.tv
   46464   185856   836352 f16_mul_rz.tv
     408     1224     5304 f16_sqrt_rd.tv
     408     1224     5304 f16_sqrt_rne.tv
     408     1224     5304 f16_sqrt_ru.tv
     408     1224     5304 f16_sqrt_rz.tv
   46464   185856   836352 f16_sub_rd.tv
   46464   185856   836352 f16_sub_rne.tv
   46464   185856   836352 f16_sub_ru.tv
   46464   185856   836352 f16_sub_rz.tv
   46464   185856  1393920 f32_add_rd.tv
   46464   185856  1393920 f32_add_rne.tv
   46464   185856  1393920 f32_add_ru.tv
   46464   185856  1393920 f32_add_rz.tv
   46464   185856  1068672 f32_cmp_eq_signaling.tv
   46464   185856  1068672 f32_cmp_eq.tv
   46464   185856  1068672 f32_cmp_le_quiet.tv
   46464   185856  1068672 f32_cmp_le.tv
   46464   185856  1068672 f32_cmp_lt_quiet.tv
   46464   185856  1068672 f32_cmp_lt.tv
   46464   185856  1393920 f32_div_rd.tv
   46464   185856  1393920 f32_div_rne.tv
   46464   185856  1393920 f32_div_ru.tv
   46464   185856  1393920 f32_div_rz.tv
     600     1800    17400 f32_f64_rd.tv
     600     1800    17400 f32_f64_rne.tv
     600     1800    17400 f32_f64_ru.tv
     600     1800    17400 f32_f64_rz.tv
     600     1800    12600 f32_i32_rd.tv
     600     1800    12600 f32_i32_rne.tv
     600     1800    12600 f32_i32_ru.tv
     600     1800    12600 f32_i32_rz.tv
     600     1800    17400 f32_i64_rd.tv
     600     1800    17400 f32_i64_rne.tv
     600     1800    17400 f32_i64_ru.tv
     600     1800    17400 f32_i64_rz.tv
   46464   185856  1393920 f32_mul_rd.tv
   46464   185856  1393920 f32_mul_rne.tv
   46464   185856  1393920 f32_mul_ru.tv
   46464   185856  1393920 f32_mul_rz.tv
     600     1800    12600 f32_sqrt_rd.tv
     600     1800    12600 f32_sqrt_rne.tv
     600     1800    12600 f32_sqrt_ru.tv
     600     1800    12600 f32_sqrt_rz.tv
   46464   185856  1393920 f32_sub_rd.tv
   46464   185856  1393920 f32_sub_rne.tv
   46464   185856  1393920 f32_sub_ru.tv
   46464   185856  1393920 f32_sub_rz.tv
     600     1800    12600 f32_ui32_rd.tv
     600     1800    12600 f32_ui32_rne.tv
     600     1800    12600 f32_ui32_ru.tv
     600     1800    12600 f32_ui32_rz.tv
     600     1800    17400 f32_ui64_rd.tv
     600     1800    17400 f32_ui64_rne.tv
     600     1800    17400 f32_ui64_ru.tv
     600     1800    17400 f32_ui64_rz.tv
   46464   185856  2509056 f64_add_rd.tv
   46464   185856  2509056 f64_add_rne.tv
   46464   185856  2509056 f64_add_ru.tv
   46464   185856  2509056 f64_add_rz.tv
   46464   185856  1812096 f64_cmp_eq_signaling.tv
   46464   185856  1812096 f64_cmp_eq.tv
   46464   185856  1812096 f64_cmp_le_quiet.tv
   46464   185856  1812096 f64_cmp_le.tv
   46464   185856  1812096 f64_cmp_lt_quiet.tv
   46464   185856  1812096 f64_cmp_lt.tv
   46464   185856  2509056 f64_div_rd.tv
   46464   185856  2509056 f64_div_rne.tv
   46464   185856  2509056 f64_div_ru.tv
   46464   185856  2509056 f64_div_rz.tv
     768     2304    22272 f64_f32_rd.tv
     768     2304    22272 f64_f32_rne.tv
     768     2304    22272 f64_f32_ru.tv
     768     2304    22272 f64_f32_rz.tv
     768     2304    22272 f64_i32_rd.tv
     768     2304    22272 f64_i32_rne.tv
     768     2304    22272 f64_i32_ru.tv
     768     2304    22272 f64_i32_rz.tv
     768     2304    28416 f64_i64_rd.tv
     768     2304    28416 f64_i64_rne.tv
     768     2304    28416 f64_i64_ru.tv
     768     2304    28416 f64_i64_rz.tv
   46464   185856  2509056 f64_mul_rd.tv
   46464   185856  2509056 f64_mul_rne.tv
   46464   185856  2509056 f64_mul_ru.tv
   46464   185856  2509056 f64_mul_rz.tv
     768     2304    28416 f64_sqrt_rd.tv
     768     2304    28416 f64_sqrt_rne.tv
     768     2304    28416 f64_sqrt_ru.tv
     768     2304    28416 f64_sqrt_rz.tv
   46464   185856  2509056 f64_sub_rd.tv
   46464   185856  2509056 f64_sub_rne.tv
   46464   185856  2509056 f64_sub_ru.tv
   46464   185856  2509056 f64_sub_rz.tv
     768     2304    22272 f64_ui32_rd.tv
     768     2304    22272 f64_ui32_rne.tv
     768     2304    22272 f64_ui32_ru.tv
     768     2304    22272 f64_ui32_rz.tv
     768     2304    28416 f64_ui64_rd.tv
     768     2304    28416 f64_ui64_rne.tv
     768     2304    28416 f64_ui64_ru.tv
     768     2304    28416 f64_ui64_rz.tv
     372     1116     7812 i32_f32_rd.tv
     372     1116     7812 i32_f32_rne.tv
     372     1116     7812 i32_f32_ru.tv
     372     1116     7812 i32_f32_rz.tv
     372     1116    10788 i32_f64_rd.tv
     372     1116    10788 i32_f64_rne.tv
     372     1116    10788 i32_f64_ru.tv
     372     1116    10788 i32_f64_rz.tv
     756     2268    21924 i64_f32_rd.tv
     756     2268    21924 i64_f32_rne.tv
     756     2268    21924 i64_f32_ru.tv
     756     2268    21924 i64_f32_rz.tv
     756     2268    27972 i64_f64_rd.tv
     756     2268    27972 i64_f64_rne.tv
     756     2268    27972 i64_f64_ru.tv
     756     2268    27972 i64_f64_rz.tv
     372     1116     7812 ui32_f32_rd.tv
     372     1116     7812 ui32_f32_rne.tv
     372     1116     7812 ui32_f32_ru.tv
     372     1116     7812 ui32_f32_rz.tv
     372     1116    10788 ui32_f64_rd.tv
     372     1116    10788 ui32_f64_rne.tv
     372     1116    10788 ui32_f64_ru.tv
     372     1116    10788 ui32_f64_rz.tv
     756     2268    21924 ui64_f32_rd.tv
     756     2268    21924 ui64_f32_rne.tv
     756     2268    21924 ui64_f32_ru.tv
     756     2268    21924 ui64_f32_rz.tv
     756     2268    27972 ui64_f64_rd.tv
     756     2268    27972 ui64_f64_rne.tv
     756     2268    27972 ui64_f64_ru.tv
     756     2268    27972 ui64_f64_rz.tv
 2840352 11308896 94651296 total