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

    <tr>
        <th>Summary</th>
        <td>
            `@min(@ctz(x), y)` can become `@ctz(x | (1 << y))`
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

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

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

<pre>
    [Godbolt link](https://zig.godbolt.org/z/fzMo9jYPK)

```zig
export fn bounded_tzcnt(x: u16) u8 {
    return @min(@ctz(x), y);
}

export fn bounded_tzcnt_better(x: u16) u8 {
    return @ctz(x | (1 << y));
}

export fn bounded_lzcnt(x: u16) u8 {
    return @min(@clz(x), y);
}

export fn bounded_lzcnt_better(x: u16) u8 {
 return @clz(x | (1 << 16 >> y));
}
```


```asm
bounded_tzcnt:
        or      edi, 65536
        mov     eax, 6
        tzcnt   ecx, edi
        cmp cl, 6
        cmovb   eax, ecx
 ret

bounded_tzcnt_better:
        or      edi, 64
        tzcnt eax, edi
        ret

bounded_lzcnt:
        lzcnt   cx, di
 mov     eax, 6
        cmp     cl, 6
        cmovb   eax, ecx
 ret

bounded_lzcnt_better:
        or      edi, 1024
 lzcnt   ax, di
        ret
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJysVEtvoz4Q_zTDxWpkxkDgwCFtmv_hr5X2tNKeKr8gbg2OwHTbfPqVgbRlN31qoygjeR6_R0bD-97UrdYlpJeQbiM--L3ryh_cGsW7u0g49Rhy_zklnPXEmvYO0i1gvvf-0APbAO4Ad0dTr-qpZuW6OrwA7qrjN1fc_vz-P2ABdAt0M_9mdPoeTT296IeD6zypWiLc0CqtbvxRth4wfwC2IUOcARZkyAmsL6cOQgjptB-6lkBCG9MC5pBQ6Y9jExaAV-QxRDZ3wHr7ksQrkDdCe6-7DyPPgATWVwQwjwmwK2Az9GfQ7RcF268Lth8U_EKtPa82zgiwa2DXb-g-_emLTVimeN9ML8stYJtnC8LHdVPUygTRWZqybFnRuPupgj-MFcvsODVk5ZgNYxZ52RyItGcaZePuxfPY0P_k0EtBZzfqPRXJOZInpD8pvgJoz_plZ72T3KdRb5sUTBjjvzDCfsKImOLJihNxviT-lwen_YlUyVTBCh7pMl7HrChyFhfRvtRKUkWVlJwlCWKeIxZaVkxka54KEUemRIoJTTBBZDkrVhVPUyYrVQme5HxdQUJ1w41dWXvfhBsXmb4fdFlQSmlkudC2H68oYqt_kTEJiOGodmXouRBD3UNCrel9_zzFG291Gei_fcUySiRvidDSNZpM9e_dnoxGQ2fL5amujd8PYiVdA7gLNOZwcejcrZYecDeS7wF3o7jfAQAA__8WJ6rg">