1// SPDX-License-Identifier: GPL-2.0+
2/*
3 * Copyright (C) 2007
4 * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
5 */
6/*
7 * This file is originally a part of the GCC testsuite.
8 */
9
10#include <common.h>
11
12#include <post.h>
13
14GNU_FPOST_ATTR
15
16#if CFG_POST & CFG_SYS_POST_FPU
17
18static float rintf (float x)
19{
20	volatile float TWO23 = 8388608.0;
21
22	if (__builtin_fabs (x) < TWO23)
23	{
24		if (x > 0.0)
25		{
26			x += TWO23;
27			x -= TWO23;
28		}
29		else if (x < 0.0)
30		{
31			x = TWO23 - x;
32			x = -(x - TWO23);
33		}
34	}
35
36	return x;
37}
38
39int fpu_post_test_math2 (void)
40{
41	if (rintf (-1.5) != -2.0) {
42		post_log ("Error in FPU math2 test\n");
43		return -1;
44	}
45	return 0;
46}
47
48#endif /* CFG_POST & CFG_SYS_POST_FPU */
49