diff options
author | Evandro Menezes <e.menezes@samsung.com> | 2015-09-29 16:30:45 +0000 |
---|---|---|
committer | Sebastian Pop <spop@gcc.gnu.org> | 2015-09-29 16:30:45 +0000 |
commit | 5c4b7f1c1c00b21f11842dc1f107da1441552bfd (patch) | |
tree | 23dd6855500eae889049ac7b99988465bbdfa548 /gcc | |
parent | 187a0dd603cd33a0246b6707f3783fae096e9e95 (diff) | |
download | gcc-5c4b7f1c1c00b21f11842dc1f107da1441552bfd.zip gcc-5c4b7f1c1c00b21f11842dc1f107da1441552bfd.tar.gz gcc-5c4b7f1c1c00b21f11842dc1f107da1441552bfd.tar.bz2 |
add separate insn sched class for vector LDP & STP
2015-09-29 Evandro Menezes <e.menezes@samsung.com>
* config/arm/types.md (neon_ldp, neon_ldp_q, neon_stp, neon_stp_q):
Add new insn types for vector load and store pairs.
* config/arm/cortex-a53.md (cortex_a53_f_load_2reg): Add insn
types "neon_ldp{,_q}".
* config/arm/cortex-a57.md (neon_load_c): Add insn types
"neon_ldp{,_q}".
(neon_store_complex): Add insn types "neon_stp{,_q}".
* config/aarch64/aarch64-simd.md (aarch64_be_movoi): Add insn types
"neon_{ldp,stp}_q".
From-SVN: r228253
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 12 | ||||
-rw-r--r-- | gcc/config/aarch64/aarch64-simd.md | 2 | ||||
-rw-r--r-- | gcc/config/arm/cortex-a53.md | 2 | ||||
-rw-r--r-- | gcc/config/arm/cortex-a57.md | 6 | ||||
-rw-r--r-- | gcc/config/arm/types.md | 14 |
5 files changed, 30 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 79dc89f..bc95889 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,15 @@ +2015-09-29 Evandro Menezes <e.menezes@samsung.com> + + * config/arm/types.md (neon_ldp, neon_ldp_q, neon_stp, neon_stp_q): + Add new insn types for vector load and store pairs. + * config/arm/cortex-a53.md (cortex_a53_f_load_2reg): Add insn + types "neon_ldp{,_q}". + * config/arm/cortex-a57.md (neon_load_c): Add insn types + "neon_ldp{,_q}". + (neon_store_complex): Add insn types "neon_stp{,_q}". + * config/aarch64/aarch64-simd.md (aarch64_be_movoi): Add insn types + "neon_{ldp,stp}_q". + 2015-09-29 Jeff Law <law@redhat.com> * config/rl78/rl78-expand.md (movqi): Fix undefined left shift diff --git a/gcc/config/aarch64/aarch64-simd.md b/gcc/config/aarch64/aarch64-simd.md index 5ab2f2b..541faf9 100644 --- a/gcc/config/aarch64/aarch64-simd.md +++ b/gcc/config/aarch64/aarch64-simd.md @@ -4327,7 +4327,7 @@ # stp\\t%q1, %R1, %0 ldp\\t%q0, %R0, %1" - [(set_attr "type" "multiple,neon_store2_2reg_q,neon_load2_2reg_q") + [(set_attr "type" "multiple,neon_stp_q,neon_ldp_q") (set (attr "length") (symbol_ref "aarch64_simd_attr_length_move (insn)"))] ) diff --git a/gcc/config/arm/cortex-a53.md b/gcc/config/arm/cortex-a53.md index 3fa0625..032d5eb 100644 --- a/gcc/config/arm/cortex-a53.md +++ b/gcc/config/arm/cortex-a53.md @@ -325,7 +325,7 @@ (define_insn_reservation "cortex_a53_f_load_2reg" 5 (and (eq_attr "tune" "cortexa53") - (eq_attr "type" "neon_load2_2reg_q")) + (eq_attr "type" "neon_ldp, neon_ldp_q, neon_load2_2reg_q")) "(cortex_a53_slot_any+cortex_a53_ls)*2") (define_insn_reservation "cortex_a53_f_loadq" 5 diff --git a/gcc/config/arm/cortex-a57.md b/gcc/config/arm/cortex-a57.md index d6ce440..c751dd4 100644 --- a/gcc/config/arm/cortex-a57.md +++ b/gcc/config/arm/cortex-a57.md @@ -202,7 +202,8 @@ (eq_attr "type" "neon_load1_3reg, neon_load1_3reg_q,\ neon_load1_4reg, neon_load1_4reg_q") (const_string "neon_load_b") - (eq_attr "type" "neon_load1_one_lane, neon_load1_one_lane_q,\ + (eq_attr "type" "neon_ldp, neon_ldp_q,\ + neon_load1_one_lane, neon_load1_one_lane_q,\ neon_load1_all_lanes, neon_load1_all_lanes_q,\ neon_load2_2reg, neon_load2_2reg_q,\ neon_load2_all_lanes, neon_load2_all_lanes_q") @@ -224,7 +225,8 @@ (const_string "neon_store_a") (eq_attr "type" "neon_store1_2reg, neon_store1_1reg_q") (const_string "neon_store_b") - (eq_attr "type" "neon_store1_3reg, neon_store1_3reg_q,\ + (eq_attr "type" "neon_stp, neon_stp_q,\ + neon_store1_3reg, neon_store1_3reg_q,\ neon_store3_3reg, neon_store3_3reg_q,\ neon_store2_4reg, neon_store2_4reg_q,\ neon_store4_4reg, neon_store4_4reg_q,\ diff --git a/gcc/config/arm/types.md b/gcc/config/arm/types.md index 534be74..73f482d 100644 --- a/gcc/config/arm/types.md +++ b/gcc/config/arm/types.md @@ -376,6 +376,8 @@ ; neon_from_gp ; neon_from_gp_q ; neon_ldr +; neon_ldp +; neon_ldp_q ; neon_load1_1reg ; neon_load1_1reg_q ; neon_load1_2reg @@ -409,6 +411,8 @@ ; neon_load4_one_lane ; neon_load4_one_lane_q ; neon_str +; neon_stp +; neon_stp_q ; neon_store1_1reg ; neon_store1_1reg_q ; neon_store1_2reg @@ -889,6 +893,8 @@ neon_from_gp_q,\ \ neon_ldr,\ + neon_ldp,\ + neon_ldp_q,\ neon_load1_1reg,\ neon_load1_1reg_q,\ neon_load1_2reg,\ @@ -926,6 +932,8 @@ neon_load4_one_lane_q,\ \ neon_str,\ + neon_stp,\ + neon_stp_q,\ neon_store1_1reg,\ neon_store1_1reg_q,\ neon_store1_2reg,\ @@ -1128,7 +1136,8 @@ neon_sat_mla_s_long, neon_sat_mla_h_scalar_long,\ neon_sat_mla_s_scalar_long,\ neon_to_gp, neon_to_gp_q, neon_from_gp, neon_from_gp_q,\ - neon_ldr, neon_load1_1reg, neon_load1_1reg_q, neon_load1_2reg,\ + neon_ldr, neon_ldp, neon_ldp_q,\ + neon_load1_1reg, neon_load1_1reg_q, neon_load1_2reg,\ neon_load1_2reg_q, neon_load1_3reg, neon_load1_3reg_q,\ neon_load1_4reg, neon_load1_4reg_q, neon_load1_all_lanes,\ neon_load1_all_lanes_q, neon_load1_one_lane, neon_load1_one_lane_q,\ @@ -1139,7 +1148,8 @@ neon_load3_all_lanes_q, neon_load3_one_lane, neon_load3_one_lane_q,\ neon_load4_4reg, neon_load4_4reg_q, neon_load4_all_lanes,\ neon_load4_all_lanes_q, neon_load4_one_lane, neon_load4_one_lane_q,\ - neon_str, neon_store1_1reg, neon_store1_1reg_q, neon_store1_2reg,\ + neon_str, neon_stp, neon_stp_q,\ + neon_store1_1reg, neon_store1_1reg_q, neon_store1_2reg,\ neon_store1_2reg_q, neon_store1_3reg, neon_store1_3reg_q,\ neon_store1_4reg, neon_store1_4reg_q, neon_store1_one_lane,\ neon_store1_one_lane_q, neon_store2_2reg, neon_store2_2reg_q,\ |