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