https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87064
--- Comment #19 from Segher Boessenkool <segher at gcc dot gnu.org> --- The pattern makes no sense at all for LE. If LE, (vec_concat:V2DF (vec_select:DF (match_operand:V2DF 1 "vfloat_operand" "wd,wa,wd,wa") (parallel [(const_int 1)])) (vec_select:DF (match_dup 1) (parallel [(const_int 0)]))) means exactly the same as just (match_operand:V2DF 1 "vfloat_operand" "wd,wa,wd,wa") So how does this pattern ever match for LE anyway? Are there some serious missed simplifications?