On Fri, 2018-01-19 at 10:13 -0600, Segher Boessenkool wrote: > 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. >
I was going to ask you about that again. I seem to be getting regressions with it for gcc -O0 builtins-4-runnable.c. Will revert and retest. Carl