[ARM] Handle FMA code in rtx costs.

       * config/arm/arm.c (arm_new_rtx_costs): Handle FMA.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209701 138bc75d-0d04-0410-961f-82ee72b054a4
[ARM] Cortex-A8 rtx cost table

       * config/arm/arm.c (cortexa8_extra_costs): New table.
       (arm_cortex_a8_tune): New tuning struct.
       * config/arm/arm-cores.def (cortex-a8): Use cortex_a8 tuning struct.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209702 138bc75d-0d04-0410-961f-82ee72b054a4
[ARM][1/3] Add rev field to rtx cost tables

       * config/arm/aarch-common-protos.h (alu_cost_table): Add rev field.
       * config/arm/aarch-cost-tables.h (generic_extra_costs): Specify
       rev cost.
       (cortex_a53_extra_costs): Likewise.
       (cortex_a57_extra_costs): Likewise.
       * config/arm/arm.c (cortexa9_extra_costs): Likewise.
       (cortexa7_extra_costs): Likewise.
       (cortexa8_extra_costs): Likewise.
       (cortexa12_extra_costs): Likewise.
       (cortexa15_extra_costs): Likewise.
       (v7m_extra_costs): Likewise.
       (arm_new_rtx_costs): Handle BSWAP.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209703 138bc75d-0d04-0410-961f-82ee72b054a4
[AArch64][2/3] Recognise rev16 operations on SImode and DImode data

       * config/aarch64/aarch64.md (rev16<mode>2): New pattern.
       (rev16<mode>2_alt): Likewise.
       * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle rev16 case.
       * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p): New.
       (aarch_rev16_shleft_mask_imm_p): Likewise.
       (aarch_rev16_p_1): Likewise.
       (aarch_rev16_p): Likewise.
       * config/arm/aarch-common-protos.h (aarch_rev16_p): Declare extern.
       (aarch_rev16_shright_mask_imm_p): Likewise.
       (aarch_rev16_shleft_mask_imm_p): Likewise.

       * gcc.target/aarch64/rev16_1.c: New test.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209704 138bc75d-0d04-0410-961f-82ee72b054a4
[ARM][3/3] Recognise bitwise operations leading to SImode rev16

	* config/arm/arm.md (arm_rev16si2): New pattern.
	(arm_rev16si2_alt): Likewise.
	* config/arm/arm.c (arm_new_rtx_costs): Handle rev16 case.

	* gcc.target/arm/rev16.c: New test.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209705 138bc75d-0d04-0410-961f-82ee72b054a4
[AArch64] Add handling of bswap operations in rtx costs

	* config/aarch64/aarch64.c (aarch64_rtx_costs): Handle BSWAP.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@209706 138bc75d-0d04-0410-961f-82ee72b054a4