https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87555
--- Comment #15 from Hongtao.liu <crazylht at gmail dot com> --- (In reply to Richard Biener from comment #11) > (In reply to Richard Biener from comment #9) > > I don't think there's a documented canonical form but if I were to write one > > I'd say the smaller (as in integer) merge mask should win? > > Alternatively the one with bit 0 set (first lane selected from first > operand). Also would (vec_merge (D, C 0x55)) always win (vec_select (vec_concat D C) (0,9,2,11,4,13,6,15))? If not should we define canonical rtx to alway transform the later to vec_merge if possible?