http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51058
Dominique d'Humieres <dominiq at lps dot ens.fr> changed: What |Removed |Added ---------------------------------------------------------------------------- CC|ira at gcc dot gnu.org | --- Comment #5 from Dominique d'Humieres <dominiq at lps dot ens.fr> 2011-11-09 18:27:58 UTC --- > I guess it'd better be > > SUBROUTINE MLIST(MOLsp,PBCx,PBCy,PBCz, X0) > IMPLICIT NONE > INTEGER, PARAMETER :: NM=16384 > INTEGER :: MOLsp, i > REAL :: PBCx, PBCy, PBCz, boxjmp, HALf=1./2. > REAL :: X0(2,-2:NM) > > DO i = 1 , MOLsp > boxjmp = PBCx*INT(X0(1,i)+SIGN(HALf,X0(1,i))) > X0(1,i) = X0(1,i) - boxjmp > boxjmp = PBCy*INT(X0(2,i)+SIGN(HALf,X0(2,i))) > X0(2,i) = X0(2,i) - boxjmp > ENDDO > END > > otherwise it's an interleaving group of 3, which is only supported on NEON, > AFAIK. I also changed the type to REAL to make it work (fail) on power. Well, the original code in mdbx.f90 has the interleaving group of 3 (I only changed the "decoration" around the loop to keep a valid code). When trying to reduce the code removing one block made the ICE to disappear, but the above test fails on x86_64 and not on ppc. > (My GCC address is i...@gcc.gnu.org, and not i...@gcc.gnu.org). Sorry! I'll try to remember it next time;-)