[AArch64] Remove aarch64_simd_attr_length_move
* config/aarch64/aarch64.c (aarch64_simd_attr_length_move): Delete. * config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_move): Delete prototype. * config/aarch64/iterators.md (insn_count): Add descriptive comment. * config/aarch64/aarch64-simd.md (*aarch64_mov<mode>, VSTRUCT modes): Remove use of aarch64_simd_attr_length_move, set length attribute directly. (*aarch64_be_movoi): Likewise. (*aarch64_be_movci): Likewise. (*aarch64_be_movxi): Likewise. From-SVN: r236916
This commit is contained in:
parent
29d1d5ec6b
commit
cd78b3dd18
@ -1,3 +1,16 @@
|
|||||||
|
2016-05-31 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||||||
|
|
||||||
|
* config/aarch64/aarch64.c (aarch64_simd_attr_length_move): Delete.
|
||||||
|
* config/aarch64/aarch64-protos.h (aarch64_simd_attr_length_move):
|
||||||
|
Delete prototype.
|
||||||
|
* config/aarch64/iterators.md (insn_count): Add descriptive comment.
|
||||||
|
* config/aarch64/aarch64-simd.md (*aarch64_mov<mode>, VSTRUCT modes):
|
||||||
|
Remove use of aarch64_simd_attr_length_move, set length attribute
|
||||||
|
directly.
|
||||||
|
(*aarch64_be_movoi): Likewise.
|
||||||
|
(*aarch64_be_movci): Likewise.
|
||||||
|
(*aarch64_be_movxi): Likewise.
|
||||||
|
|
||||||
2016-05-31 Jan Hubicka <hubicka@ucw.cz>
|
2016-05-31 Jan Hubicka <hubicka@ucw.cz>
|
||||||
|
|
||||||
* loop-init.c (gate): Do not enale RTL loop unroller with -fpeel-loops.
|
* loop-init.c (gate): Do not enale RTL loop unroller with -fpeel-loops.
|
||||||
|
@ -333,7 +333,6 @@ machine_mode aarch64_hard_regno_caller_save_mode (unsigned, unsigned,
|
|||||||
machine_mode);
|
machine_mode);
|
||||||
int aarch64_hard_regno_mode_ok (unsigned, machine_mode);
|
int aarch64_hard_regno_mode_ok (unsigned, machine_mode);
|
||||||
int aarch64_hard_regno_nregs (unsigned, machine_mode);
|
int aarch64_hard_regno_nregs (unsigned, machine_mode);
|
||||||
int aarch64_simd_attr_length_move (rtx_insn *);
|
|
||||||
int aarch64_uxt_size (int, HOST_WIDE_INT);
|
int aarch64_uxt_size (int, HOST_WIDE_INT);
|
||||||
int aarch64_vec_fpconst_pow_of_2 (rtx);
|
int aarch64_vec_fpconst_pow_of_2 (rtx);
|
||||||
rtx aarch64_final_eh_return_addr (void);
|
rtx aarch64_final_eh_return_addr (void);
|
||||||
|
@ -4639,7 +4639,7 @@
|
|||||||
ld1\\t{%S0.16b - %<Vendreg>0.16b}, %1"
|
ld1\\t{%S0.16b - %<Vendreg>0.16b}, %1"
|
||||||
[(set_attr "type" "multiple,neon_store<nregs>_<nregs>reg_q,\
|
[(set_attr "type" "multiple,neon_store<nregs>_<nregs>reg_q,\
|
||||||
neon_load<nregs>_<nregs>reg_q")
|
neon_load<nregs>_<nregs>reg_q")
|
||||||
(set (attr "length") (symbol_ref "aarch64_simd_attr_length_move (insn)"))]
|
(set_attr "length" "<insn_count>,4,4")]
|
||||||
)
|
)
|
||||||
|
|
||||||
(define_insn "aarch64_be_ld1<mode>"
|
(define_insn "aarch64_be_ld1<mode>"
|
||||||
@ -4672,7 +4672,7 @@
|
|||||||
stp\\t%q1, %R1, %0
|
stp\\t%q1, %R1, %0
|
||||||
ldp\\t%q0, %R0, %1"
|
ldp\\t%q0, %R0, %1"
|
||||||
[(set_attr "type" "multiple,neon_stp_q,neon_ldp_q")
|
[(set_attr "type" "multiple,neon_stp_q,neon_ldp_q")
|
||||||
(set (attr "length") (symbol_ref "aarch64_simd_attr_length_move (insn)"))]
|
(set_attr "length" "8,4,4")]
|
||||||
)
|
)
|
||||||
|
|
||||||
(define_insn "*aarch64_be_movci"
|
(define_insn "*aarch64_be_movci"
|
||||||
@ -4683,7 +4683,7 @@
|
|||||||
|| register_operand (operands[1], CImode))"
|
|| register_operand (operands[1], CImode))"
|
||||||
"#"
|
"#"
|
||||||
[(set_attr "type" "multiple")
|
[(set_attr "type" "multiple")
|
||||||
(set (attr "length") (symbol_ref "aarch64_simd_attr_length_move (insn)"))]
|
(set_attr "length" "12,4,4")]
|
||||||
)
|
)
|
||||||
|
|
||||||
(define_insn "*aarch64_be_movxi"
|
(define_insn "*aarch64_be_movxi"
|
||||||
@ -4694,7 +4694,7 @@
|
|||||||
|| register_operand (operands[1], XImode))"
|
|| register_operand (operands[1], XImode))"
|
||||||
"#"
|
"#"
|
||||||
[(set_attr "type" "multiple")
|
[(set_attr "type" "multiple")
|
||||||
(set (attr "length") (symbol_ref "aarch64_simd_attr_length_move (insn)"))]
|
(set_attr "length" "16,4,4")]
|
||||||
)
|
)
|
||||||
|
|
||||||
(define_split
|
(define_split
|
||||||
|
@ -10734,33 +10734,6 @@ aarch64_simd_emit_reg_reg_move (rtx *operands, enum machine_mode mode,
|
|||||||
gen_rtx_REG (mode, rsrc + count - i - 1));
|
gen_rtx_REG (mode, rsrc + count - i - 1));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Compute and return the length of aarch64_simd_mov<mode>, where <mode> is
|
|
||||||
one of VSTRUCT modes: OI, CI or XI. */
|
|
||||||
int
|
|
||||||
aarch64_simd_attr_length_move (rtx_insn *insn)
|
|
||||||
{
|
|
||||||
machine_mode mode;
|
|
||||||
|
|
||||||
extract_insn_cached (insn);
|
|
||||||
|
|
||||||
if (REG_P (recog_data.operand[0]) && REG_P (recog_data.operand[1]))
|
|
||||||
{
|
|
||||||
mode = GET_MODE (recog_data.operand[0]);
|
|
||||||
switch (mode)
|
|
||||||
{
|
|
||||||
case OImode:
|
|
||||||
return 8;
|
|
||||||
case CImode:
|
|
||||||
return 12;
|
|
||||||
case XImode:
|
|
||||||
return 16;
|
|
||||||
default:
|
|
||||||
gcc_unreachable ();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return 4;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Compute and return the length of aarch64_simd_reglist<mode>, where <mode> is
|
/* Compute and return the length of aarch64_simd_reglist<mode>, where <mode> is
|
||||||
one of VSTRUCT modes: OI, CI, or XI. */
|
one of VSTRUCT modes: OI, CI, or XI. */
|
||||||
int
|
int
|
||||||
|
@ -715,6 +715,7 @@
|
|||||||
(define_mode_attr vsi2qi [(V2SI "v8qi") (V4SI "v16qi")])
|
(define_mode_attr vsi2qi [(V2SI "v8qi") (V4SI "v16qi")])
|
||||||
(define_mode_attr VSI2QI [(V2SI "V8QI") (V4SI "V16QI")])
|
(define_mode_attr VSI2QI [(V2SI "V8QI") (V4SI "V16QI")])
|
||||||
|
|
||||||
|
;; Sum of lengths of instructions needed to move vector registers of a mode.
|
||||||
(define_mode_attr insn_count [(OI "8") (CI "12") (XI "16")])
|
(define_mode_attr insn_count [(OI "8") (CI "12") (XI "16")])
|
||||||
|
|
||||||
;; -fpic small model GOT reloc modifers: gotpage_lo15/lo14 for ILP64/32.
|
;; -fpic small model GOT reloc modifers: gotpage_lo15/lo14 for ILP64/32.
|
||||||
|
Loading…
Reference in New Issue
Block a user