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