rs6000-string.c (do_load_for_compare_from_addr): New function.
authorAaron Sawdey <acsawdey@gcc.gnu.org>
Mon, 8 Jan 2018 19:37:33 +0000 (13:37 -0600)
committerAaron Sawdey <acsawdey@gcc.gnu.org>
Mon, 8 Jan 2018 19:37:33 +0000 (13:37 -0600)
commit5ec3397e38713089e0cef0cb948c29642bea05b4
treea86351b508c29fd1237c2ebff8d3956299d441b5
parent5a2a87e1e2452eddae38e0ae1af4239f92d8c281
rs6000-string.c (do_load_for_compare_from_addr): New function.

2018-01-08  Aaron Sawdey  <acsawdey@linux.vnet.ibm.com>

* config/rs6000/rs6000-string.c (do_load_for_compare_from_addr): New
function.
(do_ifelse): New function.
(do_isel): New function.
(do_sub3): New function.
(do_add3): New function.
(do_load_mask_compare): New function.
(do_overlap_load_compare): New function.
(expand_compare_loop): New function.
(expand_block_compare): Call expand_compare_loop() when appropriate.
* config/rs6000/rs6000.opt (-mblock-compare-inline-limit): Change
option description.
(-mblock-compare-inline-loop-limit): New option.

From-SVN: r256351
gcc/config/rs6000/rs6000-string.c
gcc/config/rs6000/rs6000.opt
gcc/testsuite/gcc.dg/memcmp-1.c
gcc/testsuite/gcc.dg/strncmp-2.c