This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug rtl-optimization/55845] 454.calculix miscompares with -march=btver2 -O3 -ffastmath -fschedule-insns -mvzeroupper for test data run


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=55845

--- Comment #3 from Vladimir Yakovlev <vbyakovl23 at gmail dot com> 2013-01-04 06:40:44 UTC ---
The test fails corei7-avx also. I build a simple reproducer.

-------------------------------------------------------------
#include <stdio.h>

#define N 100

double
foo ( 
   int      size, 
   double   y[], 
   double   x[] 
)
{
  double sum = 0.0 ;
  int i ;
  for (i = 0, sum = 0. ; i < size ; i++)
    sum += y[i] * x[i] ; 
  return(sum);
}

int main ()
{
  double x[N];
  double y[N];
  double s;
  int i;

  for (i = 0; i < N; i++)
    {
      x[i] = i;
      y[i] = i;
    }

  s = foo (N, y, x);

  printf("%s\n", s == 328350 ? "pass" : "fail");
}
------------------------------------------------------

$ gcc -mavx -g -static  -o t  -O3 -ffast-math -march=corei7 t.c -fno-inline &&
./t
pass
$ gcc  -fschedule-insns -mavx -g -static  -o t  -O3 -ffast-math -march=corei7
t.c -fno-inline && ./t                                                          
fail

Responsible phase is jump2. To switch off the phase I did changes

diff --git a/gcc/cfgcleanup.c b/gcc/cfgcleanup.c
index 5d142e9..be04c5d 100644
--- a/gcc/cfgcleanup.c
+++ b/gcc/cfgcleanup.c
@@ -3070,6 +3070,7 @@ struct rtl_opt_pass pass_jump =
 static unsigned int
 execute_jump2 (void)
 {
+  if (!getenv("NOJMP2"))
   cleanup_cfg (flag_crossjumping ? CLEANUP_CROSSJUMP : 0);
   return 0;
 }

env NOJMP2=1 gcc  -fschedule-insns -mavx -g -static  -o t  -O3 -ffast-math
-march=corei7 t.c -fno-inline && ./t
pass

I used compiler
Target: x86_64-unknown-linux-gnu
Configured with: ../gcc/configure CFLAGS='-O0 -g3' CXXFLAGS='-O0 -g3'
--prefix=/gnumnt/msticlxl16_users/vbyakovl/workspaces/gcc/install
--enable-clocale=gnu --disable-bootstrap --with-system-zlib --enable-shared
--with-demangler-in-ld --with-fpmath=sse --with-arch=corei7-avx
--with-cpu=corei7-avx --enable-languages=c,c++,fortran,java,lto,objc
--no-create --no-recursion


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]