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
14cdce50bda3603770cc4ef80cbb613c78b8e47a17Pirama Arumuga Nainar#include "int_lib.h"
150963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik#include <stdio.h>
160963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik#include <stdlib.h>
170963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik#include <math.h>
180963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik
190963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik
20cdce50bda3603770cc4ef80cbb613c78b8e47a17Pirama Arumuga Nainarextern COMPILER_RT_ABI double __extendsfdf2vfp(float a);
210963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik
220963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik#if __arm__
230963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzikint test__extendsfdf2vfp(float a)
240963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik{
250963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik    double actual = __extendsfdf2vfp(a);
260963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik    double expected = a;
270963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik    if (actual != expected)
280963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik        printf("error in test__extendsfdf2vfp(%f) = %f, expected %f\n",
290963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik               a, actual, expected);
300963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik    return actual != expected;
310963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik}
320963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik#endif
330963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik
340963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzikint main()
350963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik{
360963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik#if __arm__
370963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik    if (test__extendsfdf2vfp(0.0))
380963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik        return 1;
390963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik    if (test__extendsfdf2vfp(1.0))
400963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik        return 1;
410963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik    if (test__extendsfdf2vfp(-1.0))
420963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik        return 1;
430963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik    if (test__extendsfdf2vfp(3.1415926535))
440963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik        return 1;
457482815716cd9b87931d82dca7298fc3c707229fJoerg Sonnenberger#else
467482815716cd9b87931d82dca7298fc3c707229fJoerg Sonnenberger    printf("skipped\n");
470963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik#endif
480963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik    return 0;
490963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik}
50