<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/84916>84916</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Missing Optimization of Logic expression
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
colin-arnet
</td>
</tr>
</table>
<pre>
Clang -O3 is not able to optimize the logic operation unlike gcc.
https://godbolt.org/z/jhnv7evGq
Source:
```
int a, c;
static int b = 4294967295;
char d;
int main() {
c = 0;
for (; c < 8; c = c + 3){
d < b && (b = 0);
}
return d;
}
```
x86 -O3 Assembly:
```
main: # @main
movsbl d(%rip), %eax
movzbl b(%rip), %ecx
leal -1(%rcx), %edx
cmpb %dl, %al
setl %sil
orb %sil, %cl
leal -1(%rcx), %edx
cmpb %dl, %al
setl %dl
orb %dl, %cl
orb %dl, %sil
notb %sil
leal -1(%rcx), %edx
cmpb %dl, %al
setge %dil
testb %dil, %sil
jne .LBB0_2
cmpb %dl, %al
setl %dl
orb %cl, %dl
movb %dl, b(%rip)
.LBB0_2:
movl $9, c(%rip)
retq
c:
.long 0 # 0x0
d:
.byte 0 # 0x0
a:
.long 0 # 0x0
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJy0ld2O6jYQx5_GuRmBnElCyEUulkX05lTnog9Q-WM2eOvYNDaU3aevYgKHr63UqidCCfb85s_fQ-wRIZjOEbWsWrFqnYl93PqhVd4aNxODo5hJrz_aVytcB7PvBZgAzkcQ0hJED34XTW8-CeKWwPrOKPA7GkQ03sHeWfMHQafUnPE14y_bGHeBFS8MNww3ndfS2zj3Q8dw88lw8751h5oOv_x5wk_33_x-UDRmnSYXfPqkoXERBMNXUKxYnaZCFNEoGCMSWLGGEpuyWdTYVBdGbcUA-jIc2V4Yx3DJsAFWT_MAACpp8AsLb36AESxWKfYKl6_r8Y4rKBg2NxrjpRMrgeGC4WJUkJMyNj_EAYDV62kwUNwP7srnJXRXheNykf6dlxCol_bjq2qlNRYvwLAAVvI0vDHZ-0OQFkCnSlSD2Y3u8BUYViSOD_CntCCfseqOtSTs-JzlE62OV7S-o1W_k6kUWGk7QcLeMoGinZhg7mJ-SOnn2ElA2SeWfooffQ5d-dBf2XjGPCzI-SgfFvtTatpRIu4NRArJwRT7wua7o_Scf1ut-O_4xMC_reBjkdQ5_cL0_nC7sts3MkFnR-eNcfUOT79ZNqdj5CF13IbTiaQe8ufWuw4AOPzzNe44fuTXB5t-FJMfkf6bmPifnJ3Pi0y3hW6KRmTU5nXOscrrvM62rcyJN2KpiZdKljXXqJcCNb5VeSneEDPTIseSFznmRVXl9ZzksqiWKJsi1w0VDSs59cLYubWHfjz9MxPCntpl2eSLzApJNqSGhOjoL0hBhjj2p6Edc2Zy3wVWcmtCDD9UoomW2l9NCMZ18P3UmU6dyL_Bt9Sc6LgbKATjXbYfbHvXkEzc7uVc-Z7hZpSdHrPd4N9JRYabZCYw3CSzfwcAAP__eY7Ujw">