<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=http://email.email.llvm.org/c/eJylUttu2zAM_Rr5hZjhWLUdP_ihTVBgb8P6AYFk0bYaWQp0adZ9_Sj3sqyvM2RKIo8OD0hKp16H2SnpTASj7Znxe1hivAQ6sPqR1nu0dH6m22_6uXBc8h_9M6uOrLp_swe3XjQxzBAXhMkZ4675dvFu9mLNdDfoU7JBzxYVhMX5SNawev_F-SLIeYBP77gITyE9RVb3wLqHNy6g73SSSZuo7UmEkFYksg0IjB9g1xKe8Ru4x5i8BUJRjozJsA_mTyTrjqdb0R5DMpGEaAshSXeJeqXn33-W8KTtiHBFOFt3hdvUuRweQQewDizS6-gAf0W0CoQxxBXRr6i0iAijMGMyImpnQ8ZpXucKaJLVBUDr0rxkv3IQHKSQC6xzjtcLhvJNZaEGrnrei0KkSHUczo5UOrsrkjfDl97quCRZjm6lizEvH9s36tozjpT2UVM9MdCh4W1TFcvQT60YZbVv2r4f5TR1o-i7ru2qSUxqh01hhEQTBtY8sLq2eIWNgs6sORb_r0APdVXTqvbV_q6uu5I0jDucZKcaqdqJs7sKV6FNmXny2BZ-2ChlmgMFjQ4x_A3SwOTxwk0wKYw6GhyebvsLM1r0W1tost9nEAySuZJ--Hf2ik3wsKn9A4DEGD8>53650</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
Suboptimal IR generation for shift left with builtin_assume
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
komalon1
</td>
</tr>
</table>
<pre>
godbolt link: https://godbolt.org/z/3ao3b3P9j
Compiling the following program:
_unsigned short shl(unsigned short val, unsigned char shift) {
__builtin_assume(shift < 16);
return (val << shift);
}_
resulted in suboptimal IR. Since we know shift < 16 there is no need to extend all intermediate calculations to i32, it's enough to do so using i16 types.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJxdUttuozAQ_RrzMioidgjhgYc2UaV9W20_ILJhADfGjnxptvv1OyZtN1tkzFyOzxzGo9zw3k1uUM5EMNqemXiEOcZLIIPxZ1of2dL5ibw_9ArphBI_21dWHVn1eNsPbrloYpggzgijM8Zds3fxbvJyyXR36FOyQU8WBwiz85F2w_j-W_BNUvAAX9F-lp5SeoyMt8CapxsX0HM6qaRN1PYkQ0gLEtkKBCYOsNkRnok7uMeYvAVCUY2MybBP5i8ka46ne9EeQzKRhGgLISl3iXqh4z9-lfCibY9wRThbd4X70rkdHkEHsA4s0unoAH9HtANIY4grol9w0DIi9NL0ycionQ0ZpwXPHdAkqwmA1qVpzvHBQXCQQm6wzjXeLxjKm8pi6MTQilYWUUeD3cu9UpjQol8L0B19dBMM0nbVcYb_u1gkb7pv00CopMreLeQY8_b5eaB7fsWehD5rOouBjFrs6qqYO972Vd8Pajf2Epu2Hrat4PWOi1HxRjSiMFKhCR2rnxjnFq-wUpDN6mOhO15xWtW-2m85b0o1jv0GR9UMtRp2o2DbChepTZl15DEtfLdKUmkKlDQ6xPAvSb-WxwnXcsQvU6Rp686OOuTsplhrd6v2v16KAik">