https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79004
--- Comment #5 from Michael Meissner <meissner at gcc dot gnu.org> --- Created attachment 40484 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=40484&action=edit Proposed patch to fix the problem It was decided to split PR target/79004 into 2 parts. This patch fixes the problem by disabling the optimization of loading char/short variables from memory and converting them to IEEE 128-bit floating point in the vector registers. This patch will have the effect that the value is first loaded into a GPR, sign/zero extended, and then moved over to an Altivec register to do the conversion. PR target/79038 is an enhancement request to rework the integer<->IEEE 128-bit floating conversions to match the current float/double conversions with regard to small integers.