anchor.diff:    !DIR$ ATTRIBUTES OFFLOAD:MIC :: libxsmm_smm_dispatch
     !DIR$ ATTRIBUTES INLINE :: libxsmm_smm_dispatch
     FUNCTION libxsmm_smm_dispatch(m, n, k) RESULT(f)
  -    PROCEDURE(LIBXSMM_SMM_FUNCTION), POINTER :: f
  +    PROCEDURE(LIBXSMM_XMM_FUNCTION), POINTER :: f
       INTEGER(LIBXSMM_INTEGER_TYPE), INTENT(IN) :: m, n, k
       INTERFACE
         !DIR$ ATTRIBUTES OFFLOAD:MIC :: libxsmm_smm_dispatch_aux
         TYPE(C_FUNPTR) PURE FUNCTION libxsmm_smm_dispatch_aux(m, n, k) BIND(C, NAME="libxsmm_smm_dispatch")
  -        USE, INTRINSIC :: ISO_C_BINDING
  -        INTEGER(C_INT), INTENT(IN) :: m, n, k
  +        IMPORT :: C_FUNPTR, C_INT
  +        INTEGER(C_INT), VALUE, INTENT(IN) :: m, n, k
         END FUNCTION
       END INTERFACE
       CALL C_F_PROCPOINTER(libxsmm_smm_dispatch_aux(m, n, k), f)
  
positive.code:   END INTERFACE
  
    ABSTRACT INTERFACE
      ! Type of a function generated for a specific M, N, and K; single-precision.
      PURE SUBROUTINE LIBXSMM_SMM_FUNCTION(a, b, c)
        USE, INTRINSIC :: ISO_C_BINDING
        REAL(C_FLOAT), INTENT(IN) :: a(:,:), b(:,:)
        REAL(C_FLOAT), INTENT(INOUT) :: c(:,:)
      END SUBROUTINE
  
      ! Type of a function generated for a specific M, N, and K; double-precision.
      PURE SUBROUTINE LIBXSMM_DMM_FUNCTION(a, b, c)
        USE, INTRINSIC :: ISO_C_BINDING
        REAL(C_DOUBLE), INTENT(IN) :: a(:,:), b(:,:)
        REAL(C_DOUBLE), INTENT(INOUT) :: c(:,:)
      END SUBROUTINE
    END INTERFACE$MNK_INTERFACE_LIST
  
  
negative.code:   !DIR$ ATTRIBUTES INLINE :: libxsmm_smm
    SUBROUTINE libxsmm_smm(m, n, k, a, b, c)
      INTEGER(LIBXSMM_INTEGER_TYPE), INTENT(IN) :: m, n, k
      REAL(LIBXSMM_SINGLE_PRECISION), TARGET, INTENT(IN) :: a($SHAPE_A), b($SHAPE_B)
      REAL(LIBXSMM_SINGLE_PRECISION), TARGET, INTENT(INOUT) :: c($SHAPE_C)
      PROCEDURE(LIBXSMM_XMM_FUNCTION), POINTER :: xmm
      IF (LIBXSMM_MAX_MNK.GE.(m * n * k)) THEN
        xmm => libxsmm_smm_dispatch(m, n, k)
        IF (ASSOCIATED(xmm)) THEN
          CALL xmm(C_LOC(a), C_LOC(b), C_LOC(c))
        ELSE
          CALL libxsmm_simm(m, n, k, a, b, c)
        ENDIF
  