https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61298
--- Comment #5 from Peter Bergner <bergner at gcc dot gnu.org> --- (In reply to baoshan from comment #4) > Yes, SUBREG_PROMOTED_UNSIGNED_P is supposed to be set for this case, it has > been set originally, but the setting is lost while doing mode converting in > function convert_modes():expr.c, do you think the following code is good > enough to fix this issue? I would post the patch and see what the rtl maintainers think. I do know I had a lot of problems with my earlier patch of having the TYPE_UNSIGNED() bit being lost and had to patch a few places to ensure it was propagated correctly. I wouldn't doubt that you are having the same issue.