> Based on the collected numbers in PR95435, I suggest the following
> tuning changes:
>
> gcc/ChangeLog:
>
> PR target/95435
> * config/i386/x86-tune-costs.h: Use libcall for large sizes for
> -m32. Start using libcall from 128+ bytes.
OK,
thanks!
Honza
> ---
> gcc/config/i386/x86-tune-costs.h | 12 ++++++------
> 1 file changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/gcc/config/i386/x86-tune-costs.h
> b/gcc/config/i386/x86-tune-costs.h
> index 1169178433f..3207404e514 100644
> --- a/gcc/config/i386/x86-tune-costs.h
> +++ b/gcc/config/i386/x86-tune-costs.h
> @@ -1314,20 +1314,20 @@ static stringop_algs znver1_memcpy[2] = {
> /* 32-bit tuning. */
> {libcall, {{6, loop, false},
> {14, unrolled_loop, false},
> - {-1, rep_prefix_4_byte, false}}},
> + {-1, libcall, false}}},
> /* 64-bit tuning. */
> {libcall, {{16, loop, false},
> - {8192, rep_prefix_8_byte, false},
> + {128, rep_prefix_8_byte, false},
> {-1, libcall, false}}}};
> static stringop_algs znver1_memset[2] = {
> /* 32-bit tuning. */
> {libcall, {{8, loop, false},
> {24, unrolled_loop, false},
> - {2048, rep_prefix_4_byte, false},
> + {128, rep_prefix_4_byte, false},
> {-1, libcall, false}}},
> /* 64-bit tuning. */
> {libcall, {{48, unrolled_loop, false},
> - {8192, rep_prefix_8_byte, false},
> + {128, rep_prefix_8_byte, false},
> {-1, libcall, false}}}};
> struct processor_costs znver1_cost = {
> {
> @@ -1460,7 +1460,7 @@ static stringop_algs znver2_memcpy[2] = {
> /* 32-bit tuning. */
> {libcall, {{6, loop, false},
> {14, unrolled_loop, false},
> - {-1, rep_prefix_4_byte, false}}},
> + {-1, libcall, false}}},
> /* 64-bit tuning. */
> {libcall, {{16, loop, false},
> {64, rep_prefix_4_byte, false},
> @@ -1469,7 +1469,7 @@ static stringop_algs znver2_memset[2] = {
> /* 32-bit tuning. */
> {libcall, {{8, loop, false},
> {24, unrolled_loop, false},
> - {2048, rep_prefix_4_byte, false}
> + {128, rep_prefix_4_byte, false},
> {-1, libcall, false}}},
> /* 64-bit tuning. */
> {libcall, {{24, rep_prefix_4_byte, false},
> --
> 2.26.2
>