Hi, This patch transforms: neon_ldm_2 to neon_load1_2reg neon_str_2 to neon_store1_2reg
in the aarch64 backend. This is just an administrative change, as we have no cores consuming these types in the aarch64 backend. Tested on aarch64-none-elf with no regressions. Thanks, James --- gcc/ 2013-10-15 James Greenhalgh <james.greenha...@arm.com> * config/aarch64/aarch64.md (movtf_aarch64): Update type attribute. (load_pair): Update type attribute. (store_pair): Update type attribute. * config/aarch64/iterators.md (q): New.
diff --git a/gcc/config/aarch64/aarch64.md b/gcc/config/aarch64/aarch64.md index f3e004b6c3e300e4769bf9f8b49596282b42906b..01664665e7d309f2cf2076bdc3ca6e0825612cea 100644 --- a/gcc/config/aarch64/aarch64.md +++ b/gcc/config/aarch64/aarch64.md @@ -1033,7 +1033,7 @@ (define_insn "*movtf_aarch64" stp\\t%1, %H1, %0" [(set_attr "v8type" "logic,move2,fmovi2f,fmovf2i,fconst,fconst,fpsimd_load,fpsimd_store,fpsimd_load2,fpsimd_store2") (set_attr "type" "logic_reg,multiple,f_mcr,f_mrc,fconstd,fconstd,\ - f_loadd,f_stored,neon_ldm_2,neon_stm_2") + f_loadd,f_stored,neon_load1_2reg,neon_store1_2reg") (set_attr "mode" "DF,DF,DF,DF,DF,DF,TF,TF,DF,DF") (set_attr "length" "4,8,8,8,4,4,4,4,4,4") (set_attr "fp" "*,*,yes,yes,*,yes,yes,yes,*,*") @@ -1098,7 +1098,7 @@ (define_insn "load_pair<mode>" GET_MODE_SIZE (<MODE>mode)))" "ldp\\t%<w>0, %<w>2, %1" [(set_attr "v8type" "fpsimd_load2") - (set_attr "type" "neon_ldm_2") + (set_attr "type" "neon_load1_2reg<q>") (set_attr "mode" "<MODE>")] ) @@ -1115,7 +1115,7 @@ (define_insn "store_pair<mode>" GET_MODE_SIZE (<MODE>mode)))" "stp\\t%<w>1, %<w>3, %0" [(set_attr "v8type" "fpsimd_store2") - (set_attr "type" "neon_stm_2") + (set_attr "type" "neon_store1_2reg<q>") (set_attr "mode" "<MODE>")] ) diff --git a/gcc/config/aarch64/iterators.md b/gcc/config/aarch64/iterators.md index ec8d813fa3f53ad822d94ccf42ac0619380d7e3b..13c6d958826a593dfcc54e31756ef9978dda9e4b 100644 --- a/gcc/config/aarch64/iterators.md +++ b/gcc/config/aarch64/iterators.md @@ -566,6 +566,15 @@ (define_mode_attr f [(V8QI "") (V16QI " (V2SF "f") (V4SF "f") (V2DF "f") (DF "f")]) +;; Defined to '_q' for 128-bit types. +(define_mode_attr q [(V8QI "") (V16QI "_q") + (V4HI "") (V8HI "_q") + (V2SI "") (V4SI "_q") + (DI "") (V2DI "_q") + (V2SF "") (V4SF "_q") + (V2DF "_q") + (QI "") (HI "") (SI "") (DI "") (SF "") (DF "")]) + ;; ------------------------------------------------------------------- ;; Code Iterators ;; -------------------------------------------------------------------