<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/132578>132578</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [Clang 20.1.0] Missed strlen when cmp to NUL forwards with increments
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            clang
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          BreadTom
      </td>
    </tr>
</table>

<pre>
    https://godbolt.org/z/adf71b63Y
f1() should optimized to f0(). f0() should call strlen just like GCC 14.2.
C code
'''
#include <stddef.h>

size_t f0(char *str){
    size_t i = 0;
 for(; str[i] != '\0'; ++i){

    }
    return i;
}

size_t f1(char *str, size_t inc){
    if(inc < 2)
        __builtin_unreachable();
 if(str[0] == '\0')
        return 0;
    size_t i = 0;
    for(;; i += inc){
        for(size_t n = 0; n < inc; ++n){
            if(str[i+n] == '\0'){
                return i+n;
            }
        }
    }
 return i;
}
'''
Bug also reported at https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119431
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJx0VEGT6yYM_jXyhXkeEHYcH3yInbqXtqf20FMGA7F5JSYD-O10f30Hx5u8ZLuZzCCDJL7vk5AIwYyz1g2ULZTHTCxxcr5pvRbqT3fJBqf-baYYrwH4AbAH7EenBmdj7vwI2L8D9kKdKzbs-N9AD2cGuAesSZjcYhVx12gu5l0rEh0509thfrc-3KSwloTorZ7J9yVEYs0_mvzadYQVOeZADx2RTmmgB8Bq-yebm1naRWkCvAtRKX3OJ-C_pDN6COZdn-LtMjkJTwAPIXrAGqoW6IEQQjYfQ4AfCQW-7p-dT_h4mzBB2RoojwSQJZ90c9nRtPCWALaArbmn3LJCddwsr-PiZ2JumW_7P0Fjr9C6O6JZPgE1Z8C9mWViSjAd3fbT73QaFmOjmU_L7LWQkxisvim8MVqjb2ToSoYfX8g8JdxQf-jxlU6EPKRKaphVD378BP7hueWZ73lWs1sj7nrOn4LvCnwUJDl9xeNT5FMhUiR_9XgU7Plrs_63ij81YruMRNjgiNdX56NWRETy8m6kzMd52d7NsIzvxloB2IfJvZ2GZczlaID3RgE_MlYXnGWq4armtch0w6oCd_WO7XfZ1NRcKCX3oi53uuaqqs9CDyjYvtrLipdDZhqkWFKOnCLb4S4vCil5VVHJBqHZUEBB9UUYm1v745IwZSaERTeMY1ntMysGbcM6FRClFfMIiGlA-CYFfBuWMUBBrQkxPFJEE-06SroUQZDmLF-77XcTglYfD_xt0jORl2saCX_89VtqjDfhVSBvJk6pEby-6DmGbPH2dfiYOC1DLt0FsE_3bsu3q3fftYyA_cojAPYblR8N_hcAAP__l7ZcfQ">