anchor.diff:    ALLOCATE(b(k,n,s))
   
     ! Initialize a, b
  -  ! additional copies when call LIBXSMM in the F90 compiler
     !$OMP PARALLEL DO PRIVATE(i) DEFAULT(NONE) SHARED(a, b, m, n, k, s)
     DO i = 1, s
  -    CALL init(42, a(:, :, i), i - 1)
  -    CALL init(24, b(:, :, i), i - 1)
  +    CALL init(42, a(:,:,i), i - 1)
  +    CALL init(24, b(:,:,i), i - 1)
     END DO
     c(:,:) = 0
   
  
positive.code:   IF (0.NE.check) THEN
      WRITE(*, "(1A,A,F10.1,A)") CHAR(9), "diff:       ", MAXVAL((c(:,:) - d(:,:)) * (c(:,:) - d(:,:)))
    END IF
    c(:,:) = 0
  
    f = libxsmm_dispatch(m, n, k, T)
    IF (C_ASSOCIATED(f)) THEN
      CALL C_F_PROCPOINTER(f, xmm)
      WRITE(*, "(A)") "Streamed... (specialized)"
      !$OMP PARALLEL PRIVATE(i, start) !DEFAULT(NONE) SHARED(m, n, a, b, c, duration, xmm)
      ALLOCATE(tmp(libxsmm_align_value(libxsmm_ld(m,n),T,LIBXSMM_ALIGNED_STORES),libxsmm_ld(n,m)))
      tmp(:,:) = 0
      !$OMP MASTER
      start = libxsmm_timer_tick()
      !$OMP END MASTER
      !$OMP DO
      DO i = LBOUND(a, 3), UBOUND(a, 3)
        CALL xmm(a(:,:,i), b(:,:,i), tmp)
      END DO
      !$OMP MASTER
      duration = libxsmm_timer_duration(start, libxsmm_timer_tick())
      !$OMP END MASTER
      !$OMP CRITICAL
      c(:,:) = c(:,:) + tmp(:UBOUND(c,1),:)
      !$OMP END CRITICAL
      ! Deallocate thread-local arrays
      DEALLOCATE(tmp)
      !$OMP END PARALLEL
  
negative.code:   ELSE
      i = 2 ! 2 GByte for A and B (and C, but this currently not used by the F90 test)
    END IF
  
    CALL GETENV("CHECK", argv)
    READ(argv, "(I32)") check
  
    s = ISHFT(MAX(i, 0_8), 30) / ((m * k + k * n + m * n) * T)
  
    ALLOCATE(c(m,n))
  