https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86683
--- Comment #2 from Martin Liška <marxin at gcc dot gnu.org> ---
This is caused by fact that:
enum insn_code {
CODE_FOR_nothing = 0,
...
CODE_FOR_p8_vmrgew_v4sf = CODE_FOR_nothing,
CODE_FOR_p8_vmrgew_v4si = CODE_FOR_nothing,
CODE_FOR_p8_vmrgow_v4sf = CODE_FOR_nothing,
CODE_FOR_p8_vmrgow_v4si = CODE_FOR_nothing,
CODE_FOR_p8_vmrgew_v4sf_direct = CODE_FOR_nothing,
CODE_FOR_p8_vmrgew_v4si_direct = CODE_FOR_nothing,
CODE_FOR_p8_vmrgow_v4sf_direct = CODE_FOR_nothing,
CODE_FOR_p8_vmrgow_v4si_direct = CODE_FOR_nothing,
...
}
and then in altivec_expand_vec_perm_const:
patterns[j] (with j == 8) is accessed and it's CODE_FOR_nothing. Thus
insn_gen_fn::operator() segfaults.