expr: Allow scalar_int_mode target mode when converting a constant
authorJozef Lawrynowicz <jozef.l@mittosystems.com>
Wed, 22 Jul 2020 11:34:30 +0000 (12:34 +0100)
committerJozef Lawrynowicz <jozef.l@mittosystems.com>
Wed, 22 Jul 2020 11:34:46 +0000 (12:34 +0100)
commit4821e0aabee57d5b7f955f138a8bee4588240609
treec0ddfb8f95fffac4ac6f967d819fb2cfceef2665
parentade6e7204ce4d179cd9fa4637ddee85ba1fa12d9
expr: Allow scalar_int_mode target mode when converting a constant

is_int_mode does not allow MODE_PARTIAL_INT modes, so convert_modes was
not allowing a constant value to be converted to a MODE_PARTIAL_INT for
use as operand 2 in patterns such as ashlpsi3. The constant had
to be copied into a register before it could be used, but now can be
used directly as an operand without any copying.

gcc/ChangeLog:

* expr.c (convert_modes): Allow a constant integer to be converted to
any scalar int mode.
gcc/expr.c