10963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik//===-- floatunssisfvfp_test.c - Test __floatunssisfvfp -------------------===//
20963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik//
30963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik//                     The LLVM Compiler Infrastructure
40963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik//
59ad441ffec97db647fee3725b3424284fb913e14Howard Hinnant// This file is dual licensed under the MIT and the University of Illinois Open
69ad441ffec97db647fee3725b3424284fb913e14Howard Hinnant// Source Licenses. See LICENSE.TXT for details.
70963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik//
80963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik//===----------------------------------------------------------------------===//
90963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik//
100963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik// This file tests __floatunssisfvfp for the compiler_rt library.
110963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik//
120963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik//===----------------------------------------------------------------------===//
130963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik
140963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik#include <stdio.h>
150963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik#include <stdlib.h>
160963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik#include <math.h>
17cdce50bda3603770cc4ef80cbb613c78b8e47a17Pirama Arumuga Nainar#include "int_lib.h"
180963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik
19cdce50bda3603770cc4ef80cbb613c78b8e47a17Pirama Arumuga Nainarextern COMPILER_RT_ABI float __floatunssisfvfp(unsigned int a);
200963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik
210963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik#if __arm__
220963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzikint test__floatunssisfvfp(unsigned int a)
230963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik{
240963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik    float actual = __floatunssisfvfp(a);
250963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik    float expected = a;
260963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik    if (actual != expected)
270963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik        printf("error in test__floatunssisfvfp(%u) = %f, expected %f\n",
280963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik               a, actual, expected);
290963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik    return actual != expected;
300963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik}
310963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik#endif
320963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik
330963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzikint main()
340963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik{
350963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik#if __arm__
360963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik    if (test__floatunssisfvfp(0))
370963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik        return 1;
380963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik    if (test__floatunssisfvfp(1))
390963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik        return 1;
400963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik    if (test__floatunssisfvfp(0x7FFFFFFF))
410963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik        return 1;
420963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik    if (test__floatunssisfvfp(0x80000000))
430963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik        return 1;
440963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik    if (test__floatunssisfvfp(0xFFFFFFFF))
450963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik        return 1;
467482815716cd9b87931d82dca7298fc3c707229fJoerg Sonnenberger#else
477482815716cd9b87931d82dca7298fc3c707229fJoerg Sonnenberger    printf("skipped\n");
480963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik#endif
490963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik    return 0;
500963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik}
51