Patchwork [AArch64] Use neon_<ldm,stm>_2 where appropriate as "type".

login
register
mail settings
Submitter James Greenhalgh
Date Sept. 6, 2013, 1:50 p.m.
Message ID <1378475437-822-1-git-send-email-james.greenhalgh@arm.com>
Download mbox | patch
Permalink /patch/273205/
State New
Headers show

Comments

James Greenhalgh - Sept. 6, 2013, 1:50 p.m.
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.greenhalgh@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.
Richard Earnshaw - Sept. 6, 2013, 1:54 p.m.
On 06/09/13 14:50, James Greenhalgh wrote:
> 
> 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.
> 

It's close enough.  At least for now.

> Tested on aarch64-none-elf with no regressions.
> 
> OK?

OK.

> 
> Thanks,
> James
> 
> ---
> gcc/
> 
> 2013-09-06  James Greenhalgh  <james.greenhalgh@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.
> 
> 

R.

Patch

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>")]
 )