rs6000-string.c (select_block_compare_mode): Check TARGET_EFFICIENT_OVERLAPPING_UNALI...
authorAaron Sawdey <acsawdey@linux.ibm.com>
Tue, 19 Jun 2018 21:23:39 +0000 (21:23 +0000)
committerAaron Sawdey <acsawdey@gcc.gnu.org>
Tue, 19 Jun 2018 21:23:39 +0000 (16:23 -0500)
commitf7e94dfb68d48b936044f7a631540e83b4a8b163
treeb696a4b46aa5ccc48d9ff9da5f3daabee1b357e0
parent6a513e2a1b446a2aa7accec36ac055935e9d6491
rs6000-string.c (select_block_compare_mode): Check TARGET_EFFICIENT_OVERLAPPING_UNALIGNED here instead of in caller.

2018-06-19  Aaron Sawdey  <acsawdey@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 *.

From-SVN: r261769
gcc/ChangeLog
gcc/config/rs6000/rs6000-string.c
gcc/config/rs6000/vsx.md