//===-- clzsi2_test.c - Test __clzsi2 -------------------------------------===//
//
//                     The LLVM Compiler Infrastructure
//
// This file is dual licensed under the MIT and the University of Illinois Open
// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
//
// This file tests __clzsi2 for the compiler_rt library.
//
//===----------------------------------------------------------------------===//

#include "int_lib.h"
#include <stdio.h>

// Returns: the number of leading 0-bits

// Precondition: a != 0

COMPILER_RT_ABI si_int __clzsi2(si_int a);

int test__clzsi2(si_int a, si_int expected)
{
    si_int x = __clzsi2(a);
    if (x != expected)
        printf("error in __clzsi2(0x%X) = %d, expected %d\n", a, x, expected);
    return x != expected;
}

char assumption_1[sizeof(di_int) == 2*sizeof(si_int)] = {0};
char assumption_2[sizeof(si_int)*CHAR_BIT == 32] = {0};

int main()
{
//    if (test__clzsi2(0x00000000, 32))  // undefined
//        return 1;
    if (test__clzsi2(0x00800000, 8))
        return 1;
    if (test__clzsi2(0x01000000, 7))
        return 1;
    if (test__clzsi2(0x02000000, 6))
        return 1;
    if (test__clzsi2(0x03000000, 6))
        return 1;
    if (test__clzsi2(0x04000000, 5))
        return 1;
    if (test__clzsi2(0x05000000, 5))
        return 1;
    if (test__clzsi2(0x06000000, 5))
        return 1;
    if (test__clzsi2(0x07000000, 5))
        return 1;
    if (test__clzsi2(0x08000000, 4))
        return 1;
    if (test__clzsi2(0x09000000, 4))
        return 1;
    if (test__clzsi2(0x0A000000, 4))
        return 1;
    if (test__clzsi2(0x0B000000, 4))
        return 1;
    if (test__clzsi2(0x0C000000, 4))
        return 1;
    if (test__clzsi2(0x0D000000, 4))
        return 1;
    if (test__clzsi2(0x0E000000, 4))
        return 1;
    if (test__clzsi2(0x0F000000, 4))
        return 1;
    if (test__clzsi2(0x10000000, 3))
        return 1;
    if (test__clzsi2(0x11000000, 3))
        return 1;
    if (test__clzsi2(0x12000000, 3))
        return 1;
    if (test__clzsi2(0x13000000, 3))
        return 1;
    if (test__clzsi2(0x14000000, 3))
        return 1;
    if (test__clzsi2(0x15000000, 3))
        return 1;
    if (test__clzsi2(0x16000000, 3))
        return 1;
    if (test__clzsi2(0x17000000, 3))
        return 1;
    if (test__clzsi2(0x18000000, 3))
        return 1;
    if (test__clzsi2(0x19000000, 3))
        return 1;
    if (test__clzsi2(0x1A000000, 3))
        return 1;
    if (test__clzsi2(0x1B000000, 3))
        return 1;
    if (test__clzsi2(0x1C000000, 3))
        return 1;
    if (test__clzsi2(0x1D000000, 3))
        return 1;
    if (test__clzsi2(0x1E000000, 3))
        return 1;
    if (test__clzsi2(0x1F000000, 3))
        return 1;
    if (test__clzsi2(0x20000000, 2))
        return 1;
    if (test__clzsi2(0x21000000, 2))
        return 1;
    if (test__clzsi2(0x22000000, 2))
        return 1;
    if (test__clzsi2(0x23000000, 2))
        return 1;
    if (test__clzsi2(0x24000000, 2))
        return 1;
    if (test__clzsi2(0x25000000, 2))
        return 1;
    if (test__clzsi2(0x26000000, 2))
        return 1;
    if (test__clzsi2(0x27000000, 2))
        return 1;
    if (test__clzsi2(0x28000000, 2))
        return 1;
    if (test__clzsi2(0x29000000, 2))
        return 1;
    if (test__clzsi2(0x2A000000, 2))
        return 1;
    if (test__clzsi2(0x2B000000, 2))
        return 1;
    if (test__clzsi2(0x2C000000, 2))
        return 1;
    if (test__clzsi2(0x2D000000, 2))
        return 1;
    if (test__clzsi2(0x2E000000, 2))
        return 1;
    if (test__clzsi2(0x2F000000, 2))
        return 1;
    if (test__clzsi2(0x30000000, 2))
        return 1;
    if (test__clzsi2(0x31000000, 2))
        return 1;
    if (test__clzsi2(0x32000000, 2))
        return 1;
    if (test__clzsi2(0x33000000, 2))
        return 1;
    if (test__clzsi2(0x34000000, 2))
        return 1;
    if (test__clzsi2(0x35000000, 2))
        return 1;
    if (test__clzsi2(0x36000000, 2))
        return 1;
    if (test__clzsi2(0x37000000, 2))
        return 1;
    if (test__clzsi2(0x38000000, 2))
        return 1;
    if (test__clzsi2(0x39000000, 2))
        return 1;
    if (test__clzsi2(0x3A000000, 2))
        return 1;
    if (test__clzsi2(0x3B000000, 2))
        return 1;
    if (test__clzsi2(0x3C000000, 2))
        return 1;
    if (test__clzsi2(0x3D000000, 2))
        return 1;
    if (test__clzsi2(0x3E000000, 2))
        return 1;
    if (test__clzsi2(0x3F000000, 2))
        return 1;
    if (test__clzsi2(0x40000000, 1))
        return 1;
    if (test__clzsi2(0x41000000, 1))
        return 1;
    if (test__clzsi2(0x42000000, 1))
        return 1;
    if (test__clzsi2(0x43000000, 1))
        return 1;
    if (test__clzsi2(0x44000000, 1))
        return 1;
    if (test__clzsi2(0x45000000, 1))
        return 1;
    if (test__clzsi2(0x46000000, 1))
        return 1;
    if (test__clzsi2(0x47000000, 1))
        return 1;
    if (test__clzsi2(0x48000000, 1))
        return 1;
    if (test__clzsi2(0x49000000, 1))
        return 1;
    if (test__clzsi2(0x4A000000, 1))
        return 1;
    if (test__clzsi2(0x4B000000, 1))
        return 1;
    if (test__clzsi2(0x4C000000, 1))
        return 1;
    if (test__clzsi2(0x4D000000, 1))
        return 1;
    if (test__clzsi2(0x4E000000, 1))
        return 1;
    if (test__clzsi2(0x4F000000, 1))
        return 1;
    if (test__clzsi2(0x50000000, 1))
        return 1;
    if (test__clzsi2(0x51000000, 1))
        return 1;
    if (test__clzsi2(0x52000000, 1))
        return 1;
    if (test__clzsi2(0x53000000, 1))
        return 1;
    if (test__clzsi2(0x54000000, 1))
        return 1;
    if (test__clzsi2(0x55000000, 1))
        return 1;
    if (test__clzsi2(0x56000000, 1))
        return 1;
    if (test__clzsi2(0x57000000, 1))
        return 1;
    if (test__clzsi2(0x58000000, 1))
        return 1;
    if (test__clzsi2(0x59000000, 1))
        return 1;
    if (test__clzsi2(0x5A000000, 1))
        return 1;
    if (test__clzsi2(0x5B000000, 1))
        return 1;
    if (test__clzsi2(0x5C000000, 1))
        return 1;
    if (test__clzsi2(0x5D000000, 1))
        return 1;
    if (test__clzsi2(0x5E000000, 1))
        return 1;
    if (test__clzsi2(0x5F000000, 1))
        return 1;
    if (test__clzsi2(0x60000000, 1))
        return 1;
    if (test__clzsi2(0x61000000, 1))
        return 1;
    if (test__clzsi2(0x62000000, 1))
        return 1;
    if (test__clzsi2(0x63000000, 1))
        return 1;
    if (test__clzsi2(0x64000000, 1))
        return 1;
    if (test__clzsi2(0x65000000, 1))
        return 1;
    if (test__clzsi2(0x66000000, 1))
        return 1;
    if (test__clzsi2(0x67000000, 1))
        return 1;
    if (test__clzsi2(0x68000000, 1))
        return 1;
    if (test__clzsi2(0x69000000, 1))
        return 1;
    if (test__clzsi2(0x6A000000, 1))
        return 1;
    if (test__clzsi2(0x6B000000, 1))
        return 1;
    if (test__clzsi2(0x6C000000, 1))
        return 1;
    if (test__clzsi2(0x6D000000, 1))
        return 1;
    if (test__clzsi2(0x6E000000, 1))
        return 1;
    if (test__clzsi2(0x6F000000, 1))
        return 1;
    if (test__clzsi2(0x70000000, 1))
        return 1;
    if (test__clzsi2(0x71000000, 1))
        return 1;
    if (test__clzsi2(0x72000000, 1))
        return 1;
    if (test__clzsi2(0x73000000, 1))
        return 1;
    if (test__clzsi2(0x74000000, 1))
        return 1;
    if (test__clzsi2(0x75000000, 1))
        return 1;
    if (test__clzsi2(0x76000000, 1))
        return 1;
    if (test__clzsi2(0x77000000, 1))
        return 1;
    if (test__clzsi2(0x78000000, 1))
        return 1;
    if (test__clzsi2(0x79000000, 1))
        return 1;
    if (test__clzsi2(0x7A000000, 1))
        return 1;
    if (test__clzsi2(0x7B000000, 1))
        return 1;
    if (test__clzsi2(0x7C000000, 1))
        return 1;
    if (test__clzsi2(0x7D000000, 1))
        return 1;
    if (test__clzsi2(0x7E000000, 1))
        return 1;
    if (test__clzsi2(0x7F000000, 1))
        return 1;
    if (test__clzsi2(0x80000000, 0))
        return 1;
    if (test__clzsi2(0x81000000, 0))
        return 1;
    if (test__clzsi2(0x82000000, 0))
        return 1;
    if (test__clzsi2(0x83000000, 0))
        return 1;
    if (test__clzsi2(0x84000000, 0))
        return 1;
    if (test__clzsi2(0x85000000, 0))
        return 1;
    if (test__clzsi2(0x86000000, 0))
        return 1;
    if (test__clzsi2(0x87000000, 0))
        return 1;
    if (test__clzsi2(0x88000000, 0))
        return 1;
    if (test__clzsi2(0x89000000, 0))
        return 1;
    if (test__clzsi2(0x8A000000, 0))
        return 1;
    if (test__clzsi2(0x8B000000, 0))
        return 1;
    if (test__clzsi2(0x8C000000, 0))
        return 1;
    if (test__clzsi2(0x8D000000, 0))
        return 1;
    if (test__clzsi2(0x8E000000, 0))
        return 1;
    if (test__clzsi2(0x8F000000, 0))
        return 1;
    if (test__clzsi2(0x90000000, 0))
        return 1;
    if (test__clzsi2(0x91000000, 0))
        return 1;
    if (test__clzsi2(0x92000000, 0))
        return 1;
    if (test__clzsi2(0x93000000, 0))
        return 1;
    if (test__clzsi2(0x94000000, 0))
        return 1;
    if (test__clzsi2(0x95000000, 0))
        return 1;
    if (test__clzsi2(0x96000000, 0))
        return 1;
    if (test__clzsi2(0x97000000, 0))
        return 1;
    if (test__clzsi2(0x98000000, 0))
        return 1;
    if (test__clzsi2(0x99000000, 0))
        return 1;
    if (test__clzsi2(0x9A000000, 0))
        return 1;
    if (test__clzsi2(0x9B000000, 0))
        return 1;
    if (test__clzsi2(0x9C000000, 0))
        return 1;
    if (test__clzsi2(0x9D000000, 0))
        return 1;
    if (test__clzsi2(0x9E000000, 0))
        return 1;
    if (test__clzsi2(0x9F000000, 0))
        return 1;
    if (test__clzsi2(0xA0000000, 0))
        return 1;
    if (test__clzsi2(0xA1000000, 0))
        return 1;
    if (test__clzsi2(0xA2000000, 0))
        return 1;
    if (test__clzsi2(0xA3000000, 0))
        return 1;
    if (test__clzsi2(0xA4000000, 0))
        return 1;
    if (test__clzsi2(0xA5000000, 0))
        return 1;
    if (test__clzsi2(0xA6000000, 0))
        return 1;
    if (test__clzsi2(0xA7000000, 0))
        return 1;
    if (test__clzsi2(0xA8000000, 0))
        return 1;
    if (test__clzsi2(0xA9000000, 0))
        return 1;
    if (test__clzsi2(0xAA000000, 0))
        return 1;
    if (test__clzsi2(0xAB000000, 0))
        return 1;
    if (test__clzsi2(0xAC000000, 0))
        return 1;
    if (test__clzsi2(0xAD000000, 0))
        return 1;
    if (test__clzsi2(0xAE000000, 0))
        return 1;
    if (test__clzsi2(0xAF000000, 0))
        return 1;
    if (test__clzsi2(0xB0000000, 0))
        return 1;
    if (test__clzsi2(0xB1000000, 0))
        return 1;
    if (test__clzsi2(0xB2000000, 0))
        return 1;
    if (test__clzsi2(0xB3000000, 0))
        return 1;
    if (test__clzsi2(0xB4000000, 0))
        return 1;
    if (test__clzsi2(0xB5000000, 0))
        return 1;
    if (test__clzsi2(0xB6000000, 0))
        return 1;
    if (test__clzsi2(0xB7000000, 0))
        return 1;
    if (test__clzsi2(0xB8000000, 0))
        return 1;
    if (test__clzsi2(0xB9000000, 0))
        return 1;
    if (test__clzsi2(0xBA000000, 0))
        return 1;
    if (test__clzsi2(0xBB000000, 0))
        return 1;
    if (test__clzsi2(0xBC000000, 0))
        return 1;
    if (test__clzsi2(0xBD000000, 0))
        return 1;
    if (test__clzsi2(0xBE000000, 0))
        return 1;
    if (test__clzsi2(0xBF000000, 0))
        return 1;
    if (test__clzsi2(0xC0000000, 0))
        return 1;
    if (test__clzsi2(0xC1000000, 0))
        return 1;
    if (test__clzsi2(0xC2000000, 0))
        return 1;
    if (test__clzsi2(0xC3000000, 0))
        return 1;
    if (test__clzsi2(0xC4000000, 0))
        return 1;
    if (test__clzsi2(0xC5000000, 0))
        return 1;
    if (test__clzsi2(0xC6000000, 0))
        return 1;
    if (test__clzsi2(0xC7000000, 0))
        return 1;
    if (test__clzsi2(0xC8000000, 0))
        return 1;
    if (test__clzsi2(0xC9000000, 0))
        return 1;
    if (test__clzsi2(0xCA000000, 0))
        return 1;
    if (test__clzsi2(0xCB000000, 0))
        return 1;
    if (test__clzsi2(0xCC000000, 0))
        return 1;
    if (test__clzsi2(0xCD000000, 0))
        return 1;
    if (test__clzsi2(0xCE000000, 0))
        return 1;
    if (test__clzsi2(0xCF000000, 0))
        return 1;
    if (test__clzsi2(0xD0000000, 0))
        return 1;
    if (test__clzsi2(0xD1000000, 0))
        return 1;
    if (test__clzsi2(0xD2000000, 0))
        return 1;
    if (test__clzsi2(0xD3000000, 0))
        return 1;
    if (test__clzsi2(0xD4000000, 0))
        return 1;
    if (test__clzsi2(0xD5000000, 0))
        return 1;
    if (test__clzsi2(0xD6000000, 0))
        return 1;
    if (test__clzsi2(0xD7000000, 0))
        return 1;
    if (test__clzsi2(0xD8000000, 0))
        return 1;
    if (test__clzsi2(0xD9000000, 0))
        return 1;
    if (test__clzsi2(0xDA000000, 0))
        return 1;
    if (test__clzsi2(0xDB000000, 0))
        return 1;
    if (test__clzsi2(0xDC000000, 0))
        return 1;
    if (test__clzsi2(0xDD000000, 0))
        return 1;
    if (test__clzsi2(0xDE000000, 0))
        return 1;
    if (test__clzsi2(0xDF000000, 0))
        return 1;
    if (test__clzsi2(0xE0000000, 0))
        return 1;
    if (test__clzsi2(0xE1000000, 0))
        return 1;
    if (test__clzsi2(0xE2000000, 0))
        return 1;
    if (test__clzsi2(0xE3000000, 0))
        return 1;
    if (test__clzsi2(0xE4000000, 0))
        return 1;
    if (test__clzsi2(0xE5000000, 0))
        return 1;
    if (test__clzsi2(0xE6000000, 0))
        return 1;
    if (test__clzsi2(0xE7000000, 0))
        return 1;
    if (test__clzsi2(0xE8000000, 0))
        return 1;
    if (test__clzsi2(0xE9000000, 0))
        return 1;
    if (test__clzsi2(0xEA000000, 0))
        return 1;
    if (test__clzsi2(0xEB000000, 0))
        return 1;
    if (test__clzsi2(0xEC000000, 0))
        return 1;
    if (test__clzsi2(0xED000000, 0))
        return 1;
    if (test__clzsi2(0xEE000000, 0))
        return 1;
    if (test__clzsi2(0xEF000000, 0))
        return 1;
    if (test__clzsi2(0xF0000000, 0))
        return 1;
    if (test__clzsi2(0xF1000000, 0))
        return 1;
    if (test__clzsi2(0xF2000000, 0))
        return 1;
    if (test__clzsi2(0xF3000000, 0))
        return 1;
    if (test__clzsi2(0xF4000000, 0))
        return 1;
    if (test__clzsi2(0xF5000000, 0))
        return 1;
    if (test__clzsi2(0xF6000000, 0))
        return 1;
    if (test__clzsi2(0xF7000000, 0))
        return 1;
    if (test__clzsi2(0xF8000000, 0))
        return 1;
    if (test__clzsi2(0xF9000000, 0))
        return 1;
    if (test__clzsi2(0xFA000000, 0))
        return 1;
    if (test__clzsi2(0xFB000000, 0))
        return 1;
    if (test__clzsi2(0xFC000000, 0))
        return 1;
    if (test__clzsi2(0xFD000000, 0))
        return 1;
    if (test__clzsi2(0xFE000000, 0))
        return 1;
    if (test__clzsi2(0xFF000000, 0))
        return 1;

    if (test__clzsi2(0x00000001, 31))
        return 1;
    if (test__clzsi2(0x00000002, 30))
        return 1;
    if (test__clzsi2(0x00000004, 29))
        return 1;
    if (test__clzsi2(0x00000008, 28))
        return 1;
    if (test__clzsi2(0x00000010, 27))
        return 1;
    if (test__clzsi2(0x00000020, 26))
        return 1;
    if (test__clzsi2(0x00000040, 25))
        return 1;
    if (test__clzsi2(0x00000080, 24))
        return 1;
    if (test__clzsi2(0x00000100, 23))
        return 1;
    if (test__clzsi2(0x00000200, 22))
        return 1;
    if (test__clzsi2(0x00000400, 21))
        return 1;
    if (test__clzsi2(0x00000800, 20))
        return 1;
    if (test__clzsi2(0x00001000, 19))
        return 1;
    if (test__clzsi2(0x00002000, 18))
        return 1;
    if (test__clzsi2(0x00004000, 17))
        return 1;
    if (test__clzsi2(0x00008000, 16))
        return 1;
    if (test__clzsi2(0x00010000, 15))
        return 1;
    if (test__clzsi2(0x00020000, 14))
        return 1;
    if (test__clzsi2(0x00040000, 13))
        return 1;
    if (test__clzsi2(0x00080000, 12))
        return 1;
    if (test__clzsi2(0x00100000, 11))
        return 1;
    if (test__clzsi2(0x00200000, 10))
        return 1;
    if (test__clzsi2(0x00400000, 9))
        return 1;

   return 0;
}
