10963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik//===-- floatunssidfvfp_test.c - Test __floatunssidfvfp -------------------===// 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 __floatunssidfvfp 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 __floatunssidfvfp(unsigned int a); 200963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik 210963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik#if __arm__ 220963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzikint test__floatunssidfvfp(unsigned int a) 230963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik{ 240963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik double actual = __floatunssidfvfp(a); 250963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik double expected = a; 260963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik if (actual != expected) 270963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik printf("error in test__floatunssidfvfp(%u) = %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__floatunssidfvfp(0)) 370963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik return 1; 380963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik if (test__floatunssidfvfp(1)) 390963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik return 1; 400963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik if (test__floatunssidfvfp(0x7FFFFFFF)) 410963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik return 1; 420963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik if (test__floatunssidfvfp(0x80000000)) 430963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik return 1; 440963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik if (test__floatunssidfvfp(0xFFFFFFFF)) 450963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik return 1; 467482815716cd9b87931d82dca7298fc3c707229fJoerg Sonnenberger#else 477482815716cd9b87931d82dca7298fc3c707229fJoerg Sonnenberger printf("skipped\n"); 480963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik#endif 490963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik return 0; 500963c9e8ea7f97732b0fce419fa6f2e96d951969Nick Kledzik} 51