The type assigned to some insn definitions was seemingly not correct:
* "movi %d0, %1" was of type "fmov" * "fmov %s0, wzr" was of type "fconstd" * "mov %<w>0, {-1,1}" were of type "csel" This patch changes their types to: * "movi %d0, %1" to type "neon_move" * "fmov %s0, wzr" to type "f_mcr" * "mov %<w>0, {-1,1}" to type "mov_imm" Please, commit if it's alright. Thank you, -- Evandro Menezes
>From 7e7057bf65befca9ff24ab2401bc2ce84a48c23a Mon Sep 17 00:00:00 2001 From: Evandro Menezes <e.mene...@samsung.com> Date: Mon, 19 Oct 2015 15:19:35 -0500 Subject: [PATCH] [AArch64] Fix insn types The type assigned to some insn definitions was not correct. gcc/ * config/aarch64/aarch64.md (*movdi_aarch64): Change the type of "movi %d0, %1" to "neon_move". (*movtf_aarch64): Change the type of "fmov %s0, wzr" to "f_mcr". (*cmov<mode>_insn): Change the types of "mov %<w>0, {-1,1}" to "mov_imm". (*cmovsi_insn_uxtw): Idem. --- gcc/config/aarch64/aarch64.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gcc/config/aarch64/aarch64.md b/gcc/config/aarch64/aarch64.md index 208f58f..5b7f2fd 100644 --- a/gcc/config/aarch64/aarch64.md +++ b/gcc/config/aarch64/aarch64.md @@ -1130,7 +1130,7 @@ ldrh\\t%w0, %1 strh\\t%w1, %0 mov\\t%w0, %w1" - [(set_attr "type" "neon_from_gp,neon_to_gp,fmov,\ + [(set_attr "type" "neon_from_gp,neon_to_gp,neon_move,\ f_loads,f_stores,load1,store1,mov_reg") (set_attr "simd" "yes,yes,yes,*,*,*,*,*") (set_attr "fp" "*,*,*,yes,yes,*,*,*")] @@ -1193,7 +1193,7 @@ ldp\\t%0, %H0, %1 stp\\t%1, %H1, %0 stp\\txzr, xzr, %0" - [(set_attr "type" "logic_reg,multiple,f_mcr,f_mrc,neon_move_q,fconstd,\ + [(set_attr "type" "logic_reg,multiple,f_mcr,f_mrc,neon_move_q,f_mcr,\ f_loadd,f_stored,load2,store2,store2") (set_attr "length" "4,8,8,8,4,4,4,4,4,4,4") (set_attr "fp" "*,*,yes,yes,*,yes,yes,yes,*,*,*") @@ -2984,7 +2984,7 @@ csinc\\t%<w>0, %<w>4, <w>zr, %M1 mov\\t%<w>0, -1 mov\\t%<w>0, 1" - [(set_attr "type" "csel")] + [(set_attr "type" "csel, csel, csel, csel, csel, mov_imm, mov_imm")] ) ;; zero_extend version of above @@ -3007,7 +3007,7 @@ csinc\\t%w0, %w4, wzr, %M1 mov\\t%w0, -1 mov\\t%w0, 1" - [(set_attr "type" "csel")] + [(set_attr "type" "csel, csel, csel, csel, csel, mov_imm, mov_imm")] ) (define_insn "*cmovdi_insn_uxtw" -- 2.1.0.243.g30d45f7