On Thu, Jan 18, 2018 at 04:51:47PM -0600, Segher Boessenkool wrote: > > +(define_insn "vsx_ld_elemrev_v1ti" > > + [(set (match_operand:V1TI 0 "vsx_register_operand" "=wa") > > + (vec_select:V1TI > > + (match_operand:V1TI 1 "memory_operand" "Z") > > + (parallel [(const_int 0)])))] > > + "VECTOR_MEM_VSX_P (V1TImode) && !BYTES_BIG_ENDIAN" > > +{ > > + return "lxvd2x %x0,%y1; xxpermdi %x0,%x0,%x0,2"; > > +}
> We currently have exactly as many xxpermdi,2 as xxswapdi (147 each) > but the latter is more readable, please prefer that. Ignore this part; I managed to fumble my grep commands. We have *no* xxswapd in the source currently (well, one in comments, and 11 xxswapdi but that is a misspelling); stage 4 is not the time to start using it (do all supported assemblers implement it, implement it correctly, etc.) So your xxpermdi is the best for now. Segher