anchor.diff:          LOGICAL PURE FUNCTION libxsmm_smmavailable(fn)
             TYPE(LIBXSMM_SMMFUNCTION), INTENT(IN) :: fn
             libxsmm_smmavailable =                                        &
  -     &      ASSOCIATED(fn%fn0).OR.ASSOCIATED(fn%fn1)
  +     &      ASSOCIATED(fn%fn3).OR.ASSOCIATED(fn%fn6)
           END FUNCTION
   
           !DIR$ ATTRIBUTES OFFLOAD:MIC :: libxsmm_dmmavailable
           LOGICAL PURE FUNCTION libxsmm_dmmavailable(fn)
             TYPE(LIBXSMM_DMMFUNCTION), INTENT(IN) :: fn
             libxsmm_dmmavailable =                                        &
  -     &      ASSOCIATED(fn%fn0).OR.ASSOCIATED(fn%fn1)
  +     &      ASSOCIATED(fn%fn3).OR.ASSOCIATED(fn%fn6)
           END FUNCTION
   
           !DIR$ ATTRIBUTES OFFLOAD:MIC :: libxsmm_smmcall_abx
           PURE SUBROUTINE libxsmm_smmcall_abx(fn, a, b, c)
             TYPE(LIBXSMM_SMMFUNCTION), INTENT(IN) :: fn
             TYPE(C_PTR), INTENT(IN) :: a, b, c
  -          CALL fn%fn0(a, b, c)
  +          CALL fn%fn3(a, b, c)
           END SUBROUTINE
   
           !DIR$ ATTRIBUTES OFFLOAD:MIC :: libxsmm_dmmcall_abx
           PURE SUBROUTINE libxsmm_dmmcall_abx(fn, a, b, c)
             TYPE(LIBXSMM_DMMFUNCTION), INTENT(IN) :: fn
             TYPE(C_PTR), INTENT(IN) :: a, b, c
  -          CALL fn%fn0(a, b, c)
  +          CALL fn%fn3(a, b, c)
           END SUBROUTINE
   
           !DIR$ ATTRIBUTES OFFLOAD:MIC :: libxsmm_smmcall_prx
           PURE SUBROUTINE libxsmm_smmcall_prx(fn, a, b, c, pa, pb, pc)
             TYPE(LIBXSMM_SMMFUNCTION), INTENT(IN) :: fn
             TYPE(C_PTR), INTENT(IN) :: a, b, c, pa, pb, pc
  -          CALL fn%fn1(a, b, c, pa, pb, pc)
  +          CALL fn%fn6(a, b, c, pa, pb, pc)
           END SUBROUTINE
   
           !DIR$ ATTRIBUTES OFFLOAD:MIC :: libxsmm_dmmcall_prx
           PURE SUBROUTINE libxsmm_dmmcall_prx(fn, a, b, c, pa, pb, pc)
             TYPE(LIBXSMM_DMMFUNCTION), INTENT(IN) :: fn
             TYPE(C_PTR), INTENT(IN) :: a, b, c, pa, pb, pc
  -          CALL fn%fn1(a, b, c, pa, pb, pc)
  +          CALL fn%fn6(a, b, c, pa, pb, pc)
           END SUBROUTINE
   
           !DIR$ ATTRIBUTES OFFLOAD:MIC :: libxsmm_smmcall_abc
  
positive.code:         IMPLICIT NONE
  
          PRIVATE ::  construct_smmfunction, construct_dmmfunction,       &
       &              construct_fn0, construct_fn1, srealptr, drealptr
  
          ! Name of the version (stringized set of version numbers).
          CHARACTER(*), PARAMETER :: LIBXSMM_VERSION = "$VERSION"
  
negative.code:         ! Type of a function specialized for a given parameter set.
          ABSTRACT INTERFACE
            ! Specialized function with fused alpha and beta arguments.
            PURE SUBROUTINE LIBXSMM_MMFUNCTION3(a, b, c) BIND(C)
              IMPORT :: C_PTR
              TYPE(C_PTR), INTENT(IN), VALUE :: a, b, c
            END SUBROUTINE
  
            ! Specialized function with alpha, beta, and prefetch arguments.
            PURE SUBROUTINE LIBXSMM_MMFUNCTION6(a, b, c,                  &
       &    pa, pb, pc) BIND(C)
              IMPORT :: C_PTR
              TYPE(C_PTR), INTENT(IN), VALUE :: a, b, c
  