https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88877
--- Comment #4 from Bill Schmidt <wschmidt at gcc dot gnu.org> --- "Values shorter than 32 bits are sign-extended or zero-extended, depending on whether they are signed or unsigned." Source: https://www.polyomino.org.uk/publications/2011/Power-Arch-32-bit-ABI-supp-1.0-Embedded.pdf, p.33. The same is true of the 64-bit ABIs, both ELFv1 and ELFv2.