On Thu, Nov 26, 2020 at 6:18 PM Kyrylo Tkachov via Gcc-patches
<gcc-patches@gcc.gnu.org> wrote:
>
> Hi all,
>
> This is a patch that introduces the aarch64-autovec-preference that can take 
> values from 0 - 4, 0 being the default.
> It can be used to override the autovectorisation preferences in the backend:
> 0 - use default scheme
> 1 - only use Advanced SIMD
> 2 - only use SVE
> 3 - use Advanced SIMD and SVE, prefer Advanced SIMD in the event of a tie (as 
> determined by costs)
> 4 - use Advanced SIMD and SVE, prefer SVE in the event of a tie (as 
> determined by costs)
>
> It can valuable for experimentation when comparing SVE and Advanced SIMD 
> autovectorisation strategies.
>
> It achieves this adjusting the order of the interleaved SVE and Advanced SIMD 
> modes in aarch64_autovectorize_vector_modes.
> It also adjusts aarch64_preferred_simd_mode to use the new comparison 
> function to pick Advanced SIMD or SVE to start with.
>
> Bootstrapped and tested on aarch64-none-linux-gnu.
> Ok for master (since it touches much SVE-related code by Richard I'd feel 
> more comfortable with a second pair of eyes)?

Is this supposed to be used internally or for development purposes?
If users are supposed
to use this then a -m switch would be more appropriate (x86 for example has
-mprefer-vector-width)

Richard.

> Thanks,
> Kyrill
>
> gcc/
>         * config/aarch64/aarch64.opt (-param=aarch64-autovec-preference): 
> Define.
>         * config/aarch64/aarch64.c (aarch64_override_options_internal):
>         Set aarch64_sve_compare_costs to 0 when preferring only Advanced SIMD.
>         (aarch64_cmp_autovec_modes): Define.
>         (aarch64_preferred_simd_mode): Adjust to use the above.
>         (aarch64_autovectorize_vector_modes): Likewise.
>         * doc/invoke.texi: Document aarch64-autovec-preference param.

Reply via email to