On Mon, 26 Aug 2019, Tejas Joshi wrote: > Hello. > I have made changes in the patch according to the above corrections. > However, I didn't understand how these following testcases are > supposed to handle. Will you please elaborate some more? > > > (E.g. fadd (0x1.000001p0, FLT_MIN), as an example from the glibc > > tests: cases where an intermediate rounding produces a result half way > > between two values of the narrower type, but the exact value is such that > > the result of fadd should end up with last bit odd whereas double rounding > > would result in last bit even in such half-way cases.)
The point of this is to demonstrate that fadd (x, y) is different from (float) (x + y), by testing with inputs for which the two evaluate to different values. > > Then you should have some tests of what does *not* get optimized with > > given compiler options if possible. (Such a test might e.g. define a > > static fadd function locally that checks it gets called as expected, or > > else check the exceptions / errno if you rely on a suitable libm being > > available.) There would include: * A test where the result is within range but inexact; say fadd (1, DBL_MIN). With -ftrapping-math -fno-rounding-math, or -frounding-math -fno-trapping-math, or -frounding-math -ftrapping-math, this should not be folded; that is, it should be compiled to call a fadd function (which you might define in the test as a staic function that sets a variable to indicate that it was called, so the test can verify at runtime that the call did not get folded). * But the same inputs, with -fno-trapping-math -fno-rounding-math -fmath-errno, *should* get folded (so test the same inputs with those options with a link_error test like those for roundeven). * Then similarly test overflow / underflow cases (e.g. fadd (DBL_MAX, DBL_MAX) or fadd (DBL_MIN, DBL_MIN)) with -fno-trapping-math -fno-rounding-math -fmath-errno (make sure they don't get folded), and with -fno-trapping-math-fno-rounding-math -fno-math-errno (make sure that in that case they do get folded, so link_error tests). -- Joseph S. Myers jos...@codesourcery.com