anchor.diff:      DO j = 1, k
           CALL libxsmm_mm(mm, nn, n, tm1(:,:,j), dy, tm2(:,:,j), LIBXSMM_FLAGS, alpha, beta)
       END DO
  -    CALL libxsmm_mm(mm*nn, kk, k, tm2(:,:,1), dz, c(:,:,1,i), LIBXSMM_FLAGS, alpha, beta)
  +    CALL libxsmm_mm(mm*nn, kk, k, tm2(:,:,1), dz, tm3(:,:,1), LIBXSMM_FLAGS, alpha, beta)
  +    CALL stream_vector_copy( tm3(1,1,1), c(1,1,1,i), mm*nn*kk )
     END DO
     !$OMP MASTER
     duration = libxsmm_timer_duration(start, libxsmm_timer_tick())
     !$OMP END MASTER
     ! Deallocate thread-local arrays
  -  DEALLOCATE(tm1, tm2)
  -  !$OMP END PARALLEL
  -
  -  CALL performance(duration, m, n, k, mm, nn, kk, s)
  -  IF (check.NE.0) CALL validate(c, d)
  -
  -  WRITE(*, "(A)") "Streamed... (mxm)"
  -  !$OMP PARALLEL PRIVATE(i, start) DEFAULT(NONE) &
  -  !$OMP   SHARED(duration, a, dx, dy, dz, c, m, n, k, mm, nn, kk)
  -  ALLOCATE(tm1(mm,n,k), tm2(mm,nn,k))
  -  tm1 = 0; tm2 = 0;
  -  !$OMP MASTER
  -  start = libxsmm_timer_tick()
  -  !$OMP END MASTER
  -  !$OMP DO
  -  DO i = LBOUND(a, 4), UBOUND(a, 4)
  -    CALL mxmf2(dx, mm, a(:,:,:,i), m, tm1, n*k)
  -    DO j = 1, k
  -        CALL mxmf2(tm1(:,:,j), mm, dy, n, tm2(:,:,j), nn)
  -    END DO
  -    CALL mxmf2(tm2, mm*nn, dz, k, c(:,:,:,i), kk)
  -  END DO
  -  !$OMP MASTER
  -  duration = libxsmm_timer_duration(start, libxsmm_timer_tick())
  -  !$OMP END MASTER
  -  ! Deallocate thread-local arrays
  -  DEALLOCATE(tm1, tm2)
  +  DEALLOCATE(tm1, tm2, tm3)
     !$OMP END PARALLEL
   
     CALL performance(duration, m, n, k, mm, nn, kk, s)
  
positive.code: 
  PROGRAM stpm
    USE :: LIBXSMM
  
    !$ USE omp_lib
    IMPLICIT NONE
  
negative.code:       WRITE(*, "(1A,A,F10.1,A)") CHAR(9), "performance:", &
          (s * ((2*m-1)*mm*n*k + mm*(2*n-1)*nn*k + mm*nn*(2*k-1)*kk) * 1D-9 / duration), " GFLOPS/s"
        WRITE(*, "(1A,A,F10.1,A)") CHAR(9), "bandwidth:  ", &
          (s * ((m*n*k) + (mm*nn*kk)) * T / (duration * LSHIFT(1_8, 30))), " GB/s"
      END IF
      WRITE(*, "(1A,A,F10.1,A)") CHAR(9), "duration:   ", 1D3 * duration, " ms"
    end subroutine performance
  