anchor.diff:            tm2(:,:,j) = matmul(tm1(:,:,j), dy)
         enddo
         ! because we can't reshape d
  -      d(:,:,:,i) = reshape(matmul(reshape(tm2, (/mm*nn, k/)), dy), (/mm,nn,kk/))
  +      d(:,:,:,i) = reshape(matmul(reshape(tm2, (/mm*nn, k/)), dz), (/mm,nn,kk/))
       END DO
       ! Deallocate thread-local arrays
       DEALLOCATE(tm1, tm2)
  
positive.code:     enddo
    END DO 
    dx = 1.
    dy = transpose(dx)
  
    WRITE(*, "(6(A,I0),A,I0)") "m=", m, " n=", n, " k=", k, " mm=", mm, " nn=", nn, " kk=", kk, " size=", UBOUND(a, 4) 
  
  
negative.code:     do j = 1, k
          call libxsmm_mm(mm, nn, n, tm1(:,:,j), dy, tm2(:,:,j), xargs)
      enddo
      call libxsmm_mm(mm*nn, kk, k, reshape(tm2, (/mm*nn,k/)), dz, c(:,:,1,i), xargs)
    END DO
    !$OMP MASTER
    duration = libxsmm_timer_duration(start, libxsmm_timer_tick())
  