PURE_ARRAY_EQUALITY FUNCTION array_equality_i1(array1, array2) RESULT(are_equal)
INTEGER, DIMENSION(:), POINTER, CONTIGUOUS :: array1, array2
LOGICAL :: are_equal
are_equal = .FALSE.
IF (ASSOCIATED(array1) .AND. ASSOCIATED(array2)) THEN
#if TO_VERSION(1, 11) <= TO_VERSION(LIBXSMM_CONFIG_VERSION_MAJOR, LIBXSMM_CONFIG_VERSION_MINOR)
are_equal = .NOT. libxsmm_diff(array1, array2)
#else
IF (SIZE(array1) .NE. SIZE(array2)) RETURN
are_equal = ALL(array1 .EQ. array2)
#endif
END IF
END FUNCTION array_equality_i1