On Thu, Jun 14, 2018 at 09:29:42AM -0500, Aaron Sawdey wrote: > 2018-06-14 Aaron Sawdey <acsaw...@linux.ibm.com> > > * config/rs6000/rs6000-string.c (select_block_compare_mode): Check > TARGET_EFFICIENT_OVERLAPPING_UNALIGNED here instead of in caller. > (do_and3, do_and3_mask, do_compb3, do_rotl3): New functions. > (expand_block_compare): Change select_block_compare_mode call. > (expand_strncmp_align_check): Use new functions, fix comment. > (emit_final_str_compare_gpr): New function. > (expand_strn_compare): Refactor and clean up code. > * config/rs6000/vsx.md (vsx_mov<mode>_64bit): Remove *.
Okay. Does do_and3_mask help, btw? I mean, if you replace it with just do_and3, do you get the same code? Segher