On 1/10/18 1:44 PM, Segher Boessenkool wrote: > On Tue, Jan 09, 2018 at 12:22:38PM -0600, Peter Bergner wrote: >> * config/rs6000/rs6000.c (print_operand): Use >> VECTOR_MEM_ALTIVEC_OR_VSX_P. > > (print_operand) <'y'>: ...
Will fix. >> * config/rs6000/vsx.md (*vsx_le_perm_load_<mode><VSX_D>): Use >> indexed_or_indirect_operand predicate. > > It's *vsx_le_perm_load_<mode> -- <VSX_D> is not part of the name. It > makes sense to mention it, maybe like > * config/rs6000/vsx.md (*vsx_le_perm_load_<mode> for VSX_D): ... I didn't know how to handle that, so I guessed! :-) Will fix. >> (*vsx_le_perm_load_v8hi): Likewise. >> (*vsx_le_perm_load_v8hi): Likewise. > > You duplicated this line. Will fix. >> (*vsx_le_perm_store_<mode><VSX_D>): Likewise in pattern and splitters. [snip] >> (define_split >> - [(set (match_operand:VSX_D 0 "memory_operand" "") >> + [(set (match_operand:VSX_D 0 "indexed_or_indirect_operand" "") >> (match_operand:VSX_D 1 "vsx_register_operand" ""))] >> "!BYTES_BIG_ENDIAN && TARGET_VSX && !TARGET_P9_VECTOR && >> !reload_completed" >> [(set (match_dup 2) >> @@ -570,7 +570,7 @@ (define_split >> ;; The post-reload split requires that we re-permute the source >> ;; register in case it is still live. >> (define_split >> - [(set (match_operand:VSX_D 0 "memory_operand" "") >> + [(set (match_operand:VSX_D 0 "indexed_or_indirect_operand" "") >> (match_operand:VSX_D 1 "vsx_register_operand" ""))] >> "!BYTES_BIG_ENDIAN && TARGET_VSX && !TARGET_P9_VECTOR && reload_completed" >> [(set (match_dup 1) > > You don't mention these in the changelog. I tried to by mentioning splitters in the entry above. How are these unnamed splitters supposed to be mentioned? Maybe like: (*vsx_le_perm_store_<mode> for <VSX_D>): Likewise/ (*vsx_le_perm_store_<mode> for <VSX_D> splitter): Likewise. ? Peter