10963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik//===-- fixsfsivfp_test.c - Test __fixsfsivfp -----------------------------===//
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 __fixsfsivfp 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>
170963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik
180963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik
190963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzikextern int __fixsfsivfp(float a);
200963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik
210963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik#if __arm__
220963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzikint test__fixsfsivfp(float a)
230963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik{
240963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik	int actual = __fixsfsivfp(a);
250963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik	int expected = a;
260963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik    if (actual != expected)
270963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik        printf("error in test__fixsfsivfp(%f) = %u, expected %u\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__fixsfsivfp(0.0))
370963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik        return 1;
380963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik    if (test__fixsfsivfp(1.0))
390963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik        return 1;
400963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik    if (test__fixsfsivfp(-1.0))
410963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik        return 1;
420963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik    if (test__fixsfsivfp(2147483647.0))
430963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik        return 1;
440963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik    if (test__fixsfsivfp(-2147483648.0))
450963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik        return 1;
460963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik    if (test__fixsfsivfp(65536.0))
470963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik        return 1;
487482815716cd9b87931d82dca7298fc3c707229fJoerg Sonnenberger#else
497482815716cd9b87931d82dca7298fc3c707229fJoerg Sonnenberger    printf("skipped\n");
500963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik#endif
510963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik    return 0;
520963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik}
53