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