anchor.diff:  
   if(all(seed(:) == 0_i64)) then
     ! initialize with some non-zero values
  -  tmp = 0
  +  tmp = 0_i64
     do i = 0, nSeeds-1
  -    this%seed(i) = splitmix64(tmp)
  +    call splitmix64(tmp, this%seed(i))
     end do
   else
     this%seed(0:nSeeds-1) = seed(1:nSeeds)
  
positive.code: !====================================================================!
  
  !====================================================================!
  function splitmix64(seed) result(res)
    !! SplitMix64 implementation for random number seed initialization
  !====================================================================!
  integer(i64), intent(inout) :: seed
  integer(i64) :: res
  
  ! As of Fortran95 BOZ literals are available only in DATA stmts.
  ! Also, gfortran does not allow integer(8) greater than 2^63...
  
negative.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
  tmp = seed
  tmp = ieor(tmp, ishft(res, -30)) * mix1
  tmp = ieor(tmp, ishft(res, -27)) * mix2
  tmp = ieor(tmp, ishft(res, -31))
  res = tmp
  end subroutine
  !====================================================================!
  end module 
  