This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[Patch ARM/AArch64] Add missing is_neon_type types
- From: James Greenhalgh <james dot greenhalgh at arm dot com>
- To: gcc-patches at gcc dot gnu dot org
- Cc: kyrtka01 at arm dot com, richard dot earnshaw at arm dot com, ramana dot radhakrishnan at arm dot com, marcus dot shawcroft at arm dot com
- Date: Fri, 14 Aug 2015 10:23:03 +0100
- Subject: [Patch ARM/AArch64] Add missing is_neon_type types
- Authentication-results: sourceware.org; auth=none
Hi,
I spotted that these are missing from the "is_neon_type" attribute:
neon_fp_abs_s, neon_fp_abs_s_q, neon_fp_abs_d, neon_fp_abs_d_q,
neon_fp_neg_s, neon_fp_neg_s_q, neon_fp_neg_d, neon_fp_neg_d_q,
neon_fp_to_int_d, neon_fp_to_int_d_q,
neon_int_to_fp_d, neon_int_to_fp_d_q,
This patch adds them. In principle this could have shown up by allowing
us to create a limited set of conditional neon instructions, or as a
scheduling quirk in the Cortex-A7 and Cortex-A53 scheduling models, but I
didn't see any impact in some smoke testing.
Bootstrapped on arm-none-linux-gnueabihf and aarch64-none-linux-gnu with
no issues.
OK?
Thanks,
James
---
2015-08-14 James Greenhalgh <james.greenhalgh@arm.com>
* config/arm/types.md (is_neon_type): Add missing types.
diff --git a/gcc/config/arm/types.md b/gcc/config/arm/types.md
index d368446..ec609ae 100644
--- a/gcc/config/arm/types.md
+++ b/gcc/config/arm/types.md
@@ -1146,10 +1146,12 @@
neon_store3_one_lane, neon_store3_one_lane_q, neon_store4_4reg,\
neon_store4_4reg_q, neon_store4_one_lane, neon_store4_one_lane_q,\
neon_fp_abd_s, neon_fp_abd_s_q, neon_fp_abd_d, neon_fp_abd_d_q,\
+ neon_fp_abs_s, neon_fp_abs_s_q, neon_fp_abs_d, neon_fp_abs_d_q,\
neon_fp_addsub_s, neon_fp_addsub_s_q, neon_fp_addsub_d,\
neon_fp_addsub_d_q, neon_fp_compare_s, neon_fp_compare_s_q,\
neon_fp_compare_d, neon_fp_compare_d_q, neon_fp_minmax_s,\
neon_fp_minmax_s_q, neon_fp_minmax_d, neon_fp_minmax_d_q,\
+ neon_fp_neg_s, neon_fp_neg_s_q, neon_fp_neg_d, neon_fp_neg_d_q,\
neon_fp_reduc_add_s, neon_fp_reduc_add_s_q, neon_fp_reduc_add_d,\
neon_fp_reduc_add_d_q, neon_fp_reduc_minmax_s,
neon_fp_reduc_minmax_s_q, neon_fp_reduc_minmax_d,\
@@ -1157,6 +1159,8 @@
neon_fp_cvt_narrow_s_q, neon_fp_cvt_narrow_d_q,\
neon_fp_cvt_widen_h, neon_fp_cvt_widen_s, neon_fp_to_int_s,\
neon_fp_to_int_s_q, neon_int_to_fp_s, neon_int_to_fp_s_q,\
+ neon_fp_to_int_d, neon_fp_to_int_d_q,\
+ neon_int_to_fp_d, neon_int_to_fp_d_q,\
neon_fp_round_s, neon_fp_round_s_q, neon_fp_recpe_s,\
neon_fp_recpe_s_q,\
neon_fp_recpe_d, neon_fp_recpe_d_q, neon_fp_recps_s,\