10963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik//===-- extendsfdf2vfp_test.c - Test __extendsfdf2vfp ---------------------===//
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 __extendsfdf2vfp 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 double __extendsfdf2vfp(float a);
200963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik
210963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik#if __arm__
220963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzikint test__extendsfdf2vfp(float a)
230963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik{
240963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik    double actual = __extendsfdf2vfp(a);
250963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik    double expected = a;
260963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik    if (actual != expected)
270963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik        printf("error in test__extendsfdf2vfp(%f) = %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__extendsfdf2vfp(0.0))
370963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik        return 1;
380963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik    if (test__extendsfdf2vfp(1.0))
390963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik        return 1;
400963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik    if (test__extendsfdf2vfp(-1.0))
410963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik        return 1;
420963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik    if (test__extendsfdf2vfp(3.1415926535))
430963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik        return 1;
447482815716cd9b87931d82dca7298fc3c707229fJoerg Sonnenberger#else
457482815716cd9b87931d82dca7298fc3c707229fJoerg Sonnenberger    printf("skipped\n");
460963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik#endif
470963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik    return 0;
480963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik}
49