<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">