1*b1e83836Smrg /* Software floating-point emulation.
2*b1e83836Smrg Truncate IEEE single into IEEE half.
3*b1e83836Smrg Copyright (C) 2021 Free Software Foundation, Inc.
4*b1e83836Smrg This file is part of the GNU C Library.
5*b1e83836Smrg
6*b1e83836Smrg The GNU C Library is free software; you can redistribute it and/or
7*b1e83836Smrg modify it under the terms of the GNU Lesser General Public
8*b1e83836Smrg License as published by the Free Software Foundation; either
9*b1e83836Smrg version 2.1 of the License, or (at your option) any later version.
10*b1e83836Smrg
11*b1e83836Smrg In addition to the permissions in the GNU Lesser General Public
12*b1e83836Smrg License, the Free Software Foundation gives you unlimited
13*b1e83836Smrg permission to link the compiled version of this file into
14*b1e83836Smrg combinations with other programs, and to distribute those
15*b1e83836Smrg combinations without any restriction coming from the use of this
16*b1e83836Smrg file. (The Lesser General Public License restrictions do apply in
17*b1e83836Smrg other respects; for example, they cover modification of the file,
18*b1e83836Smrg and distribution when not linked into a combine executable.)
19*b1e83836Smrg
20*b1e83836Smrg The GNU C Library is distributed in the hope that it will be useful,
21*b1e83836Smrg but WITHOUT ANY WARRANTY; without even the implied warranty of
22*b1e83836Smrg MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
23*b1e83836Smrg Lesser General Public License for more details.
24*b1e83836Smrg
25*b1e83836Smrg You should have received a copy of the GNU Lesser General Public
26*b1e83836Smrg License along with the GNU C Library; if not, see
27*b1e83836Smrg <http://www.gnu.org/licenses/>. */
28*b1e83836Smrg
29*b1e83836Smrg #include "soft-fp.h"
30*b1e83836Smrg #include "half.h"
31*b1e83836Smrg #include "single.h"
32*b1e83836Smrg
33*b1e83836Smrg HFtype
__truncsfhf2(SFtype a)34*b1e83836Smrg __truncsfhf2 (SFtype a)
35*b1e83836Smrg {
36*b1e83836Smrg FP_DECL_EX;
37*b1e83836Smrg FP_DECL_S (A);
38*b1e83836Smrg FP_DECL_H (R);
39*b1e83836Smrg HFtype r;
40*b1e83836Smrg
41*b1e83836Smrg FP_INIT_ROUNDMODE;
42*b1e83836Smrg FP_UNPACK_SEMIRAW_S (A, a);
43*b1e83836Smrg FP_TRUNC (H, S, 1, 1, R, A);
44*b1e83836Smrg FP_PACK_SEMIRAW_H (r, R);
45*b1e83836Smrg FP_HANDLE_EXCEPTIONS;
46*b1e83836Smrg
47*b1e83836Smrg return r;
48*b1e83836Smrg }
49