Home | History | Annotate | Download | only in Unit
      1 //===-- clzsi2_test.c - Test __clzsi2 -------------------------------------===//
      2 //
      3 //                     The LLVM Compiler Infrastructure
      4 //
      5 // This file is dual licensed under the MIT and the University of Illinois Open
      6 // Source Licenses. See LICENSE.TXT for details.
      7 //
      8 //===----------------------------------------------------------------------===//
      9 //
     10 // This file tests __clzsi2 for the compiler_rt library.
     11 //
     12 //===----------------------------------------------------------------------===//
     13 
     14 #include "int_lib.h"
     15 #include <stdio.h>
     16 
     17 // Returns: the number of leading 0-bits
     18 
     19 // Precondition: a != 0
     20 
     21 si_int __clzsi2(si_int a);
     22 
     23 int test__clzsi2(si_int a, si_int expected)
     24 {
     25     si_int x = __clzsi2(a);
     26     if (x != expected)
     27         printf("error in __clzsi2(0x%X) = %d, expected %d\n", a, x, expected);
     28     return x != expected;
     29 }
     30 
     31 char assumption_1[sizeof(di_int) == 2*sizeof(si_int)] = {0};
     32 char assumption_2[sizeof(si_int)*CHAR_BIT == 32] = {0};
     33 
     34 int main()
     35 {
     36 //    if (test__clzsi2(0x00000000, 32))  // undefined
     37 //        return 1;
     38     if (test__clzsi2(0x00800000, 8))
     39         return 1;
     40     if (test__clzsi2(0x01000000, 7))
     41         return 1;
     42     if (test__clzsi2(0x02000000, 6))
     43         return 1;
     44     if (test__clzsi2(0x03000000, 6))
     45         return 1;
     46     if (test__clzsi2(0x04000000, 5))
     47         return 1;
     48     if (test__clzsi2(0x05000000, 5))
     49         return 1;
     50     if (test__clzsi2(0x06000000, 5))
     51         return 1;
     52     if (test__clzsi2(0x07000000, 5))
     53         return 1;
     54     if (test__clzsi2(0x08000000, 4))
     55         return 1;
     56     if (test__clzsi2(0x09000000, 4))
     57         return 1;
     58     if (test__clzsi2(0x0A000000, 4))
     59         return 1;
     60     if (test__clzsi2(0x0B000000, 4))
     61         return 1;
     62     if (test__clzsi2(0x0C000000, 4))
     63         return 1;
     64     if (test__clzsi2(0x0D000000, 4))
     65         return 1;
     66     if (test__clzsi2(0x0E000000, 4))
     67         return 1;
     68     if (test__clzsi2(0x0F000000, 4))
     69         return 1;
     70     if (test__clzsi2(0x10000000, 3))
     71         return 1;
     72     if (test__clzsi2(0x11000000, 3))
     73         return 1;
     74     if (test__clzsi2(0x12000000, 3))
     75         return 1;
     76     if (test__clzsi2(0x13000000, 3))
     77         return 1;
     78     if (test__clzsi2(0x14000000, 3))
     79         return 1;
     80     if (test__clzsi2(0x15000000, 3))
     81         return 1;
     82     if (test__clzsi2(0x16000000, 3))
     83         return 1;
     84     if (test__clzsi2(0x17000000, 3))
     85         return 1;
     86     if (test__clzsi2(0x18000000, 3))
     87         return 1;
     88     if (test__clzsi2(0x19000000, 3))
     89         return 1;
     90     if (test__clzsi2(0x1A000000, 3))
     91         return 1;
     92     if (test__clzsi2(0x1B000000, 3))
     93         return 1;
     94     if (test__clzsi2(0x1C000000, 3))
     95         return 1;
     96     if (test__clzsi2(0x1D000000, 3))
     97         return 1;
     98     if (test__clzsi2(0x1E000000, 3))
     99         return 1;
    100     if (test__clzsi2(0x1F000000, 3))
    101         return 1;
    102     if (test__clzsi2(0x20000000, 2))
    103         return 1;
    104     if (test__clzsi2(0x21000000, 2))
    105         return 1;
    106     if (test__clzsi2(0x22000000, 2))
    107         return 1;
    108     if (test__clzsi2(0x23000000, 2))
    109         return 1;
    110     if (test__clzsi2(0x24000000, 2))
    111         return 1;
    112     if (test__clzsi2(0x25000000, 2))
    113         return 1;
    114     if (test__clzsi2(0x26000000, 2))
    115         return 1;
    116     if (test__clzsi2(0x27000000, 2))
    117         return 1;
    118     if (test__clzsi2(0x28000000, 2))
    119         return 1;
    120     if (test__clzsi2(0x29000000, 2))
    121         return 1;
    122     if (test__clzsi2(0x2A000000, 2))
    123         return 1;
    124     if (test__clzsi2(0x2B000000, 2))
    125         return 1;
    126     if (test__clzsi2(0x2C000000, 2))
    127         return 1;
    128     if (test__clzsi2(0x2D000000, 2))
    129         return 1;
    130     if (test__clzsi2(0x2E000000, 2))
    131         return 1;
    132     if (test__clzsi2(0x2F000000, 2))
    133         return 1;
    134     if (test__clzsi2(0x30000000, 2))
    135         return 1;
    136     if (test__clzsi2(0x31000000, 2))
    137         return 1;
    138     if (test__clzsi2(0x32000000, 2))
    139         return 1;
    140     if (test__clzsi2(0x33000000, 2))
    141         return 1;
    142     if (test__clzsi2(0x34000000, 2))
    143         return 1;
    144     if (test__clzsi2(0x35000000, 2))
    145         return 1;
    146     if (test__clzsi2(0x36000000, 2))
    147         return 1;
    148     if (test__clzsi2(0x37000000, 2))
    149         return 1;
    150     if (test__clzsi2(0x38000000, 2))
    151         return 1;
    152     if (test__clzsi2(0x39000000, 2))
    153         return 1;
    154     if (test__clzsi2(0x3A000000, 2))
    155         return 1;
    156     if (test__clzsi2(0x3B000000, 2))
    157         return 1;
    158     if (test__clzsi2(0x3C000000, 2))
    159         return 1;
    160     if (test__clzsi2(0x3D000000, 2))
    161         return 1;
    162     if (test__clzsi2(0x3E000000, 2))
    163         return 1;
    164     if (test__clzsi2(0x3F000000, 2))
    165         return 1;
    166     if (test__clzsi2(0x40000000, 1))
    167         return 1;
    168     if (test__clzsi2(0x41000000, 1))
    169         return 1;
    170     if (test__clzsi2(0x42000000, 1))
    171         return 1;
    172     if (test__clzsi2(0x43000000, 1))
    173         return 1;
    174     if (test__clzsi2(0x44000000, 1))
    175         return 1;
    176     if (test__clzsi2(0x45000000, 1))
    177         return 1;
    178     if (test__clzsi2(0x46000000, 1))
    179         return 1;
    180     if (test__clzsi2(0x47000000, 1))
    181         return 1;
    182     if (test__clzsi2(0x48000000, 1))
    183         return 1;
    184     if (test__clzsi2(0x49000000, 1))
    185         return 1;
    186     if (test__clzsi2(0x4A000000, 1))
    187         return 1;
    188     if (test__clzsi2(0x4B000000, 1))
    189         return 1;
    190     if (test__clzsi2(0x4C000000, 1))
    191         return 1;
    192     if (test__clzsi2(0x4D000000, 1))
    193         return 1;
    194     if (test__clzsi2(0x4E000000, 1))
    195         return 1;
    196     if (test__clzsi2(0x4F000000, 1))
    197         return 1;
    198     if (test__clzsi2(0x50000000, 1))
    199         return 1;
    200     if (test__clzsi2(0x51000000, 1))
    201         return 1;
    202     if (test__clzsi2(0x52000000, 1))
    203         return 1;
    204     if (test__clzsi2(0x53000000, 1))
    205         return 1;
    206     if (test__clzsi2(0x54000000, 1))
    207         return 1;
    208     if (test__clzsi2(0x55000000, 1))
    209         return 1;
    210     if (test__clzsi2(0x56000000, 1))
    211         return 1;
    212     if (test__clzsi2(0x57000000, 1))
    213         return 1;
    214     if (test__clzsi2(0x58000000, 1))
    215         return 1;
    216     if (test__clzsi2(0x59000000, 1))
    217         return 1;
    218     if (test__clzsi2(0x5A000000, 1))
    219         return 1;
    220     if (test__clzsi2(0x5B000000, 1))
    221         return 1;
    222     if (test__clzsi2(0x5C000000, 1))
    223         return 1;
    224     if (test__clzsi2(0x5D000000, 1))
    225         return 1;
    226     if (test__clzsi2(0x5E000000, 1))
    227         return 1;
    228     if (test__clzsi2(0x5F000000, 1))
    229         return 1;
    230     if (test__clzsi2(0x60000000, 1))
    231         return 1;
    232     if (test__clzsi2(0x61000000, 1))
    233         return 1;
    234     if (test__clzsi2(0x62000000, 1))
    235         return 1;
    236     if (test__clzsi2(0x63000000, 1))
    237         return 1;
    238     if (test__clzsi2(0x64000000, 1))
    239         return 1;
    240     if (test__clzsi2(0x65000000, 1))
    241         return 1;
    242     if (test__clzsi2(0x66000000, 1))
    243         return 1;
    244     if (test__clzsi2(0x67000000, 1))
    245         return 1;
    246     if (test__clzsi2(0x68000000, 1))
    247         return 1;
    248     if (test__clzsi2(0x69000000, 1))
    249         return 1;
    250     if (test__clzsi2(0x6A000000, 1))
    251         return 1;
    252     if (test__clzsi2(0x6B000000, 1))
    253         return 1;
    254     if (test__clzsi2(0x6C000000, 1))
    255         return 1;
    256     if (test__clzsi2(0x6D000000, 1))
    257         return 1;
    258     if (test__clzsi2(0x6E000000, 1))
    259         return 1;
    260     if (test__clzsi2(0x6F000000, 1))
    261         return 1;
    262     if (test__clzsi2(0x70000000, 1))
    263         return 1;
    264     if (test__clzsi2(0x71000000, 1))
    265         return 1;
    266     if (test__clzsi2(0x72000000, 1))
    267         return 1;
    268     if (test__clzsi2(0x73000000, 1))
    269         return 1;
    270     if (test__clzsi2(0x74000000, 1))
    271         return 1;
    272     if (test__clzsi2(0x75000000, 1))
    273         return 1;
    274     if (test__clzsi2(0x76000000, 1))
    275         return 1;
    276     if (test__clzsi2(0x77000000, 1))
    277         return 1;
    278     if (test__clzsi2(0x78000000, 1))
    279         return 1;
    280     if (test__clzsi2(0x79000000, 1))
    281         return 1;
    282     if (test__clzsi2(0x7A000000, 1))
    283         return 1;
    284     if (test__clzsi2(0x7B000000, 1))
    285         return 1;
    286     if (test__clzsi2(0x7C000000, 1))
    287         return 1;
    288     if (test__clzsi2(0x7D000000, 1))
    289         return 1;
    290     if (test__clzsi2(0x7E000000, 1))
    291         return 1;
    292     if (test__clzsi2(0x7F000000, 1))
    293         return 1;
    294     if (test__clzsi2(0x80000000, 0))
    295         return 1;
    296     if (test__clzsi2(0x81000000, 0))
    297         return 1;
    298     if (test__clzsi2(0x82000000, 0))
    299         return 1;
    300     if (test__clzsi2(0x83000000, 0))
    301         return 1;
    302     if (test__clzsi2(0x84000000, 0))
    303         return 1;
    304     if (test__clzsi2(0x85000000, 0))
    305         return 1;
    306     if (test__clzsi2(0x86000000, 0))
    307         return 1;
    308     if (test__clzsi2(0x87000000, 0))
    309         return 1;
    310     if (test__clzsi2(0x88000000, 0))
    311         return 1;
    312     if (test__clzsi2(0x89000000, 0))
    313         return 1;
    314     if (test__clzsi2(0x8A000000, 0))
    315         return 1;
    316     if (test__clzsi2(0x8B000000, 0))
    317         return 1;
    318     if (test__clzsi2(0x8C000000, 0))
    319         return 1;
    320     if (test__clzsi2(0x8D000000, 0))
    321         return 1;
    322     if (test__clzsi2(0x8E000000, 0))
    323         return 1;
    324     if (test__clzsi2(0x8F000000, 0))
    325         return 1;
    326     if (test__clzsi2(0x90000000, 0))
    327         return 1;
    328     if (test__clzsi2(0x91000000, 0))
    329         return 1;
    330     if (test__clzsi2(0x92000000, 0))
    331         return 1;
    332     if (test__clzsi2(0x93000000, 0))
    333         return 1;
    334     if (test__clzsi2(0x94000000, 0))
    335         return 1;
    336     if (test__clzsi2(0x95000000, 0))
    337         return 1;
    338     if (test__clzsi2(0x96000000, 0))
    339         return 1;
    340     if (test__clzsi2(0x97000000, 0))
    341         return 1;
    342     if (test__clzsi2(0x98000000, 0))
    343         return 1;
    344     if (test__clzsi2(0x99000000, 0))
    345         return 1;
    346     if (test__clzsi2(0x9A000000, 0))
    347         return 1;
    348     if (test__clzsi2(0x9B000000, 0))
    349         return 1;
    350     if (test__clzsi2(0x9C000000, 0))
    351         return 1;
    352     if (test__clzsi2(0x9D000000, 0))
    353         return 1;
    354     if (test__clzsi2(0x9E000000, 0))
    355         return 1;
    356     if (test__clzsi2(0x9F000000, 0))
    357         return 1;
    358     if (test__clzsi2(0xA0000000, 0))
    359         return 1;
    360     if (test__clzsi2(0xA1000000, 0))
    361         return 1;
    362     if (test__clzsi2(0xA2000000, 0))
    363         return 1;
    364     if (test__clzsi2(0xA3000000, 0))
    365         return 1;
    366     if (test__clzsi2(0xA4000000, 0))
    367         return 1;
    368     if (test__clzsi2(0xA5000000, 0))
    369         return 1;
    370     if (test__clzsi2(0xA6000000, 0))
    371         return 1;
    372     if (test__clzsi2(0xA7000000, 0))
    373         return 1;
    374     if (test__clzsi2(0xA8000000, 0))
    375         return 1;
    376     if (test__clzsi2(0xA9000000, 0))
    377         return 1;
    378     if (test__clzsi2(0xAA000000, 0))
    379         return 1;
    380     if (test__clzsi2(0xAB000000, 0))
    381         return 1;
    382     if (test__clzsi2(0xAC000000, 0))
    383         return 1;
    384     if (test__clzsi2(0xAD000000, 0))
    385         return 1;
    386     if (test__clzsi2(0xAE000000, 0))
    387         return 1;
    388     if (test__clzsi2(0xAF000000, 0))
    389         return 1;
    390     if (test__clzsi2(0xB0000000, 0))
    391         return 1;
    392     if (test__clzsi2(0xB1000000, 0))
    393         return 1;
    394     if (test__clzsi2(0xB2000000, 0))
    395         return 1;
    396     if (test__clzsi2(0xB3000000, 0))
    397         return 1;
    398     if (test__clzsi2(0xB4000000, 0))
    399         return 1;
    400     if (test__clzsi2(0xB5000000, 0))
    401         return 1;
    402     if (test__clzsi2(0xB6000000, 0))
    403         return 1;
    404     if (test__clzsi2(0xB7000000, 0))
    405         return 1;
    406     if (test__clzsi2(0xB8000000, 0))
    407         return 1;
    408     if (test__clzsi2(0xB9000000, 0))
    409         return 1;
    410     if (test__clzsi2(0xBA000000, 0))
    411         return 1;
    412     if (test__clzsi2(0xBB000000, 0))
    413         return 1;
    414     if (test__clzsi2(0xBC000000, 0))
    415         return 1;
    416     if (test__clzsi2(0xBD000000, 0))
    417         return 1;
    418     if (test__clzsi2(0xBE000000, 0))
    419         return 1;
    420     if (test__clzsi2(0xBF000000, 0))
    421         return 1;
    422     if (test__clzsi2(0xC0000000, 0))
    423         return 1;
    424     if (test__clzsi2(0xC1000000, 0))
    425         return 1;
    426     if (test__clzsi2(0xC2000000, 0))
    427         return 1;
    428     if (test__clzsi2(0xC3000000, 0))
    429         return 1;
    430     if (test__clzsi2(0xC4000000, 0))
    431         return 1;
    432     if (test__clzsi2(0xC5000000, 0))
    433         return 1;
    434     if (test__clzsi2(0xC6000000, 0))
    435         return 1;
    436     if (test__clzsi2(0xC7000000, 0))
    437         return 1;
    438     if (test__clzsi2(0xC8000000, 0))
    439         return 1;
    440     if (test__clzsi2(0xC9000000, 0))
    441         return 1;
    442     if (test__clzsi2(0xCA000000, 0))
    443         return 1;
    444     if (test__clzsi2(0xCB000000, 0))
    445         return 1;
    446     if (test__clzsi2(0xCC000000, 0))
    447         return 1;
    448     if (test__clzsi2(0xCD000000, 0))
    449         return 1;
    450     if (test__clzsi2(0xCE000000, 0))
    451         return 1;
    452     if (test__clzsi2(0xCF000000, 0))
    453         return 1;
    454     if (test__clzsi2(0xD0000000, 0))
    455         return 1;
    456     if (test__clzsi2(0xD1000000, 0))
    457         return 1;
    458     if (test__clzsi2(0xD2000000, 0))
    459         return 1;
    460     if (test__clzsi2(0xD3000000, 0))
    461         return 1;
    462     if (test__clzsi2(0xD4000000, 0))
    463         return 1;
    464     if (test__clzsi2(0xD5000000, 0))
    465         return 1;
    466     if (test__clzsi2(0xD6000000, 0))
    467         return 1;
    468     if (test__clzsi2(0xD7000000, 0))
    469         return 1;
    470     if (test__clzsi2(0xD8000000, 0))
    471         return 1;
    472     if (test__clzsi2(0xD9000000, 0))
    473         return 1;
    474     if (test__clzsi2(0xDA000000, 0))
    475         return 1;
    476     if (test__clzsi2(0xDB000000, 0))
    477         return 1;
    478     if (test__clzsi2(0xDC000000, 0))
    479         return 1;
    480     if (test__clzsi2(0xDD000000, 0))
    481         return 1;
    482     if (test__clzsi2(0xDE000000, 0))
    483         return 1;
    484     if (test__clzsi2(0xDF000000, 0))
    485         return 1;
    486     if (test__clzsi2(0xE0000000, 0))
    487         return 1;
    488     if (test__clzsi2(0xE1000000, 0))
    489         return 1;
    490     if (test__clzsi2(0xE2000000, 0))
    491         return 1;
    492     if (test__clzsi2(0xE3000000, 0))
    493         return 1;
    494     if (test__clzsi2(0xE4000000, 0))
    495         return 1;
    496     if (test__clzsi2(0xE5000000, 0))
    497         return 1;
    498     if (test__clzsi2(0xE6000000, 0))
    499         return 1;
    500     if (test__clzsi2(0xE7000000, 0))
    501         return 1;
    502     if (test__clzsi2(0xE8000000, 0))
    503         return 1;
    504     if (test__clzsi2(0xE9000000, 0))
    505         return 1;
    506     if (test__clzsi2(0xEA000000, 0))
    507         return 1;
    508     if (test__clzsi2(0xEB000000, 0))
    509         return 1;
    510     if (test__clzsi2(0xEC000000, 0))
    511         return 1;
    512     if (test__clzsi2(0xED000000, 0))
    513         return 1;
    514     if (test__clzsi2(0xEE000000, 0))
    515         return 1;
    516     if (test__clzsi2(0xEF000000, 0))
    517         return 1;
    518     if (test__clzsi2(0xF0000000, 0))
    519         return 1;
    520     if (test__clzsi2(0xF1000000, 0))
    521         return 1;
    522     if (test__clzsi2(0xF2000000, 0))
    523         return 1;
    524     if (test__clzsi2(0xF3000000, 0))
    525         return 1;
    526     if (test__clzsi2(0xF4000000, 0))
    527         return 1;
    528     if (test__clzsi2(0xF5000000, 0))
    529         return 1;
    530     if (test__clzsi2(0xF6000000, 0))
    531         return 1;
    532     if (test__clzsi2(0xF7000000, 0))
    533         return 1;
    534     if (test__clzsi2(0xF8000000, 0))
    535         return 1;
    536     if (test__clzsi2(0xF9000000, 0))
    537         return 1;
    538     if (test__clzsi2(0xFA000000, 0))
    539         return 1;
    540     if (test__clzsi2(0xFB000000, 0))
    541         return 1;
    542     if (test__clzsi2(0xFC000000, 0))
    543         return 1;
    544     if (test__clzsi2(0xFD000000, 0))
    545         return 1;
    546     if (test__clzsi2(0xFE000000, 0))
    547         return 1;
    548     if (test__clzsi2(0xFF000000, 0))
    549         return 1;
    550 
    551     if (test__clzsi2(0x00000001, 31))
    552         return 1;
    553     if (test__clzsi2(0x00000002, 30))
    554         return 1;
    555     if (test__clzsi2(0x00000004, 29))
    556         return 1;
    557     if (test__clzsi2(0x00000008, 28))
    558         return 1;
    559     if (test__clzsi2(0x00000010, 27))
    560         return 1;
    561     if (test__clzsi2(0x00000020, 26))
    562         return 1;
    563     if (test__clzsi2(0x00000040, 25))
    564         return 1;
    565     if (test__clzsi2(0x00000080, 24))
    566         return 1;
    567     if (test__clzsi2(0x00000100, 23))
    568         return 1;
    569     if (test__clzsi2(0x00000200, 22))
    570         return 1;
    571     if (test__clzsi2(0x00000400, 21))
    572         return 1;
    573     if (test__clzsi2(0x00000800, 20))
    574         return 1;
    575     if (test__clzsi2(0x00001000, 19))
    576         return 1;
    577     if (test__clzsi2(0x00002000, 18))
    578         return 1;
    579     if (test__clzsi2(0x00004000, 17))
    580         return 1;
    581     if (test__clzsi2(0x00008000, 16))
    582         return 1;
    583     if (test__clzsi2(0x00010000, 15))
    584         return 1;
    585     if (test__clzsi2(0x00020000, 14))
    586         return 1;
    587     if (test__clzsi2(0x00040000, 13))
    588         return 1;
    589     if (test__clzsi2(0x00080000, 12))
    590         return 1;
    591     if (test__clzsi2(0x00100000, 11))
    592         return 1;
    593     if (test__clzsi2(0x00200000, 10))
    594         return 1;
    595     if (test__clzsi2(0x00400000, 9))
    596         return 1;
    597 
    598    return 0;
    599 }
    600