177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao//===-- powisf2_test.cpp - Test __powisf2 ---------------------------------===//
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 __powisf2 for the compiler_rt library.
1177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao//
1277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao//===----------------------------------------------------------------------===//
1377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao
1477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao#include "int_lib.h"
1577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao#include <stdio.h>
1677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao#include <math.h>
1777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao
1877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao// Returns: a ^ b
1977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao
2077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liaofloat __powisf2(float a, si_int b);
2177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao
2277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liaoint test__powisf2(float a, si_int b, float expected)
2377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao{
2477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    float x = __powisf2(a, b);
2577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    int correct = (x == expected) && (signbit(x) == signbit(expected));
2677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (!correct)
2777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        printf("error in __powisf2(%f, %d) = %f, expected %f\n",
2877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao               a, b, x, expected);
2977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    return !correct;
3077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao}
3177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao
3277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liaoint main()
3377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao{
3477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(0, 0, 1))
3577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
3677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(1, 0, 1))
3777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
3877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(1.5, 0, 1))
3977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
4077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(2, 0, 1))
4177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
4277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(INFINITY, 0, 1))
4377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
4477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao
4577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(-0., 0, 1))
4677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
4777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(-1, 0, 1))
4877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
4977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(-1.5, 0, 1))
5077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
5177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(-2, 0, 1))
5277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
5377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(-INFINITY, 0, 1))
5477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
5577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao
5677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(0, 1, 0))
5777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
5877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(0, 2, 0))
5977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
6077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(0, 3, 0))
6177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
6277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(0, 4, 0))
6377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
6477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(0, 0x7FFFFFFE, 0))
6577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
6677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(0, 0x7FFFFFFF, 0))
6777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
6877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao
6977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(-0., 1, -0.))
7077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
7177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(-0., 2, 0))
7277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
7377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(-0., 3, -0.))
7477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
7577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(-0., 4, 0))
7677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
7777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(-0., 0x7FFFFFFE, 0))
7877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
7977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(-0., 0x7FFFFFFF, -0.))
8077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
8177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao
8277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(1, 1, 1))
8377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
8477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(1, 2, 1))
8577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
8677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(1, 3, 1))
8777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
8877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(1, 4, 1))
8977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
9077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(1, 0x7FFFFFFE, 1))
9177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
9277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(1, 0x7FFFFFFF, 1))
9377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
9477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao
9577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(INFINITY, 1, INFINITY))
9677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
9777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(INFINITY, 2, INFINITY))
9877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
9977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(INFINITY, 3, INFINITY))
10077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
10177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(INFINITY, 4, INFINITY))
10277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
10377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(INFINITY, 0x7FFFFFFE, INFINITY))
10477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
10577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(INFINITY, 0x7FFFFFFF, INFINITY))
10677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
10777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao
10877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(-INFINITY, 1, -INFINITY))
10977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
11077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(-INFINITY, 2, INFINITY))
11177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
11277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(-INFINITY, 3, -INFINITY))
11377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
11477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(-INFINITY, 4, INFINITY))
11577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
11677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(-INFINITY, 0x7FFFFFFE, INFINITY))
11777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
11877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(-INFINITY, 0x7FFFFFFF, -INFINITY))
11977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
12077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao
12177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(0, -1, INFINITY))
12277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
12377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(0, -2, INFINITY))
12477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
12577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(0, -3, INFINITY))
12677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
12777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(0, -4, INFINITY))
12877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
12977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(0, 0x80000002, INFINITY))
13077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
13177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(0, 0x80000001, INFINITY))
13277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
13377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(0, 0x80000000, INFINITY))
13477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
13577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao
13677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(-0., -1, -INFINITY))
13777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
13877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(-0., -2, INFINITY))
13977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
14077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(-0., -3, -INFINITY))
14177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
14277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(-0., -4, INFINITY))
14377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
14477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(-0., 0x80000002, INFINITY))
14577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
14677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(-0., 0x80000001, -INFINITY))
14777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
14877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(-0., 0x80000000, INFINITY))
14977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
15077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao
15177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(1, -1, 1))
15277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
15377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(1, -2, 1))
15477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
15577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(1, -3, 1))
15677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
15777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(1, -4, 1))
15877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
15977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(1, 0x80000002, 1))
16077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
16177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(1, 0x80000001, 1))
16277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
16377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(1, 0x80000000, 1))
16477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
16577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao
16677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(INFINITY, -1, 0))
16777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
16877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(INFINITY, -2, 0))
16977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
17077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(INFINITY, -3, 0))
17177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
17277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(INFINITY, -4, 0))
17377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
17477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(INFINITY, 0x80000002, 0))
17577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
17677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(INFINITY, 0x80000001, 0))
17777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
17877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(INFINITY, 0x80000000, 0))
17977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
18077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao
18177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(-INFINITY, -1, -0.))
18277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
18377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(-INFINITY, -2, 0))
18477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
18577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(-INFINITY, -3, -0.))
18677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
18777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(-INFINITY, -4, 0))
18877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
18977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(-INFINITY, 0x80000002, 0))
19077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
19177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(-INFINITY, 0x80000001, -0.))
19277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
19377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(-INFINITY, 0x80000000, 0))
19477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
19577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao
19677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(2, 10, 1024.))
19777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
19877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(-2, 10, 1024.))
19977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
20077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(2, -10, 1/1024.))
20177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
20277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(-2, -10, 1/1024.))
20377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
20477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao
20577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(2, 19, 524288.))
20677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
20777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(-2, 19, -524288.))
20877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
20977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(2, -19, 1/524288.))
21077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
21177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(-2, -19, -1/524288.))
21277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
21377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao
21477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(2, 31, 2147483648.))
21577ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
21677ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(-2, 31, -2147483648.))
21777ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
21877ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(2, -31, 1/2147483648.))
21977ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
22077ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    if (test__powisf2(-2, -31, -1/2147483648.))
22177ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao        return 1;
22277ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao
22377ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao    return 0;
22477ed6142daed1e068fbda64405d0de9845e40e1Shih-wei Liao}
225