<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/92649>92649</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Clang generates worse code than GCC for a simple case
</td>
</tr>
<tr>
<th>Labels</th>
<td>
backend:X86,
llvm:codegen
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
KanRobert
</td>
</tr>
</table>
<pre>
```
int f(int *a) {
if (*a & 1234)
return 0;
return 1;
}
```
```
bash$ gcc -O2 -S 1.c -o -
.file "1.c"
.text
.p2align 4
.globl f
.type f, @function
f:
.LFB0:
.cfi_startproc
xorl %eax, %eax
testl $1234, (%rdi)
sete %al
ret
```
```
bash$ clang -O2 -S 1.c -o -
.text
.file "1.c"
.globl f # -- Begin function f
.p2align 4, 0x90
.type f,@function
f: # @f
.cfi_startproc
# %bb.0: # %entry
movzwl (%rdi), %ecx
xorl %eax, %eax
testl $1234, %ecx # imm = 0x4D2
sete %al
retq
```
https://www.godbolt.org/z/he4cj4a8G
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJykVM-vozYQ_muGyyjIDJDAgcN7idhDK1VqL71VxgzEWwentrPJ27--MuFllSivetWOIoG_8fz6vgnSez1OzA2Ur1DuEnkKe-uaX-T0u-3YhaSz_VsDa7H8xA7Ei54CDkBVfAK9SKAaYfN6dSLqAYGq6ECgNWaUF0D1uxfRcTi5CQXkt5AFym4QbHbLy33pp2An_R6owFEpXP1GuPoDs1ThyuLqR9Vo6aANIxBlqQKiB2fgS3iAjiSNHicsHvDR2M4gDguchrcjYzzTFqEQw2lSQdvp6h4gX_pOf21fxe10y6YG_ZcP0oWjs2rxXawz0QlUsrzMea9vd6GBfTDzreJK8_ZKfel6fcd5NM8hDl9Kc487Dv-fa2XkNH7A9jMmZ-bxQ-7fCUWgHFcrfOVRT_jO443oR10WmwcXl1o80eOpHPgpi73E8PesT3Sar1DZdan4RNrlNk_BvS1JD_bb97PBe9kWtdWD2j-xEzHZhy3pwwEh36G4FDt6sjPXkre1cRz--Y-F2Ydw9HHJqQVqz-dzOtq-syak1o1A7Xegds-F-lrI6kvSN3lf57VMuMk22VrkVb0Ryb6p-qqri42osrrvaik25abL1SDzrM8GRetENySoEGVWZTnVuUgpK0Rd5xsuM66rrIBC8EFqkxrz7RBrJ9r7Ezc1rYs6MbJj4-fPHlEn1d889ZC__Fmt43LSFohiHOQvyvY88hThcpe4JsKr7jR6KITRPvgfBYIOhpvt_NcYeWInA3s8W-cZYxoMeznhl-0WB-tQoteHo2FU0nNycqa5p27UYX_qUmUPQO3czPWxOjr7lVUAaueJPFA7D_VvAAAA___zgH5U">