blob: 96e25c46941aa90e3a8232c6c9b93c528593c113 [file] [log] [blame]
Sergei Poselenov3190dbe2007-07-05 08:17:37 +02001/*
2 * Copyright (C) 2007
3 * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
4 *
Wolfgang Denkd79de1d2013-07-08 09:37:19 +02005 * SPDX-License-Identifier: GPL-2.0+
Sergei Poselenov3190dbe2007-07-05 08:17:37 +02006 */
7/*
8 * This file is originally a part of the GCC testsuite.
9 */
10
11#include <common.h>
12
Sergei Poselenov3190dbe2007-07-05 08:17:37 +020013#include <post.h>
14
Yuri Tikhonov7ed66f72008-12-20 14:54:21 +030015GNU_FPOST_ATTR
16
Kumar Galafe6555b2011-01-25 03:00:08 -060017#if CONFIG_POST & CONFIG_SYS_POST_FPU
18
Sergei Poselenov3190dbe2007-07-05 08:17:37 +020019static float rintf (float x)
20{
21 volatile float TWO23 = 8388608.0;
22
23 if (__builtin_fabs (x) < TWO23)
24 {
25 if (x > 0.0)
26 {
27 x += TWO23;
28 x -= TWO23;
29 }
30 else if (x < 0.0)
31 {
32 x = TWO23 - x;
33 x = -(x - TWO23);
34 }
35 }
36
37 return x;
38}
39
40int fpu_post_test_math2 (void)
41{
42 if (rintf (-1.5) != -2.0) {
43 post_log ("Error in FPU math2 test\n");
44 return -1;
45 }
46 return 0;
47}
48
Jean-Christophe PLAGNIOL-VILLARD03836942008-10-16 15:01:15 +020049#endif /* CONFIG_POST & CONFIG_SYS_POST_FPU */