1ad98c81b7dc15729e8812628617f6f45dac3e666Nick Kledzik//===-- addsf3vfp_test.c - Test __addsf3vfp -------------------------------===// 2ad98c81b7dc15729e8812628617f6f45dac3e666Nick Kledzik// 3ad98c81b7dc15729e8812628617f6f45dac3e666Nick Kledzik// The LLVM Compiler Infrastructure 4ad98c81b7dc15729e8812628617f6f45dac3e666Nick 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. 7ad98c81b7dc15729e8812628617f6f45dac3e666Nick Kledzik// 8ad98c81b7dc15729e8812628617f6f45dac3e666Nick Kledzik//===----------------------------------------------------------------------===// 9ad98c81b7dc15729e8812628617f6f45dac3e666Nick Kledzik// 10ad98c81b7dc15729e8812628617f6f45dac3e666Nick Kledzik// This file tests __addsf3vfp for the compiler_rt library. 11ad98c81b7dc15729e8812628617f6f45dac3e666Nick Kledzik// 12ad98c81b7dc15729e8812628617f6f45dac3e666Nick Kledzik//===----------------------------------------------------------------------===// 13ad98c81b7dc15729e8812628617f6f45dac3e666Nick Kledzik 14ad98c81b7dc15729e8812628617f6f45dac3e666Nick Kledzik#include <stdio.h> 15ad98c81b7dc15729e8812628617f6f45dac3e666Nick Kledzik#include <stdlib.h> 16ad98c81b7dc15729e8812628617f6f45dac3e666Nick Kledzik#include <math.h> 17ad98c81b7dc15729e8812628617f6f45dac3e666Nick Kledzik 18ad98c81b7dc15729e8812628617f6f45dac3e666Nick Kledzik 19ad98c81b7dc15729e8812628617f6f45dac3e666Nick Kledzikextern float __addsf3vfp(float a, float b); 20ad98c81b7dc15729e8812628617f6f45dac3e666Nick Kledzik 21ad98c81b7dc15729e8812628617f6f45dac3e666Nick Kledzik#if __arm__ 22ad98c81b7dc15729e8812628617f6f45dac3e666Nick Kledzikint test__addsf3vfp(float a, float b) 23ad98c81b7dc15729e8812628617f6f45dac3e666Nick Kledzik{ 24ad98c81b7dc15729e8812628617f6f45dac3e666Nick Kledzik float actual = __addsf3vfp(a, b); 25ad98c81b7dc15729e8812628617f6f45dac3e666Nick Kledzik float expected = a + b; 26ad98c81b7dc15729e8812628617f6f45dac3e666Nick Kledzik if (actual != expected) 27ad98c81b7dc15729e8812628617f6f45dac3e666Nick Kledzik printf("error in test__addsf3vfp(%f, %f) = %f, expected %f\n", 28ad98c81b7dc15729e8812628617f6f45dac3e666Nick Kledzik a, b, actual, expected); 29ad98c81b7dc15729e8812628617f6f45dac3e666Nick Kledzik return actual != expected; 30ad98c81b7dc15729e8812628617f6f45dac3e666Nick Kledzik} 31ad98c81b7dc15729e8812628617f6f45dac3e666Nick Kledzik#endif 32ad98c81b7dc15729e8812628617f6f45dac3e666Nick Kledzik 33ad98c81b7dc15729e8812628617f6f45dac3e666Nick Kledzikint main() 34ad98c81b7dc15729e8812628617f6f45dac3e666Nick Kledzik{ 35ad98c81b7dc15729e8812628617f6f45dac3e666Nick Kledzik#if __arm__ 36ad98c81b7dc15729e8812628617f6f45dac3e666Nick Kledzik if (test__addsf3vfp(1.0, 1.0)) 37ad98c81b7dc15729e8812628617f6f45dac3e666Nick Kledzik return 1; 38ad98c81b7dc15729e8812628617f6f45dac3e666Nick Kledzik if (test__addsf3vfp(HUGE_VALF, HUGE_VALF)) 39ad98c81b7dc15729e8812628617f6f45dac3e666Nick Kledzik return 1; 40ad98c81b7dc15729e8812628617f6f45dac3e666Nick Kledzik if (test__addsf3vfp(0.0, HUGE_VALF)) 41ad98c81b7dc15729e8812628617f6f45dac3e666Nick Kledzik return 1; 42ad98c81b7dc15729e8812628617f6f45dac3e666Nick Kledzik if (test__addsf3vfp(0.0, -0.0)) 43ad98c81b7dc15729e8812628617f6f45dac3e666Nick Kledzik return 1; 447482815716cd9b87931d82dca7298fc3c707229fJoerg Sonnenberger#else 457482815716cd9b87931d82dca7298fc3c707229fJoerg Sonnenberger printf("skipped\n"); 46ad98c81b7dc15729e8812628617f6f45dac3e666Nick Kledzik#endif 47ad98c81b7dc15729e8812628617f6f45dac3e666Nick Kledzik return 0; 48ad98c81b7dc15729e8812628617f6f45dac3e666Nick Kledzik} 49