https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80099
--- Comment #2 from Michael Meissner <meissner at gcc dot gnu.org> --- The problem is rs6000_expand_vector_extract did not check for SFmode being allowed in the Altivec (upper) registers, but the insn implementing the variable extract had it as a condition. In looking at the variable extract code, it currently does not require SFmode to go in the Altivec registers, but it does require DImode to go into the Altivec registers (vec_extract of V2DFmode will require DFmode to go in Altivec registers instead of DImode).