diff --git a/MicroBenchmarks/ImageProcessing/BilateralFiltering/bilateralFilterKernel.c b/MicroBenchmarks/ImageProcessing/BilateralFiltering/bilateralFilterKernel.c --- a/MicroBenchmarks/ImageProcessing/BilateralFiltering/bilateralFilterKernel.c +++ b/MicroBenchmarks/ImageProcessing/BilateralFiltering/bilateralFilterKernel.c @@ -15,6 +15,7 @@ void bilateralFilterKernel(int height, int width, int inputImage[HEIGHT][WIDTH], int outputImage[height][width], int diameter) { +#pragma STDC FP_CONTRACT OFF int half = diameter / 2; for (int x = half; x < height - half; x++) { for (int y = half; y < width - half; y++) { diff --git a/MicroBenchmarks/ImageProcessing/Blur/gaussianBlurKernel.c b/MicroBenchmarks/ImageProcessing/Blur/gaussianBlurKernel.c --- a/MicroBenchmarks/ImageProcessing/Blur/gaussianBlurKernel.c +++ b/MicroBenchmarks/ImageProcessing/Blur/gaussianBlurKernel.c @@ -1,3 +1,4 @@ +#pragma STDC FP_CONTRACT OFF /** Gaussian Blur Kernel diff --git a/MultiSource/Applications/oggenc/oggenc.c b/MultiSource/Applications/oggenc/oggenc.c --- a/MultiSource/Applications/oggenc/oggenc.c +++ b/MultiSource/Applications/oggenc/oggenc.c @@ -28,6 +28,7 @@ #include "xcoretestsuite.h" #endif +#pragma STDC FP_CONTRACT OFF struct option { # if (defined __STDC__ && __STDC__) || defined __cplusplus diff --git a/MultiSource/Benchmarks/DOE-ProxyApps-C++/CLAMR/state.cpp b/MultiSource/Benchmarks/DOE-ProxyApps-C++/CLAMR/state.cpp --- a/MultiSource/Benchmarks/DOE-ProxyApps-C++/CLAMR/state.cpp +++ b/MultiSource/Benchmarks/DOE-ProxyApps-C++/CLAMR/state.cpp @@ -1,3 +1,4 @@ +#pragma STDC FP_CONTRACT OFF /* * Copyright (c) 2011-2013, Los Alamos National Security, LLC. * All rights Reserved. diff --git a/MultiSource/Benchmarks/DOE-ProxyApps-C++/HPCCG/HPC_sparsemv.cpp b/MultiSource/Benchmarks/DOE-ProxyApps-C++/HPCCG/HPC_sparsemv.cpp --- a/MultiSource/Benchmarks/DOE-ProxyApps-C++/HPCCG/HPC_sparsemv.cpp +++ b/MultiSource/Benchmarks/DOE-ProxyApps-C++/HPCCG/HPC_sparsemv.cpp @@ -1,3 +1,4 @@ +#pragma STDC FP_CONTRACT OFF //@HEADER // ************************************************************************ diff --git a/MultiSource/Benchmarks/DOE-ProxyApps-C++/HPCCG/ddot.cpp b/MultiSource/Benchmarks/DOE-ProxyApps-C++/HPCCG/ddot.cpp --- a/MultiSource/Benchmarks/DOE-ProxyApps-C++/HPCCG/ddot.cpp +++ b/MultiSource/Benchmarks/DOE-ProxyApps-C++/HPCCG/ddot.cpp @@ -1,3 +1,4 @@ +#pragma STDC FP_CONTRACT OFF //@HEADER // ************************************************************************ diff --git a/MultiSource/Benchmarks/DOE-ProxyApps-C++/HPCCG/waxpby.cpp b/MultiSource/Benchmarks/DOE-ProxyApps-C++/HPCCG/waxpby.cpp --- a/MultiSource/Benchmarks/DOE-ProxyApps-C++/HPCCG/waxpby.cpp +++ b/MultiSource/Benchmarks/DOE-ProxyApps-C++/HPCCG/waxpby.cpp @@ -1,3 +1,4 @@ +#pragma STDC FP_CONTRACT OFF //@HEADER // ************************************************************************ diff --git a/MultiSource/Benchmarks/DOE-ProxyApps-C++/miniFE/main.cpp b/MultiSource/Benchmarks/DOE-ProxyApps-C++/miniFE/main.cpp --- a/MultiSource/Benchmarks/DOE-ProxyApps-C++/miniFE/main.cpp +++ b/MultiSource/Benchmarks/DOE-ProxyApps-C++/miniFE/main.cpp @@ -49,6 +49,7 @@ #include #include #include +#pragma STDC FP_CONTRACT OFF #include #include diff --git a/MultiSource/Benchmarks/Rodinia/srad/sradKernel.c b/MultiSource/Benchmarks/Rodinia/srad/sradKernel.c --- a/MultiSource/Benchmarks/Rodinia/srad/sradKernel.c +++ b/MultiSource/Benchmarks/Rodinia/srad/sradKernel.c @@ -3,6 +3,7 @@ float dW[ROWS][COLS], float dE[ROWS][COLS], float I[ROWS][COLS], float J[ROWS][COLS], float c[ROWS][COLS]) { +#pragma STDC FP_CONTRACT OFF int size_R, iter; float q0sqr, sum, sum2, tmp, meanROI, varROI; float Jc, G2, L, num, den, qsqr; diff --git a/SingleSource/Benchmarks/Linpack/linpack-pc.c b/SingleSource/Benchmarks/Linpack/linpack-pc.c --- a/SingleSource/Benchmarks/Linpack/linpack-pc.c +++ b/SingleSource/Benchmarks/Linpack/linpack-pc.c @@ -262,6 +262,7 @@ } +#pragma STDC FP_CONTRACT OFF int main () { static REAL aa[200*200],a[200*201],b[200],x[200]; diff --git a/SingleSource/Benchmarks/Misc-C++/Large/sphereflake.cpp b/SingleSource/Benchmarks/Misc-C++/Large/sphereflake.cpp --- a/SingleSource/Benchmarks/Misc-C++/Large/sphereflake.cpp +++ b/SingleSource/Benchmarks/Misc-C++/Large/sphereflake.cpp @@ -82,6 +82,7 @@ return infinity; int it=100; while (it--) { +#pragma STDC FP_CONTRACT OFF xn = (xk + x/xk)/2; if (!LLVMdiff(xn, xk)) return xn; @@ -93,6 +94,7 @@ // LLVM LOCAL end +#pragma STDC FP_CONTRACT OFF struct v_t{ double x,y,z;v_t(){} v_t(const double a,const double b,const double c):x(a),y(b),z(c){} v_t operator+(const v_t&v)const{return v_t(x+v.x,y+v.y,z+v.z);} @@ -183,6 +185,7 @@ {-1/3.,+3/3.},{+3/3.,+1/3.} }; static void trace_rgss(const int width,const int height) { +#pragma STDC FP_CONTRACT OFF const double w=width,h=height,rcp=1/double(ss),scale=256./double(ss_sqr); ray_t ray(v_t(0,0,-4.5)); /* eye, looking into Z */ v_t rgss[ss_sqr]; @@ -229,6 +232,7 @@ }; static node_t *create(node_t*n,const int lvl,int dist,v_t c,v_t d,double r) { +#pragma STDC FP_CONTRACT OFF n = 1 + new (n) node_t(sphere_t(c,2.*r),sphere_t(c,r), lvl > 1 ? dist : 1); if (lvl <= 1) return n; /*if not at the bottom, recurse a bit more*/ diff --git a/SingleSource/Benchmarks/Polybench/datamining/correlation/correlation.c b/SingleSource/Benchmarks/Polybench/datamining/correlation/correlation.c --- a/SingleSource/Benchmarks/Polybench/datamining/correlation/correlation.c +++ b/SingleSource/Benchmarks/Polybench/datamining/correlation/correlation.c @@ -66,6 +66,7 @@ DATA_TYPE POLYBENCH_1D(mean,M,m), DATA_TYPE POLYBENCH_1D(stddev,M,m)) { +#pragma STDC FP_CONTRACT OFF int i, j, j1, j2; DATA_TYPE eps = 0.1f; diff --git a/SingleSource/Benchmarks/Polybench/datamining/covariance/covariance.c b/SingleSource/Benchmarks/Polybench/datamining/covariance/covariance.c --- a/SingleSource/Benchmarks/Polybench/datamining/covariance/covariance.c +++ b/SingleSource/Benchmarks/Polybench/datamining/covariance/covariance.c @@ -84,6 +84,7 @@ for (j1 = 0; j1 < _PB_M; j1++) for (j2 = j1; j2 < _PB_M; j2++) { +#pragma STDC FP_CONTRACT OFF symmat[j1][j2] = 0.0; for (i = 0; i < _PB_N; i++) symmat[j1][j2] += data[i][j1] * data[i][j2]; diff --git a/SingleSource/Benchmarks/Polybench/linear-algebra/kernels/atax/atax.c b/SingleSource/Benchmarks/Polybench/linear-algebra/kernels/atax/atax.c --- a/SingleSource/Benchmarks/Polybench/linear-algebra/kernels/atax/atax.c +++ b/SingleSource/Benchmarks/Polybench/linear-algebra/kernels/atax/atax.c @@ -67,6 +67,7 @@ y[i] = 0; for (i = 0; i < _PB_NX; i++) { +#pragma STDC FP_CONTRACT OFF tmp[i] = 0; for (j = 0; j < _PB_NY; j++) tmp[i] = tmp[i] + A[i][j] * x[j]; diff --git a/SingleSource/Benchmarks/Polybench/linear-algebra/kernels/bicg/bicg.c b/SingleSource/Benchmarks/Polybench/linear-algebra/kernels/bicg/bicg.c --- a/SingleSource/Benchmarks/Polybench/linear-algebra/kernels/bicg/bicg.c +++ b/SingleSource/Benchmarks/Polybench/linear-algebra/kernels/bicg/bicg.c @@ -82,6 +82,7 @@ q[i] = 0; for (j = 0; j < _PB_NY; j++) { +#pragma STDC FP_CONTRACT OFF s[j] = s[j] + r[i] * A[i][j]; q[i] = q[i] + A[i][j] * p[j]; } diff --git a/SingleSource/Benchmarks/Polybench/linear-algebra/kernels/gemver/gemver.c b/SingleSource/Benchmarks/Polybench/linear-algebra/kernels/gemver/gemver.c --- a/SingleSource/Benchmarks/Polybench/linear-algebra/kernels/gemver/gemver.c +++ b/SingleSource/Benchmarks/Polybench/linear-algebra/kernels/gemver/gemver.c @@ -85,6 +85,7 @@ DATA_TYPE POLYBENCH_1D(y,N,n), DATA_TYPE POLYBENCH_1D(z,N,n)) { +#pragma STDC FP_CONTRACT OFF int i, j; #pragma scop diff --git a/SingleSource/Benchmarks/Polybench/linear-algebra/kernels/gesummv/gesummv.c b/SingleSource/Benchmarks/Polybench/linear-algebra/kernels/gesummv/gesummv.c --- a/SingleSource/Benchmarks/Polybench/linear-algebra/kernels/gesummv/gesummv.c +++ b/SingleSource/Benchmarks/Polybench/linear-algebra/kernels/gesummv/gesummv.c @@ -77,6 +77,7 @@ #pragma scop for (i = 0; i < _PB_N; i++) { +#pragma STDC FP_CONTRACT OFF tmp[i] = 0; y[i] = 0; for (j = 0; j < _PB_N; j++) diff --git a/SingleSource/Benchmarks/Polybench/linear-algebra/kernels/symm/symm.c b/SingleSource/Benchmarks/Polybench/linear-algebra/kernels/symm/symm.c --- a/SingleSource/Benchmarks/Polybench/linear-algebra/kernels/symm/symm.c +++ b/SingleSource/Benchmarks/Polybench/linear-algebra/kernels/symm/symm.c @@ -80,6 +80,7 @@ for (i = 0; i < _PB_NI; i++) for (j = 0; j < _PB_NJ; j++) { +#pragma STDC FP_CONTRACT OFF acc = 0; for (k = 0; k < j - 1; k++) { diff --git a/SingleSource/Benchmarks/Polybench/linear-algebra/kernels/trisolv/trisolv.c b/SingleSource/Benchmarks/Polybench/linear-algebra/kernels/trisolv/trisolv.c --- a/SingleSource/Benchmarks/Polybench/linear-algebra/kernels/trisolv/trisolv.c +++ b/SingleSource/Benchmarks/Polybench/linear-algebra/kernels/trisolv/trisolv.c @@ -79,6 +79,7 @@ #pragma scop for (i = 0; i < _PB_N; i++) { +#pragma STDC FP_CONTRACT OFF x[i] = c[i]; for (j = 0; j <= i - 1; j++) x[i] = x[i] - A[i][j] * x[j]; diff --git a/SingleSource/Benchmarks/Polybench/linear-algebra/kernels/trmm/trmm.c b/SingleSource/Benchmarks/Polybench/linear-algebra/kernels/trmm/trmm.c --- a/SingleSource/Benchmarks/Polybench/linear-algebra/kernels/trmm/trmm.c +++ b/SingleSource/Benchmarks/Polybench/linear-algebra/kernels/trmm/trmm.c @@ -64,6 +64,7 @@ DATA_TYPE POLYBENCH_2D(A,NI,NI,ni,ni), DATA_TYPE POLYBENCH_2D(B,NI,NI,ni,ni)) { +#pragma STDC FP_CONTRACT OFF int i, j, k; #pragma scop diff --git a/SingleSource/Benchmarks/Polybench/linear-algebra/solvers/gramschmidt/gramschmidt.c b/SingleSource/Benchmarks/Polybench/linear-algebra/solvers/gramschmidt/gramschmidt.c --- a/SingleSource/Benchmarks/Polybench/linear-algebra/solvers/gramschmidt/gramschmidt.c +++ b/SingleSource/Benchmarks/Polybench/linear-algebra/solvers/gramschmidt/gramschmidt.c @@ -101,6 +101,7 @@ #pragma scop for (k = 0; k < _PB_NJ; k++) { +#pragma STDC FP_CONTRACT OFF nrm = 0; for (i = 0; i < _PB_NI; i++) nrm += A[i][k] * A[i][k]; diff --git a/SingleSource/Benchmarks/Polybench/stencils/adi/adi.c b/SingleSource/Benchmarks/Polybench/stencils/adi/adi.c --- a/SingleSource/Benchmarks/Polybench/stencils/adi/adi.c +++ b/SingleSource/Benchmarks/Polybench/stencils/adi/adi.c @@ -71,6 +71,7 @@ #pragma scop for (t = 0; t < _PB_TSTEPS; t++) { +#pragma STDC FP_CONTRACT OFF for (i1 = 0; i1 < _PB_N; i1++) for (i2 = 1; i2 < _PB_N; i2++) {