]> git.proxmox.com Git - mirror_edk2.git/blobdiff - StdLib/LibC/Softfloat/timesoftfloat.c
edk2: Remove AppPkg, StdLib, StdLibPrivateInternalFiles
[mirror_edk2.git] / StdLib / LibC / Softfloat / timesoftfloat.c
diff --git a/StdLib/LibC/Softfloat/timesoftfloat.c b/StdLib/LibC/Softfloat/timesoftfloat.c
deleted file mode 100644 (file)
index c6eabc6..0000000
+++ /dev/null
@@ -1,2641 +0,0 @@
-/* $NetBSD: timesoftfloat.c,v 1.1 2000/06/06 08:15:11 bjh21 Exp $ */\r
-\r
-/*\r
-===============================================================================\r
-\r
-This C source file is part of the SoftFloat IEC/IEEE Floating-point\r
-Arithmetic Package, Release 2a.\r
-\r
-Written by John R. Hauser.  This work was made possible in part by the\r
-International Computer Science Institute, located at Suite 600, 1947 Center\r
-Street, Berkeley, California 94704.  Funding was partially provided by the\r
-National Science Foundation under grant MIP-9311980.  The original version\r
-of this code was written as part of a project to build a fixed-point vector\r
-processor in collaboration with the University of California at Berkeley,\r
-overseen by Profs. Nelson Morgan and John Wawrzynek.  More information\r
-is available through the Web page `http://HTTP.CS.Berkeley.EDU/~jhauser/\r
-arithmetic/SoftFloat.html'.\r
-\r
-THIS SOFTWARE IS DISTRIBUTED AS IS, FOR FREE.  Although reasonable effort\r
-has been made to avoid it, THIS SOFTWARE MAY CONTAIN FAULTS THAT WILL AT\r
-TIMES RESULT IN INCORRECT BEHAVIOR.  USE OF THIS SOFTWARE IS RESTRICTED TO\r
-PERSONS AND ORGANIZATIONS WHO CAN AND WILL TAKE FULL RESPONSIBILITY FOR ANY\r
-AND ALL LOSSES, COSTS, OR OTHER PROBLEMS ARISING FROM ITS USE.\r
-\r
-Derivative works are acceptable, even for commercial purposes, so long as\r
-(1) they include prominent notice that the work is derivative, and (2) they\r
-include prominent notice akin to these four paragraphs for those parts of\r
-this code that are retained.\r
-\r
-===============================================================================\r
-*/\r
-\r
-#include <sys/cdefs.h>\r
-#if defined(LIBC_SCCS) && !defined(lint)\r
-__RCSID("$NetBSD: timesoftfloat.c,v 1.1 2000/06/06 08:15:11 bjh21 Exp $");\r
-#endif /* LIBC_SCCS and not lint */\r
-\r
-#include <stdlib.h>\r
-#include <stdarg.h>\r
-#include <string.h>\r
-#include <stdio.h>\r
-#include <time.h>\r
-#include "milieu.h"\r
-#include "softfloat.h"\r
-\r
-enum {\r
-    minIterations = 1000\r
-};\r
-\r
-static void fail( const char *message, ... )\r
-{\r
-    va_list varArgs;\r
-\r
-    fputs( "timesoftfloat: ", stderr );\r
-    va_start( varArgs, message );\r
-    vfprintf( stderr, message, varArgs );\r
-    va_end( varArgs );\r
-    fputs( ".\n", stderr );\r
-    exit( EXIT_FAILURE );\r
-\r
-}\r
-\r
-static char *functionName;\r
-static char *roundingPrecisionName, *roundingModeName, *tininessModeName;\r
-\r
-static void reportTime( int32 count, long clocks )\r
-{\r
-\r
-    printf(\r
-        "%8.1f kops/s: %s",\r
-        ( count / ( ( (float) clocks ) / CLOCKS_PER_SEC ) ) / 1000,\r
-        functionName\r
-    );\r
-    if ( roundingModeName ) {\r
-        if ( roundingPrecisionName ) {\r
-            fputs( ", precision ", stdout );\r
-            fputs( roundingPrecisionName, stdout );\r
-        }\r
-        fputs( ", rounding ", stdout );\r
-        fputs( roundingModeName, stdout );\r
-        if ( tininessModeName ) {\r
-            fputs( ", tininess ", stdout );\r
-            fputs( tininessModeName, stdout );\r
-            fputs( " rounding", stdout );\r
-        }\r
-    }\r
-    fputc( '\n', stdout );\r
-\r
-}\r
-\r
-enum {\r
-    numInputs_int32 = 32\r
-};\r
-\r
-static const int32 inputs_int32[ numInputs_int32 ] = {\r
-    0xFFFFBB79, 0x405CF80F, 0x00000000, 0xFFFFFD04,\r
-    0xFFF20002, 0x0C8EF795, 0xF00011FF, 0x000006CA,\r
-    0x00009BFE, 0xFF4862E3, 0x9FFFEFFE, 0xFFFFFFB7,\r
-    0x0BFF7FFF, 0x0000F37A, 0x0011DFFE, 0x00000006,\r
-    0xFFF02006, 0xFFFFF7D1, 0x10200003, 0xDE8DF765,\r
-    0x00003E02, 0x000019E8, 0x0008FFFE, 0xFFFFFB5C,\r
-    0xFFDF7FFE, 0x07C42FBF, 0x0FFFE3FF, 0x040B9F13,\r
-    0xBFFFFFF8, 0x0001BF56, 0x000017F6, 0x000A908A\r
-};\r
-\r
-static void time_a_int32_z_float32( float32 function( int32 ) )\r
-{\r
-    clock_t startClock, endClock;\r
-    int32 count, i;\r
-    int8 inputNum;\r
-\r
-    count = 0;\r
-    inputNum = 0;\r
-    startClock = clock();\r
-    do {\r
-        for ( i = minIterations; i; --i ) {\r
-            function( inputs_int32[ inputNum ] );\r
-            inputNum = ( inputNum + 1 ) & ( numInputs_int32 - 1 );\r
-        }\r
-        count += minIterations;\r
-    } while ( clock() - startClock < CLOCKS_PER_SEC );\r
-    inputNum = 0;\r
-    startClock = clock();\r
-    for ( i = count; i; --i ) {\r
-        function( inputs_int32[ inputNum ] );\r
-        inputNum = ( inputNum + 1 ) & ( numInputs_int32 - 1 );\r
-    }\r
-    endClock = clock();\r
-    reportTime( count, endClock - startClock );\r
-\r
-}\r
-\r
-static void time_a_int32_z_float64( float64 function( int32 ) )\r
-{\r
-    clock_t startClock, endClock;\r
-    int32 count, i;\r
-    int8 inputNum;\r
-\r
-    count = 0;\r
-    inputNum = 0;\r
-    startClock = clock();\r
-    do {\r
-        for ( i = minIterations; i; --i ) {\r
-            function( inputs_int32[ inputNum ] );\r
-            inputNum = ( inputNum + 1 ) & ( numInputs_int32 - 1 );\r
-        }\r
-        count += minIterations;\r
-    } while ( clock() - startClock < CLOCKS_PER_SEC );\r
-    inputNum = 0;\r
-    startClock = clock();\r
-    for ( i = count; i; --i ) {\r
-        function( inputs_int32[ inputNum ] );\r
-        inputNum = ( inputNum + 1 ) & ( numInputs_int32 - 1 );\r
-    }\r
-    endClock = clock();\r
-    reportTime( count, endClock - startClock );\r
-\r
-}\r
-\r
-#ifdef FLOATX80\r
-\r
-static void time_a_int32_z_floatx80( floatx80 function( int32 ) )\r
-{\r
-    clock_t startClock, endClock;\r
-    int32 count, i;\r
-    int8 inputNum;\r
-\r
-    count = 0;\r
-    inputNum = 0;\r
-    startClock = clock();\r
-    do {\r
-        for ( i = minIterations; i; --i ) {\r
-            function( inputs_int32[ inputNum ] );\r
-            inputNum = ( inputNum + 1 ) & ( numInputs_int32 - 1 );\r
-        }\r
-        count += minIterations;\r
-    } while ( clock() - startClock < CLOCKS_PER_SEC );\r
-    inputNum = 0;\r
-    startClock = clock();\r
-    for ( i = count; i; --i ) {\r
-        function( inputs_int32[ inputNum ] );\r
-        inputNum = ( inputNum + 1 ) & ( numInputs_int32 - 1 );\r
-    }\r
-    endClock = clock();\r
-    reportTime( count, endClock - startClock );\r
-\r
-}\r
-\r
-#endif\r
-\r
-#ifdef FLOAT128\r
-\r
-static void time_a_int32_z_float128( float128 function( int32 ) )\r
-{\r
-    clock_t startClock, endClock;\r
-    int32 count, i;\r
-    int8 inputNum;\r
-\r
-    count = 0;\r
-    inputNum = 0;\r
-    startClock = clock();\r
-    do {\r
-        for ( i = minIterations; i; --i ) {\r
-            function( inputs_int32[ inputNum ] );\r
-            inputNum = ( inputNum + 1 ) & ( numInputs_int32 - 1 );\r
-        }\r
-        count += minIterations;\r
-    } while ( clock() - startClock < CLOCKS_PER_SEC );\r
-    inputNum = 0;\r
-    startClock = clock();\r
-    for ( i = count; i; --i ) {\r
-        function( inputs_int32[ inputNum ] );\r
-        inputNum = ( inputNum + 1 ) & ( numInputs_int32 - 1 );\r
-    }\r
-    endClock = clock();\r
-    reportTime( count, endClock - startClock );\r
-\r
-}\r
-\r
-#endif\r
-\r
-enum {\r
-    numInputs_int64 = 32\r
-};\r
-\r
-static const int64 inputs_int64[ numInputs_int64 ] = {\r
-    LIT64( 0xFBFFC3FFFFFFFFFF ),\r
-    LIT64( 0x0000000003C589BC ),\r
-    LIT64( 0x00000000400013FE ),\r
-    LIT64( 0x0000000000186171 ),\r
-    LIT64( 0xFFFFFFFFFFFEFBFA ),\r
-    LIT64( 0xFFFFFD79E6DFFC73 ),\r
-    LIT64( 0x0000000010001DFF ),\r
-    LIT64( 0xDD1A0F0C78513710 ),\r
-    LIT64( 0xFFFF83FFFFFEFFFE ),\r
-    LIT64( 0x00756EBD1AD0C1C7 ),\r
-    LIT64( 0x0003FDFFFFFFFFBE ),\r
-    LIT64( 0x0007D0FB2C2CA951 ),\r
-    LIT64( 0x0007FC0007FFFFFE ),\r
-    LIT64( 0x0000001F942B18BB ),\r
-    LIT64( 0x0000080101FFFFFE ),\r
-    LIT64( 0xFFFFFFFFFFFF0978 ),\r
-    LIT64( 0x000000000008BFFF ),\r
-    LIT64( 0x0000000006F5AF08 ),\r
-    LIT64( 0xFFDEFF7FFFFFFFFE ),\r
-    LIT64( 0x0000000000000003 ),\r
-    LIT64( 0x3FFFFFFFFF80007D ),\r
-    LIT64( 0x0000000000000078 ),\r
-    LIT64( 0xFFF80000007FDFFD ),\r
-    LIT64( 0x1BBC775B78016AB0 ),\r
-    LIT64( 0xFFF9001FFFFFFFFE ),\r
-    LIT64( 0xFFFD4767AB98E43F ),\r
-    LIT64( 0xFFFFFEFFFE00001E ),\r
-    LIT64( 0xFFFFFFFFFFF04EFD ),\r
-    LIT64( 0x07FFFFFFFFFFF7FF ),\r
-    LIT64( 0xFFFC9EAA38F89050 ),\r
-    LIT64( 0x00000020FBFFFFFE ),\r
-    LIT64( 0x0000099AE6455357 )\r
-};\r
-\r
-static void time_a_int64_z_float32( float32 function( int64 ) )\r
-{\r
-    clock_t startClock, endClock;\r
-    int32 count, i;\r
-    int8 inputNum;\r
-\r
-    count = 0;\r
-    inputNum = 0;\r
-    startClock = clock();\r
-    do {\r
-        for ( i = minIterations; i; --i ) {\r
-            function( inputs_int64[ inputNum ] );\r
-            inputNum = ( inputNum + 1 ) & ( numInputs_int64 - 1 );\r
-        }\r
-        count += minIterations;\r
-    } while ( clock() - startClock < CLOCKS_PER_SEC );\r
-    inputNum = 0;\r
-    startClock = clock();\r
-    for ( i = count; i; --i ) {\r
-        function( inputs_int64[ inputNum ] );\r
-        inputNum = ( inputNum + 1 ) & ( numInputs_int64 - 1 );\r
-    }\r
-    endClock = clock();\r
-    reportTime( count, endClock - startClock );\r
-\r
-}\r
-\r
-static void time_a_int64_z_float64( float64 function( int64 ) )\r
-{\r
-    clock_t startClock, endClock;\r
-    int32 count, i;\r
-    int8 inputNum;\r
-\r
-    count = 0;\r
-    inputNum = 0;\r
-    startClock = clock();\r
-    do {\r
-        for ( i = minIterations; i; --i ) {\r
-            function( inputs_int64[ inputNum ] );\r
-            inputNum = ( inputNum + 1 ) & ( numInputs_int64 - 1 );\r
-        }\r
-        count += minIterations;\r
-    } while ( clock() - startClock < CLOCKS_PER_SEC );\r
-    inputNum = 0;\r
-    startClock = clock();\r
-    for ( i = count; i; --i ) {\r
-        function( inputs_int64[ inputNum ] );\r
-        inputNum = ( inputNum + 1 ) & ( numInputs_int64 - 1 );\r
-    }\r
-    endClock = clock();\r
-    reportTime( count, endClock - startClock );\r
-\r
-}\r
-\r
-#ifdef FLOATX80\r
-\r
-static void time_a_int64_z_floatx80( floatx80 function( int64 ) )\r
-{\r
-    clock_t startClock, endClock;\r
-    int32 count, i;\r
-    int8 inputNum;\r
-\r
-    count = 0;\r
-    inputNum = 0;\r
-    startClock = clock();\r
-    do {\r
-        for ( i = minIterations; i; --i ) {\r
-            function( inputs_int64[ inputNum ] );\r
-            inputNum = ( inputNum + 1 ) & ( numInputs_int64 - 1 );\r
-        }\r
-        count += minIterations;\r
-    } while ( clock() - startClock < CLOCKS_PER_SEC );\r
-    inputNum = 0;\r
-    startClock = clock();\r
-    for ( i = count; i; --i ) {\r
-        function( inputs_int64[ inputNum ] );\r
-        inputNum = ( inputNum + 1 ) & ( numInputs_int64 - 1 );\r
-    }\r
-    endClock = clock();\r
-    reportTime( count, endClock - startClock );\r
-\r
-}\r
-\r
-#endif\r
-\r
-#ifdef FLOAT128\r
-\r
-static void time_a_int64_z_float128( float128 function( int64 ) )\r
-{\r
-    clock_t startClock, endClock;\r
-    int32 count, i;\r
-    int8 inputNum;\r
-\r
-    count = 0;\r
-    inputNum = 0;\r
-    startClock = clock();\r
-    do {\r
-        for ( i = minIterations; i; --i ) {\r
-            function( inputs_int64[ inputNum ] );\r
-            inputNum = ( inputNum + 1 ) & ( numInputs_int64 - 1 );\r
-        }\r
-        count += minIterations;\r
-    } while ( clock() - startClock < CLOCKS_PER_SEC );\r
-    inputNum = 0;\r
-    startClock = clock();\r
-    for ( i = count; i; --i ) {\r
-        function( inputs_int64[ inputNum ] );\r
-        inputNum = ( inputNum + 1 ) & ( numInputs_int64 - 1 );\r
-    }\r
-    endClock = clock();\r
-    reportTime( count, endClock - startClock );\r
-\r
-}\r
-\r
-#endif\r
-\r
-enum {\r
-    numInputs_float32 = 32\r
-};\r
-\r
-static const float32 inputs_float32[ numInputs_float32 ] = {\r
-    0x4EFA0000, 0xC1D0B328, 0x80000000, 0x3E69A31E,\r
-    0xAF803EFF, 0x3F800000, 0x17BF8000, 0xE74A301A,\r
-    0x4E010003, 0x7EE3C75D, 0xBD803FE0, 0xBFFEFF00,\r
-    0x7981F800, 0x431FFFFC, 0xC100C000, 0x3D87EFFF,\r
-    0x4103FEFE, 0xBC000007, 0xBF01F7FF, 0x4E6C6B5C,\r
-    0xC187FFFE, 0xC58B9F13, 0x4F88007F, 0xDF004007,\r
-    0xB7FFD7FE, 0x7E8001FB, 0x46EFFBFF, 0x31C10000,\r
-    0xDB428661, 0x33F89B1F, 0xA3BFEFFF, 0x537BFFBE\r
-};\r
-\r
-static void time_a_float32_z_int32( int32 function( float32 ) )\r
-{\r
-    clock_t startClock, endClock;\r
-    int32 count, i;\r
-    int8 inputNum;\r
-\r
-    count = 0;\r
-    inputNum = 0;\r
-    startClock = clock();\r
-    do {\r
-        for ( i = minIterations; i; --i ) {\r
-            function( inputs_float32[ inputNum ] );\r
-            inputNum = ( inputNum + 1 ) & ( numInputs_float32 - 1 );\r
-        }\r
-        count += minIterations;\r
-    } while ( clock() - startClock < CLOCKS_PER_SEC );\r
-    inputNum = 0;\r
-    startClock = clock();\r
-    for ( i = count; i; --i ) {\r
-        function( inputs_float32[ inputNum ] );\r
-        inputNum = ( inputNum + 1 ) & ( numInputs_float32 - 1 );\r
-    }\r
-    endClock = clock();\r
-    reportTime( count, endClock - startClock );\r
-\r
-}\r
-\r
-static void time_a_float32_z_int64( int64 function( float32 ) )\r
-{\r
-    clock_t startClock, endClock;\r
-    int32 count, i;\r
-    int8 inputNum;\r
-\r
-    count = 0;\r
-    inputNum = 0;\r
-    startClock = clock();\r
-    do {\r
-        for ( i = minIterations; i; --i ) {\r
-            function( inputs_float32[ inputNum ] );\r
-            inputNum = ( inputNum + 1 ) & ( numInputs_float32 - 1 );\r
-        }\r
-        count += minIterations;\r
-    } while ( clock() - startClock < CLOCKS_PER_SEC );\r
-    inputNum = 0;\r
-    startClock = clock();\r
-    for ( i = count; i; --i ) {\r
-        function( inputs_float32[ inputNum ] );\r
-        inputNum = ( inputNum + 1 ) & ( numInputs_float32 - 1 );\r
-    }\r
-    endClock = clock();\r
-    reportTime( count, endClock - startClock );\r
-\r
-}\r
-\r
-static void time_a_float32_z_float64( float64 function( float32 ) )\r
-{\r
-    clock_t startClock, endClock;\r
-    int32 count, i;\r
-    int8 inputNum;\r
-\r
-    count = 0;\r
-    inputNum = 0;\r
-    startClock = clock();\r
-    do {\r
-        for ( i = minIterations; i; --i ) {\r
-            function( inputs_float32[ inputNum ] );\r
-            inputNum = ( inputNum + 1 ) & ( numInputs_float32 - 1 );\r
-        }\r
-        count += minIterations;\r
-    } while ( clock() - startClock < CLOCKS_PER_SEC );\r
-    inputNum = 0;\r
-    startClock = clock();\r
-    for ( i = count; i; --i ) {\r
-        function( inputs_float32[ inputNum ] );\r
-        inputNum = ( inputNum + 1 ) & ( numInputs_float32 - 1 );\r
-    }\r
-    endClock = clock();\r
-    reportTime( count, endClock - startClock );\r
-\r
-}\r
-\r
-#ifdef FLOATX80\r
-\r
-static void time_a_float32_z_floatx80( floatx80 function( float32 ) )\r
-{\r
-    clock_t startClock, endClock;\r
-    int32 count, i;\r
-    int8 inputNum;\r
-\r
-    count = 0;\r
-    inputNum = 0;\r
-    startClock = clock();\r
-    do {\r
-        for ( i = minIterations; i; --i ) {\r
-            function( inputs_float32[ inputNum ] );\r
-            inputNum = ( inputNum + 1 ) & ( numInputs_float32 - 1 );\r
-        }\r
-        count += minIterations;\r
-    } while ( clock() - startClock < CLOCKS_PER_SEC );\r
-    inputNum = 0;\r
-    startClock = clock();\r
-    for ( i = count; i; --i ) {\r
-        function( inputs_float32[ inputNum ] );\r
-        inputNum = ( inputNum + 1 ) & ( numInputs_float32 - 1 );\r
-    }\r
-    endClock = clock();\r
-    reportTime( count, endClock - startClock );\r
-\r
-}\r
-\r
-#endif\r
-\r
-#ifdef FLOAT128\r
-\r
-static void time_a_float32_z_float128( float128 function( float32 ) )\r
-{\r
-    clock_t startClock, endClock;\r
-    int32 count, i;\r
-    int8 inputNum;\r
-\r
-    count = 0;\r
-    inputNum = 0;\r
-    startClock = clock();\r
-    do {\r
-        for ( i = minIterations; i; --i ) {\r
-            function( inputs_float32[ inputNum ] );\r
-            inputNum = ( inputNum + 1 ) & ( numInputs_float32 - 1 );\r
-        }\r
-        count += minIterations;\r
-    } while ( clock() - startClock < CLOCKS_PER_SEC );\r
-    inputNum = 0;\r
-    startClock = clock();\r
-    for ( i = count; i; --i ) {\r
-        function( inputs_float32[ inputNum ] );\r
-        inputNum = ( inputNum + 1 ) & ( numInputs_float32 - 1 );\r
-    }\r
-    endClock = clock();\r
-    reportTime( count, endClock - startClock );\r
-\r
-}\r
-\r
-#endif\r
-\r
-static void time_az_float32( float32 function( float32 ) )\r
-{\r
-    clock_t startClock, endClock;\r
-    int32 count, i;\r
-    int8 inputNum;\r
-\r
-    count = 0;\r
-    inputNum = 0;\r
-    startClock = clock();\r
-    do {\r
-        for ( i = minIterations; i; --i ) {\r
-            function( inputs_float32[ inputNum ] );\r
-            inputNum = ( inputNum + 1 ) & ( numInputs_float32 - 1 );\r
-        }\r
-        count += minIterations;\r
-    } while ( clock() - startClock < CLOCKS_PER_SEC );\r
-    inputNum = 0;\r
-    startClock = clock();\r
-    for ( i = count; i; --i ) {\r
-        function( inputs_float32[ inputNum ] );\r
-        inputNum = ( inputNum + 1 ) & ( numInputs_float32 - 1 );\r
-    }\r
-    endClock = clock();\r
-    reportTime( count, endClock - startClock );\r
-\r
-}\r
-\r
-static void time_ab_float32_z_flag( flag function( float32, float32 ) )\r
-{\r
-    clock_t startClock, endClock;\r
-    int32 count, i;\r
-    int8 inputNumA, inputNumB;\r
-\r
-    count = 0;\r
-    inputNumA = 0;\r
-    inputNumB = 0;\r
-    startClock = clock();\r
-    do {\r
-        for ( i = minIterations; i; --i ) {\r
-            function(\r
-                inputs_float32[ inputNumA ], inputs_float32[ inputNumB ] );\r
-            inputNumA = ( inputNumA + 1 ) & ( numInputs_float32 - 1 );\r
-            if ( inputNumA == 0 ) ++inputNumB;\r
-            inputNumB = ( inputNumB + 1 ) & ( numInputs_float32 - 1 );\r
-        }\r
-        count += minIterations;\r
-    } while ( clock() - startClock < CLOCKS_PER_SEC );\r
-    inputNumA = 0;\r
-    inputNumB = 0;\r
-    startClock = clock();\r
-    for ( i = count; i; --i ) {\r
-            function(\r
-                inputs_float32[ inputNumA ], inputs_float32[ inputNumB ] );\r
-        inputNumA = ( inputNumA + 1 ) & ( numInputs_float32 - 1 );\r
-        if ( inputNumA == 0 ) ++inputNumB;\r
-        inputNumB = ( inputNumB + 1 ) & ( numInputs_float32 - 1 );\r
-    }\r
-    endClock = clock();\r
-    reportTime( count, endClock - startClock );\r
-\r
-}\r
-\r
-static void time_abz_float32( float32 function( float32, float32 ) )\r
-{\r
-    clock_t startClock, endClock;\r
-    int32 count, i;\r
-    int8 inputNumA, inputNumB;\r
-\r
-    count = 0;\r
-    inputNumA = 0;\r
-    inputNumB = 0;\r
-    startClock = clock();\r
-    do {\r
-        for ( i = minIterations; i; --i ) {\r
-            function(\r
-                inputs_float32[ inputNumA ], inputs_float32[ inputNumB ] );\r
-            inputNumA = ( inputNumA + 1 ) & ( numInputs_float32 - 1 );\r
-            if ( inputNumA == 0 ) ++inputNumB;\r
-            inputNumB = ( inputNumB + 1 ) & ( numInputs_float32 - 1 );\r
-        }\r
-        count += minIterations;\r
-    } while ( clock() - startClock < CLOCKS_PER_SEC );\r
-    inputNumA = 0;\r
-    inputNumB = 0;\r
-    startClock = clock();\r
-    for ( i = count; i; --i ) {\r
-            function(\r
-                inputs_float32[ inputNumA ], inputs_float32[ inputNumB ] );\r
-        inputNumA = ( inputNumA + 1 ) & ( numInputs_float32 - 1 );\r
-        if ( inputNumA == 0 ) ++inputNumB;\r
-        inputNumB = ( inputNumB + 1 ) & ( numInputs_float32 - 1 );\r
-    }\r
-    endClock = clock();\r
-    reportTime( count, endClock - startClock );\r
-\r
-}\r
-\r
-static const float32 inputs_float32_pos[ numInputs_float32 ] = {\r
-    0x4EFA0000, 0x41D0B328, 0x00000000, 0x3E69A31E,\r
-    0x2F803EFF, 0x3F800000, 0x17BF8000, 0x674A301A,\r
-    0x4E010003, 0x7EE3C75D, 0x3D803FE0, 0x3FFEFF00,\r
-    0x7981F800, 0x431FFFFC, 0x4100C000, 0x3D87EFFF,\r
-    0x4103FEFE, 0x3C000007, 0x3F01F7FF, 0x4E6C6B5C,\r
-    0x4187FFFE, 0x458B9F13, 0x4F88007F, 0x5F004007,\r
-    0x37FFD7FE, 0x7E8001FB, 0x46EFFBFF, 0x31C10000,\r
-    0x5B428661, 0x33F89B1F, 0x23BFEFFF, 0x537BFFBE\r
-};\r
-\r
-static void time_az_float32_pos( float32 function( float32 ) )\r
-{\r
-    clock_t startClock, endClock;\r
-    int32 count, i;\r
-    int8 inputNum;\r
-\r
-    count = 0;\r
-    inputNum = 0;\r
-    startClock = clock();\r
-    do {\r
-        for ( i = minIterations; i; --i ) {\r
-            function( inputs_float32_pos[ inputNum ] );\r
-            inputNum = ( inputNum + 1 ) & ( numInputs_float32 - 1 );\r
-        }\r
-        count += minIterations;\r
-    } while ( clock() - startClock < CLOCKS_PER_SEC );\r
-    inputNum = 0;\r
-    startClock = clock();\r
-    for ( i = count; i; --i ) {\r
-        function( inputs_float32_pos[ inputNum ] );\r
-        inputNum = ( inputNum + 1 ) & ( numInputs_float32 - 1 );\r
-    }\r
-    endClock = clock();\r
-    reportTime( count, endClock - startClock );\r
-\r
-}\r
-\r
-enum {\r
-    numInputs_float64 = 32\r
-};\r
-\r
-static const float64 inputs_float64[ numInputs_float64 ] = {\r
-    LIT64( 0x422FFFC008000000 ),\r
-    LIT64( 0xB7E0000480000000 ),\r
-    LIT64( 0xF3FD2546120B7935 ),\r
-    LIT64( 0x3FF0000000000000 ),\r
-    LIT64( 0xCE07F766F09588D6 ),\r
-    LIT64( 0x8000000000000000 ),\r
-    LIT64( 0x3FCE000400000000 ),\r
-    LIT64( 0x8313B60F0032BED8 ),\r
-    LIT64( 0xC1EFFFFFC0002000 ),\r
-    LIT64( 0x3FB3C75D224F2B0F ),\r
-    LIT64( 0x7FD00000004000FF ),\r
-    LIT64( 0xA12FFF8000001FFF ),\r
-    LIT64( 0x3EE0000000FE0000 ),\r
-    LIT64( 0x0010000080000004 ),\r
-    LIT64( 0x41CFFFFE00000020 ),\r
-    LIT64( 0x40303FFFFFFFFFFD ),\r
-    LIT64( 0x3FD000003FEFFFFF ),\r
-    LIT64( 0xBFD0000010000000 ),\r
-    LIT64( 0xB7FC6B5C16CA55CF ),\r
-    LIT64( 0x413EEB940B9D1301 ),\r
-    LIT64( 0xC7E00200001FFFFF ),\r
-    LIT64( 0x47F00021FFFFFFFE ),\r
-    LIT64( 0xBFFFFFFFF80000FF ),\r
-    LIT64( 0xC07FFFFFE00FFFFF ),\r
-    LIT64( 0x001497A63740C5E8 ),\r
-    LIT64( 0xC4BFFFE0001FFFFF ),\r
-    LIT64( 0x96FFDFFEFFFFFFFF ),\r
-    LIT64( 0x403FC000000001FE ),\r
-    LIT64( 0xFFD00000000001F6 ),\r
-    LIT64( 0x0640400002000000 ),\r
-    LIT64( 0x479CEE1E4F789FE0 ),\r
-    LIT64( 0xC237FFFFFFFFFDFE )\r
-};\r
-\r
-static void time_a_float64_z_int32( int32 function( float64 ) )\r
-{\r
-    clock_t startClock, endClock;\r
-    int32 count, i;\r
-    int8 inputNum;\r
-\r
-    count = 0;\r
-    inputNum = 0;\r
-    startClock = clock();\r
-    do {\r
-        for ( i = minIterations; i; --i ) {\r
-            function( inputs_float64[ inputNum ] );\r
-            inputNum = ( inputNum + 1 ) & ( numInputs_float64 - 1 );\r
-        }\r
-        count += minIterations;\r
-    } while ( clock() - startClock < CLOCKS_PER_SEC );\r
-    inputNum = 0;\r
-    startClock = clock();\r
-    for ( i = count; i; --i ) {\r
-        function( inputs_float64[ inputNum ] );\r
-        inputNum = ( inputNum + 1 ) & ( numInputs_float64 - 1 );\r
-    }\r
-    endClock = clock();\r
-    reportTime( count, endClock - startClock );\r
-\r
-}\r
-\r
-static void time_a_float64_z_int64( int64 function( float64 ) )\r
-{\r
-    clock_t startClock, endClock;\r
-    int32 count, i;\r
-    int8 inputNum;\r
-\r
-    count = 0;\r
-    inputNum = 0;\r
-    startClock = clock();\r
-    do {\r
-        for ( i = minIterations; i; --i ) {\r
-            function( inputs_float64[ inputNum ] );\r
-            inputNum = ( inputNum + 1 ) & ( numInputs_float64 - 1 );\r
-        }\r
-        count += minIterations;\r
-    } while ( clock() - startClock < CLOCKS_PER_SEC );\r
-    inputNum = 0;\r
-    startClock = clock();\r
-    for ( i = count; i; --i ) {\r
-        function( inputs_float64[ inputNum ] );\r
-        inputNum = ( inputNum + 1 ) & ( numInputs_float64 - 1 );\r
-    }\r
-    endClock = clock();\r
-    reportTime( count, endClock - startClock );\r
-\r
-}\r
-\r
-static void time_a_float64_z_float32( float32 function( float64 ) )\r
-{\r
-    clock_t startClock, endClock;\r
-    int32 count, i;\r
-    int8 inputNum;\r
-\r
-    count = 0;\r
-    inputNum = 0;\r
-    startClock = clock();\r
-    do {\r
-        for ( i = minIterations; i; --i ) {\r
-            function( inputs_float64[ inputNum ] );\r
-            inputNum = ( inputNum + 1 ) & ( numInputs_float64 - 1 );\r
-        }\r
-        count += minIterations;\r
-    } while ( clock() - startClock < CLOCKS_PER_SEC );\r
-    inputNum = 0;\r
-    startClock = clock();\r
-    for ( i = count; i; --i ) {\r
-        function( inputs_float64[ inputNum ] );\r
-        inputNum = ( inputNum + 1 ) & ( numInputs_float64 - 1 );\r
-    }\r
-    endClock = clock();\r
-    reportTime( count, endClock - startClock );\r
-\r
-}\r
-\r
-#ifdef FLOATX80\r
-\r
-static void time_a_float64_z_floatx80( floatx80 function( float64 ) )\r
-{\r
-    clock_t startClock, endClock;\r
-    int32 count, i;\r
-    int8 inputNum;\r
-\r
-    count = 0;\r
-    inputNum = 0;\r
-    startClock = clock();\r
-    do {\r
-        for ( i = minIterations; i; --i ) {\r
-            function( inputs_float64[ inputNum ] );\r
-            inputNum = ( inputNum + 1 ) & ( numInputs_float64 - 1 );\r
-        }\r
-        count += minIterations;\r
-    } while ( clock() - startClock < CLOCKS_PER_SEC );\r
-    inputNum = 0;\r
-    startClock = clock();\r
-    for ( i = count; i; --i ) {\r
-        function( inputs_float64[ inputNum ] );\r
-        inputNum = ( inputNum + 1 ) & ( numInputs_float64 - 1 );\r
-    }\r
-    endClock = clock();\r
-    reportTime( count, endClock - startClock );\r
-\r
-}\r
-\r
-#endif\r
-\r
-#ifdef FLOAT128\r
-\r
-static void time_a_float64_z_float128( float128 function( float64 ) )\r
-{\r
-    clock_t startClock, endClock;\r
-    int32 count, i;\r
-    int8 inputNum;\r
-\r
-    count = 0;\r
-    inputNum = 0;\r
-    startClock = clock();\r
-    do {\r
-        for ( i = minIterations; i; --i ) {\r
-            function( inputs_float64[ inputNum ] );\r
-            inputNum = ( inputNum + 1 ) & ( numInputs_float64 - 1 );\r
-        }\r
-        count += minIterations;\r
-    } while ( clock() - startClock < CLOCKS_PER_SEC );\r
-    inputNum = 0;\r
-    startClock = clock();\r
-    for ( i = count; i; --i ) {\r
-        function( inputs_float64[ inputNum ] );\r
-        inputNum = ( inputNum + 1 ) & ( numInputs_float64 - 1 );\r
-    }\r
-    endClock = clock();\r
-    reportTime( count, endClock - startClock );\r
-\r
-}\r
-\r
-#endif\r
-\r
-static void time_az_float64( float64 function( float64 ) )\r
-{\r
-    clock_t startClock, endClock;\r
-    int32 count, i;\r
-    int8 inputNum;\r
-\r
-    count = 0;\r
-    inputNum = 0;\r
-    startClock = clock();\r
-    do {\r
-        for ( i = minIterations; i; --i ) {\r
-            function( inputs_float64[ inputNum ] );\r
-            inputNum = ( inputNum + 1 ) & ( numInputs_float64 - 1 );\r
-        }\r
-        count += minIterations;\r
-    } while ( clock() - startClock < CLOCKS_PER_SEC );\r
-    inputNum = 0;\r
-    startClock = clock();\r
-    for ( i = count; i; --i ) {\r
-        function( inputs_float64[ inputNum ] );\r
-        inputNum = ( inputNum + 1 ) & ( numInputs_float64 - 1 );\r
-    }\r
-    endClock = clock();\r
-    reportTime( count, endClock - startClock );\r
-\r
-}\r
-\r
-static void time_ab_float64_z_flag( flag function( float64, float64 ) )\r
-{\r
-    clock_t startClock, endClock;\r
-    int32 count, i;\r
-    int8 inputNumA, inputNumB;\r
-\r
-    count = 0;\r
-    inputNumA = 0;\r
-    inputNumB = 0;\r
-    startClock = clock();\r
-    do {\r
-        for ( i = minIterations; i; --i ) {\r
-            function(\r
-                inputs_float64[ inputNumA ], inputs_float64[ inputNumB ] );\r
-            inputNumA = ( inputNumA + 1 ) & ( numInputs_float64 - 1 );\r
-            if ( inputNumA == 0 ) ++inputNumB;\r
-            inputNumB = ( inputNumB + 1 ) & ( numInputs_float64 - 1 );\r
-        }\r
-        count += minIterations;\r
-    } while ( clock() - startClock < CLOCKS_PER_SEC );\r
-    inputNumA = 0;\r
-    inputNumB = 0;\r
-    startClock = clock();\r
-    for ( i = count; i; --i ) {\r
-            function(\r
-                inputs_float64[ inputNumA ], inputs_float64[ inputNumB ] );\r
-        inputNumA = ( inputNumA + 1 ) & ( numInputs_float64 - 1 );\r
-        if ( inputNumA == 0 ) ++inputNumB;\r
-        inputNumB = ( inputNumB + 1 ) & ( numInputs_float64 - 1 );\r
-    }\r
-    endClock = clock();\r
-    reportTime( count, endClock - startClock );\r
-\r
-}\r
-\r
-static void time_abz_float64( float64 function( float64, float64 ) )\r
-{\r
-    clock_t startClock, endClock;\r
-    int32 count, i;\r
-    int8 inputNumA, inputNumB;\r
-\r
-    count = 0;\r
-    inputNumA = 0;\r
-    inputNumB = 0;\r
-    startClock = clock();\r
-    do {\r
-        for ( i = minIterations; i; --i ) {\r
-            function(\r
-                inputs_float64[ inputNumA ], inputs_float64[ inputNumB ] );\r
-            inputNumA = ( inputNumA + 1 ) & ( numInputs_float64 - 1 );\r
-            if ( inputNumA == 0 ) ++inputNumB;\r
-            inputNumB = ( inputNumB + 1 ) & ( numInputs_float64 - 1 );\r
-        }\r
-        count += minIterations;\r
-    } while ( clock() - startClock < CLOCKS_PER_SEC );\r
-    inputNumA = 0;\r
-    inputNumB = 0;\r
-    startClock = clock();\r
-    for ( i = count; i; --i ) {\r
-            function(\r
-                inputs_float64[ inputNumA ], inputs_float64[ inputNumB ] );\r
-        inputNumA = ( inputNumA + 1 ) & ( numInputs_float64 - 1 );\r
-        if ( inputNumA == 0 ) ++inputNumB;\r
-        inputNumB = ( inputNumB + 1 ) & ( numInputs_float64 - 1 );\r
-    }\r
-    endClock = clock();\r
-    reportTime( count, endClock - startClock );\r
-\r
-}\r
-\r
-static const float64 inputs_float64_pos[ numInputs_float64 ] = {\r
-    LIT64( 0x422FFFC008000000 ),\r
-    LIT64( 0x37E0000480000000 ),\r
-    LIT64( 0x73FD2546120B7935 ),\r
-    LIT64( 0x3FF0000000000000 ),\r
-    LIT64( 0x4E07F766F09588D6 ),\r
-    LIT64( 0x0000000000000000 ),\r
-    LIT64( 0x3FCE000400000000 ),\r
-    LIT64( 0x0313B60F0032BED8 ),\r
-    LIT64( 0x41EFFFFFC0002000 ),\r
-    LIT64( 0x3FB3C75D224F2B0F ),\r
-    LIT64( 0x7FD00000004000FF ),\r
-    LIT64( 0x212FFF8000001FFF ),\r
-    LIT64( 0x3EE0000000FE0000 ),\r
-    LIT64( 0x0010000080000004 ),\r
-    LIT64( 0x41CFFFFE00000020 ),\r
-    LIT64( 0x40303FFFFFFFFFFD ),\r
-    LIT64( 0x3FD000003FEFFFFF ),\r
-    LIT64( 0x3FD0000010000000 ),\r
-    LIT64( 0x37FC6B5C16CA55CF ),\r
-    LIT64( 0x413EEB940B9D1301 ),\r
-    LIT64( 0x47E00200001FFFFF ),\r
-    LIT64( 0x47F00021FFFFFFFE ),\r
-    LIT64( 0x3FFFFFFFF80000FF ),\r
-    LIT64( 0x407FFFFFE00FFFFF ),\r
-    LIT64( 0x001497A63740C5E8 ),\r
-    LIT64( 0x44BFFFE0001FFFFF ),\r
-    LIT64( 0x16FFDFFEFFFFFFFF ),\r
-    LIT64( 0x403FC000000001FE ),\r
-    LIT64( 0x7FD00000000001F6 ),\r
-    LIT64( 0x0640400002000000 ),\r
-    LIT64( 0x479CEE1E4F789FE0 ),\r
-    LIT64( 0x4237FFFFFFFFFDFE )\r
-};\r
-\r
-static void time_az_float64_pos( float64 function( float64 ) )\r
-{\r
-    clock_t startClock, endClock;\r
-    int32 count, i;\r
-    int8 inputNum;\r
-\r
-    count = 0;\r
-    inputNum = 0;\r
-    startClock = clock();\r
-    do {\r
-        for ( i = minIterations; i; --i ) {\r
-            function( inputs_float64_pos[ inputNum ] );\r
-            inputNum = ( inputNum + 1 ) & ( numInputs_float64 - 1 );\r
-        }\r
-        count += minIterations;\r
-    } while ( clock() - startClock < CLOCKS_PER_SEC );\r
-    inputNum = 0;\r
-    startClock = clock();\r
-    for ( i = count; i; --i ) {\r
-        function( inputs_float64_pos[ inputNum ] );\r
-        inputNum = ( inputNum + 1 ) & ( numInputs_float64 - 1 );\r
-    }\r
-    endClock = clock();\r
-    reportTime( count, endClock - startClock );\r
-\r
-}\r
-\r
-#ifdef FLOATX80\r
-\r
-enum {\r
-    numInputs_floatx80 = 32\r
-};\r
-\r
-static const struct {\r
-    bits16 high;\r
-    bits64 low;\r
-} inputs_floatx80[ numInputs_floatx80 ] = {\r
-    { 0xC03F, LIT64( 0xA9BE15A19C1E8B62 ) },\r
-    { 0x8000, LIT64( 0x0000000000000000 ) },\r
-    { 0x75A8, LIT64( 0xE59591E4788957A5 ) },\r
-    { 0xBFFF, LIT64( 0xFFF0000000000040 ) },\r
-    { 0x0CD8, LIT64( 0xFC000000000007FE ) },\r
-    { 0x43BA, LIT64( 0x99A4000000000000 ) },\r
-    { 0x3FFF, LIT64( 0x8000000000000000 ) },\r
-    { 0x4081, LIT64( 0x94FBF1BCEB5545F0 ) },\r
-    { 0x403E, LIT64( 0xFFF0000000002000 ) },\r
-    { 0x3FFE, LIT64( 0xC860E3C75D224F28 ) },\r
-    { 0x407E, LIT64( 0xFC00000FFFFFFFFE ) },\r
-    { 0x737A, LIT64( 0x800000007FFDFFFE ) },\r
-    { 0x4044, LIT64( 0xFFFFFF80000FFFFF ) },\r
-    { 0xBBFE, LIT64( 0x8000040000001FFE ) },\r
-    { 0xC002, LIT64( 0xFF80000000000020 ) },\r
-    { 0xDE8D, LIT64( 0xFFFFFFFFFFE00004 ) },\r
-    { 0xC004, LIT64( 0x8000000000003FFB ) },\r
-    { 0x407F, LIT64( 0x800000000003FFFE ) },\r
-    { 0xC000, LIT64( 0xA459EE6A5C16CA55 ) },\r
-    { 0x8003, LIT64( 0xC42CBF7399AEEB94 ) },\r
-    { 0xBF7F, LIT64( 0xF800000000000006 ) },\r
-    { 0xC07F, LIT64( 0xBF56BE8871F28FEA ) },\r
-    { 0xC07E, LIT64( 0xFFFF77FFFFFFFFFE ) },\r
-    { 0xADC9, LIT64( 0x8000000FFFFFFFDE ) },\r
-    { 0xC001, LIT64( 0xEFF7FFFFFFFFFFFF ) },\r
-    { 0x4001, LIT64( 0xBE84F30125C497A6 ) },\r
-    { 0xC06B, LIT64( 0xEFFFFFFFFFFFFFFF ) },\r
-    { 0x4080, LIT64( 0xFFFFFFFFBFFFFFFF ) },\r
-    { 0x87E9, LIT64( 0x81FFFFFFFFFFFBFF ) },\r
-    { 0xA63F, LIT64( 0x801FFFFFFEFFFFFE ) },\r
-    { 0x403C, LIT64( 0x801FFFFFFFF7FFFF ) },\r
-    { 0x4018, LIT64( 0x8000000000080003 ) }\r
-};\r
-\r
-static void time_a_floatx80_z_int32( int32 function( floatx80 ) )\r
-{\r
-    clock_t startClock, endClock;\r
-    int32 count, i;\r
-    int8 inputNum;\r
-    floatx80 a;\r
-\r
-    count = 0;\r
-    inputNum = 0;\r
-    startClock = clock();\r
-    do {\r
-        for ( i = minIterations; i; --i ) {\r
-            a.low = inputs_floatx80[ inputNum ].low;\r
-            a.high = inputs_floatx80[ inputNum ].high;\r
-            function( a );\r
-            inputNum = ( inputNum + 1 ) & ( numInputs_floatx80 - 1 );\r
-        }\r
-        count += minIterations;\r
-    } while ( clock() - startClock < CLOCKS_PER_SEC );\r
-    inputNum = 0;\r
-    startClock = clock();\r
-    for ( i = count; i; --i ) {\r
-        a.low = inputs_floatx80[ inputNum ].low;\r
-        a.high = inputs_floatx80[ inputNum ].high;\r
-        function( a );\r
-        inputNum = ( inputNum + 1 ) & ( numInputs_floatx80 - 1 );\r
-    }\r
-    endClock = clock();\r
-    reportTime( count, endClock - startClock );\r
-\r
-}\r
-\r
-static void time_a_floatx80_z_int64( int64 function( floatx80 ) )\r
-{\r
-    clock_t startClock, endClock;\r
-    int32 count, i;\r
-    int8 inputNum;\r
-    floatx80 a;\r
-\r
-    count = 0;\r
-    inputNum = 0;\r
-    startClock = clock();\r
-    do {\r
-        for ( i = minIterations; i; --i ) {\r
-            a.low = inputs_floatx80[ inputNum ].low;\r
-            a.high = inputs_floatx80[ inputNum ].high;\r
-            function( a );\r
-            inputNum = ( inputNum + 1 ) & ( numInputs_floatx80 - 1 );\r
-        }\r
-        count += minIterations;\r
-    } while ( clock() - startClock < CLOCKS_PER_SEC );\r
-    inputNum = 0;\r
-    startClock = clock();\r
-    for ( i = count; i; --i ) {\r
-        a.low = inputs_floatx80[ inputNum ].low;\r
-        a.high = inputs_floatx80[ inputNum ].high;\r
-        function( a );\r
-        inputNum = ( inputNum + 1 ) & ( numInputs_floatx80 - 1 );\r
-    }\r
-    endClock = clock();\r
-    reportTime( count, endClock - startClock );\r
-\r
-}\r
-\r
-static void time_a_floatx80_z_float32( float32 function( floatx80 ) )\r
-{\r
-    clock_t startClock, endClock;\r
-    int32 count, i;\r
-    int8 inputNum;\r
-    floatx80 a;\r
-\r
-    count = 0;\r
-    inputNum = 0;\r
-    startClock = clock();\r
-    do {\r
-        for ( i = minIterations; i; --i ) {\r
-            a.low = inputs_floatx80[ inputNum ].low;\r
-            a.high = inputs_floatx80[ inputNum ].high;\r
-            function( a );\r
-            inputNum = ( inputNum + 1 ) & ( numInputs_floatx80 - 1 );\r
-        }\r
-        count += minIterations;\r
-    } while ( clock() - startClock < CLOCKS_PER_SEC );\r
-    inputNum = 0;\r
-    startClock = clock();\r
-    for ( i = count; i; --i ) {\r
-        a.low = inputs_floatx80[ inputNum ].low;\r
-        a.high = inputs_floatx80[ inputNum ].high;\r
-        function( a );\r
-        inputNum = ( inputNum + 1 ) & ( numInputs_floatx80 - 1 );\r
-    }\r
-    endClock = clock();\r
-    reportTime( count, endClock - startClock );\r
-\r
-}\r
-\r
-static void time_a_floatx80_z_float64( float64 function( floatx80 ) )\r
-{\r
-    clock_t startClock, endClock;\r
-    int32 count, i;\r
-    int8 inputNum;\r
-    floatx80 a;\r
-\r
-    count = 0;\r
-    inputNum = 0;\r
-    startClock = clock();\r
-    do {\r
-        for ( i = minIterations; i; --i ) {\r
-            a.low = inputs_floatx80[ inputNum ].low;\r
-            a.high = inputs_floatx80[ inputNum ].high;\r
-            function( a );\r
-            inputNum = ( inputNum + 1 ) & ( numInputs_floatx80 - 1 );\r
-        }\r
-        count += minIterations;\r
-    } while ( clock() - startClock < CLOCKS_PER_SEC );\r
-    inputNum = 0;\r
-    startClock = clock();\r
-    for ( i = count; i; --i ) {\r
-        a.low = inputs_floatx80[ inputNum ].low;\r
-        a.high = inputs_floatx80[ inputNum ].high;\r
-        function( a );\r
-        inputNum = ( inputNum + 1 ) & ( numInputs_floatx80 - 1 );\r
-    }\r
-    endClock = clock();\r
-    reportTime( count, endClock - startClock );\r
-\r
-}\r
-\r
-#ifdef FLOAT128\r
-\r
-static void time_a_floatx80_z_float128( float128 function( floatx80 ) )\r
-{\r
-    clock_t startClock, endClock;\r
-    int32 count, i;\r
-    int8 inputNum;\r
-    floatx80 a;\r
-\r
-    count = 0;\r
-    inputNum = 0;\r
-    startClock = clock();\r
-    do {\r
-        for ( i = minIterations; i; --i ) {\r
-            a.low = inputs_floatx80[ inputNum ].low;\r
-            a.high = inputs_floatx80[ inputNum ].high;\r
-            function( a );\r
-            inputNum = ( inputNum + 1 ) & ( numInputs_floatx80 - 1 );\r
-        }\r
-        count += minIterations;\r
-    } while ( clock() - startClock < CLOCKS_PER_SEC );\r
-    inputNum = 0;\r
-    startClock = clock();\r
-    for ( i = count; i; --i ) {\r
-        a.low = inputs_floatx80[ inputNum ].low;\r
-        a.high = inputs_floatx80[ inputNum ].high;\r
-        function( a );\r
-        inputNum = ( inputNum + 1 ) & ( numInputs_floatx80 - 1 );\r
-    }\r
-    endClock = clock();\r
-    reportTime( count, endClock - startClock );\r
-\r
-}\r
-\r
-#endif\r
-\r
-static void time_az_floatx80( floatx80 function( floatx80 ) )\r
-{\r
-    clock_t startClock, endClock;\r
-    int32 count, i;\r
-    int8 inputNum;\r
-    floatx80 a;\r
-\r
-    count = 0;\r
-    inputNum = 0;\r
-    startClock = clock();\r
-    do {\r
-        for ( i = minIterations; i; --i ) {\r
-            a.low = inputs_floatx80[ inputNum ].low;\r
-            a.high = inputs_floatx80[ inputNum ].high;\r
-            function( a );\r
-            inputNum = ( inputNum + 1 ) & ( numInputs_floatx80 - 1 );\r
-        }\r
-        count += minIterations;\r
-    } while ( clock() - startClock < CLOCKS_PER_SEC );\r
-    inputNum = 0;\r
-    startClock = clock();\r
-    for ( i = count; i; --i ) {\r
-        a.low = inputs_floatx80[ inputNum ].low;\r
-        a.high = inputs_floatx80[ inputNum ].high;\r
-        function( a );\r
-        inputNum = ( inputNum + 1 ) & ( numInputs_floatx80 - 1 );\r
-    }\r
-    endClock = clock();\r
-    reportTime( count, endClock - startClock );\r
-\r
-}\r
-\r
-static void time_ab_floatx80_z_flag( flag function( floatx80, floatx80 ) )\r
-{\r
-    clock_t startClock, endClock;\r
-    int32 count, i;\r
-    int8 inputNumA, inputNumB;\r
-    floatx80 a, b;\r
-\r
-    count = 0;\r
-    inputNumA = 0;\r
-    inputNumB = 0;\r
-    startClock = clock();\r
-    do {\r
-        for ( i = minIterations; i; --i ) {\r
-            a.low = inputs_floatx80[ inputNumA ].low;\r
-            a.high = inputs_floatx80[ inputNumA ].high;\r
-            b.low = inputs_floatx80[ inputNumB ].low;\r
-            b.high = inputs_floatx80[ inputNumB ].high;\r
-            function( a, b );\r
-            inputNumA = ( inputNumA + 1 ) & ( numInputs_floatx80 - 1 );\r
-            if ( inputNumA == 0 ) ++inputNumB;\r
-            inputNumB = ( inputNumB + 1 ) & ( numInputs_floatx80 - 1 );\r
-        }\r
-        count += minIterations;\r
-    } while ( clock() - startClock < CLOCKS_PER_SEC );\r
-    inputNumA = 0;\r
-    inputNumB = 0;\r
-    startClock = clock();\r
-    for ( i = count; i; --i ) {\r
-        a.low = inputs_floatx80[ inputNumA ].low;\r
-        a.high = inputs_floatx80[ inputNumA ].high;\r
-        b.low = inputs_floatx80[ inputNumB ].low;\r
-        b.high = inputs_floatx80[ inputNumB ].high;\r
-        function( a, b );\r
-        inputNumA = ( inputNumA + 1 ) & ( numInputs_floatx80 - 1 );\r
-        if ( inputNumA == 0 ) ++inputNumB;\r
-        inputNumB = ( inputNumB + 1 ) & ( numInputs_floatx80 - 1 );\r
-    }\r
-    endClock = clock();\r
-    reportTime( count, endClock - startClock );\r
-\r
-}\r
-\r
-static void time_abz_floatx80( floatx80 function( floatx80, floatx80 ) )\r
-{\r
-    clock_t startClock, endClock;\r
-    int32 count, i;\r
-    int8 inputNumA, inputNumB;\r
-    floatx80 a, b;\r
-\r
-    count = 0;\r
-    inputNumA = 0;\r
-    inputNumB = 0;\r
-    startClock = clock();\r
-    do {\r
-        for ( i = minIterations; i; --i ) {\r
-            a.low = inputs_floatx80[ inputNumA ].low;\r
-            a.high = inputs_floatx80[ inputNumA ].high;\r
-            b.low = inputs_floatx80[ inputNumB ].low;\r
-            b.high = inputs_floatx80[ inputNumB ].high;\r
-            function( a, b );\r
-            inputNumA = ( inputNumA + 1 ) & ( numInputs_floatx80 - 1 );\r
-            if ( inputNumA == 0 ) ++inputNumB;\r
-            inputNumB = ( inputNumB + 1 ) & ( numInputs_floatx80 - 1 );\r
-        }\r
-        count += minIterations;\r
-    } while ( clock() - startClock < CLOCKS_PER_SEC );\r
-    inputNumA = 0;\r
-    inputNumB = 0;\r
-    startClock = clock();\r
-    for ( i = count; i; --i ) {\r
-        a.low = inputs_floatx80[ inputNumA ].low;\r
-        a.high = inputs_floatx80[ inputNumA ].high;\r
-        b.low = inputs_floatx80[ inputNumB ].low;\r
-        b.high = inputs_floatx80[ inputNumB ].high;\r
-        function( a, b );\r
-        inputNumA = ( inputNumA + 1 ) & ( numInputs_floatx80 - 1 );\r
-        if ( inputNumA == 0 ) ++inputNumB;\r
-        inputNumB = ( inputNumB + 1 ) & ( numInputs_floatx80 - 1 );\r
-    }\r
-    endClock = clock();\r
-    reportTime( count, endClock - startClock );\r
-\r
-}\r
-\r
-static const struct {\r
-    bits16 high;\r
-    bits64 low;\r
-} inputs_floatx80_pos[ numInputs_floatx80 ] = {\r
-    { 0x403F, LIT64( 0xA9BE15A19C1E8B62 ) },\r
-    { 0x0000, LIT64( 0x0000000000000000 ) },\r
-    { 0x75A8, LIT64( 0xE59591E4788957A5 ) },\r
-    { 0x3FFF, LIT64( 0xFFF0000000000040 ) },\r
-    { 0x0CD8, LIT64( 0xFC000000000007FE ) },\r
-    { 0x43BA, LIT64( 0x99A4000000000000 ) },\r
-    { 0x3FFF, LIT64( 0x8000000000000000 ) },\r
-    { 0x4081, LIT64( 0x94FBF1BCEB5545F0 ) },\r
-    { 0x403E, LIT64( 0xFFF0000000002000 ) },\r
-    { 0x3FFE, LIT64( 0xC860E3C75D224F28 ) },\r
-    { 0x407E, LIT64( 0xFC00000FFFFFFFFE ) },\r
-    { 0x737A, LIT64( 0x800000007FFDFFFE ) },\r
-    { 0x4044, LIT64( 0xFFFFFF80000FFFFF ) },\r
-    { 0x3BFE, LIT64( 0x8000040000001FFE ) },\r
-    { 0x4002, LIT64( 0xFF80000000000020 ) },\r
-    { 0x5E8D, LIT64( 0xFFFFFFFFFFE00004 ) },\r
-    { 0x4004, LIT64( 0x8000000000003FFB ) },\r
-    { 0x407F, LIT64( 0x800000000003FFFE ) },\r
-    { 0x4000, LIT64( 0xA459EE6A5C16CA55 ) },\r
-    { 0x0003, LIT64( 0xC42CBF7399AEEB94 ) },\r
-    { 0x3F7F, LIT64( 0xF800000000000006 ) },\r
-    { 0x407F, LIT64( 0xBF56BE8871F28FEA ) },\r
-    { 0x407E, LIT64( 0xFFFF77FFFFFFFFFE ) },\r
-    { 0x2DC9, LIT64( 0x8000000FFFFFFFDE ) },\r
-    { 0x4001, LIT64( 0xEFF7FFFFFFFFFFFF ) },\r
-    { 0x4001, LIT64( 0xBE84F30125C497A6 ) },\r
-    { 0x406B, LIT64( 0xEFFFFFFFFFFFFFFF ) },\r
-    { 0x4080, LIT64( 0xFFFFFFFFBFFFFFFF ) },\r
-    { 0x07E9, LIT64( 0x81FFFFFFFFFFFBFF ) },\r
-    { 0x263F, LIT64( 0x801FFFFFFEFFFFFE ) },\r
-    { 0x403C, LIT64( 0x801FFFFFFFF7FFFF ) },\r
-    { 0x4018, LIT64( 0x8000000000080003 ) }\r
-};\r
-\r
-static void time_az_floatx80_pos( floatx80 function( floatx80 ) )\r
-{\r
-    clock_t startClock, endClock;\r
-    int32 count, i;\r
-    int8 inputNum;\r
-    floatx80 a;\r
-\r
-    count = 0;\r
-    inputNum = 0;\r
-    startClock = clock();\r
-    do {\r
-        for ( i = minIterations; i; --i ) {\r
-            a.low = inputs_floatx80_pos[ inputNum ].low;\r
-            a.high = inputs_floatx80_pos[ inputNum ].high;\r
-            function( a );\r
-            inputNum = ( inputNum + 1 ) & ( numInputs_floatx80 - 1 );\r
-        }\r
-        count += minIterations;\r
-    } while ( clock() - startClock < CLOCKS_PER_SEC );\r
-    inputNum = 0;\r
-    startClock = clock();\r
-    for ( i = count; i; --i ) {\r
-        a.low = inputs_floatx80_pos[ inputNum ].low;\r
-        a.high = inputs_floatx80_pos[ inputNum ].high;\r
-        function( a );\r
-        inputNum = ( inputNum + 1 ) & ( numInputs_floatx80 - 1 );\r
-    }\r
-    endClock = clock();\r
-    reportTime( count, endClock - startClock );\r
-\r
-}\r
-\r
-#endif\r
-\r
-#ifdef FLOAT128\r
-\r
-enum {\r
-    numInputs_float128 = 32\r
-};\r
-\r
-static const struct {\r
-    bits64 high, low;\r
-} inputs_float128[ numInputs_float128 ] = {\r
-    { LIT64( 0x3FDA200000100000 ), LIT64( 0x0000000000000000 ) },\r
-    { LIT64( 0x3FFF000000000000 ), LIT64( 0x0000000000000000 ) },\r
-    { LIT64( 0x85F14776190C8306 ), LIT64( 0xD8715F4E3D54BB92 ) },\r
-    { LIT64( 0xF2B00000007FFFFF ), LIT64( 0xFFFFFFFFFFF7FFFF ) },\r
-    { LIT64( 0x8000000000000000 ), LIT64( 0x0000000000000000 ) },\r
-    { LIT64( 0xBFFFFFFFFFE00000 ), LIT64( 0x0000008000000000 ) },\r
-    { LIT64( 0x407F1719CE722F3E ), LIT64( 0xDA6B3FE5FF29425B ) },\r
-    { LIT64( 0x43FFFF8000000000 ), LIT64( 0x0000000000400000 ) },\r
-    { LIT64( 0x401E000000000100 ), LIT64( 0x0000000000002000 ) },\r
-    { LIT64( 0x3FFED71DACDA8E47 ), LIT64( 0x4860E3C75D224F28 ) },\r
-    { LIT64( 0xBF7ECFC1E90647D1 ), LIT64( 0x7A124FE55623EE44 ) },\r
-    { LIT64( 0x0DF7007FFFFFFFFF ), LIT64( 0xFFFFFFFFEFFFFFFF ) },\r
-    { LIT64( 0x3FE5FFEFFFFFFFFF ), LIT64( 0xFFFFFFFFFFFFEFFF ) },\r
-    { LIT64( 0x403FFFFFFFFFFFFF ), LIT64( 0xFFFFFFFFFFFFFBFE ) },\r
-    { LIT64( 0xBFFB2FBF7399AFEB ), LIT64( 0xA459EE6A5C16CA55 ) },\r
-    { LIT64( 0xBDB8FFFFFFFFFFFC ), LIT64( 0x0000000000000400 ) },\r
-    { LIT64( 0x3FC8FFDFFFFFFFFF ), LIT64( 0xFFFFFFFFF0000000 ) },\r
-    { LIT64( 0x3FFBFFFFFFDFFFFF ), LIT64( 0xFFF8000000000000 ) },\r
-    { LIT64( 0x407043C11737BE84 ), LIT64( 0xDDD58212ADC937F4 ) },\r
-    { LIT64( 0x8001000000000000 ), LIT64( 0x0000001000000001 ) },\r
-    { LIT64( 0xC036FFFFFFFFFFFF ), LIT64( 0xFE40000000000000 ) },\r
-    { LIT64( 0x4002FFFFFE000002 ), LIT64( 0x0000000000000000 ) },\r
-    { LIT64( 0x4000C3FEDE897773 ), LIT64( 0x326AC4FD8EFBE6DC ) },\r
-    { LIT64( 0xBFFF0000000FFFFF ), LIT64( 0xFFFFFE0000000000 ) },\r
-    { LIT64( 0x62C3E502146E426D ), LIT64( 0x43F3CAA0DC7DF1A0 ) },\r
-    { LIT64( 0xB5CBD32E52BB570E ), LIT64( 0xBCC477CB11C6236C ) },\r
-    { LIT64( 0xE228FFFFFFC00000 ), LIT64( 0x0000000000000000 ) },\r
-    { LIT64( 0x3F80000000000000 ), LIT64( 0x0000000080000008 ) },\r
-    { LIT64( 0xC1AFFFDFFFFFFFFF ), LIT64( 0xFFFC000000000000 ) },\r
-    { LIT64( 0xC96F000000000000 ), LIT64( 0x00000001FFFBFFFF ) },\r
-    { LIT64( 0x3DE09BFE7923A338 ), LIT64( 0xBCC8FBBD7CEC1F4F ) },\r
-    { LIT64( 0x401CFFFFFFFFFFFF ), LIT64( 0xFFFFFFFEFFFFFF80 ) }\r
-};\r
-\r
-static void time_a_float128_z_int32( int32 function( float128 ) )\r
-{\r
-    clock_t startClock, endClock;\r
-    int32 count, i;\r
-    int8 inputNum;\r
-    float128 a;\r
-\r
-    count = 0;\r
-    inputNum = 0;\r
-    startClock = clock();\r
-    do {\r
-        for ( i = minIterations; i; --i ) {\r
-            a.low = inputs_float128[ inputNum ].low;\r
-            a.high = inputs_float128[ inputNum ].high;\r
-            function( a );\r
-            inputNum = ( inputNum + 1 ) & ( numInputs_float128 - 1 );\r
-        }\r
-        count += minIterations;\r
-    } while ( clock() - startClock < CLOCKS_PER_SEC );\r
-    inputNum = 0;\r
-    startClock = clock();\r
-    for ( i = count; i; --i ) {\r
-        a.low = inputs_float128[ inputNum ].low;\r
-        a.high = inputs_float128[ inputNum ].high;\r
-        function( a );\r
-        inputNum = ( inputNum + 1 ) & ( numInputs_float128 - 1 );\r
-    }\r
-    endClock = clock();\r
-    reportTime( count, endClock - startClock );\r
-\r
-}\r
-\r
-static void time_a_float128_z_int64( int64 function( float128 ) )\r
-{\r
-    clock_t startClock, endClock;\r
-    int32 count, i;\r
-    int8 inputNum;\r
-    float128 a;\r
-\r
-    count = 0;\r
-    inputNum = 0;\r
-    startClock = clock();\r
-    do {\r
-        for ( i = minIterations; i; --i ) {\r
-            a.low = inputs_float128[ inputNum ].low;\r
-            a.high = inputs_float128[ inputNum ].high;\r
-            function( a );\r
-            inputNum = ( inputNum + 1 ) & ( numInputs_float128 - 1 );\r
-        }\r
-        count += minIterations;\r
-    } while ( clock() - startClock < CLOCKS_PER_SEC );\r
-    inputNum = 0;\r
-    startClock = clock();\r
-    for ( i = count; i; --i ) {\r
-        a.low = inputs_float128[ inputNum ].low;\r
-        a.high = inputs_float128[ inputNum ].high;\r
-        function( a );\r
-        inputNum = ( inputNum + 1 ) & ( numInputs_float128 - 1 );\r
-    }\r
-    endClock = clock();\r
-    reportTime( count, endClock - startClock );\r
-\r
-}\r
-\r
-static void time_a_float128_z_float32( float32 function( float128 ) )\r
-{\r
-    clock_t startClock, endClock;\r
-    int32 count, i;\r
-    int8 inputNum;\r
-    float128 a;\r
-\r
-    count = 0;\r
-    inputNum = 0;\r
-    startClock = clock();\r
-    do {\r
-        for ( i = minIterations; i; --i ) {\r
-            a.low = inputs_float128[ inputNum ].low;\r
-            a.high = inputs_float128[ inputNum ].high;\r
-            function( a );\r
-            inputNum = ( inputNum + 1 ) & ( numInputs_float128 - 1 );\r
-        }\r
-        count += minIterations;\r
-    } while ( clock() - startClock < CLOCKS_PER_SEC );\r
-    inputNum = 0;\r
-    startClock = clock();\r
-    for ( i = count; i; --i ) {\r
-        a.low = inputs_float128[ inputNum ].low;\r
-        a.high = inputs_float128[ inputNum ].high;\r
-        function( a );\r
-        inputNum = ( inputNum + 1 ) & ( numInputs_float128 - 1 );\r
-    }\r
-    endClock = clock();\r
-    reportTime( count, endClock - startClock );\r
-\r
-}\r
-\r
-static void time_a_float128_z_float64( float64 function( float128 ) )\r
-{\r
-    clock_t startClock, endClock;\r
-    int32 count, i;\r
-    int8 inputNum;\r
-    float128 a;\r
-\r
-    count = 0;\r
-    inputNum = 0;\r
-    startClock = clock();\r
-    do {\r
-        for ( i = minIterations; i; --i ) {\r
-            a.low = inputs_float128[ inputNum ].low;\r
-            a.high = inputs_float128[ inputNum ].high;\r
-            function( a );\r
-            inputNum = ( inputNum + 1 ) & ( numInputs_float128 - 1 );\r
-        }\r
-        count += minIterations;\r
-    } while ( clock() - startClock < CLOCKS_PER_SEC );\r
-    inputNum = 0;\r
-    startClock = clock();\r
-    for ( i = count; i; --i ) {\r
-        a.low = inputs_float128[ inputNum ].low;\r
-        a.high = inputs_float128[ inputNum ].high;\r
-        function( a );\r
-        inputNum = ( inputNum + 1 ) & ( numInputs_float128 - 1 );\r
-    }\r
-    endClock = clock();\r
-    reportTime( count, endClock - startClock );\r
-\r
-}\r
-\r
-#ifdef FLOATX80\r
-\r
-static void time_a_float128_z_floatx80( floatx80 function( float128 ) )\r
-{\r
-    clock_t startClock, endClock;\r
-    int32 count, i;\r
-    int8 inputNum;\r
-    float128 a;\r
-\r
-    count = 0;\r
-    inputNum = 0;\r
-    startClock = clock();\r
-    do {\r
-        for ( i = minIterations; i; --i ) {\r
-            a.low = inputs_float128[ inputNum ].low;\r
-            a.high = inputs_float128[ inputNum ].high;\r
-            function( a );\r
-            inputNum = ( inputNum + 1 ) & ( numInputs_float128 - 1 );\r
-        }\r
-        count += minIterations;\r
-    } while ( clock() - startClock < CLOCKS_PER_SEC );\r
-    inputNum = 0;\r
-    startClock = clock();\r
-    for ( i = count; i; --i ) {\r
-        a.low = inputs_float128[ inputNum ].low;\r
-        a.high = inputs_float128[ inputNum ].high;\r
-        function( a );\r
-        inputNum = ( inputNum + 1 ) & ( numInputs_float128 - 1 );\r
-    }\r
-    endClock = clock();\r
-    reportTime( count, endClock - startClock );\r
-\r
-}\r
-\r
-#endif\r
-\r
-static void time_az_float128( float128 function( float128 ) )\r
-{\r
-    clock_t startClock, endClock;\r
-    int32 count, i;\r
-    int8 inputNum;\r
-    float128 a;\r
-\r
-    count = 0;\r
-    inputNum = 0;\r
-    startClock = clock();\r
-    do {\r
-        for ( i = minIterations; i; --i ) {\r
-            a.low = inputs_float128[ inputNum ].low;\r
-            a.high = inputs_float128[ inputNum ].high;\r
-            function( a );\r
-            inputNum = ( inputNum + 1 ) & ( numInputs_float128 - 1 );\r
-        }\r
-        count += minIterations;\r
-    } while ( clock() - startClock < CLOCKS_PER_SEC );\r
-    inputNum = 0;\r
-    startClock = clock();\r
-    for ( i = count; i; --i ) {\r
-        a.low = inputs_float128[ inputNum ].low;\r
-        a.high = inputs_float128[ inputNum ].high;\r
-        function( a );\r
-        inputNum = ( inputNum + 1 ) & ( numInputs_float128 - 1 );\r
-    }\r
-    endClock = clock();\r
-    reportTime( count, endClock - startClock );\r
-\r
-}\r
-\r
-static void time_ab_float128_z_flag( flag function( float128, float128 ) )\r
-{\r
-    clock_t startClock, endClock;\r
-    int32 count, i;\r
-    int8 inputNumA, inputNumB;\r
-    float128 a, b;\r
-\r
-    count = 0;\r
-    inputNumA = 0;\r
-    inputNumB = 0;\r
-    startClock = clock();\r
-    do {\r
-        for ( i = minIterations; i; --i ) {\r
-            a.low = inputs_float128[ inputNumA ].low;\r
-            a.high = inputs_float128[ inputNumA ].high;\r
-            b.low = inputs_float128[ inputNumB ].low;\r
-            b.high = inputs_float128[ inputNumB ].high;\r
-            function( a, b );\r
-            inputNumA = ( inputNumA + 1 ) & ( numInputs_float128 - 1 );\r
-            if ( inputNumA == 0 ) ++inputNumB;\r
-            inputNumB = ( inputNumB + 1 ) & ( numInputs_float128 - 1 );\r
-        }\r
-        count += minIterations;\r
-    } while ( clock() - startClock < CLOCKS_PER_SEC );\r
-    inputNumA = 0;\r
-    inputNumB = 0;\r
-    startClock = clock();\r
-    for ( i = count; i; --i ) {\r
-        a.low = inputs_float128[ inputNumA ].low;\r
-        a.high = inputs_float128[ inputNumA ].high;\r
-        b.low = inputs_float128[ inputNumB ].low;\r
-        b.high = inputs_float128[ inputNumB ].high;\r
-        function( a, b );\r
-        inputNumA = ( inputNumA + 1 ) & ( numInputs_float128 - 1 );\r
-        if ( inputNumA == 0 ) ++inputNumB;\r
-        inputNumB = ( inputNumB + 1 ) & ( numInputs_float128 - 1 );\r
-    }\r
-    endClock = clock();\r
-    reportTime( count, endClock - startClock );\r
-\r
-}\r
-\r
-static void time_abz_float128( float128 function( float128, float128 ) )\r
-{\r
-    clock_t startClock, endClock;\r
-    int32 count, i;\r
-    int8 inputNumA, inputNumB;\r
-    float128 a, b;\r
-\r
-    count = 0;\r
-    inputNumA = 0;\r
-    inputNumB = 0;\r
-    startClock = clock();\r
-    do {\r
-        for ( i = minIterations; i; --i ) {\r
-            a.low = inputs_float128[ inputNumA ].low;\r
-            a.high = inputs_float128[ inputNumA ].high;\r
-            b.low = inputs_float128[ inputNumB ].low;\r
-            b.high = inputs_float128[ inputNumB ].high;\r
-            function( a, b );\r
-            inputNumA = ( inputNumA + 1 ) & ( numInputs_float128 - 1 );\r
-            if ( inputNumA == 0 ) ++inputNumB;\r
-            inputNumB = ( inputNumB + 1 ) & ( numInputs_float128 - 1 );\r
-        }\r
-        count += minIterations;\r
-    } while ( clock() - startClock < CLOCKS_PER_SEC );\r
-    inputNumA = 0;\r
-    inputNumB = 0;\r
-    startClock = clock();\r
-    for ( i = count; i; --i ) {\r
-        a.low = inputs_float128[ inputNumA ].low;\r
-        a.high = inputs_float128[ inputNumA ].high;\r
-        b.low = inputs_float128[ inputNumB ].low;\r
-        b.high = inputs_float128[ inputNumB ].high;\r
-        function( a, b );\r
-        inputNumA = ( inputNumA + 1 ) & ( numInputs_float128 - 1 );\r
-        if ( inputNumA == 0 ) ++inputNumB;\r
-        inputNumB = ( inputNumB + 1 ) & ( numInputs_float128 - 1 );\r
-    }\r
-    endClock = clock();\r
-    reportTime( count, endClock - startClock );\r
-\r
-}\r
-\r
-static const struct {\r
-    bits64 high, low;\r
-} inputs_float128_pos[ numInputs_float128 ] = {\r
-    { LIT64( 0x3FDA200000100000 ), LIT64( 0x0000000000000000 ) },\r
-    { LIT64( 0x3FFF000000000000 ), LIT64( 0x0000000000000000 ) },\r
-    { LIT64( 0x05F14776190C8306 ), LIT64( 0xD8715F4E3D54BB92 ) },\r
-    { LIT64( 0x72B00000007FFFFF ), LIT64( 0xFFFFFFFFFFF7FFFF ) },\r
-    { LIT64( 0x0000000000000000 ), LIT64( 0x0000000000000000 ) },\r
-    { LIT64( 0x3FFFFFFFFFE00000 ), LIT64( 0x0000008000000000 ) },\r
-    { LIT64( 0x407F1719CE722F3E ), LIT64( 0xDA6B3FE5FF29425B ) },\r
-    { LIT64( 0x43FFFF8000000000 ), LIT64( 0x0000000000400000 ) },\r
-    { LIT64( 0x401E000000000100 ), LIT64( 0x0000000000002000 ) },\r
-    { LIT64( 0x3FFED71DACDA8E47 ), LIT64( 0x4860E3C75D224F28 ) },\r
-    { LIT64( 0x3F7ECFC1E90647D1 ), LIT64( 0x7A124FE55623EE44 ) },\r
-    { LIT64( 0x0DF7007FFFFFFFFF ), LIT64( 0xFFFFFFFFEFFFFFFF ) },\r
-    { LIT64( 0x3FE5FFEFFFFFFFFF ), LIT64( 0xFFFFFFFFFFFFEFFF ) },\r
-    { LIT64( 0x403FFFFFFFFFFFFF ), LIT64( 0xFFFFFFFFFFFFFBFE ) },\r
-    { LIT64( 0x3FFB2FBF7399AFEB ), LIT64( 0xA459EE6A5C16CA55 ) },\r
-    { LIT64( 0x3DB8FFFFFFFFFFFC ), LIT64( 0x0000000000000400 ) },\r
-    { LIT64( 0x3FC8FFDFFFFFFFFF ), LIT64( 0xFFFFFFFFF0000000 ) },\r
-    { LIT64( 0x3FFBFFFFFFDFFFFF ), LIT64( 0xFFF8000000000000 ) },\r
-    { LIT64( 0x407043C11737BE84 ), LIT64( 0xDDD58212ADC937F4 ) },\r
-    { LIT64( 0x0001000000000000 ), LIT64( 0x0000001000000001 ) },\r
-    { LIT64( 0x4036FFFFFFFFFFFF ), LIT64( 0xFE40000000000000 ) },\r
-    { LIT64( 0x4002FFFFFE000002 ), LIT64( 0x0000000000000000 ) },\r
-    { LIT64( 0x4000C3FEDE897773 ), LIT64( 0x326AC4FD8EFBE6DC ) },\r
-    { LIT64( 0x3FFF0000000FFFFF ), LIT64( 0xFFFFFE0000000000 ) },\r
-    { LIT64( 0x62C3E502146E426D ), LIT64( 0x43F3CAA0DC7DF1A0 ) },\r
-    { LIT64( 0x35CBD32E52BB570E ), LIT64( 0xBCC477CB11C6236C ) },\r
-    { LIT64( 0x6228FFFFFFC00000 ), LIT64( 0x0000000000000000 ) },\r
-    { LIT64( 0x3F80000000000000 ), LIT64( 0x0000000080000008 ) },\r
-    { LIT64( 0x41AFFFDFFFFFFFFF ), LIT64( 0xFFFC000000000000 ) },\r
-    { LIT64( 0x496F000000000000 ), LIT64( 0x00000001FFFBFFFF ) },\r
-    { LIT64( 0x3DE09BFE7923A338 ), LIT64( 0xBCC8FBBD7CEC1F4F ) },\r
-    { LIT64( 0x401CFFFFFFFFFFFF ), LIT64( 0xFFFFFFFEFFFFFF80 ) }\r
-};\r
-\r
-static void time_az_float128_pos( float128 function( float128 ) )\r
-{\r
-    clock_t startClock, endClock;\r
-    int32 count, i;\r
-    int8 inputNum;\r
-    float128 a;\r
-\r
-    count = 0;\r
-    inputNum = 0;\r
-    startClock = clock();\r
-    do {\r
-        for ( i = minIterations; i; --i ) {\r
-            a.low = inputs_float128_pos[ inputNum ].low;\r
-            a.high = inputs_float128_pos[ inputNum ].high;\r
-            function( a );\r
-            inputNum = ( inputNum + 1 ) & ( numInputs_float128 - 1 );\r
-        }\r
-        count += minIterations;\r
-    } while ( clock() - startClock < CLOCKS_PER_SEC );\r
-    inputNum = 0;\r
-    startClock = clock();\r
-    for ( i = count; i; --i ) {\r
-        a.low = inputs_float128_pos[ inputNum ].low;\r
-        a.high = inputs_float128_pos[ inputNum ].high;\r
-        function( a );\r
-        inputNum = ( inputNum + 1 ) & ( numInputs_float128 - 1 );\r
-    }\r
-    endClock = clock();\r
-    reportTime( count, endClock - startClock );\r
-\r
-}\r
-\r
-#endif\r
-\r
-enum {\r
-    INT32_TO_FLOAT32 = 1,\r
-    INT32_TO_FLOAT64,\r
-#ifdef FLOATX80\r
-    INT32_TO_FLOATX80,\r
-#endif\r
-#ifdef FLOAT128\r
-    INT32_TO_FLOAT128,\r
-#endif\r
-    INT64_TO_FLOAT32,\r
-    INT64_TO_FLOAT64,\r
-#ifdef FLOATX80\r
-    INT64_TO_FLOATX80,\r
-#endif\r
-#ifdef FLOAT128\r
-    INT64_TO_FLOAT128,\r
-#endif\r
-    FLOAT32_TO_INT32,\r
-    FLOAT32_TO_INT32_ROUND_TO_ZERO,\r
-    FLOAT32_TO_INT64,\r
-    FLOAT32_TO_INT64_ROUND_TO_ZERO,\r
-    FLOAT32_TO_FLOAT64,\r
-#ifdef FLOATX80\r
-    FLOAT32_TO_FLOATX80,\r
-#endif\r
-#ifdef FLOAT128\r
-    FLOAT32_TO_FLOAT128,\r
-#endif\r
-    FLOAT32_ROUND_TO_INT,\r
-    FLOAT32_ADD,\r
-    FLOAT32_SUB,\r
-    FLOAT32_MUL,\r
-    FLOAT32_DIV,\r
-    FLOAT32_REM,\r
-    FLOAT32_SQRT,\r
-    FLOAT32_EQ,\r
-    FLOAT32_LE,\r
-    FLOAT32_LT,\r
-    FLOAT32_EQ_SIGNALING,\r
-    FLOAT32_LE_QUIET,\r
-    FLOAT32_LT_QUIET,\r
-    FLOAT64_TO_INT32,\r
-    FLOAT64_TO_INT32_ROUND_TO_ZERO,\r
-    FLOAT64_TO_INT64,\r
-    FLOAT64_TO_INT64_ROUND_TO_ZERO,\r
-    FLOAT64_TO_FLOAT32,\r
-#ifdef FLOATX80\r
-    FLOAT64_TO_FLOATX80,\r
-#endif\r
-#ifdef FLOAT128\r
-    FLOAT64_TO_FLOAT128,\r
-#endif\r
-    FLOAT64_ROUND_TO_INT,\r
-    FLOAT64_ADD,\r
-    FLOAT64_SUB,\r
-    FLOAT64_MUL,\r
-    FLOAT64_DIV,\r
-    FLOAT64_REM,\r
-    FLOAT64_SQRT,\r
-    FLOAT64_EQ,\r
-    FLOAT64_LE,\r
-    FLOAT64_LT,\r
-    FLOAT64_EQ_SIGNALING,\r
-    FLOAT64_LE_QUIET,\r
-    FLOAT64_LT_QUIET,\r
-#ifdef FLOATX80\r
-    FLOATX80_TO_INT32,\r
-    FLOATX80_TO_INT32_ROUND_TO_ZERO,\r
-    FLOATX80_TO_INT64,\r
-    FLOATX80_TO_INT64_ROUND_TO_ZERO,\r
-    FLOATX80_TO_FLOAT32,\r
-    FLOATX80_TO_FLOAT64,\r
-#ifdef FLOAT128\r
-    FLOATX80_TO_FLOAT128,\r
-#endif\r
-    FLOATX80_ROUND_TO_INT,\r
-    FLOATX80_ADD,\r
-    FLOATX80_SUB,\r
-    FLOATX80_MUL,\r
-    FLOATX80_DIV,\r
-    FLOATX80_REM,\r
-    FLOATX80_SQRT,\r
-    FLOATX80_EQ,\r
-    FLOATX80_LE,\r
-    FLOATX80_LT,\r
-    FLOATX80_EQ_SIGNALING,\r
-    FLOATX80_LE_QUIET,\r
-    FLOATX80_LT_QUIET,\r
-#endif\r
-#ifdef FLOAT128\r
-    FLOAT128_TO_INT32,\r
-    FLOAT128_TO_INT32_ROUND_TO_ZERO,\r
-    FLOAT128_TO_INT64,\r
-    FLOAT128_TO_INT64_ROUND_TO_ZERO,\r
-    FLOAT128_TO_FLOAT32,\r
-    FLOAT128_TO_FLOAT64,\r
-#ifdef FLOATX80\r
-    FLOAT128_TO_FLOATX80,\r
-#endif\r
-    FLOAT128_ROUND_TO_INT,\r
-    FLOAT128_ADD,\r
-    FLOAT128_SUB,\r
-    FLOAT128_MUL,\r
-    FLOAT128_DIV,\r
-    FLOAT128_REM,\r
-    FLOAT128_SQRT,\r
-    FLOAT128_EQ,\r
-    FLOAT128_LE,\r
-    FLOAT128_LT,\r
-    FLOAT128_EQ_SIGNALING,\r
-    FLOAT128_LE_QUIET,\r
-    FLOAT128_LT_QUIET,\r
-#endif\r
-    NUM_FUNCTIONS\r
-};\r
-\r
-static struct {\r
-    char *name;\r
-    int8 numInputs;\r
-    flag roundingPrecision, roundingMode;\r
-    flag tininessMode, tininessModeAtReducedPrecision;\r
-} functions[ NUM_FUNCTIONS ] = {\r
-    { 0, 0, 0, 0, 0, 0 },\r
-    { "int32_to_float32",                1, FALSE, TRUE,  FALSE, FALSE },\r
-    { "int32_to_float64",                1, FALSE, FALSE, FALSE, FALSE },\r
-#ifdef FLOATX80\r
-    { "int32_to_floatx80",               1, FALSE, FALSE, FALSE, FALSE },\r
-#endif\r
-#ifdef FLOAT128\r
-    { "int32_to_float128",               1, FALSE, FALSE, FALSE, FALSE },\r
-#endif\r
-    { "int64_to_float32",                1, FALSE, TRUE,  FALSE, FALSE },\r
-    { "int64_to_float64",                1, FALSE, TRUE,  FALSE, FALSE },\r
-#ifdef FLOATX80\r
-    { "int64_to_floatx80",               1, FALSE, FALSE, FALSE, FALSE },\r
-#endif\r
-#ifdef FLOAT128\r
-    { "int64_to_float128",               1, FALSE, FALSE, FALSE, FALSE },\r
-#endif\r
-    { "float32_to_int32",                1, FALSE, TRUE,  FALSE, FALSE },\r
-    { "float32_to_int32_round_to_zero",  1, FALSE, FALSE, FALSE, FALSE },\r
-    { "float32_to_int64",                1, FALSE, TRUE,  FALSE, FALSE },\r
-    { "float32_to_int64_round_to_zero",  1, FALSE, FALSE, FALSE, FALSE },\r
-    { "float32_to_float64",              1, FALSE, FALSE, FALSE, FALSE },\r
-#ifdef FLOATX80\r
-    { "float32_to_floatx80",             1, FALSE, FALSE, FALSE, FALSE },\r
-#endif\r
-#ifdef FLOAT128\r
-    { "float32_to_float128",             1, FALSE, FALSE, FALSE, FALSE },\r
-#endif\r
-    { "float32_round_to_int",            1, FALSE, TRUE,  FALSE, FALSE },\r
-    { "float32_add",                     2, FALSE, TRUE,  FALSE, FALSE },\r
-    { "float32_sub",                     2, FALSE, TRUE,  FALSE, FALSE },\r
-    { "float32_mul",                     2, FALSE, TRUE,  TRUE,  FALSE },\r
-    { "float32_div",                     2, FALSE, TRUE,  FALSE, FALSE },\r
-    { "float32_rem",                     2, FALSE, FALSE, FALSE, FALSE },\r
-    { "float32_sqrt",                    1, FALSE, TRUE,  FALSE, FALSE },\r
-    { "float32_eq",                      2, FALSE, FALSE, FALSE, FALSE },\r
-    { "float32_le",                      2, FALSE, FALSE, FALSE, FALSE },\r
-    { "float32_lt",                      2, FALSE, FALSE, FALSE, FALSE },\r
-    { "float32_eq_signaling",            2, FALSE, FALSE, FALSE, FALSE },\r
-    { "float32_le_quiet",                2, FALSE, FALSE, FALSE, FALSE },\r
-    { "float32_lt_quiet",                2, FALSE, FALSE, FALSE, FALSE },\r
-    { "float64_to_int32",                1, FALSE, TRUE,  FALSE, FALSE },\r
-    { "float64_to_int32_round_to_zero",  1, FALSE, FALSE, FALSE, FALSE },\r
-    { "float64_to_int64",                1, FALSE, TRUE,  FALSE, FALSE },\r
-    { "float64_to_int64_round_to_zero",  1, FALSE, FALSE, FALSE, FALSE },\r
-    { "float64_to_float32",              1, FALSE, TRUE,  TRUE,  FALSE },\r
-#ifdef FLOATX80\r
-    { "float64_to_floatx80",             1, FALSE, FALSE, FALSE, FALSE },\r
-#endif\r
-#ifdef FLOAT128\r
-    { "float64_to_float128",             1, FALSE, FALSE, FALSE, FALSE },\r
-#endif\r
-    { "float64_round_to_int",            1, FALSE, TRUE,  FALSE, FALSE },\r
-    { "float64_add",                     2, FALSE, TRUE,  FALSE, FALSE },\r
-    { "float64_sub",                     2, FALSE, TRUE,  FALSE, FALSE },\r
-    { "float64_mul",                     2, FALSE, TRUE,  TRUE,  FALSE },\r
-    { "float64_div",                     2, FALSE, TRUE,  FALSE, FALSE },\r
-    { "float64_rem",                     2, FALSE, FALSE, FALSE, FALSE },\r
-    { "float64_sqrt",                    1, FALSE, TRUE,  FALSE, FALSE },\r
-    { "float64_eq",                      2, FALSE, FALSE, FALSE, FALSE },\r
-    { "float64_le",                      2, FALSE, FALSE, FALSE, FALSE },\r
-    { "float64_lt",                      2, FALSE, FALSE, FALSE, FALSE },\r
-    { "float64_eq_signaling",            2, FALSE, FALSE, FALSE, FALSE },\r
-    { "float64_le_quiet",                2, FALSE, FALSE, FALSE, FALSE },\r
-    { "float64_lt_quiet",                2, FALSE, FALSE, FALSE, FALSE },\r
-#ifdef FLOATX80\r
-    { "floatx80_to_int32",               1, FALSE, TRUE,  FALSE, FALSE },\r
-    { "floatx80_to_int32_round_to_zero", 1, FALSE, FALSE, FALSE, FALSE },\r
-    { "floatx80_to_int64",               1, FALSE, TRUE,  FALSE, FALSE },\r
-    { "floatx80_to_int64_round_to_zero", 1, FALSE, FALSE, FALSE, FALSE },\r
-    { "floatx80_to_float32",             1, FALSE, TRUE,  TRUE,  FALSE },\r
-    { "floatx80_to_float64",             1, FALSE, TRUE,  TRUE,  FALSE },\r
-#ifdef FLOAT128\r
-    { "floatx80_to_float128",            1, FALSE, FALSE, FALSE, FALSE },\r
-#endif\r
-    { "floatx80_round_to_int",           1, FALSE, TRUE,  FALSE, FALSE },\r
-    { "floatx80_add",                    2, TRUE,  TRUE,  FALSE, TRUE  },\r
-    { "floatx80_sub",                    2, TRUE,  TRUE,  FALSE, TRUE  },\r
-    { "floatx80_mul",                    2, TRUE,  TRUE,  TRUE,  TRUE  },\r
-    { "floatx80_div",                    2, TRUE,  TRUE,  FALSE, TRUE  },\r
-    { "floatx80_rem",                    2, FALSE, FALSE, FALSE, FALSE },\r
-    { "floatx80_sqrt",                   1, TRUE,  TRUE,  FALSE, FALSE },\r
-    { "floatx80_eq",                     2, FALSE, FALSE, FALSE, FALSE },\r
-    { "floatx80_le",                     2, FALSE, FALSE, FALSE, FALSE },\r
-    { "floatx80_lt",                     2, FALSE, FALSE, FALSE, FALSE },\r
-    { "floatx80_eq_signaling",           2, FALSE, FALSE, FALSE, FALSE },\r
-    { "floatx80_le_quiet",               2, FALSE, FALSE, FALSE, FALSE },\r
-    { "floatx80_lt_quiet",               2, FALSE, FALSE, FALSE, FALSE },\r
-#endif\r
-#ifdef FLOAT128\r
-    { "float128_to_int32",               1, FALSE, TRUE,  FALSE, FALSE },\r
-    { "float128_to_int32_round_to_zero", 1, FALSE, FALSE, FALSE, FALSE },\r
-    { "float128_to_int64",               1, FALSE, TRUE,  FALSE, FALSE },\r
-    { "float128_to_int64_round_to_zero", 1, FALSE, FALSE, FALSE, FALSE },\r
-    { "float128_to_float32",             1, FALSE, TRUE,  TRUE,  FALSE },\r
-    { "float128_to_float64",             1, FALSE, TRUE,  TRUE,  FALSE },\r
-#ifdef FLOATX80\r
-    { "float128_to_floatx80",            1, FALSE, TRUE,  TRUE,  FALSE },\r
-#endif\r
-    { "float128_round_to_int",           1, FALSE, TRUE,  FALSE, FALSE },\r
-    { "float128_add",                    2, FALSE, TRUE,  FALSE, FALSE },\r
-    { "float128_sub",                    2, FALSE, TRUE,  FALSE, FALSE },\r
-    { "float128_mul",                    2, FALSE, TRUE,  TRUE,  FALSE },\r
-    { "float128_div",                    2, FALSE, TRUE,  FALSE, FALSE },\r
-    { "float128_rem",                    2, FALSE, FALSE, FALSE, FALSE },\r
-    { "float128_sqrt",                   1, FALSE, TRUE,  FALSE, FALSE },\r
-    { "float128_eq",                     2, FALSE, FALSE, FALSE, FALSE },\r
-    { "float128_le",                     2, FALSE, FALSE, FALSE, FALSE },\r
-    { "float128_lt",                     2, FALSE, FALSE, FALSE, FALSE },\r
-    { "float128_eq_signaling",           2, FALSE, FALSE, FALSE, FALSE },\r
-    { "float128_le_quiet",               2, FALSE, FALSE, FALSE, FALSE },\r
-    { "float128_lt_quiet",               2, FALSE, FALSE, FALSE, FALSE },\r
-#endif\r
-};\r
-\r
-enum {\r
-    ROUND_NEAREST_EVEN = 1,\r
-    ROUND_TO_ZERO,\r
-    ROUND_DOWN,\r
-    ROUND_UP,\r
-    NUM_ROUNDINGMODES\r
-};\r
-enum {\r
-    TININESS_BEFORE_ROUNDING = 1,\r
-    TININESS_AFTER_ROUNDING,\r
-    NUM_TININESSMODES\r
-};\r
-\r
-static void\r
- timeFunctionVariety(\r
-     uint8 functionCode,\r
-     int8 roundingPrecision,\r
-     int8 roundingMode,\r
-     int8 tininessMode\r
- )\r
-{\r
-    uint8 roundingCode;\r
-    int8 tininessCode;\r
-\r
-    functionName = functions[ functionCode ].name;\r
-    if ( roundingPrecision == 32 ) {\r
-        roundingPrecisionName = "32";\r
-    }\r
-    else if ( roundingPrecision == 64 ) {\r
-        roundingPrecisionName = "64";\r
-    }\r
-    else if ( roundingPrecision == 80 ) {\r
-        roundingPrecisionName = "80";\r
-    }\r
-    else {\r
-        roundingPrecisionName = 0;\r
-    }\r
-#ifdef FLOATX80\r
-    floatx80_rounding_precision = roundingPrecision;\r
-#endif\r
-    switch ( roundingMode ) {\r
-     case 0:\r
-        roundingModeName = 0;\r
-        roundingCode = float_round_nearest_even;\r
-        break;\r
-     case ROUND_NEAREST_EVEN:\r
-        roundingModeName = "nearest_even";\r
-        roundingCode = float_round_nearest_even;\r
-        break;\r
-     case ROUND_TO_ZERO:\r
-        roundingModeName = "to_zero";\r
-        roundingCode = float_round_to_zero;\r
-        break;\r
-     case ROUND_DOWN:\r
-        roundingModeName = "down";\r
-        roundingCode = float_round_down;\r
-        break;\r
-     case ROUND_UP:\r
-        roundingModeName = "up";\r
-        roundingCode = float_round_up;\r
-        break;\r
-    }\r
-    float_rounding_mode = roundingCode;\r
-    switch ( tininessMode ) {\r
-     case 0:\r
-        tininessModeName = 0;\r
-        tininessCode = float_tininess_after_rounding;\r
-        break;\r
-     case TININESS_BEFORE_ROUNDING:\r
-        tininessModeName = "before";\r
-        tininessCode = float_tininess_before_rounding;\r
-        break;\r
-     case TININESS_AFTER_ROUNDING:\r
-        tininessModeName = "after";\r
-        tininessCode = float_tininess_after_rounding;\r
-        break;\r
-    }\r
-    float_detect_tininess = tininessCode;\r
-    switch ( functionCode ) {\r
-     case INT32_TO_FLOAT32:\r
-        time_a_int32_z_float32( int32_to_float32 );\r
-        break;\r
-     case INT32_TO_FLOAT64:\r
-        time_a_int32_z_float64( int32_to_float64 );\r
-        break;\r
-#ifdef FLOATX80\r
-     case INT32_TO_FLOATX80:\r
-        time_a_int32_z_floatx80( int32_to_floatx80 );\r
-        break;\r
-#endif\r
-#ifdef FLOAT128\r
-     case INT32_TO_FLOAT128:\r
-        time_a_int32_z_float128( int32_to_float128 );\r
-        break;\r
-#endif\r
-     case INT64_TO_FLOAT32:\r
-        time_a_int64_z_float32( int64_to_float32 );\r
-        break;\r
-     case INT64_TO_FLOAT64:\r
-        time_a_int64_z_float64( int64_to_float64 );\r
-        break;\r
-#ifdef FLOATX80\r
-     case INT64_TO_FLOATX80:\r
-        time_a_int64_z_floatx80( int64_to_floatx80 );\r
-        break;\r
-#endif\r
-#ifdef FLOAT128\r
-     case INT64_TO_FLOAT128:\r
-        time_a_int64_z_float128( int64_to_float128 );\r
-        break;\r
-#endif\r
-     case FLOAT32_TO_INT32:\r
-        time_a_float32_z_int32( float32_to_int32 );\r
-        break;\r
-     case FLOAT32_TO_INT32_ROUND_TO_ZERO:\r
-        time_a_float32_z_int32( float32_to_int32_round_to_zero );\r
-        break;\r
-     case FLOAT32_TO_INT64:\r
-        time_a_float32_z_int64( float32_to_int64 );\r
-        break;\r
-     case FLOAT32_TO_INT64_ROUND_TO_ZERO:\r
-        time_a_float32_z_int64( float32_to_int64_round_to_zero );\r
-        break;\r
-     case FLOAT32_TO_FLOAT64:\r
-        time_a_float32_z_float64( float32_to_float64 );\r
-        break;\r
-#ifdef FLOATX80\r
-     case FLOAT32_TO_FLOATX80:\r
-        time_a_float32_z_floatx80( float32_to_floatx80 );\r
-        break;\r
-#endif\r
-#ifdef FLOAT128\r
-     case FLOAT32_TO_FLOAT128:\r
-        time_a_float32_z_float128( float32_to_float128 );\r
-        break;\r
-#endif\r
-     case FLOAT32_ROUND_TO_INT:\r
-        time_az_float32( float32_round_to_int );\r
-        break;\r
-     case FLOAT32_ADD:\r
-        time_abz_float32( float32_add );\r
-        break;\r
-     case FLOAT32_SUB:\r
-        time_abz_float32( float32_sub );\r
-        break;\r
-     case FLOAT32_MUL:\r
-        time_abz_float32( float32_mul );\r
-        break;\r
-     case FLOAT32_DIV:\r
-        time_abz_float32( float32_div );\r
-        break;\r
-     case FLOAT32_REM:\r
-        time_abz_float32( float32_rem );\r
-        break;\r
-     case FLOAT32_SQRT:\r
-        time_az_float32_pos( float32_sqrt );\r
-        break;\r
-     case FLOAT32_EQ:\r
-        time_ab_float32_z_flag( float32_eq );\r
-        break;\r
-     case FLOAT32_LE:\r
-        time_ab_float32_z_flag( float32_le );\r
-        break;\r
-     case FLOAT32_LT:\r
-        time_ab_float32_z_flag( float32_lt );\r
-        break;\r
-     case FLOAT32_EQ_SIGNALING:\r
-        time_ab_float32_z_flag( float32_eq_signaling );\r
-        break;\r
-     case FLOAT32_LE_QUIET:\r
-        time_ab_float32_z_flag( float32_le_quiet );\r
-        break;\r
-     case FLOAT32_LT_QUIET:\r
-        time_ab_float32_z_flag( float32_lt_quiet );\r
-        break;\r
-     case FLOAT64_TO_INT32:\r
-        time_a_float64_z_int32( float64_to_int32 );\r
-        break;\r
-     case FLOAT64_TO_INT32_ROUND_TO_ZERO:\r
-        time_a_float64_z_int32( float64_to_int32_round_to_zero );\r
-        break;\r
-     case FLOAT64_TO_INT64:\r
-        time_a_float64_z_int64( float64_to_int64 );\r
-        break;\r
-     case FLOAT64_TO_INT64_ROUND_TO_ZERO:\r
-        time_a_float64_z_int64( float64_to_int64_round_to_zero );\r
-        break;\r
-     case FLOAT64_TO_FLOAT32:\r
-        time_a_float64_z_float32( float64_to_float32 );\r
-        break;\r
-#ifdef FLOATX80\r
-     case FLOAT64_TO_FLOATX80:\r
-        time_a_float64_z_floatx80( float64_to_floatx80 );\r
-        break;\r
-#endif\r
-#ifdef FLOAT128\r
-     case FLOAT64_TO_FLOAT128:\r
-        time_a_float64_z_float128( float64_to_float128 );\r
-        break;\r
-#endif\r
-     case FLOAT64_ROUND_TO_INT:\r
-        time_az_float64( float64_round_to_int );\r
-        break;\r
-     case FLOAT64_ADD:\r
-        time_abz_float64( float64_add );\r
-        break;\r
-     case FLOAT64_SUB:\r
-        time_abz_float64( float64_sub );\r
-        break;\r
-     case FLOAT64_MUL:\r
-        time_abz_float64( float64_mul );\r
-        break;\r
-     case FLOAT64_DIV:\r
-        time_abz_float64( float64_div );\r
-        break;\r
-     case FLOAT64_REM:\r
-        time_abz_float64( float64_rem );\r
-        break;\r
-     case FLOAT64_SQRT:\r
-        time_az_float64_pos( float64_sqrt );\r
-        break;\r
-     case FLOAT64_EQ:\r
-        time_ab_float64_z_flag( float64_eq );\r
-        break;\r
-     case FLOAT64_LE:\r
-        time_ab_float64_z_flag( float64_le );\r
-        break;\r
-     case FLOAT64_LT:\r
-        time_ab_float64_z_flag( float64_lt );\r
-        break;\r
-     case FLOAT64_EQ_SIGNALING:\r
-        time_ab_float64_z_flag( float64_eq_signaling );\r
-        break;\r
-     case FLOAT64_LE_QUIET:\r
-        time_ab_float64_z_flag( float64_le_quiet );\r
-        break;\r
-     case FLOAT64_LT_QUIET:\r
-        time_ab_float64_z_flag( float64_lt_quiet );\r
-        break;\r
-#ifdef FLOATX80\r
-     case FLOATX80_TO_INT32:\r
-        time_a_floatx80_z_int32( floatx80_to_int32 );\r
-        break;\r
-     case FLOATX80_TO_INT32_ROUND_TO_ZERO:\r
-        time_a_floatx80_z_int32( floatx80_to_int32_round_to_zero );\r
-        break;\r
-     case FLOATX80_TO_INT64:\r
-        time_a_floatx80_z_int64( floatx80_to_int64 );\r
-        break;\r
-     case FLOATX80_TO_INT64_ROUND_TO_ZERO:\r
-        time_a_floatx80_z_int64( floatx80_to_int64_round_to_zero );\r
-        break;\r
-     case FLOATX80_TO_FLOAT32:\r
-        time_a_floatx80_z_float32( floatx80_to_float32 );\r
-        break;\r
-     case FLOATX80_TO_FLOAT64:\r
-        time_a_floatx80_z_float64( floatx80_to_float64 );\r
-        break;\r
-#ifdef FLOAT128\r
-     case FLOATX80_TO_FLOAT128:\r
-        time_a_floatx80_z_float128( floatx80_to_float128 );\r
-        break;\r
-#endif\r
-     case FLOATX80_ROUND_TO_INT:\r
-        time_az_floatx80( floatx80_round_to_int );\r
-        break;\r
-     case FLOATX80_ADD:\r
-        time_abz_floatx80( floatx80_add );\r
-        break;\r
-     case FLOATX80_SUB:\r
-        time_abz_floatx80( floatx80_sub );\r
-        break;\r
-     case FLOATX80_MUL:\r
-        time_abz_floatx80( floatx80_mul );\r
-        break;\r
-     case FLOATX80_DIV:\r
-        time_abz_floatx80( floatx80_div );\r
-        break;\r
-     case FLOATX80_REM:\r
-        time_abz_floatx80( floatx80_rem );\r
-        break;\r
-     case FLOATX80_SQRT:\r
-        time_az_floatx80_pos( floatx80_sqrt );\r
-        break;\r
-     case FLOATX80_EQ:\r
-        time_ab_floatx80_z_flag( floatx80_eq );\r
-        break;\r
-     case FLOATX80_LE:\r
-        time_ab_floatx80_z_flag( floatx80_le );\r
-        break;\r
-     case FLOATX80_LT:\r
-        time_ab_floatx80_z_flag( floatx80_lt );\r
-        break;\r
-     case FLOATX80_EQ_SIGNALING:\r
-        time_ab_floatx80_z_flag( floatx80_eq_signaling );\r
-        break;\r
-     case FLOATX80_LE_QUIET:\r
-        time_ab_floatx80_z_flag( floatx80_le_quiet );\r
-        break;\r
-     case FLOATX80_LT_QUIET:\r
-        time_ab_floatx80_z_flag( floatx80_lt_quiet );\r
-        break;\r
-#endif\r
-#ifdef FLOAT128\r
-     case FLOAT128_TO_INT32:\r
-        time_a_float128_z_int32( float128_to_int32 );\r
-        break;\r
-     case FLOAT128_TO_INT32_ROUND_TO_ZERO:\r
-        time_a_float128_z_int32( float128_to_int32_round_to_zero );\r
-        break;\r
-     case FLOAT128_TO_INT64:\r
-        time_a_float128_z_int64( float128_to_int64 );\r
-        break;\r
-     case FLOAT128_TO_INT64_ROUND_TO_ZERO:\r
-        time_a_float128_z_int64( float128_to_int64_round_to_zero );\r
-        break;\r
-     case FLOAT128_TO_FLOAT32:\r
-        time_a_float128_z_float32( float128_to_float32 );\r
-        break;\r
-     case FLOAT128_TO_FLOAT64:\r
-        time_a_float128_z_float64( float128_to_float64 );\r
-        break;\r
-#ifdef FLOATX80\r
-     case FLOAT128_TO_FLOATX80:\r
-        time_a_float128_z_floatx80( float128_to_floatx80 );\r
-        break;\r
-#endif\r
-     case FLOAT128_ROUND_TO_INT:\r
-        time_az_float128( float128_round_to_int );\r
-        break;\r
-     case FLOAT128_ADD:\r
-        time_abz_float128( float128_add );\r
-        break;\r
-     case FLOAT128_SUB:\r
-        time_abz_float128( float128_sub );\r
-        break;\r
-     case FLOAT128_MUL:\r
-        time_abz_float128( float128_mul );\r
-        break;\r
-     case FLOAT128_DIV:\r
-        time_abz_float128( float128_div );\r
-        break;\r
-     case FLOAT128_REM:\r
-        time_abz_float128( float128_rem );\r
-        break;\r
-     case FLOAT128_SQRT:\r
-        time_az_float128_pos( float128_sqrt );\r
-        break;\r
-     case FLOAT128_EQ:\r
-        time_ab_float128_z_flag( float128_eq );\r
-        break;\r
-     case FLOAT128_LE:\r
-        time_ab_float128_z_flag( float128_le );\r
-        break;\r
-     case FLOAT128_LT:\r
-        time_ab_float128_z_flag( float128_lt );\r
-        break;\r
-     case FLOAT128_EQ_SIGNALING:\r
-        time_ab_float128_z_flag( float128_eq_signaling );\r
-        break;\r
-     case FLOAT128_LE_QUIET:\r
-        time_ab_float128_z_flag( float128_le_quiet );\r
-        break;\r
-     case FLOAT128_LT_QUIET:\r
-        time_ab_float128_z_flag( float128_lt_quiet );\r
-        break;\r
-#endif\r
-    }\r
-\r
-}\r
-\r
-static void\r
- timeFunction(\r
-     uint8 functionCode,\r
-     int8 roundingPrecisionIn,\r
-     int8 roundingModeIn,\r
-     int8 tininessModeIn\r
- )\r
-{\r
-    int8 roundingPrecision, roundingMode, tininessMode;\r
-\r
-    roundingPrecision = 32;\r
-    for (;;) {\r
-        if ( ! functions[ functionCode ].roundingPrecision ) {\r
-            roundingPrecision = 0;\r
-        }\r
-        else if ( roundingPrecisionIn ) {\r
-            roundingPrecision = roundingPrecisionIn;\r
-        }\r
-        for ( roundingMode = 1;\r
-              roundingMode < NUM_ROUNDINGMODES;\r
-              ++roundingMode\r
-            ) {\r
-            if ( ! functions[ functionCode ].roundingMode ) {\r
-                roundingMode = 0;\r
-            }\r
-            else if ( roundingModeIn ) {\r
-                roundingMode = roundingModeIn;\r
-            }\r
-            for ( tininessMode = 1;\r
-                  tininessMode < NUM_TININESSMODES;\r
-                  ++tininessMode\r
-                ) {\r
-                if (    ( roundingPrecision == 32 )\r
-                     || ( roundingPrecision == 64 ) ) {\r
-                    if ( ! functions[ functionCode ]\r
-                               .tininessModeAtReducedPrecision\r
-                       ) {\r
-                        tininessMode = 0;\r
-                    }\r
-                    else if ( tininessModeIn ) {\r
-                        tininessMode = tininessModeIn;\r
-                    }\r
-                }\r
-                else {\r
-                    if ( ! functions[ functionCode ].tininessMode ) {\r
-                        tininessMode = 0;\r
-                    }\r
-                    else if ( tininessModeIn ) {\r
-                        tininessMode = tininessModeIn;\r
-                    }\r
-                }\r
-                timeFunctionVariety(\r
-                    functionCode, roundingPrecision, roundingMode, tininessMode\r
-                );\r
-                if ( tininessModeIn || ! tininessMode ) break;\r
-            }\r
-            if ( roundingModeIn || ! roundingMode ) break;\r
-        }\r
-        if ( roundingPrecisionIn || ! roundingPrecision ) break;\r
-        if ( roundingPrecision == 80 ) {\r
-            break;\r
-        }\r
-        else if ( roundingPrecision == 64 ) {\r
-            roundingPrecision = 80;\r
-        }\r
-        else if ( roundingPrecision == 32 ) {\r
-            roundingPrecision = 64;\r
-        }\r
-    }\r
-\r
-}\r
-\r
-main( int argc, char **argv )\r
-{\r
-    char *argPtr;\r
-    flag functionArgument;\r
-    uint8 functionCode;\r
-    int8 operands, roundingPrecision, roundingMode, tininessMode;\r
-\r
-    if ( argc <= 1 ) goto writeHelpMessage;\r
-    functionArgument = FALSE;\r
-    functionCode = 0;\r
-    operands = 0;\r
-    roundingPrecision = 0;\r
-    roundingMode = 0;\r
-    tininessMode = 0;\r
-    --argc;\r
-    ++argv;\r
-    while ( argc && ( argPtr = argv[ 0 ] ) ) {\r
-        if ( argPtr[ 0 ] == '-' ) ++argPtr;\r
-        if ( strcmp( argPtr, "help" ) == 0 ) {\r
- writeHelpMessage:\r
-            fputs(\r
-"timesoftfloat [<option>...] <function>\n"\r
-"  <option>:  (* is default)\n"\r
-"    -help            --Write this message and exit.\n"\r
-#ifdef FLOATX80\r
-"    -precision32     --Only time rounding precision equivalent to float32.\n"\r
-"    -precision64     --Only time rounding precision equivalent to float64.\n"\r
-"    -precision80     --Only time maximum rounding precision.\n"\r
-#endif\r
-"    -nearesteven     --Only time rounding to nearest/even.\n"\r
-"    -tozero          --Only time rounding to zero.\n"\r
-"    -down            --Only time rounding down.\n"\r
-"    -up              --Only time rounding up.\n"\r
-"    -tininessbefore  --Only time underflow tininess before rounding.\n"\r
-"    -tininessafter   --Only time underflow tininess after rounding.\n"\r
-"  <function>:\n"\r
-"    int32_to_<float>                 <float>_add   <float>_eq\n"\r
-"    <float>_to_int32                 <float>_sub   <float>_le\n"\r
-"    <float>_to_int32_round_to_zero   <float>_mul   <float>_lt\n"\r
-"    int64_to_<float>                 <float>_div   <float>_eq_signaling\n"\r
-"    <float>_to_int64                 <float>_rem   <float>_le_quiet\n"\r
-"    <float>_to_int64_round_to_zero                 <float>_lt_quiet\n"\r
-"    <float>_to_<float>\n"\r
-"    <float>_round_to_int\n"\r
-"    <float>_sqrt\n"\r
-"    -all1            --All 1-operand functions.\n"\r
-"    -all2            --All 2-operand functions.\n"\r
-"    -all             --All functions.\n"\r
-"  <float>:\n"\r
-"    float32          --Single precision.\n"\r
-"    float64          --Double precision.\n"\r
-#ifdef FLOATX80\r
-"    floatx80         --Extended double precision.\n"\r
-#endif\r
-#ifdef FLOAT128\r
-"    float128         --Quadruple precision.\n"\r
-#endif\r
-                ,\r
-                stdout\r
-            );\r
-            return EXIT_SUCCESS;\r
-        }\r
-#ifdef FLOATX80\r
-        else if ( strcmp( argPtr, "precision32" ) == 0 ) {\r
-            roundingPrecision = 32;\r
-        }\r
-        else if ( strcmp( argPtr, "precision64" ) == 0 ) {\r
-            roundingPrecision = 64;\r
-        }\r
-        else if ( strcmp( argPtr, "precision80" ) == 0 ) {\r
-            roundingPrecision = 80;\r
-        }\r
-#endif\r
-        else if (    ( strcmp( argPtr, "nearesteven" ) == 0 )\r
-                  || ( strcmp( argPtr, "nearest_even" ) == 0 ) ) {\r
-            roundingMode = ROUND_NEAREST_EVEN;\r
-        }\r
-        else if (    ( strcmp( argPtr, "tozero" ) == 0 )\r
-                  || ( strcmp( argPtr, "to_zero" ) == 0 ) ) {\r
-            roundingMode = ROUND_TO_ZERO;\r
-        }\r
-        else if ( strcmp( argPtr, "down" ) == 0 ) {\r
-            roundingMode = ROUND_DOWN;\r
-        }\r
-        else if ( strcmp( argPtr, "up" ) == 0 ) {\r
-            roundingMode = ROUND_UP;\r
-        }\r
-        else if ( strcmp( argPtr, "tininessbefore" ) == 0 ) {\r
-            tininessMode = TININESS_BEFORE_ROUNDING;\r
-        }\r
-        else if ( strcmp( argPtr, "tininessafter" ) == 0 ) {\r
-            tininessMode = TININESS_AFTER_ROUNDING;\r
-        }\r
-        else if ( strcmp( argPtr, "all1" ) == 0 ) {\r
-            functionArgument = TRUE;\r
-            functionCode = 0;\r
-            operands = 1;\r
-        }\r
-        else if ( strcmp( argPtr, "all2" ) == 0 ) {\r
-            functionArgument = TRUE;\r
-            functionCode = 0;\r
-            operands = 2;\r
-        }\r
-        else if ( strcmp( argPtr, "all" ) == 0 ) {\r
-            functionArgument = TRUE;\r
-            functionCode = 0;\r
-            operands = 0;\r
-        }\r
-        else {\r
-            for ( functionCode = 1;\r
-                  functionCode < NUM_FUNCTIONS;\r
-                  ++functionCode\r
-                ) {\r
-                if ( strcmp( argPtr, functions[ functionCode ].name ) == 0 ) {\r
-                    break;\r
-                }\r
-            }\r
-            if ( functionCode == NUM_FUNCTIONS ) {\r
-                fail( "Invalid option or function `%s'", argv[ 0 ] );\r
-            }\r
-            functionArgument = TRUE;\r
-        }\r
-        --argc;\r
-        ++argv;\r
-    }\r
-    if ( ! functionArgument ) fail( "Function argument required" );\r
-    if ( functionCode ) {\r
-        timeFunction(\r
-            functionCode, roundingPrecision, roundingMode, tininessMode );\r
-    }\r
-    else if ( operands == 1 ) {\r
-        for ( functionCode = 1; functionCode < NUM_FUNCTIONS; ++functionCode\r
-            ) {\r
-            if ( functions[ functionCode ].numInputs == 1 ) {\r
-                timeFunction(\r
-                    functionCode, roundingPrecision, roundingMode, tininessMode\r
-                );\r
-            }\r
-        }\r
-    }\r
-    else if ( operands == 2 ) {\r
-        for ( functionCode = 1; functionCode < NUM_FUNCTIONS; ++functionCode\r
-            ) {\r
-            if ( functions[ functionCode ].numInputs == 2 ) {\r
-                timeFunction(\r
-                    functionCode, roundingPrecision, roundingMode, tininessMode\r
-                );\r
-            }\r
-        }\r
-    }\r
-    else {\r
-        for ( functionCode = 1; functionCode < NUM_FUNCTIONS; ++functionCode\r
-            ) {\r
-            timeFunction(\r
-                functionCode, roundingPrecision, roundingMode, tininessMode );\r
-        }\r
-    }\r
-    return EXIT_SUCCESS;\r
-\r
-}\r
-\r