modernc.org/ccgo/v3@v3.16.14/lib/testdata/gcc-9.1.0/gcc/testsuite/gcc.c-torture/compile/20110913-1.c (about)

     1  struct ieee754_double {
     2    double d;
     3  };
     4  extern const float __exp_deltatable[178];
     5  float __ieee754_expf (float x)
     6  {
     7    static const float himark = 88.72283935546875;
     8    static const float lomark = -103.972084045410;
     9    if (__builtin_isless(x, himark) && __builtin_isgreater(x, lomark))
    10      {
    11        int tval;
    12        double x22, t, result, dx;
    13        float delta;
    14        struct ieee754_double ex2_u;
    15        dx -= t;
    16        tval = (int) (t * 512.0);
    17        if (t >= 0)
    18  	delta = - __exp_deltatable[tval];
    19        else
    20  	delta = __exp_deltatable[-tval];
    21        x22 = (0.5000000496709180453 * dx + 1.0000001192102037084) * dx + delta;
    22        result = x22 * ex2_u.d + ex2_u.d;
    23        return (float) result;
    24      }
    25    return x;
    26  }