11.1Sjoerg//===-- gesf2vfp_test.c - Test __gesf2vfp ---------------------------------===//
21.1Sjoerg//
31.1Sjoerg//                     The LLVM Compiler Infrastructure
41.1Sjoerg//
51.1Sjoerg// This file is dual licensed under the MIT and the University of Illinois Open
61.1Sjoerg// Source Licenses. See LICENSE.TXT for details.
71.1Sjoerg//
81.1Sjoerg//===----------------------------------------------------------------------===//
91.1Sjoerg//
101.1Sjoerg// This file tests __gesf2vfp for the compiler_rt library.
111.1Sjoerg//
121.1Sjoerg//===----------------------------------------------------------------------===//
131.1Sjoerg
141.1Sjoerg#include <stdlib.h>
151.1Sjoerg#include <stdint.h>
161.1Sjoerg#include <stdio.h>
171.1Sjoerg#include <math.h>
181.1Sjoerg
191.1Sjoerg
201.1Sjoergextern int __gesf2vfp(float a, float b);
211.1Sjoerg
221.1Sjoerg#if __arm__
231.1Sjoergint test__gesf2vfp(float a, float b)
241.1Sjoerg{
251.1Sjoerg    int actual = __gesf2vfp(a, b);
261.1Sjoerg	int expected = (a >= b) ? 1 : 0;
271.1Sjoerg    if (actual != expected)
281.1Sjoerg        printf("error in __gesf2vfp(%f, %f) = %d, expected %d\n",
291.1Sjoerg               a, b, actual, expected);
301.1Sjoerg    return actual != expected;
311.1Sjoerg}
321.1Sjoerg#endif
331.1Sjoerg
341.1Sjoergint main()
351.1Sjoerg{
361.1Sjoerg#if __arm__
371.1Sjoerg    if (test__gesf2vfp(0.0, 0.0))
381.1Sjoerg        return 1;
391.1Sjoerg    if (test__gesf2vfp(1.1, 1.0))
401.1Sjoerg        return 1;
411.1Sjoerg    if (test__gesf2vfp(-1.0, -2.0))
421.1Sjoerg        return 1;
431.1Sjoerg    if (test__gesf2vfp(-2.0, -1.0))
441.1Sjoerg        return 1;
451.1Sjoerg    if (test__gesf2vfp(HUGE_VALF, 1.0))
461.1Sjoerg        return 1;
471.1Sjoerg    if (test__gesf2vfp(1.0, HUGE_VALF))
481.1Sjoerg        return 1;
491.1Sjoerg#else
501.1Sjoerg    printf("skipped\n");
511.1Sjoerg#endif
521.1Sjoerg    return 0;
531.1Sjoerg}
54