diff options
author | jgreenhalgh <jgreenhalgh@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-10-15 15:28:04 +0000 |
---|---|---|
committer | jgreenhalgh <jgreenhalgh@138bc75d-0d04-0410-961f-82ee72b054a4> | 2013-10-15 15:28:04 +0000 |
commit | 3209301064b768179d047f116f8b430972962691 (patch) | |
tree | 08158bcb7c75f8dab07a5a26b425274459368fea /gcc/config/arm/iterators.md | |
parent | 47bfaf2cfc27dd75406ab0939fde225ad61ca84c (diff) | |
download | gcc-3209301064b768179d047f116f8b430972962691.tar.gz |
[ARM] [Neon types 3/10] Update Current type attributes to new Neon Types.
gcc/
* config/arm/iterators.md (V_elem_ch): New.
(q): Likewise.
(VQH_type): Likewise.
* config/arm/arm.md (is_neon_type): New.
(conds): Use is_neon_type.
(anddi3_insn): Update type attribute.
(xordi3_insn): Likewise.
(one_cmpldi2): Likewise.
* gcc/config/arm/vfp.md (movhf_vfp_neon): Update type attribute.
* gcc/config/arm/neon.md (neon_mov): Update type attributes for
all patterns.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@203613 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/arm/iterators.md')
-rw-r--r-- | gcc/config/arm/iterators.md | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/gcc/config/arm/iterators.md b/gcc/config/arm/iterators.md index c7d7079b9de..38777b89a87 100644 --- a/gcc/config/arm/iterators.md +++ b/gcc/config/arm/iterators.md @@ -355,6 +355,12 @@ (DI "64") (V2DI "64") (V2SF "32") (V4SF "32")]) +(define_mode_attr V_elem_ch [(V8QI "b") (V16QI "b") + (V4HI "h") (V8HI "h") + (V2SI "s") (V4SI "s") + (DI "d") (V2DI "d") + (V2SF "s") (V4SF "s")]) + ;; Element sizes for duplicating ARM registers to all elements of a vector. (define_mode_attr VD_dup [(V8QI "8") (V4HI "16") (V2SI "32") (V2SF "32")]) @@ -452,6 +458,14 @@ (define_mode_attr vfp_type [(SF "s") (DF "d")]) (define_mode_attr vfp_double_cond [(SF "") (DF "&& TARGET_VFP_DOUBLE")]) +;; Mode attribute used to build the "type" attribute. +(define_mode_attr q [(V8QI "") (V16QI "_q") + (V4HI "") (V8HI "_q") + (V2SI "") (V4SI "_q") + (V2SF "") (V4SF "_q") + (DI "") (V2DI "_q") + (DF "") (V2DF "_q")]) + ;;---------------------------------------------------------------------------- ;; Code attributes ;;---------------------------------------------------------------------------- @@ -460,6 +474,10 @@ (define_code_attr VQH_mnem [(plus "vadd") (smin "vmin") (smax "vmax") (umin "vmin") (umax "vmax")]) +;; Type attributes for vqh_ops and vqhs_ops iterators. +(define_code_attr VQH_type [(plus "add") (smin "minmax") (smax "minmax") + (umin "minmax") (umax "minmax")]) + ;; Signs of above, where relevant. (define_code_attr VQH_sign [(plus "i") (smin "s") (smax "s") (umin "u") (umax "u")]) |