Hi, The final (!!!) patch in the series making types equivalent between AArch64 and ARM backends deals with insns in the AArch64 backend which generate ldp and stp. We could invent a new type for these and add that type to all the pipeline descriptions, but I think the types neon_ldm_2 and neon_stm_2 describe them adequately.
Tested on aarch64-none-elf with no regressions. OK? Thanks, James --- gcc/ 2013-09-06 James Greenhalgh <james.greenha...@arm.com> * config/aarch64/aarch64.md (*movtf_aarch64): Use neon_<ls>dm_2 as type where v8type is fpsimd_<load/store>2. (load_pair<mode>): Likewise. (store_pair<mode>): Likewise.
diff --git a/gcc/config/aarch64/aarch64.md b/gcc/config/aarch64/aarch64.md index 5aa127bcb47912f1986007d4491b865555e92c23..f37f98f9994bb773785d8573a7efd1e625b5e23a 100644 --- a/gcc/config/aarch64/aarch64.md +++ b/gcc/config/aarch64/aarch64.md @@ -1025,7 +1025,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,f_loadd,f_stored") + f_loadd,f_stored,neon_ldm_2,neon_stm_2") (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,*,*") @@ -1090,7 +1090,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" "f_load<s>") + (set_attr "type" "neon_ldm_2") (set_attr "mode" "<MODE>")] ) @@ -1106,8 +1106,8 @@ (define_insn "store_pair<mode>" XEXP (operands[0], 0), GET_MODE_SIZE (<MODE>mode)))" "stp\\t%<w>1, %<w>3, %0" - [(set_attr "v8type" "fpsimd_load2") - (set_attr "type" "f_load<s>") + [(set_attr "v8type" "fpsimd_store2") + (set_attr "type" "neon_stm_2") (set_attr "mode" "<MODE>")] )