This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [AArch64] Refactor vector max and min RTL and builtins.


OK
/Marcus

On 30 April 2013 16:19, James Greenhalgh <james.greenhalgh@arm.com> wrote:
>
> Hi,
>
> This patch moves around the max/min infrastructure such that
> we can more uniformly access the backend RTL patterns and such
> that it uses the standard pattern names.
>
> We also fixup the bugs this introduces in arm_neon.h which expected
> the older names.
>
> Regression tested on aarch64-none-elf with no issues.
>
> Thanks,
> James
>
> ---
> gcc/
>
> 2013-04-30  James Greenhalgh  <james.greenhalgh@arm.com>
>
>         * config/aarch64/aarch64-simd-builtins.def
>         (reduc_smax_): New.
>         (reduc_smin_): Likewise.
>         (reduc_umax_): Likewise.
>         (reduc_umin_): Likewise.
>         (reduc_smax_nan_): Likewise.
>         (reduc_smin_nan_): Likewise.
>         (fmax): Remove.
>         (fmin): Likewise.
>         (smax): Update for V2SF, V4SF and V2DF modes.
>         (smin): Likewise.
>         (smax_nan): New.
>         (smin_nan): Likewise.
>         * config/aarch64/aarch64-simd.md (<maxmin><mode>3): Rename to...
>         (<su><maxmin><mode>3): ...This, refactor.
>         (s<maxmin><mode>3): New.
>         (<maxmin_uns><mode>3): Likewise.
>         (reduc_<maxmin_uns>_<mode>): Refactor.
>         (reduc_<maxmin_uns>_v4sf): Likewise.
>         (reduc_<maxmin_uns>_v2si): Likewise.
>         (aarch64_<fmaxmin><mode>: Remove.
>         * config/aarch64/arm_neon.h (vmax<q>_f<32,64>): Rewrite to use
>         new builtin names.
>         (vmin<q>_f<32,64>): Likewise.
>         * config/iterators.md (unspec): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
>         (FMAXMIN): New.
>         (su): Add mappings for smax, smin, umax, umin.
>         (maxmin): New.
>         (FMAXMINV): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
>         (FMAXMIN): Rename as...
>         (FMAXMIN_UNS): ...This.
>         (maxminv): Remove.
>         (fmaxminv): Likewise.
>         (fmaxmin): Likewise.
>         (maxmin_uns): New.
>         (maxmin_uns_op): Likewise.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]