<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=http://email.email.llvm.org/c/eJylU82OmzAQfhpzGS0CGxM4cEg3W6lqe-kbGDyAtyZOGbNp8vR1TLJNox4qVRpgxvPzfeNhWqdPzac9kJsQOkVIcBxxRqDR9B4MQe-sdUfU0J6gpaM6gB_xpp0OCJMKDoQZ9dKhTlm2Y9n2JR1SWFVWZqtY-zatRwCMSw5M7OCMPwNMXl5OMvAOTFncBYkYRKOF_XK8-GIm489QVHdhRQzzytjQhLVrYBER00g1vZTl1bWAYLy-y5Zr9rzsuxtEEank5UMLq0mjW6yG14V86Pxfurxjdmn1T2YBJTC7XsE7swfM9T16fyAmtox_DDI43TrrUzcPwTqHp_9Ro6zzl69_C1fWvCFPI_Sa0uE1b6bvu89fEt0IXYtaJWrxo5ubbuwV-WSZbfOAbPy4tGnnpmDEjtfP02F2r9j5YBqiBSkoUlTlJhmbKu9ELjZl30upuaxL3ZV8k2965LqsJU-satFSw-QHxnksKrbu4M1kzsobtw_FOJO75P_JmIZnPEgu8zoveJYWNa941ouib4WoiixMCKcws_fLSuYmlmyXgS7jM-Tpt1MRmWGPGLkHht54i823uBG3VXFAU_gBcI5bk0RGTaTzC1ZRCL0>53867</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Reduce bswap to smaller type
</td>
</tr>
<tr>
<th>Labels</th>
<td>
llvm:optimizations
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
chfast
</td>
</tr>
</table>
<pre>
In some cases where shift is followed by bswap the bswap type may be reduced.
E.g.
```llvm
%2 = zext i16 %0 to i64
%3 = shl nuw i64 %2, 48
%4 = tail call i64 @llvm.bswap.i64(i64 %3)
%5 = trunc i64 %4 to i16
```
should just be
```llvm
%2 = tail call i16 @llvm.bswap.i16(i16 %0)
```
https://godbolt.org/z/fq9e591EM
https://alive2.llvm.org/ce/z/rskDKL
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJyNUU2PmzAQ_TXmMioytqFw4JButlLV9tJ_YPAQvGvilDGbJr--jkm2adRDJYNnPB_vvZnOm1P7ZQ_kJ4ReExIcR5wRaLRDAEsweOf8EQ10J-joqA8QRrxZpwPCpGMAYUaz9GhyxreMb57zXQ6rySq-HufepvUJgIlSAJNbOOOvCFNUlxcOwYOt1F2STEk0Otgvx0ssVTLxBKq-S1MpLWjrogjn1kSVEPNENb-0FfW1gWSiuasu1-p52fc3CJWoFNWDhNWl0S_OwMtCISr_H5V3zC5S_2YWUSKz6wjemT1grv8xhAMxuWHiczw7bzrvQu7nXfTO8Rt-Nlg2xfP3f6VrZ99Q5Al6LenxWjfT6_brt8y00jSy0VmwwWH7I630tmsPNEUFOKe1Z8vs2gc6NoxLl_d-ik4aw3p9OMz-BfsQXUu0IEWjlHX1MRvbrqw6U5VYGqGwFibetcJqGPgwFILzzOkOHbWs_MSESE3lxh-CnexZB-v3sZlg5TazreAinqIsmkIJnqtG1IIPUg2dlLXiceg4xTW868_mNrHrlh1dNmIp0J-gJrK7PWJCjv31EkY_t_04aApZ0tEmEb8BUDHz3w">