anchor.diff:  
   ! use splimix64 for initialization
   do i = 1, nSeeds
  -  seed(i) = splitmix64(t)
  +  call splitmix64(t, seed(i))
   end do
   
   end subroutine
  
positive.code: ! This is because splitmix64 assumes uint64 wrap-around, which is undefined in F90/95 std.
  ! Even though there are warnings, AFAIK, generated assembler codes are ones as expected.
  seed = seed + step
  res = seed
  res = ieor(res, ishft(res, -30)) * mix1
  res = ieor(res, ishft(res, -27)) * mix2
  res = ieor(res, ishft(res, -31))
  end function
  !====================================================================!
  end module 
negative.code: !====================================================================!
  
  !====================================================================!
  subroutine splitmix64(seed, res)
    !! SplitMix64 implementation for random number seed initialization
  !====================================================================!
  integer(i64), intent(inout) :: seed
  integer(i64) :: res
  
  integer(i64), volatile :: tmp
  
  ! As of Fortran95 BOZ literals are available only in DATA stmts.
  ! Also, gfortran does not allow integer(8) greater than 2^63...
  