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