<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/103035>103035</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[MIPS] __builtin_bswap16 miscompilation
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
markus-oberhumer
</td>
</tr>
</table>
<pre>
clang 18.1.8 MIPS miscompilation in Debug mode
```c
// clang -target mips-linux-musl bug.c -o bug.out
// qemu-mips ./bug.out
unsigned bswap16_fails(unsigned v) {
// FAILS - cast seems ignored ??
return __builtin_bswap16((unsigned short) v);
}
unsigned bswap16_ok(unsigned v) {
return __builtin_bswap16((unsigned short) (v & 0xffff)); // OK
}
int main() {
if (bswap16_ok(0x04030201) != 0x0102)
return 1;
if (bswap16_fails(0x04030201) != 0x0102)
return 2; // ERROR HERE
}
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJycU91umzwYvhpz8gpkvwZCDjholaKv-jZ1Si8gMsQQrzbO_JNmdz9BaNafqdImWQZkP3_Yj_BeDaOUNSluSbFJRAwH62oj3FP0qW2lO0QjXdLa_c-602IcgFUZyyr4ev_tEYzynTVHpUVQdgQ1wka2cQBj95LQDaE3y1zSy-iWb2wINnAhTINwgwxg1NGnWo3xnJroNbRxyDpI7fxiY3gD_SFNTCcEZASbtzvmOY5zsj20_lkcWbnrhdKeYHVdOBFcA1ndXvYDACzczc39l0dIoRM-gJfSeFDDaJ3cA-HNNK4IJ0N0I-x2bVQ6qHG3qBGsXkv5g3Vhkps0CV8kyWrzqWP79LndvxUnWJ2AYAn03Pd9P1mZ3bzkfvj_j77UGMAINc607yyofmJ9Y5ieaU45RcoumozwDdAzZRQnuSv0VQJ2_SUfOV-O7R9o8VW2u-32YQv_3W3v3md8uZrJvub7NV-LRNZshbzIeYFVcqiZ7EtaVnRdlWVectp1XcU62SPjvejbPFE1UsxpxTijtMAqE0KysuranEmRS7kiOZVGKJ1pfTKZdUOivI-yZpRTXiRatFL7uYKIo3yGeZUgTo109QRK2zh4klOtfPC_aYIKeu7u1EZSbD7ehXcVTaLT9SGEoyd8qdKgwiG2WWcNwWZiXh7p0dnvsgsEm9mPJ9gshk81_goAAP__64s57A">