1 /*
2  * Copyright (C) 2007
3  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
4  *
5  * SPDX-License-Identifier:	GPL-2.0+
6  */
7 /*
8  * This file is originally a part of the GCC testsuite.
9  */
10 
11 #include <common.h>
12 
13 #include <post.h>
14 
15 GNU_FPOST_ATTR
16 
17 #if CONFIG_POST & CONFIG_SYS_POST_FPU
18 
19 static 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 
40 int 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 
49 #endif /* CONFIG_POST & CONFIG_SYS_POST_FPU */
50