Bug 53104

Summary: convert_move on MODE_PARTIAL_INT does not look for existing conversion
Product: gcc Reporter: Peter A. Bigot <pab>
Component: middle-endAssignee: Not yet assigned to anyone <unassigned>
Status: UNCONFIRMED ---    
Severity: normal    
Priority: P3    
Version: 4.7.0   
Target Milestone: ---   
Host: Target:
Build: Known to work:
Known to fail: Last reconfirmed:

Description Peter A. Bigot 2012-04-24 19:46:51 UTC
convert_move has special code to handle conversion to and from
MODE_PARTIAL_INT.  Above this code is a comment stating that targets are
expected to provide conversion insns for the MODE_PARTIAL_INT modes they
use.

When presented with a move from HImode to PSImode, however, this code will
unconditionally convert HImode to SImode, then truncate back down to
PSImode.  For cases where both these operations are fairly expensive, it
should instead first check to see whether the target provided the desired
conversion directly.