anchor.diff:    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)     ! Fully polymorph variant
  -      CALL C_F_PROCPOINTER(f, dmm)
  +      CALL C_F_PROCPOINTER(f, xmm)     ! Fully polymorph variant
  +!      CALL C_F_PROCPOINTER(f, dmm)     ! double precision variant
         WRITE(*, "(A)") "Streamed... (specialized)"
  -      !$OMP PARALLEL PRIVATE(i) !DEFAULT(NONE) SHARED(duration, a, b, c, m, n, dmm)
  +      !$OMP PARALLEL PRIVATE(i) !DEFAULT(NONE) SHARED(duration, a, b, c, m, n, dmm, xmm)
         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)
  -!        This in case of a polymorph call, we need C_LOC :-(, however the next line
  -!        violates Fortran standard :-(
  -!        CALL xmm(C_LOC(a(i)%matrix(:,:)), C_LOC(b(i)%matrix(:,:)), C_LOC(tmp))
  -        CALL dmm(a(i)%matrix, b(i)%matrix, tmp)
  +      DO i = LBOUND(a, 3), UBOUND(a, 3)
  +        CALL xmm(C_LOC(a(1,1,i)), C_LOC(b(1,1,i)), C_LOC(tmp))     ! Fully polymorph variant
  +!        CALL dmm(a(:,:,i), b(:,:,i), tmp)                          ! double precision variant
         END DO
         !$OMP MASTER
         !$ duration = duration + omp_get_wtime()
  
positive.code:     ALLOCATE(tmp(libxsmm_align_value(libxsmm_ld(m,n),T,LIBXSMM_ALIGNED_STORES),libxsmm_ld(n,m)))
      tmp(:,:) = 0
      !$OMP DO
      DO i = LBOUND(a, 1), UBOUND(a, 1)
        CALL libxsmm_blasmm(m, n, k, a(i)%matrix, b(i)%matrix, tmp)
      END DO
      !$OMP CRITICAL
      d(:,:) = d(:,:) + tmp(:UBOUND(d,1),:)
  
negative.code:   INTEGER, PARAMETER :: T = LIBXSMM_DOUBLE_PRECISION
    INTEGER, PARAMETER :: MAX_NTHREADS = 512
  
    REAL(T), ALLOCATABLE, TARGET :: a(:,:,:), b(:,:,:)
    REAL(T), ALLOCATABLE, TARGET :: 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     ! Fully ploymorph variant
    PROCEDURE(LIBXSMM_DMM_FUNCTION), POINTER :: dmm     ! double precision variant
    INTEGER :: argc, m, n, k, ld, routine, check
    INTEGER(8) :: i, s
    CHARACTER(32) :: argv
  