anchor.diff:        ELSE
           WRITE(*, "(A)") "Streamed... (optimized)"
         ENDIF
  -      !$OMP PARALLEL PRIVATE(i) DEFAULT(NONE) SHARED(duration, a, b, m, n, k)
  -      ALLOCATE(c(libxsmm_align_value(libxsmm_ld(m,n),T,LIBXSMM_ALIGNED_STORES),libxsmm_ld(n,m)))
  -      c(:,:) = 0
  +      !$OMP PARALLEL PRIVATE(i) DEFAULT(NONE) SHARED(duration, a, b, c, m, n, k)
  +      ALLOCATE(tmp(libxsmm_align_value(libxsmm_ld(m,n),T,LIBXSMM_ALIGNED_STORES),libxsmm_ld(n,m)))
  +      tmp(:,:) = 0
         !$OMP MASTER
         !$ duration = -omp_get_wtime()
         !$OMP END MASTER
         !$OMP DO
         DO i = LBOUND(a, 1), UBOUND(a, 1)
  -        CALL libxsmm_imm(m, n, k, a(i,:,:), b(i,:,:), c)
  +        CALL libxsmm_imm(m, n, k, a(i,:,:), b(i,:,:), tmp)
         END DO
         !$OMP MASTER
         !$ duration = duration + omp_get_wtime()
         !$OMP END MASTER
  +      !$OMP CRITICAL
  +      c(:,:) = c(:,:) + tmp(:UBOUND(c,1),:)
  +      !$OMP END CRITICAL
         ! Deallocate thread-local arrays
  -      DEALLOCATE(c)
  +      DEALLOCATE(tmp)
         !$OMP END PARALLEL
       ENDIF
     END IF
  
positive.code:     CALL init(42, a(i,:,:), i - 1)
      CALL init(24, b(i,:,:), i - 1)
    END DO
  
    IF (0.GT.routine) THEN
      WRITE(*, "(A)") "Streamed... (auto-dispatched)"
      !$OMP PARALLEL PRIVATE(i) DEFAULT(NONE) SHARED(duration, a, b, m, n, k)
      ALLOCATE(c(libxsmm_align_value(libxsmm_ld(m,n),T,LIBXSMM_ALIGNED_STORES),libxsmm_ld(n,m)))
      c(:,:) = 0
      !$OMP MASTER
      !$ duration = -omp_get_wtime()
      !$OMP END MASTER
      !$OMP DO
      DO i = LBOUND(a, 1), UBOUND(a, 1)
        CALL libxsmm_mm(m, n, k, a(i,:,:), b(i,:,:), c)
      END DO
      !$OMP MASTER
      !$ duration = duration + omp_get_wtime()
      !$OMP END MASTER
      ! Deallocate thread-local arrays
      DEALLOCATE(c)
      !$OMP END PARALLEL
    ELSE
      f = MERGE(libxsmm_mm_dispatch(m, n, k, T), C_NULL_FUNPTR, 0.EQ.routine)
      IF (C_ASSOCIATED(f)) THEN
        CALL C_F_PROCPOINTER(f, xmm)
        WRITE(*, "(A)") "Streamed... (specialized)"
        !$OMP PARALLEL PRIVATE(i) !DEFAULT(NONE) SHARED(duration, a, b, m, n, xmm)
        ALLOCATE(c(libxsmm_align_value(libxsmm_ld(m,n),T,LIBXSMM_ALIGNED_STORES),libxsmm_ld(n,m)))
        c(:,:) = 0
        !$OMP MASTER
        !$ duration = -omp_get_wtime()
        !$OMP END MASTER
        !$OMP DO
        DO i = LBOUND(a, 1), UBOUND(a, 1)
          CALL xmm(C_LOC(a(i,LBOUND(a,2),LBOUND(a,3))), C_LOC(b(i,LBOUND(b,2),LBOUND(b,3))), C_LOC(c))
        END DO
        !$OMP MASTER
        !$ duration = duration + omp_get_wtime()
        !$OMP END MASTER
        ! Deallocate thread-local arrays
        DEALLOCATE(c)
        !$OMP END PARALLEL
      ELSE
        IF (0.EQ.routine) THEN
  
negative.code:   INTEGER, PARAMETER :: T = LIBXSMM_DOUBLE_PRECISION
    INTEGER, PARAMETER :: MAX_NTHREADS = 512
  
    REAL(T), ALLOCATABLE, TARGET :: a(:,:,:), b(:,:,:), c(:,:), d(:,:)
    REAL(T), ALLOCATABLE, TARGET, SAVE :: tmp(:,:)
    !DIR$ ATTRIBUTES ALIGN:LIBXSMM_ALIGNED_MAX :: a, b, c, tmp
    !$OMP THREADPRIVATE(tmp)
    PROCEDURE(LIBXSMM_XMM_FUNCTION), POINTER :: xmm
    INTEGER :: argc, m, n, k, ld, routine, check
    INTEGER(8) :: i, s
    CHARACTER(32) :: argv
    TYPE(C_FUNPTR) :: f
  