<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/193178>193178</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[x86-64] `lzcnt64(x) + (x == 0)` => `lzcnt+adc`
</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](https://c.godbo.lt/#z:OYLghAFBqd5QCxAYwPYBMCmBRdBLAF1QCcAaPECAMzwBtMA7AQwFtMQByARg9KtQYEAysib0QXACx8BBAKoBnTAAUAHpwAMvAFYTStJg1AB9U8lJL6yAngGVG6AMKpaAVxYM9DgDJ4GmADl3ACNMYhAAdlIAB1QFQlsGZzcPPVj4mwFffyCWUPCoy0xrRKECJmICZPdPLgtMK0yGMoqCbMCQsMiLcsrq1LqFXra/DryuiIBKC1RXYmR2DgBSACYAZj9kNywAaiW1xyH8QQA6BH3sJY0AQVWNhi3XXf3HVQAOADY/AmI/M4urrcbq5vh9JMYCDtNsRjGgGOgICDBGCITtVJM9hEAEKAnZ4nbETAEOYMHamWgAL2QyMkEHRexWWJ2dL2awAIvs2TsNJN9jibksIhybhxprROABWXieDhaUioTiOHYKWbzTAMtY8UgETSi6YAaxAkgiJzWHzekhWXA0EpWH01EoiEv0nEk0t18s4vAUIA02t10zgsBgiBQqBY0ToYXIlDQEaj4WQW0MwAhxFcDH1fDoBDCPogwQ9wT8FQAnpwtcXmMRSwB5YLaYo67i8ONsQS1hi0cuy3hYYKuYCOMS0H0t0hYFgp8S9id4QklABumDHcswqmKrlzFd43waHtoeGCxDLziwHp%2BeBYO9Iy%2BIwTimDZmCnRkPRgDfAMwAUADU8JgADutbRIwN78IIIhiOwUgyIIigqOos66HUBgfqYsL6EePqQNMqDRE0Y4ALS1msOxEVO8znOyFIMHeUrynevxYDhEDTEUJR2BADj9LUpA%2BKMuT5GkcQJAIvEiRkiTtEJXSDA0TalMMEnyY0SmtDJnThIMykuDUehDBpglaRI7GqgspkuhwDEynKCocGinxEWCOzJkYzI/Bm%2BoYhAuCECQGpcJMvDNlokwGiAtonBoERrGatqaisEoAJzJVE4ocG6pDXpIGgnOsyW2hohVvBobxrOVpC2bw9ner6/q9oGIYQEgcaRvQZAUBAbUJigP7MNECgIKgBDZrQubEPmhazlWZY3rNNb1o21g3m2jAEJ23Yev2g7DrQo43pO06LHK%2BALjYy6rrw66btu457hlcqHsep4YCdIW/Ne453g%2BSjPq%2BwDvqAjVfkwP7/kBIFgeOEHCKI4iwbDCFqB6ugrPoKYgBh5jPaxeEEYkxGkeRlHINRbK0fRNVMXgLHwOxCmcZ43Hwip/Hwpp4zaTEolNGz6RiQwnPCapikCC0fR6QM9RqeLwzC3JPStGzhmVAr2lmXMFlBVZNkevZjkfM5kg7MASYeemmY%2BX5RDEIFwUNWF0wIJgTBYOEbFWVl14pScEQfBoxrJYHXDJVwHxcFE1WehwdV%2BqFeqkIaUX2lwjpvMlxpmhaaxWWs7qzrVjuJxlKwF3ZXrF%2BFt55okRpAA%3D%3D%3D)
```c
#include <stdint.h>
#include <x86intrin.h>
uint64_t incr_cond(uint64_t x) {
return __lzcnt64(x) + (x == 0);
}
```
Currently gives:
```asm
incr_cond:
lzcnt rax, rdi
cmp rdi, 1
adc rax, 0
ret
```
Should be:
```asm
incr_cond:
lzcnt rax, rdi
adc rax, 0
ret
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJysVkuzqjwW_TWciXVPQUCUwRkEEl6KCj4wTm4BYoi8XwL--i49t-53u28PetApy2TvtRdrhdpV7KBtGS3i-Iubq9wcfQR9l5TN1ynI2DVo0o-wvE4vzCivYZl13BxxYJl0XdVyIuSAzgE9-qQv8DPr3rH45ES4JWuaQF2tr3NXGyEZdkR1tFz1ruoa6oKrRTDYYQ06z0HtHLiA7qB3jqtO0KPKqnMJhlPLQt49Q21cqipclWpxgPAIzWqAzgPq5LDvbCpAVTkuM3stT7CgxsmQobOqAngaiaMgimzJyCHKRKhtHJJAeM0sqAqu7matcXlGu93pLuWDfrtNmn_caeXEj423wpqdW9pld92taees-MlwyloLHc1tHbaO2qYW1rV-bgIO6KiZemapK03wziT3AKLqHmoEXu5KupkGGDBfGCdz6bpQVk2xtQkP3ZO_SZh4Pt9E8-TCLUSEAzrMLQ7ojtQ3TRTW80ei2A7RULdpvbtBjS21NKQamnXoTrajJBjiFSwuUhHiA8Rb4phB7lO4Bu7kpNj04tH3bXBdg2CA1qMFh3Zjb5Q7C9PWSqYwGavG20LVP7MYJcGRlQe2NcnKD58H6HRkeaT4sGcygcEIU8rsp28-4zTxz5DHlW_yAi4ZfvAFTvlOWLbSAx4tyINO4J-0VSlT3Vol_KEkZytDLg7uku_6vDPAZNQjZAo3VKpI25V0cJXhsNRdWFRDF51zx9sP6pysA1LKC7bcblp3LySMj_pJTAhZ9UTbOnve5Ds-ITqtlnuFXSU3zaDa58iM2qHOV0321K-SOARmV8aGNqL1kw1mxYE5UGOVbBVrep-t4cBydMm1wkt3HkU36AzwCNFxaVOI-i70rGGzWFqWlbDtcKSTZTFab8tWls2jSm81adcyjne1u3Fq5GGeSHC9F_J2O-LTdvkstpNuOWZ8bKYifowEJRgd8NH2gArRXVkfK_j2sXL6w9xII9eG1gMzL2WHDtvnPYL8IcgcBxcT4fd5h-zikFjOlPboGCdIrWgWeNbCqGlbpX0yIDwVK62MDFaM2Ne2Tzslz1dfqflbpyQJ7DWsuUYV2c4DbbIyHQwGu7JQS-w1RtDVAWtxCe2nfcJSGRlyhc6VZdBi204-SMrk9FDLcGy2p0oD4aAUcSNzQK-V0rCIi2kUeA_3Ao8qDI82o7uFs8EatVZURZfG7UO8y5PgmfkXIjabTSiUQKBiDu4Q20Ak8QPQBWrcUhKrLS-vzdXbN1zfySQ3zSDLYddL80WSRbXZxpVEtKvlc0DfxNJcpO_i_X1Xvw8DetTwfrqlw27BAT1VLZ3GW2xqK0tiQ4g0vVblnja7ckWomszvu2CMMSbpaKSxl5nWxgtX_M3bnJwzXZvDdtTy6CKJ5sAqDujmUFXSMzjgMtsYT9lj7lDstKBiqabxN092HcWr4_Xw1ER7t--MZ5KfYAOy_OzomXq6bNL4cbmnN2ee0oUD9ySO85y8nZ_nHsKWPhw3vs4Plk0PKtniUPdPmSBV-wi7N7UcG5uYZ2SfBnOMdCz4cTJcT29-rcd1agXHM8iGe_VwsrHKkyAYfb9d1M_mdO_tMVsNung5N_qboXfzeZl6FXw1pIj-_FNmHA85mf_-Ra8AiKyIsv4azzhRa7srK7rPhBPxX9i4lFnRNaz4DfOwZ0UnSz-7GSui5mdUFlcOLH8nx7fgQuV4OJvNZk3c9U0x-_kze0avCg4svyuAOnudZ5yIOBHNeA4onPhicQv0p99vTa1vmrjosmlG2SN-f73e-d9lQZtzPPzH0btg9mu9tV9mgpED2qy5sj_AKK_e-ysLtJnwBxRco2_om_fy8rrQ3_b2Sdln11kY_1-M_TfZX-s_1D-uX-JVEZXgI_4SFgt5IcuioHwkX2IQAHFxU4KFvFwEMj8PBVG4zZWbrAgL6SZ-sC_AA5mXgCDwgjBXPnlluVzeRD6Mo0ASbhEn8XEesOwzyx75Z9nQD9a2ffwlKKKwWH5kQRhn7XvuAKCIh9kb5QB4jSHN14v0I-xpy0l8xtqu_ecxHeuy98AyLuUfssTN0YyT-f-lPWT-O8S_CRxQg2v0ehF9k339-2BDWZf04WdU5hzQX-q_th9VU97j6DXuvD23HNB_XerxBf4VAAD__1VS5Es">