diff mbox

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

Message ID 1378475437-822-1-git-send-email-james.greenhalgh@arm.com
State New
Headers show

Commit Message

James Greenhalgh Sept. 6, 2013, 1:50 p.m. UTC
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.

Comments

Richard Earnshaw Sept. 6, 2013, 1:54 p.m. UTC | #1
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.
diff mbox

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