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