- if (sizeof(unsigned int) == 4) {
- if (len < max_len && matchptr[len] == strptr[len]) {
- len++;
- if (len < max_len && matchptr[len] == strptr[len]) {
- len++;
- if (len < max_len && matchptr[len] == strptr[len]) {
- len++;
- }
- }
+ while (len + WORDSIZE <= max_len) {
+ v_word = load_word_unaligned(&matchptr[len]) ^
+ load_word_unaligned(&strptr[len]);
+ if (v_word != 0)
+ goto word_differs;
+ len += WORDSIZE;