On Tue, Oct 10, 2023 at 4:23 AM HAO CHEN GUI wrote: > Hi David, > > Thanks for your review comments. > > 在 2023/10/9 23:42, David Edelsohn 写道: > > #define MOVE_MAX (! TARGET_POWERPC64 ? 4 : 8) > > #define MAX_MOVE_MAX 8 > > +#define MOVE_MAX_PIECES (!TARGET_POWERPC64 ? 4 : 16) > > +#define COMPARE_MAX_PIECES (!TARGET_POWERPC64 ? 4 : 16) > > > > > > How are the definitions of MOVE_MAX_PIECES and COMPARE_MAX_PIECES > determined? The email does not provide any explanation for the > implementation. The rest of the patch is related to vector support, but > vector support is not dependent on TARGET_POWERPC64. > > By default, MOVE_MAX_PIECES and COMPARE_MAX_PIECES is set the same value > as MOVE_MAX. The move and compare instructions are required in > compare_by_pieces, those macros are set to 16 byte when supporting > vector mode (V16QImode). The problem is rs6000 hasn't supported TImode > for "-m32". We discussed it in issue 1307. TImode will be used for > move when MOVE_MAX_PIECES is set to 16. But TImode isn't supported > with "-m32" which might cause ICE. > > So MOVE_MAX_PIECES and COMPARE_MAX_PIECES is set to 4 for 32 bit > target in this patch. They could be changed to 16 after rs6000 > supports TImode with "-m32". > Hi, Hao Thanks for the explanation. Are you stating that although PPC32 supports V16QImode in VSX, the move_by_pieces support also requires TImode, which is not available on PPC32? Thanks, David