diff --git a/MicroBenchmarks/ImageProcessing/BilateralFiltering/CMakeLists.txt b/MicroBenchmarks/ImageProcessing/BilateralFiltering/CMakeLists.txt --- a/MicroBenchmarks/ImageProcessing/BilateralFiltering/CMakeLists.txt +++ b/MicroBenchmarks/ImageProcessing/BilateralFiltering/CMakeLists.txt @@ -2,6 +2,12 @@ list(APPEND CPPFLAGS -I ${CMAKE_SOURCE_DIR}/${IMAGEPROC_UTILS}) list(APPEND LDFLAGS -lm) +if(ARCH STREQUAL "x86") + # Floating point contraction must be suppressed due to + list(APPEND CXXFLAGS -ffp-contract=off) + list(APPEND CFLAGS -ffp-contract=off) +endif() + llvm_test_verify_hash_program_output(bilateralFilterOutput.txt) llvm_test_verify(WORKDIR ${CMAKE_CURRENT_BINARY_DIR} ${FPCMP} bilateralFilter.reference_output bilateralFilterOutput.txt diff --git a/MicroBenchmarks/ImageProcessing/Blur/CMakeLists.txt b/MicroBenchmarks/ImageProcessing/Blur/CMakeLists.txt --- a/MicroBenchmarks/ImageProcessing/Blur/CMakeLists.txt +++ b/MicroBenchmarks/ImageProcessing/Blur/CMakeLists.txt @@ -3,6 +3,12 @@ list(APPEND CPPFLAGS -I ${CMAKE_SOURCE_DIR}/${IMAGEPROC_UTILS}) list(APPEND LDFLAGS -lm) +if(ARCH STREQUAL "x86") + # Floating point contraction must be suppressed due to + list(APPEND CXXFLAGS -ffp-contract=off) + list(APPEND CFLAGS -ffp-contract=off) +endif() + llvm_test_verify_hash_program_output(boxBlurOutput.txt) llvm_test_verify(WORKDIR ${CMAKE_CURRENT_BINARY_DIR} ${FPCMP} boxBlur.reference_output boxBlurOutput.txt diff --git a/MultiSource/Applications/oggenc/CMakeLists.txt b/MultiSource/Applications/oggenc/CMakeLists.txt --- a/MultiSource/Applications/oggenc/CMakeLists.txt +++ b/MultiSource/Applications/oggenc/CMakeLists.txt @@ -1,4 +1,10 @@ list(APPEND CFLAGS -fno-strict-aliasing) +if(ARCH STREQUAL "x86") + # Floating point contraction must be suppressed due to + list(APPEND CXXFLAGS -ffp-contract=off) + list(APPEND CFLAGS -ffp-contract=off) +endif() + list(APPEND LDFLAGS -lm) set(RUN_OPTIONS -Q -s 901820 - < tune) llvm_multisource(oggenc) diff --git a/MultiSource/Benchmarks/DOE-ProxyApps-C++/CLAMR/CMakeLists.txt b/MultiSource/Benchmarks/DOE-ProxyApps-C++/CLAMR/CMakeLists.txt --- a/MultiSource/Benchmarks/DOE-ProxyApps-C++/CLAMR/CMakeLists.txt +++ b/MultiSource/Benchmarks/DOE-ProxyApps-C++/CLAMR/CMakeLists.txt @@ -1,2 +1,8 @@ set(RUN_OPTIONS -n 64 -t 1000) +if(ARCH STREQUAL "x86") + # Floating point contraction must be suppressed due to + list(APPEND CXXFLAGS -ffp-contract=off) + list(APPEND CFLAGS -ffp-contract=off) +endif() + llvm_multisource(CLAMR) diff --git a/MultiSource/Benchmarks/DOE-ProxyApps-C++/HPCCG/CMakeLists.txt b/MultiSource/Benchmarks/DOE-ProxyApps-C++/HPCCG/CMakeLists.txt --- a/MultiSource/Benchmarks/DOE-ProxyApps-C++/HPCCG/CMakeLists.txt +++ b/MultiSource/Benchmarks/DOE-ProxyApps-C++/HPCCG/CMakeLists.txt @@ -1,4 +1,10 @@ list(APPEND CXXFLAGS -DREDSTORM) # -DREDSTORM for mkdir +if(ARCH STREQUAL "x86") + # Floating point contraction must be suppressed due to + list(APPEND CXXFLAGS -ffp-contract=off) + list(APPEND CFLAGS -ffp-contract=off) +endif() + list(APPEND LDFLAGS -lm) set(RUN_OPTIONS 50 50 50) llvm_multisource(HPCCG) diff --git a/MultiSource/Benchmarks/DOE-ProxyApps-C++/miniFE/CMakeLists.txt b/MultiSource/Benchmarks/DOE-ProxyApps-C++/miniFE/CMakeLists.txt --- a/MultiSource/Benchmarks/DOE-ProxyApps-C++/miniFE/CMakeLists.txt +++ b/MultiSource/Benchmarks/DOE-ProxyApps-C++/miniFE/CMakeLists.txt @@ -6,6 +6,12 @@ if(CMAKE_SYSTEM_NAME STREQUAL "AIX") list(APPEND CXXFLAGS -D_XOPEN_SOURCE=700 -DUseTimes) endif() +if(ARCH STREQUAL "x86") + # Floating point contraction must be suppressed due to + list(APPEND CXXFLAGS -ffp-contract=off) + list(APPEND CFLAGS -ffp-contract=off) +endif() + list(APPEND LDFLAGS -lm) set(RUN_OPTIONS -nx 64 -ny 64 -nz 64) llvm_multisource(miniFE) diff --git a/MultiSource/Benchmarks/Rodinia/srad/CMakeLists.txt b/MultiSource/Benchmarks/Rodinia/srad/CMakeLists.txt --- a/MultiSource/Benchmarks/Rodinia/srad/CMakeLists.txt +++ b/MultiSource/Benchmarks/Rodinia/srad/CMakeLists.txt @@ -1,6 +1,12 @@ list(APPEND LDFLAGS -lm) set(FP_ABSTOLERANCE 0.00001) list(APPEND CFLAGS -I${CMAKE_CURRENT_SOURCE_DIR}/../Common) +if(ARCH STREQUAL "x86") + # Floating point contraction must be suppressed due to + list(APPEND CXXFLAGS -ffp-contract=off) + list(APPEND CFLAGS -ffp-contract=off) +endif() + llvm_multisource(srad main.c sradKernel.c diff --git a/SingleSource/Benchmarks/Linpack/CMakeLists.txt b/SingleSource/Benchmarks/Linpack/CMakeLists.txt --- a/SingleSource/Benchmarks/Linpack/CMakeLists.txt +++ b/SingleSource/Benchmarks/Linpack/CMakeLists.txt @@ -1,3 +1,9 @@ list(APPEND LDFLAGS -lm) set(FP_TOLERANCE 0.0001) +if(ARCH STREQUAL "x86") + # Floating point contraction must be suppressed due to + list(APPEND CXXFLAGS -ffp-contract=off) + list(APPEND CFLAGS -ffp-contract=off) +endif() + llvm_singlesource() diff --git a/SingleSource/Benchmarks/Misc-C++/Large/CMakeLists.txt b/SingleSource/Benchmarks/Misc-C++/Large/CMakeLists.txt --- a/SingleSource/Benchmarks/Misc-C++/Large/CMakeLists.txt +++ b/SingleSource/Benchmarks/Misc-C++/Large/CMakeLists.txt @@ -1,4 +1,10 @@ list(APPEND LDFLAGS -lm) set(FP_ABSTOLERANCE 0.01) set(HASH_PROGRAM_OUTPUT 1) +if(ARCH STREQUAL "x86") + # Floating point contraction must be suppressed due to + list(APPEND CXXFLAGS -ffp-contract=off) + list(APPEND CFLAGS -ffp-contract=off) +endif() + llvm_singlesource() diff --git a/SingleSource/Benchmarks/Polybench/datamining/correlation/CMakeLists.txt b/SingleSource/Benchmarks/Polybench/datamining/correlation/CMakeLists.txt --- a/SingleSource/Benchmarks/Polybench/datamining/correlation/CMakeLists.txt +++ b/SingleSource/Benchmarks/Polybench/datamining/correlation/CMakeLists.txt @@ -3,6 +3,12 @@ if(SMALL_PROBLEM_SIZE) list(APPEND CFLAGS -DSMALL_DATASET) endif() +if(ARCH STREQUAL "x86") + # Floating point contraction must be suppressed due to + list(APPEND CXXFLAGS -ffp-contract=off) + list(APPEND CFLAGS -ffp-contract=off) +endif() + set(HASH_PROGRAM_OUTPUT 1) add_definitions(-DFP_ABSTOLERANCE=1e-5) llvm_singlesource() diff --git a/SingleSource/Benchmarks/Polybench/datamining/covariance/CMakeLists.txt b/SingleSource/Benchmarks/Polybench/datamining/covariance/CMakeLists.txt --- a/SingleSource/Benchmarks/Polybench/datamining/covariance/CMakeLists.txt +++ b/SingleSource/Benchmarks/Polybench/datamining/covariance/CMakeLists.txt @@ -3,6 +3,12 @@ if(SMALL_PROBLEM_SIZE) list(APPEND CFLAGS -DSMALL_DATASET) endif() +if(ARCH STREQUAL "x86") + # Floating point contraction must be suppressed due to + list(APPEND CXXFLAGS -ffp-contract=off) + list(APPEND CFLAGS -ffp-contract=off) +endif() + set(HASH_PROGRAM_OUTPUT 1) add_definitions(-DFP_ABSTOLERANCE=1e-5) llvm_singlesource() diff --git a/SingleSource/Benchmarks/Polybench/linear-algebra/kernels/atax/CMakeLists.txt b/SingleSource/Benchmarks/Polybench/linear-algebra/kernels/atax/CMakeLists.txt --- a/SingleSource/Benchmarks/Polybench/linear-algebra/kernels/atax/CMakeLists.txt +++ b/SingleSource/Benchmarks/Polybench/linear-algebra/kernels/atax/CMakeLists.txt @@ -2,4 +2,10 @@ list(APPEND CFLAGS -I ${CMAKE_SOURCE_DIR}/${POLYBENCH_UTILS} -DPOLYBENCH_DUMP_ARRAYS) set(HASH_PROGRAM_OUTPUT 1) add_definitions(-DFP_ABSTOLERANCE=1e-5) +if(ARCH STREQUAL "x86") + # Floating point contraction must be suppressed due to + list(APPEND CXXFLAGS -ffp-contract=off) + list(APPEND CFLAGS -ffp-contract=off) +endif() + llvm_singlesource() diff --git a/SingleSource/Benchmarks/Polybench/linear-algebra/kernels/bicg/CMakeLists.txt b/SingleSource/Benchmarks/Polybench/linear-algebra/kernels/bicg/CMakeLists.txt --- a/SingleSource/Benchmarks/Polybench/linear-algebra/kernels/bicg/CMakeLists.txt +++ b/SingleSource/Benchmarks/Polybench/linear-algebra/kernels/bicg/CMakeLists.txt @@ -2,4 +2,10 @@ list(APPEND CFLAGS -I ${CMAKE_SOURCE_DIR}/${POLYBENCH_UTILS} -DPOLYBENCH_DUMP_ARRAYS) set(HASH_PROGRAM_OUTPUT 1) add_definitions(-DFP_ABSTOLERANCE=1e-5) +if(ARCH STREQUAL "x86") + # Floating point contraction must be suppressed due to + list(APPEND CXXFLAGS -ffp-contract=off) + list(APPEND CFLAGS -ffp-contract=off) +endif() + llvm_singlesource() diff --git a/SingleSource/Benchmarks/Polybench/linear-algebra/kernels/gemver/CMakeLists.txt b/SingleSource/Benchmarks/Polybench/linear-algebra/kernels/gemver/CMakeLists.txt --- a/SingleSource/Benchmarks/Polybench/linear-algebra/kernels/gemver/CMakeLists.txt +++ b/SingleSource/Benchmarks/Polybench/linear-algebra/kernels/gemver/CMakeLists.txt @@ -2,4 +2,10 @@ list(APPEND CFLAGS -I ${CMAKE_SOURCE_DIR}/${POLYBENCH_UTILS} -DPOLYBENCH_DUMP_ARRAYS) set(HASH_PROGRAM_OUTPUT 1) add_definitions(-DFP_ABSTOLERANCE=1e-5) +if(ARCH STREQUAL "x86") + # Floating point contraction must be suppressed due to + list(APPEND CXXFLAGS -ffp-contract=off) + list(APPEND CFLAGS -ffp-contract=off) +endif() + llvm_singlesource() diff --git a/SingleSource/Benchmarks/Polybench/linear-algebra/kernels/gesummv/CMakeLists.txt b/SingleSource/Benchmarks/Polybench/linear-algebra/kernels/gesummv/CMakeLists.txt --- a/SingleSource/Benchmarks/Polybench/linear-algebra/kernels/gesummv/CMakeLists.txt +++ b/SingleSource/Benchmarks/Polybench/linear-algebra/kernels/gesummv/CMakeLists.txt @@ -3,6 +3,12 @@ if(SMALL_PROBLEM_SIZE) list(APPEND CFLAGS -DSMALL_DATASET) endif() +if(ARCH STREQUAL "x86") + # Floating point contraction must be suppressed due to + list(APPEND CXXFLAGS -ffp-contract=off) + list(APPEND CFLAGS -ffp-contract=off) +endif() + set(HASH_PROGRAM_OUTPUT 1) add_definitions(-DFP_ABSTOLERANCE=1e-5) llvm_singlesource() diff --git a/SingleSource/Benchmarks/Polybench/linear-algebra/kernels/symm/CMakeLists.txt b/SingleSource/Benchmarks/Polybench/linear-algebra/kernels/symm/CMakeLists.txt --- a/SingleSource/Benchmarks/Polybench/linear-algebra/kernels/symm/CMakeLists.txt +++ b/SingleSource/Benchmarks/Polybench/linear-algebra/kernels/symm/CMakeLists.txt @@ -3,6 +3,12 @@ if(SMALL_PROBLEM_SIZE) list(APPEND CFLAGS -DSMALL_DATASET) endif() +if(ARCH STREQUAL "x86") + # Floating point contraction must be suppressed due to + list(APPEND CXXFLAGS -ffp-contract=off) + list(APPEND CFLAGS -ffp-contract=off) +endif() + set(HASH_PROGRAM_OUTPUT 1) add_definitions(-DFP_ABSTOLERANCE=1e-5) llvm_singlesource() diff --git a/SingleSource/Benchmarks/Polybench/linear-algebra/kernels/trisolv/CMakeLists.txt b/SingleSource/Benchmarks/Polybench/linear-algebra/kernels/trisolv/CMakeLists.txt --- a/SingleSource/Benchmarks/Polybench/linear-algebra/kernels/trisolv/CMakeLists.txt +++ b/SingleSource/Benchmarks/Polybench/linear-algebra/kernels/trisolv/CMakeLists.txt @@ -1,5 +1,11 @@ set(POLYBENCH_UTILS SingleSource/Benchmarks/Polybench/utilities ) list(APPEND CFLAGS -I ${CMAKE_SOURCE_DIR}/${POLYBENCH_UTILS} -DPOLYBENCH_DUMP_ARRAYS) set(HASH_PROGRAM_OUTPUT 1) +if(ARCH STREQUAL "x86") + # Floating point contraction must be suppressed due to + list(APPEND CXXFLAGS -ffp-contract=off) + list(APPEND CFLAGS -ffp-contract=off) +endif() + add_definitions(-DFP_ABSTOLERANCE=1e-5) llvm_singlesource() diff --git a/SingleSource/Benchmarks/Polybench/linear-algebra/kernels/trmm/CMakeLists.txt b/SingleSource/Benchmarks/Polybench/linear-algebra/kernels/trmm/CMakeLists.txt --- a/SingleSource/Benchmarks/Polybench/linear-algebra/kernels/trmm/CMakeLists.txt +++ b/SingleSource/Benchmarks/Polybench/linear-algebra/kernels/trmm/CMakeLists.txt @@ -3,6 +3,12 @@ if(SMALL_PROBLEM_SIZE) list(APPEND CFLAGS -DSMALL_DATASET) endif() +if(ARCH STREQUAL "x86") + # Floating point contraction must be suppressed due to + list(APPEND CXXFLAGS -ffp-contract=off) + list(APPEND CFLAGS -ffp-contract=off) +endif() + set(HASH_PROGRAM_OUTPUT 1) add_definitions(-DFP_ABSTOLERANCE=1e-5) llvm_singlesource() diff --git a/SingleSource/Benchmarks/Polybench/linear-algebra/solvers/gramschmidt/CMakeLists.txt b/SingleSource/Benchmarks/Polybench/linear-algebra/solvers/gramschmidt/CMakeLists.txt --- a/SingleSource/Benchmarks/Polybench/linear-algebra/solvers/gramschmidt/CMakeLists.txt +++ b/SingleSource/Benchmarks/Polybench/linear-algebra/solvers/gramschmidt/CMakeLists.txt @@ -3,6 +3,12 @@ if(SMALL_PROBLEM_SIZE) list(APPEND CFLAGS -DSMALL_DATASET) endif() +if(ARCH STREQUAL "x86") + # Floating point contraction must be suppressed due to + list(APPEND CXXFLAGS -ffp-contract=off) + list(APPEND CFLAGS -ffp-contract=off) +endif() + set(HASH_PROGRAM_OUTPUT 1) add_definitions(-DFP_ABSTOLERANCE=1e-5) llvm_singlesource() diff --git a/SingleSource/Benchmarks/Polybench/stencils/adi/CMakeLists.txt b/SingleSource/Benchmarks/Polybench/stencils/adi/CMakeLists.txt --- a/SingleSource/Benchmarks/Polybench/stencils/adi/CMakeLists.txt +++ b/SingleSource/Benchmarks/Polybench/stencils/adi/CMakeLists.txt @@ -3,6 +3,12 @@ if(SMALL_PROBLEM_SIZE) list(APPEND CFLAGS -DSMALL_DATASET) endif() +if(ARCH STREQUAL "x86") + # Floating point contraction must be suppressed due to + list(APPEND CXXFLAGS -ffp-contract=off) + list(APPEND CFLAGS -ffp-contract=off) +endif() + set(HASH_PROGRAM_OUTPUT 1) add_definitions(-DFP_ABSTOLERANCE=1e-5) llvm_singlesource()