[AArch64] Refactor vector max and min RTL and builtins.
commit998eaf975b729d18892843568bffa4dae1d80938
authorJames Greenhalgh <james.greenhalgh@arm.com>
Wed, 1 May 2013 15:16:14 +0000 (1 15:16 +0000)
committerJames Greenhalgh <jgreenhalgh@gcc.gnu.org>
Wed, 1 May 2013 15:16:14 +0000 (1 15:16 +0000)
tree8c97b2f32f48d2d9aa61efecaa8c314717bee6d4
parent92d9038e4fa2a9fa4ab4e5a73e243534c098764d
[AArch64] Refactor vector max and min RTL and builtins.

gcc/
* 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.

From-SVN: r198497
gcc/ChangeLog
gcc/config/aarch64/aarch64-simd-builtins.def
gcc/config/aarch64/aarch64-simd.md
gcc/config/aarch64/arm_neon.h
gcc/config/aarch64/iterators.md