Home | History | Annotate | Line # | Download | only in Unit
      1  1.1  joerg //===-- cmpsf2_test.c - Test __cmpsf2 -------------------------------------===//
      2  1.1  joerg //
      3  1.1  joerg //                     The LLVM Compiler Infrastructure
      4  1.1  joerg //
      5  1.1  joerg // This file is dual licensed under the MIT and the University of Illinois Open
      6  1.1  joerg // Source Licenses. See LICENSE.TXT for details.
      7  1.1  joerg //
      8  1.1  joerg //===----------------------------------------------------------------------===//
      9  1.1  joerg //
     10  1.1  joerg // This file tests single-precision soft-float comparisons for the compiler-rt
     11  1.1  joerg // library.
     12  1.1  joerg //
     13  1.1  joerg //===----------------------------------------------------------------------===//
     14  1.1  joerg 
     15  1.1  joerg #include <stdio.h>
     16  1.1  joerg 
     17  1.1  joerg int __eqsf2(float, float);
     18  1.1  joerg int __gesf2(float, float);
     19  1.1  joerg int __gtsf2(float, float);
     20  1.1  joerg int __lesf2(float, float);
     21  1.1  joerg int __ltsf2(float, float);
     22  1.1  joerg int __nesf2(float, float);
     23  1.1  joerg int __unordsf2(float, float);
     24  1.1  joerg 
     25  1.1  joerg struct TestVector {
     26  1.1  joerg     float a;
     27  1.1  joerg     float b;
     28  1.1  joerg     int eqReference;
     29  1.1  joerg     int geReference;
     30  1.1  joerg     int gtReference;
     31  1.1  joerg     int leReference;
     32  1.1  joerg     int ltReference;
     33  1.1  joerg     int neReference;
     34  1.1  joerg     int unReference;
     35  1.1  joerg };
     36  1.1  joerg 
     37  1.1  joerg int test__cmpsf2(const struct TestVector *vector) {
     38  1.1  joerg 
     39  1.1  joerg     if (__eqsf2(vector->a, vector->b) != vector->eqReference) {
     40  1.1  joerg         printf("error in __eqsf2(%a, %a) = %d, expected %d\n",
     41  1.1  joerg                vector->a, vector->b,
     42  1.1  joerg                __eqsf2(vector->a, vector->b),
     43  1.1  joerg                vector->eqReference);
     44  1.1  joerg         return 1;
     45  1.1  joerg     }
     46  1.1  joerg 
     47  1.1  joerg     if (__gesf2(vector->a, vector->b) != vector->geReference) {
     48  1.1  joerg         printf("error in __gesf2(%a, %a) = %d, expected %d\n",
     49  1.1  joerg                vector->a, vector->b,
     50  1.1  joerg                __gesf2(vector->a, vector->b),
     51  1.1  joerg                vector->geReference);
     52  1.1  joerg         return 1;
     53  1.1  joerg     }
     54  1.1  joerg 
     55  1.1  joerg     if (__gtsf2(vector->a, vector->b) != vector->gtReference) {
     56  1.1  joerg         printf("error in __gtsf2(%a, %a) = %d, expected %d\n",
     57  1.1  joerg                vector->a, vector->b,
     58  1.1  joerg                __gtsf2(vector->a, vector->b),
     59  1.1  joerg                vector->gtReference);
     60  1.1  joerg         return 1;
     61  1.1  joerg     }
     62  1.1  joerg 
     63  1.1  joerg     if (__lesf2(vector->a, vector->b) != vector->leReference) {
     64  1.1  joerg         printf("error in __lesf2(%a, %a) = %d, expected %d\n",
     65  1.1  joerg                vector->a, vector->b,
     66  1.1  joerg                __lesf2(vector->a, vector->b),
     67  1.1  joerg                vector->leReference);
     68  1.1  joerg         return 1;
     69  1.1  joerg     }
     70  1.1  joerg 
     71  1.1  joerg     if (__ltsf2(vector->a, vector->b) != vector->ltReference) {
     72  1.1  joerg         printf("error in __ltsf2(%a, %a) = %d, expected %d\n",
     73  1.1  joerg                vector->a, vector->b,
     74  1.1  joerg                __ltsf2(vector->a, vector->b),
     75  1.1  joerg                vector->ltReference);
     76  1.1  joerg         return 1;
     77  1.1  joerg     }
     78  1.1  joerg 
     79  1.1  joerg     if (__nesf2(vector->a, vector->b) != vector->neReference) {
     80  1.1  joerg         printf("error in __nesf2(%a, %a) = %d, expected %d\n",
     81  1.1  joerg                vector->a, vector->b,
     82  1.1  joerg                __nesf2(vector->a, vector->b),
     83  1.1  joerg                vector->neReference);
     84  1.1  joerg         return 1;
     85  1.1  joerg     }
     86  1.1  joerg 
     87  1.1  joerg     if (__unordsf2(vector->a, vector->b) != vector->unReference) {
     88  1.1  joerg         printf("error in __unordsf2(%a, %a) = %d, expected %d\n",
     89  1.1  joerg                vector->a, vector->b,
     90  1.1  joerg                __unordsf2(vector->a, vector->b),
     91  1.1  joerg                vector->unReference);
     92  1.1  joerg         return 1;
     93  1.1  joerg     }
     94  1.1  joerg 
     95  1.1  joerg     return 0;
     96  1.1  joerg }
     97  1.1  joerg 
     98  1.1  joerg /*
     99  1.1  joerg void generateVectors() {
    100  1.1  joerg 
    101  1.1  joerg     const float arguments[] = {
    102  1.1  joerg         __builtin_nanf(""),
    103  1.1  joerg         -__builtin_inff(),
    104  1.1  joerg         -0x1.fffffep127,
    105  1.1  joerg         -0x1.000002p0
    106  1.1  joerg         -0x1.000000p0,
    107  1.1  joerg         -0x1.fffffep-1f,
    108  1.1  joerg         -0x1.000000p-126f,
    109  1.1  joerg         -0x0.fffffep-126f,
    110  1.1  joerg         -0x0.000002p-126f,
    111  1.1  joerg         -0.0,
    112  1.1  joerg          0.0,
    113  1.1  joerg          0x0.000002p-126f,
    114  1.1  joerg          0x0.fffffep-126f,
    115  1.1  joerg          0x1.000000p-126f,
    116  1.1  joerg          0x1.fffffep-1f,
    117  1.1  joerg          0x1.000000p0,
    118  1.1  joerg          0x1.000002p0,
    119  1.1  joerg          0x1.fffffep127,
    120  1.1  joerg          __builtin_inff()
    121  1.1  joerg     };
    122  1.1  joerg 
    123  1.1  joerg     int numArguments = sizeof arguments / sizeof arguments[0];
    124  1.1  joerg 
    125  1.1  joerg     for (int i=0; i<numArguments; ++i) {
    126  1.1  joerg         for (int j=0; j<numArguments; ++j) {
    127  1.1  joerg             const float a = arguments[i];
    128  1.1  joerg             const float b = arguments[j];
    129  1.1  joerg             const int leResult = a < b ? -1 : a == b ? 0 :  1;
    130  1.1  joerg             const int geResult = a > b ?  1 : a == b ? 0 : -1;
    131  1.1  joerg             const int unResult = a != a || b != b ? 1 : 0;
    132  1.1  joerg             printf("{%a,%a,%d,%d,%d,%d,%d,%d,%d},\n",
    133  1.1  joerg                    a, b,
    134  1.1  joerg                    leResult,
    135  1.1  joerg                    geResult,
    136  1.1  joerg                    geResult,
    137  1.1  joerg                    leResult,
    138  1.1  joerg                    leResult,
    139  1.1  joerg                    leResult,
    140  1.1  joerg                    unResult);
    141  1.1  joerg         }
    142  1.1  joerg     }
    143  1.1  joerg } */
    144  1.1  joerg 
    145  1.1  joerg static const struct TestVector vectors[] = {
    146  1.1  joerg     {__builtin_nanf(""),__builtin_nanf(""),1,-1,-1,1,1,1,1},
    147  1.1  joerg     {__builtin_nanf(""),-__builtin_inff(),1,-1,-1,1,1,1,1},
    148  1.1  joerg     {__builtin_nanf(""),-0x1.fffffep+127f,1,-1,-1,1,1,1,1},
    149  1.1  joerg     {__builtin_nanf(""),-0x1p0f,1,-1,-1,1,1,1,1},
    150  1.1  joerg     {__builtin_nanf(""),-0x1.fffffep-1f,1,-1,-1,1,1,1,1},
    151  1.1  joerg     {__builtin_nanf(""),-0x1p-126f,1,-1,-1,1,1,1,1},
    152  1.1  joerg     {__builtin_nanf(""),-0x1.fffffcp-127,1,-1,-1,1,1,1,1},
    153  1.1  joerg     {__builtin_nanf(""),-0x1p-149f,1,-1,-1,1,1,1,1},
    154  1.1  joerg     {__builtin_nanf(""),-0x0p0f,1,-1,-1,1,1,1,1},
    155  1.1  joerg     {__builtin_nanf(""),0x0p0f,1,-1,-1,1,1,1,1},
    156  1.1  joerg     {__builtin_nanf(""),0x1p-149f,1,-1,-1,1,1,1,1},
    157  1.1  joerg     {__builtin_nanf(""),0x1.fffffcp-127,1,-1,-1,1,1,1,1},
    158  1.1  joerg     {__builtin_nanf(""),0x1p-126f,1,-1,-1,1,1,1,1},
    159  1.1  joerg     {__builtin_nanf(""),0x1.fffffep-1f,1,-1,-1,1,1,1,1},
    160  1.1  joerg     {__builtin_nanf(""),0x1p0f,1,-1,-1,1,1,1,1},
    161  1.1  joerg     {__builtin_nanf(""),0x1.000002p0f,1,-1,-1,1,1,1,1},
    162  1.1  joerg     {__builtin_nanf(""),0x1.fffffep+127f,1,-1,-1,1,1,1,1},
    163  1.1  joerg     {__builtin_nanf(""),__builtin_inff(),1,-1,-1,1,1,1,1},
    164  1.1  joerg     {-__builtin_inff(),__builtin_nanf(""),1,-1,-1,1,1,1,1},
    165  1.1  joerg     {-__builtin_inff(),-__builtin_inff(),0,0,0,0,0,0,0},
    166  1.1  joerg     {-__builtin_inff(),-0x1.fffffep+127f,-1,-1,-1,-1,-1,-1,0},
    167  1.1  joerg     {-__builtin_inff(),-0x1p0f,-1,-1,-1,-1,-1,-1,0},
    168  1.1  joerg     {-__builtin_inff(),-0x1.fffffep-1f,-1,-1,-1,-1,-1,-1,0},
    169  1.1  joerg     {-__builtin_inff(),-0x1p-126f,-1,-1,-1,-1,-1,-1,0},
    170  1.1  joerg     {-__builtin_inff(),-0x1.fffffcp-127,-1,-1,-1,-1,-1,-1,0},
    171  1.1  joerg     {-__builtin_inff(),-0x1p-149f,-1,-1,-1,-1,-1,-1,0},
    172  1.1  joerg     {-__builtin_inff(),-0x0p0f,-1,-1,-1,-1,-1,-1,0},
    173  1.1  joerg     {-__builtin_inff(),0x0p0f,-1,-1,-1,-1,-1,-1,0},
    174  1.1  joerg     {-__builtin_inff(),0x1p-149f,-1,-1,-1,-1,-1,-1,0},
    175  1.1  joerg     {-__builtin_inff(),0x1.fffffcp-127,-1,-1,-1,-1,-1,-1,0},
    176  1.1  joerg     {-__builtin_inff(),0x1p-126f,-1,-1,-1,-1,-1,-1,0},
    177  1.1  joerg     {-__builtin_inff(),0x1.fffffep-1f,-1,-1,-1,-1,-1,-1,0},
    178  1.1  joerg     {-__builtin_inff(),0x1p0f,-1,-1,-1,-1,-1,-1,0},
    179  1.1  joerg     {-__builtin_inff(),0x1.000002p0f,-1,-1,-1,-1,-1,-1,0},
    180  1.1  joerg     {-__builtin_inff(),0x1.fffffep+127f,-1,-1,-1,-1,-1,-1,0},
    181  1.1  joerg     {-__builtin_inff(),__builtin_inff(),-1,-1,-1,-1,-1,-1,0},
    182  1.1  joerg     {-0x1.fffffep+127f,__builtin_nanf(""),1,-1,-1,1,1,1,1},
    183  1.1  joerg     {-0x1.fffffep+127f,-__builtin_inff(),1,1,1,1,1,1,0},
    184  1.1  joerg     {-0x1.fffffep+127f,-0x1.fffffep+127f,0,0,0,0,0,0,0},
    185  1.1  joerg     {-0x1.fffffep+127f,-0x1p0f,-1,-1,-1,-1,-1,-1,0},
    186  1.1  joerg     {-0x1.fffffep+127f,-0x1.fffffep-1f,-1,-1,-1,-1,-1,-1,0},
    187  1.1  joerg     {-0x1.fffffep+127f,-0x1p-126f,-1,-1,-1,-1,-1,-1,0},
    188  1.1  joerg     {-0x1.fffffep+127f,-0x1.fffffcp-127,-1,-1,-1,-1,-1,-1,0},
    189  1.1  joerg     {-0x1.fffffep+127f,-0x1p-149f,-1,-1,-1,-1,-1,-1,0},
    190  1.1  joerg     {-0x1.fffffep+127f,-0x0p0f,-1,-1,-1,-1,-1,-1,0},
    191  1.1  joerg     {-0x1.fffffep+127f,0x0p0f,-1,-1,-1,-1,-1,-1,0},
    192  1.1  joerg     {-0x1.fffffep+127f,0x1p-149f,-1,-1,-1,-1,-1,-1,0},
    193  1.1  joerg     {-0x1.fffffep+127f,0x1.fffffcp-127,-1,-1,-1,-1,-1,-1,0},
    194  1.1  joerg     {-0x1.fffffep+127f,0x1p-126f,-1,-1,-1,-1,-1,-1,0},
    195  1.1  joerg     {-0x1.fffffep+127f,0x1.fffffep-1f,-1,-1,-1,-1,-1,-1,0},
    196  1.1  joerg     {-0x1.fffffep+127f,0x1p0f,-1,-1,-1,-1,-1,-1,0},
    197  1.1  joerg     {-0x1.fffffep+127f,0x1.000002p0f,-1,-1,-1,-1,-1,-1,0},
    198  1.1  joerg     {-0x1.fffffep+127f,0x1.fffffep+127f,-1,-1,-1,-1,-1,-1,0},
    199  1.1  joerg     {-0x1.fffffep+127f,__builtin_inff(),-1,-1,-1,-1,-1,-1,0},
    200  1.1  joerg     {-0x1p0f,__builtin_nanf(""),1,-1,-1,1,1,1,1},
    201  1.1  joerg     {-0x1p0f,-__builtin_inff(),1,1,1,1,1,1,0},
    202  1.1  joerg     {-0x1p0f,-0x1.fffffep+127f,1,1,1,1,1,1,0},
    203  1.1  joerg     {-0x1p0f,-0x1p0f,0,0,0,0,0,0,0},
    204  1.1  joerg     {-0x1p0f,-0x1.fffffep-1f,-1,-1,-1,-1,-1,-1,0},
    205  1.1  joerg     {-0x1p0f,-0x1p-126f,-1,-1,-1,-1,-1,-1,0},
    206  1.1  joerg     {-0x1p0f,-0x1.fffffcp-127,-1,-1,-1,-1,-1,-1,0},
    207  1.1  joerg     {-0x1p0f,-0x1p-149f,-1,-1,-1,-1,-1,-1,0},
    208  1.1  joerg     {-0x1p0f,-0x0p0f,-1,-1,-1,-1,-1,-1,0},
    209  1.1  joerg     {-0x1p0f,0x0p0f,-1,-1,-1,-1,-1,-1,0},
    210  1.1  joerg     {-0x1p0f,0x1p-149f,-1,-1,-1,-1,-1,-1,0},
    211  1.1  joerg     {-0x1p0f,0x1.fffffcp-127,-1,-1,-1,-1,-1,-1,0},
    212  1.1  joerg     {-0x1p0f,0x1p-126f,-1,-1,-1,-1,-1,-1,0},
    213  1.1  joerg     {-0x1p0f,0x1.fffffep-1f,-1,-1,-1,-1,-1,-1,0},
    214  1.1  joerg     {-0x1p0f,0x1p0f,-1,-1,-1,-1,-1,-1,0},
    215  1.1  joerg     {-0x1p0f,0x1.000002p0f,-1,-1,-1,-1,-1,-1,0},
    216  1.1  joerg     {-0x1p0f,0x1.fffffep+127f,-1,-1,-1,-1,-1,-1,0},
    217  1.1  joerg     {-0x1p0f,__builtin_inff(),-1,-1,-1,-1,-1,-1,0},
    218  1.1  joerg     {-0x1.fffffep-1f,__builtin_nanf(""),1,-1,-1,1,1,1,1},
    219  1.1  joerg     {-0x1.fffffep-1f,-__builtin_inff(),1,1,1,1,1,1,0},
    220  1.1  joerg     {-0x1.fffffep-1f,-0x1.fffffep+127f,1,1,1,1,1,1,0},
    221  1.1  joerg     {-0x1.fffffep-1f,-0x1p0f,1,1,1,1,1,1,0},
    222  1.1  joerg     {-0x1.fffffep-1f,-0x1.fffffep-1f,0,0,0,0,0,0,0},
    223  1.1  joerg     {-0x1.fffffep-1f,-0x1p-126f,-1,-1,-1,-1,-1,-1,0},
    224  1.1  joerg     {-0x1.fffffep-1f,-0x1.fffffcp-127,-1,-1,-1,-1,-1,-1,0},
    225  1.1  joerg     {-0x1.fffffep-1f,-0x1p-149f,-1,-1,-1,-1,-1,-1,0},
    226  1.1  joerg     {-0x1.fffffep-1f,-0x0p0f,-1,-1,-1,-1,-1,-1,0},
    227  1.1  joerg     {-0x1.fffffep-1f,0x0p0f,-1,-1,-1,-1,-1,-1,0},
    228  1.1  joerg     {-0x1.fffffep-1f,0x1p-149f,-1,-1,-1,-1,-1,-1,0},
    229  1.1  joerg     {-0x1.fffffep-1f,0x1.fffffcp-127,-1,-1,-1,-1,-1,-1,0},
    230  1.1  joerg     {-0x1.fffffep-1f,0x1p-126f,-1,-1,-1,-1,-1,-1,0},
    231  1.1  joerg     {-0x1.fffffep-1f,0x1.fffffep-1f,-1,-1,-1,-1,-1,-1,0},
    232  1.1  joerg     {-0x1.fffffep-1f,0x1p0f,-1,-1,-1,-1,-1,-1,0},
    233  1.1  joerg     {-0x1.fffffep-1f,0x1.000002p0f,-1,-1,-1,-1,-1,-1,0},
    234  1.1  joerg     {-0x1.fffffep-1f,0x1.fffffep+127f,-1,-1,-1,-1,-1,-1,0},
    235  1.1  joerg     {-0x1.fffffep-1f,__builtin_inff(),-1,-1,-1,-1,-1,-1,0},
    236  1.1  joerg     {-0x1p-126f,__builtin_nanf(""),1,-1,-1,1,1,1,1},
    237  1.1  joerg     {-0x1p-126f,-__builtin_inff(),1,1,1,1,1,1,0},
    238  1.1  joerg     {-0x1p-126f,-0x1.fffffep+127f,1,1,1,1,1,1,0},
    239  1.1  joerg     {-0x1p-126f,-0x1p0f,1,1,1,1,1,1,0},
    240  1.1  joerg     {-0x1p-126f,-0x1.fffffep-1f,1,1,1,1,1,1,0},
    241  1.1  joerg     {-0x1p-126f,-0x1p-126f,0,0,0,0,0,0,0},
    242  1.1  joerg     {-0x1p-126f,-0x1.fffffcp-127,-1,-1,-1,-1,-1,-1,0},
    243  1.1  joerg     {-0x1p-126f,-0x1p-149f,-1,-1,-1,-1,-1,-1,0},
    244  1.1  joerg     {-0x1p-126f,-0x0p0f,-1,-1,-1,-1,-1,-1,0},
    245  1.1  joerg     {-0x1p-126f,0x0p0f,-1,-1,-1,-1,-1,-1,0},
    246  1.1  joerg     {-0x1p-126f,0x1p-149f,-1,-1,-1,-1,-1,-1,0},
    247  1.1  joerg     {-0x1p-126f,0x1.fffffcp-127,-1,-1,-1,-1,-1,-1,0},
    248  1.1  joerg     {-0x1p-126f,0x1p-126f,-1,-1,-1,-1,-1,-1,0},
    249  1.1  joerg     {-0x1p-126f,0x1.fffffep-1f,-1,-1,-1,-1,-1,-1,0},
    250  1.1  joerg     {-0x1p-126f,0x1p0f,-1,-1,-1,-1,-1,-1,0},
    251  1.1  joerg     {-0x1p-126f,0x1.000002p0f,-1,-1,-1,-1,-1,-1,0},
    252  1.1  joerg     {-0x1p-126f,0x1.fffffep+127f,-1,-1,-1,-1,-1,-1,0},
    253  1.1  joerg     {-0x1p-126f,__builtin_inff(),-1,-1,-1,-1,-1,-1,0},
    254  1.1  joerg     {-0x1.fffffcp-127,__builtin_nanf(""),1,-1,-1,1,1,1,1},
    255  1.1  joerg     {-0x1.fffffcp-127,-__builtin_inff(),1,1,1,1,1,1,0},
    256  1.1  joerg     {-0x1.fffffcp-127,-0x1.fffffep+127f,1,1,1,1,1,1,0},
    257  1.1  joerg     {-0x1.fffffcp-127,-0x1p0f,1,1,1,1,1,1,0},
    258  1.1  joerg     {-0x1.fffffcp-127,-0x1.fffffep-1f,1,1,1,1,1,1,0},
    259  1.1  joerg     {-0x1.fffffcp-127,-0x1p-126f,1,1,1,1,1,1,0},
    260  1.1  joerg     {-0x1.fffffcp-127,-0x1.fffffcp-127,0,0,0,0,0,0,0},
    261  1.1  joerg     {-0x1.fffffcp-127,-0x1p-149f,-1,-1,-1,-1,-1,-1,0},
    262  1.1  joerg     {-0x1.fffffcp-127,-0x0p0f,-1,-1,-1,-1,-1,-1,0},
    263  1.1  joerg     {-0x1.fffffcp-127,0x0p0f,-1,-1,-1,-1,-1,-1,0},
    264  1.1  joerg     {-0x1.fffffcp-127,0x1p-149f,-1,-1,-1,-1,-1,-1,0},
    265  1.1  joerg     {-0x1.fffffcp-127,0x1.fffffcp-127,-1,-1,-1,-1,-1,-1,0},
    266  1.1  joerg     {-0x1.fffffcp-127,0x1p-126f,-1,-1,-1,-1,-1,-1,0},
    267  1.1  joerg     {-0x1.fffffcp-127,0x1.fffffep-1f,-1,-1,-1,-1,-1,-1,0},
    268  1.1  joerg     {-0x1.fffffcp-127,0x1p0f,-1,-1,-1,-1,-1,-1,0},
    269  1.1  joerg     {-0x1.fffffcp-127,0x1.000002p0f,-1,-1,-1,-1,-1,-1,0},
    270  1.1  joerg     {-0x1.fffffcp-127,0x1.fffffep+127f,-1,-1,-1,-1,-1,-1,0},
    271  1.1  joerg     {-0x1.fffffcp-127,__builtin_inff(),-1,-1,-1,-1,-1,-1,0},
    272  1.1  joerg     {-0x1p-149f,__builtin_nanf(""),1,-1,-1,1,1,1,1},
    273  1.1  joerg     {-0x1p-149f,-__builtin_inff(),1,1,1,1,1,1,0},
    274  1.1  joerg     {-0x1p-149f,-0x1.fffffep+127f,1,1,1,1,1,1,0},
    275  1.1  joerg     {-0x1p-149f,-0x1p0f,1,1,1,1,1,1,0},
    276  1.1  joerg     {-0x1p-149f,-0x1.fffffep-1f,1,1,1,1,1,1,0},
    277  1.1  joerg     {-0x1p-149f,-0x1p-126f,1,1,1,1,1,1,0},
    278  1.1  joerg     {-0x1p-149f,-0x1.fffffcp-127,1,1,1,1,1,1,0},
    279  1.1  joerg     {-0x1p-149f,-0x1p-149f,0,0,0,0,0,0,0},
    280  1.1  joerg     {-0x1p-149f,-0x0p0f,-1,-1,-1,-1,-1,-1,0},
    281  1.1  joerg     {-0x1p-149f,0x0p0f,-1,-1,-1,-1,-1,-1,0},
    282  1.1  joerg     {-0x1p-149f,0x1p-149f,-1,-1,-1,-1,-1,-1,0},
    283  1.1  joerg     {-0x1p-149f,0x1.fffffcp-127,-1,-1,-1,-1,-1,-1,0},
    284  1.1  joerg     {-0x1p-149f,0x1p-126f,-1,-1,-1,-1,-1,-1,0},
    285  1.1  joerg     {-0x1p-149f,0x1.fffffep-1f,-1,-1,-1,-1,-1,-1,0},
    286  1.1  joerg     {-0x1p-149f,0x1p0f,-1,-1,-1,-1,-1,-1,0},
    287  1.1  joerg     {-0x1p-149f,0x1.000002p0f,-1,-1,-1,-1,-1,-1,0},
    288  1.1  joerg     {-0x1p-149f,0x1.fffffep+127f,-1,-1,-1,-1,-1,-1,0},
    289  1.1  joerg     {-0x1p-149f,__builtin_inff(),-1,-1,-1,-1,-1,-1,0},
    290  1.1  joerg     {-0x0p0f,__builtin_nanf(""),1,-1,-1,1,1,1,1},
    291  1.1  joerg     {-0x0p0f,-__builtin_inff(),1,1,1,1,1,1,0},
    292  1.1  joerg     {-0x0p0f,-0x1.fffffep+127f,1,1,1,1,1,1,0},
    293  1.1  joerg     {-0x0p0f,-0x1p0f,1,1,1,1,1,1,0},
    294  1.1  joerg     {-0x0p0f,-0x1.fffffep-1f,1,1,1,1,1,1,0},
    295  1.1  joerg     {-0x0p0f,-0x1p-126f,1,1,1,1,1,1,0},
    296  1.1  joerg     {-0x0p0f,-0x1.fffffcp-127,1,1,1,1,1,1,0},
    297  1.1  joerg     {-0x0p0f,-0x1p-149f,1,1,1,1,1,1,0},
    298  1.1  joerg     {-0x0p0f,-0x0p0f,0,0,0,0,0,0,0},
    299  1.1  joerg     {-0x0p0f,0x0p0f,0,0,0,0,0,0,0},
    300  1.1  joerg     {-0x0p0f,0x1p-149f,-1,-1,-1,-1,-1,-1,0},
    301  1.1  joerg     {-0x0p0f,0x1.fffffcp-127,-1,-1,-1,-1,-1,-1,0},
    302  1.1  joerg     {-0x0p0f,0x1p-126f,-1,-1,-1,-1,-1,-1,0},
    303  1.1  joerg     {-0x0p0f,0x1.fffffep-1f,-1,-1,-1,-1,-1,-1,0},
    304  1.1  joerg     {-0x0p0f,0x1p0f,-1,-1,-1,-1,-1,-1,0},
    305  1.1  joerg     {-0x0p0f,0x1.000002p0f,-1,-1,-1,-1,-1,-1,0},
    306  1.1  joerg     {-0x0p0f,0x1.fffffep+127f,-1,-1,-1,-1,-1,-1,0},
    307  1.1  joerg     {-0x0p0f,__builtin_inff(),-1,-1,-1,-1,-1,-1,0},
    308  1.1  joerg     {0x0p0f,__builtin_nanf(""),1,-1,-1,1,1,1,1},
    309  1.1  joerg     {0x0p0f,-__builtin_inff(),1,1,1,1,1,1,0},
    310  1.1  joerg     {0x0p0f,-0x1.fffffep+127f,1,1,1,1,1,1,0},
    311  1.1  joerg     {0x0p0f,-0x1p0f,1,1,1,1,1,1,0},
    312  1.1  joerg     {0x0p0f,-0x1.fffffep-1f,1,1,1,1,1,1,0},
    313  1.1  joerg     {0x0p0f,-0x1p-126f,1,1,1,1,1,1,0},
    314  1.1  joerg     {0x0p0f,-0x1.fffffcp-127,1,1,1,1,1,1,0},
    315  1.1  joerg     {0x0p0f,-0x1p-149f,1,1,1,1,1,1,0},
    316  1.1  joerg     {0x0p0f,-0x0p0f,0,0,0,0,0,0,0},
    317  1.1  joerg     {0x0p0f,0x0p0f,0,0,0,0,0,0,0},
    318  1.1  joerg     {0x0p0f,0x1p-149f,-1,-1,-1,-1,-1,-1,0},
    319  1.1  joerg     {0x0p0f,0x1.fffffcp-127,-1,-1,-1,-1,-1,-1,0},
    320  1.1  joerg     {0x0p0f,0x1p-126f,-1,-1,-1,-1,-1,-1,0},
    321  1.1  joerg     {0x0p0f,0x1.fffffep-1f,-1,-1,-1,-1,-1,-1,0},
    322  1.1  joerg     {0x0p0f,0x1p0f,-1,-1,-1,-1,-1,-1,0},
    323  1.1  joerg     {0x0p0f,0x1.000002p0f,-1,-1,-1,-1,-1,-1,0},
    324  1.1  joerg     {0x0p0f,0x1.fffffep+127f,-1,-1,-1,-1,-1,-1,0},
    325  1.1  joerg     {0x0p0f,__builtin_inff(),-1,-1,-1,-1,-1,-1,0},
    326  1.1  joerg     {0x1p-149f,__builtin_nanf(""),1,-1,-1,1,1,1,1},
    327  1.1  joerg     {0x1p-149f,-__builtin_inff(),1,1,1,1,1,1,0},
    328  1.1  joerg     {0x1p-149f,-0x1.fffffep+127f,1,1,1,1,1,1,0},
    329  1.1  joerg     {0x1p-149f,-0x1p0f,1,1,1,1,1,1,0},
    330  1.1  joerg     {0x1p-149f,-0x1.fffffep-1f,1,1,1,1,1,1,0},
    331  1.1  joerg     {0x1p-149f,-0x1p-126f,1,1,1,1,1,1,0},
    332  1.1  joerg     {0x1p-149f,-0x1.fffffcp-127,1,1,1,1,1,1,0},
    333  1.1  joerg     {0x1p-149f,-0x1p-149f,1,1,1,1,1,1,0},
    334  1.1  joerg     {0x1p-149f,-0x0p0f,1,1,1,1,1,1,0},
    335  1.1  joerg     {0x1p-149f,0x0p0f,1,1,1,1,1,1,0},
    336  1.1  joerg     {0x1p-149f,0x1p-149f,0,0,0,0,0,0,0},
    337  1.1  joerg     {0x1p-149f,0x1.fffffcp-127,-1,-1,-1,-1,-1,-1,0},
    338  1.1  joerg     {0x1p-149f,0x1p-126f,-1,-1,-1,-1,-1,-1,0},
    339  1.1  joerg     {0x1p-149f,0x1.fffffep-1f,-1,-1,-1,-1,-1,-1,0},
    340  1.1  joerg     {0x1p-149f,0x1p0f,-1,-1,-1,-1,-1,-1,0},
    341  1.1  joerg     {0x1p-149f,0x1.000002p0f,-1,-1,-1,-1,-1,-1,0},
    342  1.1  joerg     {0x1p-149f,0x1.fffffep+127f,-1,-1,-1,-1,-1,-1,0},
    343  1.1  joerg     {0x1p-149f,__builtin_inff(),-1,-1,-1,-1,-1,-1,0},
    344  1.1  joerg     {0x1.fffffcp-127,__builtin_nanf(""),1,-1,-1,1,1,1,1},
    345  1.1  joerg     {0x1.fffffcp-127,-__builtin_inff(),1,1,1,1,1,1,0},
    346  1.1  joerg     {0x1.fffffcp-127,-0x1.fffffep+127f,1,1,1,1,1,1,0},
    347  1.1  joerg     {0x1.fffffcp-127,-0x1p0f,1,1,1,1,1,1,0},
    348  1.1  joerg     {0x1.fffffcp-127,-0x1.fffffep-1f,1,1,1,1,1,1,0},
    349  1.1  joerg     {0x1.fffffcp-127,-0x1p-126f,1,1,1,1,1,1,0},
    350  1.1  joerg     {0x1.fffffcp-127,-0x1.fffffcp-127,1,1,1,1,1,1,0},
    351  1.1  joerg     {0x1.fffffcp-127,-0x1p-149f,1,1,1,1,1,1,0},
    352  1.1  joerg     {0x1.fffffcp-127,-0x0p0f,1,1,1,1,1,1,0},
    353  1.1  joerg     {0x1.fffffcp-127,0x0p0f,1,1,1,1,1,1,0},
    354  1.1  joerg     {0x1.fffffcp-127,0x1p-149f,1,1,1,1,1,1,0},
    355  1.1  joerg     {0x1.fffffcp-127,0x1.fffffcp-127,0,0,0,0,0,0,0},
    356  1.1  joerg     {0x1.fffffcp-127,0x1p-126f,-1,-1,-1,-1,-1,-1,0},
    357  1.1  joerg     {0x1.fffffcp-127,0x1.fffffep-1f,-1,-1,-1,-1,-1,-1,0},
    358  1.1  joerg     {0x1.fffffcp-127,0x1p0f,-1,-1,-1,-1,-1,-1,0},
    359  1.1  joerg     {0x1.fffffcp-127,0x1.000002p0f,-1,-1,-1,-1,-1,-1,0},
    360  1.1  joerg     {0x1.fffffcp-127,0x1.fffffep+127f,-1,-1,-1,-1,-1,-1,0},
    361  1.1  joerg     {0x1.fffffcp-127,__builtin_inff(),-1,-1,-1,-1,-1,-1,0},
    362  1.1  joerg     {0x1p-126f,__builtin_nanf(""),1,-1,-1,1,1,1,1},
    363  1.1  joerg     {0x1p-126f,-__builtin_inff(),1,1,1,1,1,1,0},
    364  1.1  joerg     {0x1p-126f,-0x1.fffffep+127f,1,1,1,1,1,1,0},
    365  1.1  joerg     {0x1p-126f,-0x1p0f,1,1,1,1,1,1,0},
    366  1.1  joerg     {0x1p-126f,-0x1.fffffep-1f,1,1,1,1,1,1,0},
    367  1.1  joerg     {0x1p-126f,-0x1p-126f,1,1,1,1,1,1,0},
    368  1.1  joerg     {0x1p-126f,-0x1.fffffcp-127,1,1,1,1,1,1,0},
    369  1.1  joerg     {0x1p-126f,-0x1p-149f,1,1,1,1,1,1,0},
    370  1.1  joerg     {0x1p-126f,-0x0p0f,1,1,1,1,1,1,0},
    371  1.1  joerg     {0x1p-126f,0x0p0f,1,1,1,1,1,1,0},
    372  1.1  joerg     {0x1p-126f,0x1p-149f,1,1,1,1,1,1,0},
    373  1.1  joerg     {0x1p-126f,0x1.fffffcp-127,1,1,1,1,1,1,0},
    374  1.1  joerg     {0x1p-126f,0x1p-126f,0,0,0,0,0,0,0},
    375  1.1  joerg     {0x1p-126f,0x1.fffffep-1f,-1,-1,-1,-1,-1,-1,0},
    376  1.1  joerg     {0x1p-126f,0x1p0f,-1,-1,-1,-1,-1,-1,0},
    377  1.1  joerg     {0x1p-126f,0x1.000002p0f,-1,-1,-1,-1,-1,-1,0},
    378  1.1  joerg     {0x1p-126f,0x1.fffffep+127f,-1,-1,-1,-1,-1,-1,0},
    379  1.1  joerg     {0x1p-126f,__builtin_inff(),-1,-1,-1,-1,-1,-1,0},
    380  1.1  joerg     {0x1.fffffep-1f,__builtin_nanf(""),1,-1,-1,1,1,1,1},
    381  1.1  joerg     {0x1.fffffep-1f,-__builtin_inff(),1,1,1,1,1,1,0},
    382  1.1  joerg     {0x1.fffffep-1f,-0x1.fffffep+127f,1,1,1,1,1,1,0},
    383  1.1  joerg     {0x1.fffffep-1f,-0x1p0f,1,1,1,1,1,1,0},
    384  1.1  joerg     {0x1.fffffep-1f,-0x1.fffffep-1f,1,1,1,1,1,1,0},
    385  1.1  joerg     {0x1.fffffep-1f,-0x1p-126f,1,1,1,1,1,1,0},
    386  1.1  joerg     {0x1.fffffep-1f,-0x1.fffffcp-127,1,1,1,1,1,1,0},
    387  1.1  joerg     {0x1.fffffep-1f,-0x1p-149f,1,1,1,1,1,1,0},
    388  1.1  joerg     {0x1.fffffep-1f,-0x0p0f,1,1,1,1,1,1,0},
    389  1.1  joerg     {0x1.fffffep-1f,0x0p0f,1,1,1,1,1,1,0},
    390  1.1  joerg     {0x1.fffffep-1f,0x1p-149f,1,1,1,1,1,1,0},
    391  1.1  joerg     {0x1.fffffep-1f,0x1.fffffcp-127,1,1,1,1,1,1,0},
    392  1.1  joerg     {0x1.fffffep-1f,0x1p-126f,1,1,1,1,1,1,0},
    393  1.1  joerg     {0x1.fffffep-1f,0x1.fffffep-1f,0,0,0,0,0,0,0},
    394  1.1  joerg     {0x1.fffffep-1f,0x1p0f,-1,-1,-1,-1,-1,-1,0},
    395  1.1  joerg     {0x1.fffffep-1f,0x1.000002p0f,-1,-1,-1,-1,-1,-1,0},
    396  1.1  joerg     {0x1.fffffep-1f,0x1.fffffep+127f,-1,-1,-1,-1,-1,-1,0},
    397  1.1  joerg     {0x1.fffffep-1f,__builtin_inff(),-1,-1,-1,-1,-1,-1,0},
    398  1.1  joerg     {0x1p0f,__builtin_nanf(""),1,-1,-1,1,1,1,1},
    399  1.1  joerg     {0x1p0f,-__builtin_inff(),1,1,1,1,1,1,0},
    400  1.1  joerg     {0x1p0f,-0x1.fffffep+127f,1,1,1,1,1,1,0},
    401  1.1  joerg     {0x1p0f,-0x1p0f,1,1,1,1,1,1,0},
    402  1.1  joerg     {0x1p0f,-0x1.fffffep-1f,1,1,1,1,1,1,0},
    403  1.1  joerg     {0x1p0f,-0x1p-126f,1,1,1,1,1,1,0},
    404  1.1  joerg     {0x1p0f,-0x1.fffffcp-127,1,1,1,1,1,1,0},
    405  1.1  joerg     {0x1p0f,-0x1p-149f,1,1,1,1,1,1,0},
    406  1.1  joerg     {0x1p0f,-0x0p0f,1,1,1,1,1,1,0},
    407  1.1  joerg     {0x1p0f,0x0p0f,1,1,1,1,1,1,0},
    408  1.1  joerg     {0x1p0f,0x1p-149f,1,1,1,1,1,1,0},
    409  1.1  joerg     {0x1p0f,0x1.fffffcp-127,1,1,1,1,1,1,0},
    410  1.1  joerg     {0x1p0f,0x1p-126f,1,1,1,1,1,1,0},
    411  1.1  joerg     {0x1p0f,0x1.fffffep-1f,1,1,1,1,1,1,0},
    412  1.1  joerg     {0x1p0f,0x1p0f,0,0,0,0,0,0,0},
    413  1.1  joerg     {0x1p0f,0x1.000002p0f,-1,-1,-1,-1,-1,-1,0},
    414  1.1  joerg     {0x1p0f,0x1.fffffep+127f,-1,-1,-1,-1,-1,-1,0},
    415  1.1  joerg     {0x1p0f,__builtin_inff(),-1,-1,-1,-1,-1,-1,0},
    416  1.1  joerg     {0x1.000002p0f,__builtin_nanf(""),1,-1,-1,1,1,1,1},
    417  1.1  joerg     {0x1.000002p0f,-__builtin_inff(),1,1,1,1,1,1,0},
    418  1.1  joerg     {0x1.000002p0f,-0x1.fffffep+127f,1,1,1,1,1,1,0},
    419  1.1  joerg     {0x1.000002p0f,-0x1p0f,1,1,1,1,1,1,0},
    420  1.1  joerg     {0x1.000002p0f,-0x1.fffffep-1f,1,1,1,1,1,1,0},
    421  1.1  joerg     {0x1.000002p0f,-0x1p-126f,1,1,1,1,1,1,0},
    422  1.1  joerg     {0x1.000002p0f,-0x1.fffffcp-127,1,1,1,1,1,1,0},
    423  1.1  joerg     {0x1.000002p0f,-0x1p-149f,1,1,1,1,1,1,0},
    424  1.1  joerg     {0x1.000002p0f,-0x0p0f,1,1,1,1,1,1,0},
    425  1.1  joerg     {0x1.000002p0f,0x0p0f,1,1,1,1,1,1,0},
    426  1.1  joerg     {0x1.000002p0f,0x1p-149f,1,1,1,1,1,1,0},
    427  1.1  joerg     {0x1.000002p0f,0x1.fffffcp-127,1,1,1,1,1,1,0},
    428  1.1  joerg     {0x1.000002p0f,0x1p-126f,1,1,1,1,1,1,0},
    429  1.1  joerg     {0x1.000002p0f,0x1.fffffep-1f,1,1,1,1,1,1,0},
    430  1.1  joerg     {0x1.000002p0f,0x1p0f,1,1,1,1,1,1,0},
    431  1.1  joerg     {0x1.000002p0f,0x1.000002p0f,0,0,0,0,0,0,0},
    432  1.1  joerg     {0x1.000002p0f,0x1.fffffep+127f,-1,-1,-1,-1,-1,-1,0},
    433  1.1  joerg     {0x1.000002p0f,__builtin_inff(),-1,-1,-1,-1,-1,-1,0},
    434  1.1  joerg     {0x1.fffffep+127f,__builtin_nanf(""),1,-1,-1,1,1,1,1},
    435  1.1  joerg     {0x1.fffffep+127f,-__builtin_inff(),1,1,1,1,1,1,0},
    436  1.1  joerg     {0x1.fffffep+127f,-0x1.fffffep+127f,1,1,1,1,1,1,0},
    437  1.1  joerg     {0x1.fffffep+127f,-0x1p0f,1,1,1,1,1,1,0},
    438  1.1  joerg     {0x1.fffffep+127f,-0x1.fffffep-1f,1,1,1,1,1,1,0},
    439  1.1  joerg     {0x1.fffffep+127f,-0x1p-126f,1,1,1,1,1,1,0},
    440  1.1  joerg     {0x1.fffffep+127f,-0x1.fffffcp-127,1,1,1,1,1,1,0},
    441  1.1  joerg     {0x1.fffffep+127f,-0x1p-149f,1,1,1,1,1,1,0},
    442  1.1  joerg     {0x1.fffffep+127f,-0x0p0f,1,1,1,1,1,1,0},
    443  1.1  joerg     {0x1.fffffep+127f,0x0p0f,1,1,1,1,1,1,0},
    444  1.1  joerg     {0x1.fffffep+127f,0x1p-149f,1,1,1,1,1,1,0},
    445  1.1  joerg     {0x1.fffffep+127f,0x1.fffffcp-127,1,1,1,1,1,1,0},
    446  1.1  joerg     {0x1.fffffep+127f,0x1p-126f,1,1,1,1,1,1,0},
    447  1.1  joerg     {0x1.fffffep+127f,0x1.fffffep-1f,1,1,1,1,1,1,0},
    448  1.1  joerg     {0x1.fffffep+127f,0x1p0f,1,1,1,1,1,1,0},
    449  1.1  joerg     {0x1.fffffep+127f,0x1.000002p0f,1,1,1,1,1,1,0},
    450  1.1  joerg     {0x1.fffffep+127f,0x1.fffffep+127f,0,0,0,0,0,0,0},
    451  1.1  joerg     {0x1.fffffep+127f,__builtin_inff(),-1,-1,-1,-1,-1,-1,0},
    452  1.1  joerg     {__builtin_inff(),__builtin_nanf(""),1,-1,-1,1,1,1,1},
    453  1.1  joerg     {__builtin_inff(),-__builtin_inff(),1,1,1,1,1,1,0},
    454  1.1  joerg     {__builtin_inff(),-0x1.fffffep+127f,1,1,1,1,1,1,0},
    455  1.1  joerg     {__builtin_inff(),-0x1p0f,1,1,1,1,1,1,0},
    456  1.1  joerg     {__builtin_inff(),-0x1.fffffep-1f,1,1,1,1,1,1,0},
    457  1.1  joerg     {__builtin_inff(),-0x1p-126f,1,1,1,1,1,1,0},
    458  1.1  joerg     {__builtin_inff(),-0x1.fffffcp-127,1,1,1,1,1,1,0},
    459  1.1  joerg     {__builtin_inff(),-0x1p-149f,1,1,1,1,1,1,0},
    460  1.1  joerg     {__builtin_inff(),-0x0p0f,1,1,1,1,1,1,0},
    461  1.1  joerg     {__builtin_inff(),0x0p0f,1,1,1,1,1,1,0},
    462  1.1  joerg     {__builtin_inff(),0x1p-149f,1,1,1,1,1,1,0},
    463  1.1  joerg     {__builtin_inff(),0x1.fffffcp-127,1,1,1,1,1,1,0},
    464  1.1  joerg     {__builtin_inff(),0x1p-126f,1,1,1,1,1,1,0},
    465  1.1  joerg     {__builtin_inff(),0x1.fffffep-1f,1,1,1,1,1,1,0},
    466  1.1  joerg     {__builtin_inff(),0x1p0f,1,1,1,1,1,1,0},
    467  1.1  joerg     {__builtin_inff(),0x1.000002p0f,1,1,1,1,1,1,0},
    468  1.1  joerg     {__builtin_inff(),0x1.fffffep+127f,1,1,1,1,1,1,0},
    469  1.1  joerg     {__builtin_inff(),__builtin_inff(),0,0,0,0,0,0,0},
    470  1.1  joerg };
    471  1.1  joerg 
    472  1.1  joerg int main(int argc, char *argv[]) {
    473  1.1  joerg     const int numVectors = sizeof vectors / sizeof vectors[0];
    474  1.1  joerg     int i;
    475  1.1  joerg     for (i = 0; i<numVectors; ++i) {
    476  1.1  joerg         if (test__cmpsf2(&vectors[i])) return 1;
    477  1.1  joerg     }
    478  1.1  joerg     return 0;
    479  1.1  joerg }
    480