[cfe-dev] [test-suite] making polybench/symm succeed with "-Ofast" and "-ffp-contract=on"

Sebastian Pop via cfe-dev cfe-dev at lists.llvm.org
Wed Oct 12 08:29:47 PDT 2016


On Wed, Oct 12, 2016 at 10:53 AM, Hal Finkel <hfinkel at anl.gov> wrote:
> I don't think that Clang/LLVM uses it by default on x86_64. If you're using -Ofast, however, that would explain it. I recommend looking at -O3 vs -O0 and make sure those are the same. -Ofast enables -ffast-math, which can legitimately cause differences.
>

The following tests pass at "-O3" and "-O3 -ffp-contract=on" compared
with FP_ABSTOLERANCE=1e-5 against "-O0 -ffp-contract=off":

polybench/linear-algebra/kernels/symm
polybench/linear-algebra/solvers/gramschmidt
polybench/stencils/seidel-2d

The output of these 3 tests from "-O0 -ffp-contract=off" also matches
the reference output.

The following 2 tests still require increased FP_ABSTOLERANCE to pass
compare between "-O3", "-O3 -ffp-contract=on" vs. "-O0 -ffp-contract=off"

polybench/medley/reg_detect, FP_ABSTOLERANCE=1e4
polybench/stencils/adi, FP_ABSTOLERANCE=1e4

The reference output of these two is also not matching when compiled at
"-O3" or "-O3 -ffp-contract=on".  When configuring the test-suite without
specifying CFLAGS, Polybench is compiled at no optimization level.



More information about the cfe-dev mailing list