Even Rouault via gdal-dev <[email protected]> writes:

> we do have a CI configuration for i386 using clang in debug
> mode. Maybe your use of gcc in -O2 yields to slightly different
> results in some cases.

It makes sense that -O2 could differ.  double when stored in memory is
the standard IEEE754 width.  When stored in fp registers it's 80, so
with -O2 chained fp calculations use more precision before being stored,
and can get slightly different results.  With -ffloat-store, each
register is store/loaded or something like that to aovid this.  Without
-O2, it would seem that store/load is more likely.

Arguably the use of 80-bit intermediaries gets better results, but they
are not the same bits one gets with an exact IEEE754 implementation.
_______________________________________________
gdal-dev mailing list
[email protected]
https://lists.osgeo.org/mailman/listinfo/gdal-dev

Reply via email to