https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54939
--- Comment #12 from Uroš Bizjak <ubizjak at gmail dot com> --- (In reply to Richard Biener from comment #8) > Maybe combine itself can try both variants in case there's a duality > between (vec_merge ...) and (vec_select (vec_concat ...))? Please note that combine splitters are used to help combine create addsub pattern. Please also see addsub_vm_operator predicate that handles vec_merge form and addsub_vs_operator that handles vec_select/vec_concat combo. Please see PR66560. Probably these predicates and similar splitters can be used to handle fmaddsub instructions.