anchor.diff:  
           ! Overloaded BLAS routines (single/double precision).
           INTERFACE libxsmm_blasmm
  -          MODULE PROCEDURE libxsmm_sblasmm, libxsmm_dblasmm
  +          MODULE PROCEDURE                                              &
  +     &      libxsmm_sblasmm_ab, libxsmm_dblasmm_ab,                     &
  +     &      libxsmm_sblasmm, libxsmm_dblasmm
           END INTERFACE
   
           !DIR$ ATTRIBUTES OFFLOAD:MIC :: libxsmm_init
  
positive.code:           ELSE
              CALL dgemm(                                                 &
       &        MERGE('N', 'T',                                           &
       &            0.EQ.IAND(LIBXSMM_GEMM_FLAG_TRANS_A, flags)),         &
       &        MERGE('N', 'T',                                           &
       &            0.EQ.IAND(LIBXSMM_GEMM_FLAG_TRANS_B, flags)),         &
       &        n, m, k,                                                  &
       &        MERGE(REAL(LIBXSMM_ALPHA, T), alpha, .NOT.PRESENT(alpha)),&
       &        b, MAX(SIZE(b, 2), n), a, MAX(SIZE(a, 2), k),             &
  
negative.code:             INTEGER(C_INT), INTENT(IN), VALUE :: lda, ldb, ldc
              REAL(C_FLOAT), INTENT(IN) :: alpha, beta
            END FUNCTION
  
            ! Query or JIT-generate a function; return zero if it does not exist,
            ! or if JIT is not supported (double-precision).
            TYPE(C_FUNPTR) PURE FUNCTION libxsmm_ddispatch0(              &
  