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 
14 GNU_FPOST_ATTR
15 
16 #if CONFIG_POST & CONFIG_SYS_POST_FPU
17 
18 static 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 
39 int 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 /* CONFIG_POST & CONFIG_SYS_POST_FPU */
49