summaryrefslogtreecommitdiffstats
path: root/contrib/gcc/config/fixunssfsi.c
blob: f318749bbdea5ad31e903dd87a2cc7343725e86b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/* Public domain.  */
typedef unsigned int USItype __attribute__ ((mode (SI)));
typedef int SItype __attribute__ ((mode (SI)));
typedef float SFtype __attribute__ ((mode (SF)));

USItype __fixunssfsi (SFtype);

#define SItype_MIN \
  (- ((SItype) (((USItype) 1 << ((sizeof (SItype) * 8) - 1)) - 1)) - 1)

USItype
__fixunssfsi (SFtype a)
{
  if (a >= - (SFtype) SItype_MIN)
    return (SItype) (a + SItype_MIN) - SItype_MIN;
  return (SItype) a;
}
OpenPOWER on IntegriCloud