Using `isintlike` or `isscalarlike` slows the fast path down by 25-50%.
Hence the splitting of it into two parts.