Hi! On Tue, Jan 16, 2018 at 11:57:14AM -0800, Carl Love wrote: > The following patch contains fixes for the stxvl and lxvl instructions > and XL_LEN_R builtin that were found while adding additional Power 9 > test cases for the various load and store builtins. The new tests in > builtins-5-p9-runnable.c and builtins-6-p9-runnable.c are included that > exposed the bugs.
> gcc/ChangeLog: > > 2018-01-16 Carl Love <c...@us.ibm.com> > * config/rs6000/vsx.md (define_expand xl_len_r, > define_expand stxvl, define_expand *stxvl): Add match_dup > argument. You should mention the rs6000-builtin.def change, too. It is, uh, important :-) And maybe some words about the other changes in vsx.md? > gcc/testsuite/ChangeLog: > > 2018-01-16 Carl Love <c...@us.ibm.com> > * gcc.target/powerpc/builtins-6-p9-runnable.c: Add additional tests. > Add debug print statements. > * gcc.target/powerpc/builtins-5-p9-runnable.c: Add test to do > 16 byte vector load followed by a partial vector load. > --- a/gcc/config/rs6000/vsx.md > +++ b/gcc/config/rs6000/vsx.md > @@ -4624,10 +4624,12 @@ (define_expand "first_mismatch_or_eos_index_<mode>" > ;; Load VSX Vector with Length > (define_expand "lxvl" > [(set (match_dup 3) > - (match_operand:DI 2 "register_operand")) > + (ashift:DI (match_operand:DI 2 "register_operand") > + (const_int 56))) > (set (match_operand:V16QI 0 "vsx_register_operand") > (unspec:V16QI > [(match_operand:DI 1 "gpc_reg_operand") > + (mem:V16QI (match_dup 1)) Please use a tab instead of eight spaces at the start of line. (Twice here, once in lxvll -- well two tabs on one line there). Looks great otherwise. Okay for trunk with those nits fixed (if the tests work out, of course). Thanks! Segher