177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao//===-- floatuntixf.c - Test __floatuntixf --------------------------------===//
277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao//
377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao//                     The LLVM Compiler Infrastructure
477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao//
577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao// This file is distributed under the University of Illinois Open Source
677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao// License. See LICENSE.TXT for details.
777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao//
877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao//===----------------------------------------------------------------------===//
977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao//
1077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao// This file tests __floatuntixf for the compiler_rt library.
1177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao//
1277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao//===----------------------------------------------------------------------===//
1377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao
1477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao#if __x86_64
1577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao
1677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao#include "int_lib.h"
1777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao#include <float.h>
1877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao#include <stdio.h>
1977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao
2077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao// Returns: convert a to a long double, rounding toward even.
2177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao
2277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao// Assumption: long double is a IEEE 80 bit floating point type padded to 128 bits
2377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao//             tu_int is a 128 bit integral type
2477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao
2577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao// gggg gggg gggg gggg gggg gggg gggg gggg | gggg gggg gggg gggg seee eeee eeee eeee |
2677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao// 1mmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm | mmmm mmmm mmmm mmmm mmmm mmmm mmmm mmmm
2777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao
2877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liaolong double __floatuntixf(tu_int a);
2977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao
3077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liaoint test__floatuntixf(tu_int a, long double expected)
3177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao{
3277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    long double x = __floatuntixf(a);
3377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (x != expected)
3477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    {
3577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        utwords at;
3677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        at.all = a;
3777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        printf("error in __floatuntixf(0x%.16llX%.16llX) = %LA, expected %LA\n",
3877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao               at.s.high, at.s.low, x, expected);
3977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    }
4077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    return x != expected;
4177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao}
4277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao
4377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liaochar assumption_1[sizeof(tu_int) == 2*sizeof(du_int)] = {0};
4477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liaochar assumption_2[sizeof(tu_int)*CHAR_BIT == 128] = {0};
4577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liaochar assumption_3[sizeof(long double)*CHAR_BIT == 128] = {0};
4677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao
4777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao#endif
4877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao
4977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liaoint main()
5077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao{
5177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao#if __x86_64
5277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__floatuntixf(0, 0.0))
5377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
5477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao
5577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__floatuntixf(1, 1.0))
5677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
5777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__floatuntixf(2, 2.0))
5877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
5977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__floatuntixf(20, 20.0))
6077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
6177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao
6277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__floatuntixf(0x7FFFFF8000000000ULL, 0x1.FFFFFEp+62))
6377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
6477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__floatuntixf(0x7FFFFFFFFFFFF800ULL, 0x1.FFFFFFFFFFFFEp+62))
6577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
6677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__floatuntixf(0x7FFFFF0000000000ULL, 0x1.FFFFFCp+62))
6777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
6877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__floatuntixf(0x7FFFFFFFFFFFF000ULL, 0x1.FFFFFFFFFFFFCp+62))
6977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
7077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__floatuntixf(0x7FFFFFFFFFFFFFFFULL, 0xF.FFFFFFFFFFFFFFEp+59L))
7177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
7277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__floatuntixf(0xFFFFFFFFFFFFFFFEULL, 0xF.FFFFFFFFFFFFFFEp+60L))
7377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
7477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__floatuntixf(0xFFFFFFFFFFFFFFFFULL, 0xF.FFFFFFFFFFFFFFFp+60L))
7577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
7677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao
7777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__floatuntixf(0x8000008000000000ULL, 0x8.000008p+60))
7877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
7977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__floatuntixf(0x8000000000000800ULL, 0x8.0000000000008p+60))
8077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
8177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__floatuntixf(0x8000010000000000ULL, 0x8.00001p+60))
8277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
8377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__floatuntixf(0x8000000000001000ULL, 0x8.000000000001p+60))
8477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
8577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao
8677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__floatuntixf(0x8000000000000000ULL, 0x8p+60))
8777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
8877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__floatuntixf(0x8000000000000001ULL, 0x8.000000000000001p+60L))
8977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
9077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao
9177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__floatuntixf(0x0007FB72E8000000LL, 0x1.FEDCBAp+50))
9277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
9377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao
9477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__floatuntixf(0x0007FB72EA000000LL, 0x1.FEDCBA8p+50))
9577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
9677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__floatuntixf(0x0007FB72EB000000LL, 0x1.FEDCBACp+50))
9777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
9877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__floatuntixf(0x0007FB72EBFFFFFFLL, 0x1.FEDCBAFFFFFFCp+50))
9977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
10077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__floatuntixf(0x0007FB72EC000000LL, 0x1.FEDCBBp+50))
10177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
10277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__floatuntixf(0x0007FB72E8000001LL, 0x1.FEDCBA0000004p+50))
10377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
10477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao
10577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__floatuntixf(0x0007FB72E6000000LL, 0x1.FEDCB98p+50))
10677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
10777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__floatuntixf(0x0007FB72E7000000LL, 0x1.FEDCB9Cp+50))
10877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
10977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__floatuntixf(0x0007FB72E7FFFFFFLL, 0x1.FEDCB9FFFFFFCp+50))
11077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
11177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__floatuntixf(0x0007FB72E4000001LL, 0x1.FEDCB90000004p+50))
11277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
11377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__floatuntixf(0x0007FB72E4000000LL, 0x1.FEDCB9p+50))
11477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
11577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao
11677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__floatuntixf(0x023479FD0E092DC0LL, 0x1.1A3CFE870496Ep+57))
11777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
11877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__floatuntixf(0x023479FD0E092DA1LL, 0x1.1A3CFE870496D08p+57L))
11977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
12077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__floatuntixf(0x023479FD0E092DB0LL, 0x1.1A3CFE870496D8p+57L))
12177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
12277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__floatuntixf(0x023479FD0E092DB8LL, 0x1.1A3CFE870496DCp+57L))
12377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
12477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__floatuntixf(0x023479FD0E092DB6LL, 0x1.1A3CFE870496DBp+57L))
12577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
12677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__floatuntixf(0x023479FD0E092DBFLL, 0x1.1A3CFE870496DF8p+57L))
12777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
12877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__floatuntixf(0x023479FD0E092DC1LL, 0x1.1A3CFE870496E08p+57L))
12977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
13077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__floatuntixf(0x023479FD0E092DC7LL, 0x1.1A3CFE870496E38p+57L))
13177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
13277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__floatuntixf(0x023479FD0E092DC8LL, 0x1.1A3CFE870496E4p+57L))
13377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
13477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__floatuntixf(0x023479FD0E092DCFLL, 0x1.1A3CFE870496E78p+57L))
13577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
13677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__floatuntixf(0x023479FD0E092DD0LL, 0x1.1A3CFE870496E8p+57L))
13777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
13877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__floatuntixf(0x023479FD0E092DD1LL, 0x1.1A3CFE870496E88p+57L))
13977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
14077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__floatuntixf(0x023479FD0E092DD8LL, 0x1.1A3CFE870496ECp+57L))
14177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
14277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__floatuntixf(0x023479FD0E092DDFLL, 0x1.1A3CFE870496EF8p+57L))
14377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
14477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__floatuntixf(0x023479FD0E092DE0LL, 0x1.1A3CFE870496Fp+57))
14577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
14677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao
14777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__floatuntixf(make_ti(0x023479FD0E092DC0LL, 0), 0x1.1A3CFE870496Ep+121L))
14877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
14977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__floatuntixf(make_ti(0x023479FD0E092DA1LL, 1), 0x1.1A3CFE870496D08p+121L))
15077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
15177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__floatuntixf(make_ti(0x023479FD0E092DB0LL, 2), 0x1.1A3CFE870496D8p+121L))
15277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
15377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__floatuntixf(make_ti(0x023479FD0E092DB8LL, 3), 0x1.1A3CFE870496DCp+121L))
15477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
15577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__floatuntixf(make_ti(0x023479FD0E092DB6LL, 4), 0x1.1A3CFE870496DBp+121L))
15677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
15777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__floatuntixf(make_ti(0x023479FD0E092DBFLL, 5), 0x1.1A3CFE870496DF8p+121L))
15877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
15977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__floatuntixf(make_ti(0x023479FD0E092DC1LL, 6), 0x1.1A3CFE870496E08p+121L))
16077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
16177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__floatuntixf(make_ti(0x023479FD0E092DC7LL, 7), 0x1.1A3CFE870496E38p+121L))
16277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
16377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__floatuntixf(make_ti(0x023479FD0E092DC8LL, 8), 0x1.1A3CFE870496E4p+121L))
16477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
16577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__floatuntixf(make_ti(0x023479FD0E092DCFLL, 9), 0x1.1A3CFE870496E78p+121L))
16677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
16777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__floatuntixf(make_ti(0x023479FD0E092DD0LL, 0), 0x1.1A3CFE870496E8p+121L))
16877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
16977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__floatuntixf(make_ti(0x023479FD0E092DD1LL, 11), 0x1.1A3CFE870496E88p+121L))
17077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
17177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__floatuntixf(make_ti(0x023479FD0E092DD8LL, 12), 0x1.1A3CFE870496ECp+121L))
17277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
17377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__floatuntixf(make_ti(0x023479FD0E092DDFLL, 13), 0x1.1A3CFE870496EF8p+121L))
17477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
17577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__floatuntixf(make_ti(0x023479FD0E092DE0LL, 14), 0x1.1A3CFE870496Fp+121L))
17677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
17777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao
17877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__floatuntixf(make_ti(0, 0xFFFFFFFFFFFFFFFFLL), 0x1.FFFFFFFFFFFFFFFEp+63L))
17977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
18077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao
18177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__floatuntixf(make_ti(0xFFFFFFFFFFFFFFFFLL, 0x0000000000000000LL),
18277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao                          0x1.FFFFFFFFFFFFFFFEp+127L))
18377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
18477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__floatuntixf(make_ti(0xFFFFFFFFFFFFFFFFLL, 0xFFFFFFFFFFFFFFFFLL),
18577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao                          0x1.0000000000000000p+128L))
18677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
18777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao
18877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__floatuntixf(make_ti(0x0000123456789012LL, 0x3456100000000001LL),
18977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao                        0x1.2345678901234562p+108L))
19077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
19177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__floatuntixf(make_ti(0x0000123456789012LL, 0x3456200000000000LL),
19277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao                        0x1.2345678901234562p+108L))
19377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
19477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__floatuntixf(make_ti(0x0000123456789012LL, 0x34562FFFFFFFFFFFLL),
19577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao                        0x1.2345678901234562p+108L))
19677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
19777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__floatuntixf(make_ti(0x0000123456789012LL, 0x3456300000000000LL),
19877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao                        0x1.2345678901234564p+108L))
19977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
20077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__floatuntixf(make_ti(0x0000123456789012LL, 0x3456400000000000LL),
20177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao                        0x1.2345678901234564p+108L))
20277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
20377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__floatuntixf(make_ti(0x0000123456789012LL, 0x34564FFFFFFFFFFFLL),
20477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao                        0x1.2345678901234564p+108L))
20577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
20677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__floatuntixf(make_ti(0x0000123456789012LL, 0x3456500000000000LL),
20777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao                        0x1.2345678901234564p+108L))
20877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
20977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__floatuntixf(make_ti(0x0000123456789012LL, 0x3456500000000001LL),
21077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao                        0x1.2345678901234566p+108L))
21177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
21277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__floatuntixf(make_ti(0x0000123456789012LL, 0x34566FFFFFFFFFFFLL),
21377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao                        0x1.2345678901234566p+108L))
21477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
21577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao#endif
21677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao   return 0;
21777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao}
218