This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH][ARM] Deprecate -mneon-for-64bits
- From: Wilco Dijkstra <Wilco dot Dijkstra at arm dot com>
- To: Kyrill Tkachov <kyrylo dot tkachov at foss dot arm dot com>, GCC Patches <gcc-patches at gcc dot gnu dot org>
- Cc: nd <nd at arm dot com>
- Date: Fri, 23 Aug 2019 14:22:59 +0000
- Subject: Re: [PATCH][ARM] Deprecate -mneon-for-64bits
- Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none
- Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=xWG+wCud5evW+84T55mwuCbCtWAbO4NQzrC53C5g1jw=; b=SNbWxhtmNBp4RF2LV5xsCpQkE7CgrhstCwJEVmsx8UkGebJECsthEXZWWrw7/Gt9zDz8boB3D0bPaCmaOI3oGNPZz8hU/Y2M5XB4kbupyr1kyZq1nP10t0qXFLtG/7AmZ+OZHICHd/is1IM4wWLtSzfmu2Sa9Lkn3Wcq4ywJQxYzEcAcvLTER04XL/YXxjs9GUsD9ff6dFMC9D6vj3EfjgiFCkbzgtBeUwbvYmmATEHogSCv1ykpuScabtH/zJZiieIKN4uEfACj9HlHH/x3NCFlb/ktEuhYPaMK2pMZBUgi4k9v5bW5pJWTZtJcAzaFxggbbgOY9dt+Er7xsldLpw==
- Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=CyTQCLeBDDMQCkFEw+sj9OgZF9BGMVkj/tAhY6i3owUJvBVfS4J4eWYc7Q3P8AGZ/4XKW+vYNd3PYyBVGtaIoX5PqJxaU9aiAEb46yKL+AP1UCz6qnt91Qd/b597sNwtp4NPpxdI8DWK3G3uWhv65i+v+1tklUSU948qi2uNfZXkTsxgpCdJRZQb0o0D4VjOGRrlhRiqC6ad9TlhB9aELOXxko8j6/VSBjS9TvBO7dTFGcEALGNf/QD/QObem4RYR5Es6XmIliIwCMJCJOMyrGqhnVXiizH0lRtTsx4Lv/YDfQlBULvJdIWe1E3OfQMAtfqpZZxLRV8/gACzoZDDKA==
- Original-authentication-results: spf=none (sender IP is ) smtp.mailfrom=Wilco dot Dijkstra at arm dot com;
- References: <VI1PR0801MB2127326A2B9201D966B9BF8583A40@VI1PR0801MB2127.eurprd08.prod.outlook.com>,<15f4d3cf-9b87-b0ce-2e87-191eb5a10ddb@foss.arm.com>
Hi Kyrill,
> Please also adjust the documentation in doc/invoke.texi to say it's
> deprecated and has no effect.
Sure, updated docs and also use Deprecated feature in arm.opts:
--- a/gcc/config/arm/arm.opt
+++ b/gcc/config/arm/arm.opt
@@ -276,8 +276,8 @@ Target Report Var(unaligned_access) Init(2) Save
Enable unaligned word and halfword accesses to packed data.
mneon-for-64bits
-Target Report RejectNegative Var(use_neon_for_64bits) Init(0)
-Use Neon to perform 64-bits operations rather than core registers.
+Target Deprecated
+This option is deprecated and has no effect.
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -17996,9 +17996,7 @@ defined.
@item -mneon-for-64bits
@opindex mneon-for-64bits
-Enables using Neon to handle scalar 64-bits operations. This is
-disabled by default since the cost of moving data from core registers
-to Neon is high.
+This option is deprecated and has no effect.
@item -mslow-flash-data
@opindex mslow-flash-data
Updated patch:
Deprecate -mneon-for-64bits since it no longer has any effect after
the DImode codegen improvements.
OK for commit?
ChangeLog:
2019-08-23 Wilco Dijkstra <wdijkstr@arm.com>
* gcc/doc/invoke.texi (mneon-for-64bits): Deprecate option.
* gcc/config/arm/arm.opt (mneon-for-64bits): Deprecate option.
* gcc/config/arm/arm.h (TARGET_PREFER_NEON_64BITS): Remove.
(prefer_neon_for_64bits): Remove.
* gcc/config/arm/arm.c (prefer_neon_for_64bits): Remove.
(tune_params): Remove PREF_NEON_64_FALSE uses.
(arm_option_override): Remove prefer_neon selection code.
(arm_print_tune_info): Remove prefer_neon_for_64bits.
* gcc/config/arm/arm-protos.h (tune_params): Remove
prefer_neon_for_64bits.
(prefer_neon_for_64bits): Remove.
---
diff --git a/gcc/config/arm/arm-protos.h b/gcc/config/arm/arm-protos.h
index bf2bf1c3b050365449b422976d7c0b39245f1490..8386d89fc0b955e85692f87fedd8710010ad2a35 100644
--- a/gcc/config/arm/arm-protos.h
+++ b/gcc/config/arm/arm-protos.h
@@ -327,7 +327,6 @@ struct tune_params
/* Prefer 32-bit encoding instead of flag-setting 16-bit encoding. */
enum {DISPARAGE_FLAGS_NEITHER, DISPARAGE_FLAGS_PARTIAL, DISPARAGE_FLAGS_ALL}
disparage_flag_setting_t16_encodings: 2;
- enum {PREF_NEON_64_FALSE, PREF_NEON_64_TRUE} prefer_neon_for_64bits: 1;
/* Prefer to inline string operations like memset by using Neon. */
enum {PREF_NEON_STRINGOPS_FALSE, PREF_NEON_STRINGOPS_TRUE}
string_ops_prefer_neon: 1;
@@ -472,10 +471,6 @@ extern int arm_arch_thumb_hwdiv;
/* Nonzero if chip disallows volatile memory access in IT block. */
extern int arm_arch_no_volatile_ce;
-/* Nonzero if we should use Neon to handle 64-bits operations rather
- than core registers. */
-extern int prefer_neon_for_64bits;
-
/* Structure defining the current overall architectural target and tuning. */
struct arm_build_target
{
diff --git a/gcc/config/arm/arm.h b/gcc/config/arm/arm.h
index 50cb2c92e2c89562407fb89008b69f35b2a61fbe..8d023389eec469ad9c8a4e88edebdad5f3c23769 100644
--- a/gcc/config/arm/arm.h
+++ b/gcc/config/arm/arm.h
@@ -313,9 +313,6 @@ emission of floating point pcs attributes. */
/* Nonzero if disallow volatile memory access in IT block. */
#define TARGET_NO_VOLATILE_CE (arm_arch_no_volatile_ce)
-/* Should NEON be used for 64-bits bitops. */
-#define TARGET_PREFER_NEON_64BITS (prefer_neon_for_64bits)
-
/* Should constant I be slplit for OP. */
#define DONT_EARLY_SPLIT_CONSTANT(i, op) \
((optimize >= 2) \
@@ -509,10 +506,6 @@ extern int arm_arch_thumb_hwdiv;
/* Nonzero if chip disallows volatile memory access in IT block. */
extern int arm_arch_no_volatile_ce;
-/* Nonzero if we should use Neon to handle 64-bits operations rather
- than core registers. */
-extern int prefer_neon_for_64bits;
-
/* Nonzero if we shouldn't use literal pools. */
#ifndef USED_FOR_TARGET
extern bool arm_disable_literal_pool;
diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c
index 38ac16ad1def91ca78ccfa98fd1679b2b5114851..5ea3409c8fa632b1a9959181de27f1dfa286a4d8 100644
--- a/gcc/config/arm/arm.c
+++ b/gcc/config/arm/arm.c
@@ -950,10 +950,6 @@ int arm_arch_thumb_hwdiv;
/* Nonzero if chip disallows volatile memory access in IT block. */
int arm_arch_no_volatile_ce;
-/* Nonzero if we should use Neon to handle 64-bits operations rather
- than core registers. */
-int prefer_neon_for_64bits = 0;
-
/* Nonzero if we shouldn't use literal pools. */
bool arm_disable_literal_pool = false;
@@ -1811,7 +1807,6 @@ const struct tune_params arm_slowmul_tune =
tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* Thumb. */
tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* ARM. */
tune_params::DISPARAGE_FLAGS_NEITHER,
- tune_params::PREF_NEON_64_FALSE,
tune_params::PREF_NEON_STRINGOPS_FALSE,
tune_params::FUSE_NOTHING,
tune_params::SCHED_AUTOPREF_OFF
@@ -1834,7 +1829,6 @@ const struct tune_params arm_fastmul_tune =
tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* Thumb. */
tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* ARM. */
tune_params::DISPARAGE_FLAGS_NEITHER,
- tune_params::PREF_NEON_64_FALSE,
tune_params::PREF_NEON_STRINGOPS_FALSE,
tune_params::FUSE_NOTHING,
tune_params::SCHED_AUTOPREF_OFF
@@ -1860,7 +1854,6 @@ const struct tune_params arm_strongarm_tune =
tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* Thumb. */
tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* ARM. */
tune_params::DISPARAGE_FLAGS_NEITHER,
- tune_params::PREF_NEON_64_FALSE,
tune_params::PREF_NEON_STRINGOPS_FALSE,
tune_params::FUSE_NOTHING,
tune_params::SCHED_AUTOPREF_OFF
@@ -1883,7 +1876,6 @@ const struct tune_params arm_xscale_tune =
tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* Thumb. */
tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* ARM. */
tune_params::DISPARAGE_FLAGS_NEITHER,
- tune_params::PREF_NEON_64_FALSE,
tune_params::PREF_NEON_STRINGOPS_FALSE,
tune_params::FUSE_NOTHING,
tune_params::SCHED_AUTOPREF_OFF
@@ -1906,7 +1898,6 @@ const struct tune_params arm_9e_tune =
tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* Thumb. */
tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* ARM. */
tune_params::DISPARAGE_FLAGS_NEITHER,
- tune_params::PREF_NEON_64_FALSE,
tune_params::PREF_NEON_STRINGOPS_FALSE,
tune_params::FUSE_NOTHING,
tune_params::SCHED_AUTOPREF_OFF
@@ -1929,7 +1920,6 @@ const struct tune_params arm_marvell_pj4_tune =
tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* Thumb. */
tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* ARM. */
tune_params::DISPARAGE_FLAGS_NEITHER,
- tune_params::PREF_NEON_64_FALSE,
tune_params::PREF_NEON_STRINGOPS_FALSE,
tune_params::FUSE_NOTHING,
tune_params::SCHED_AUTOPREF_OFF
@@ -1952,7 +1942,6 @@ const struct tune_params arm_v6t2_tune =
tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* Thumb. */
tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* ARM. */
tune_params::DISPARAGE_FLAGS_NEITHER,
- tune_params::PREF_NEON_64_FALSE,
tune_params::PREF_NEON_STRINGOPS_FALSE,
tune_params::FUSE_NOTHING,
tune_params::SCHED_AUTOPREF_OFF
@@ -1977,7 +1966,6 @@ const struct tune_params arm_cortex_tune =
tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* Thumb. */
tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* ARM. */
tune_params::DISPARAGE_FLAGS_NEITHER,
- tune_params::PREF_NEON_64_FALSE,
tune_params::PREF_NEON_STRINGOPS_FALSE,
tune_params::FUSE_NOTHING,
tune_params::SCHED_AUTOPREF_OFF
@@ -2000,7 +1988,6 @@ const struct tune_params arm_cortex_a8_tune =
tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* Thumb. */
tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* ARM. */
tune_params::DISPARAGE_FLAGS_NEITHER,
- tune_params::PREF_NEON_64_FALSE,
tune_params::PREF_NEON_STRINGOPS_TRUE,
tune_params::FUSE_NOTHING,
tune_params::SCHED_AUTOPREF_OFF
@@ -2023,7 +2010,6 @@ const struct tune_params arm_cortex_a7_tune =
tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* Thumb. */
tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* ARM. */
tune_params::DISPARAGE_FLAGS_NEITHER,
- tune_params::PREF_NEON_64_FALSE,
tune_params::PREF_NEON_STRINGOPS_TRUE,
tune_params::FUSE_NOTHING,
tune_params::SCHED_AUTOPREF_OFF
@@ -2046,7 +2032,6 @@ const struct tune_params arm_cortex_a15_tune =
tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* Thumb. */
tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* ARM. */
tune_params::DISPARAGE_FLAGS_ALL,
- tune_params::PREF_NEON_64_FALSE,
tune_params::PREF_NEON_STRINGOPS_TRUE,
tune_params::FUSE_NOTHING,
tune_params::SCHED_AUTOPREF_FULL
@@ -2069,7 +2054,6 @@ const struct tune_params arm_cortex_a35_tune =
tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* Thumb. */
tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* ARM. */
tune_params::DISPARAGE_FLAGS_NEITHER,
- tune_params::PREF_NEON_64_FALSE,
tune_params::PREF_NEON_STRINGOPS_TRUE,
FUSE_OPS (tune_params::FUSE_MOVW_MOVT),
tune_params::SCHED_AUTOPREF_OFF
@@ -2092,7 +2076,6 @@ const struct tune_params arm_cortex_a53_tune =
tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* Thumb. */
tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* ARM. */
tune_params::DISPARAGE_FLAGS_NEITHER,
- tune_params::PREF_NEON_64_FALSE,
tune_params::PREF_NEON_STRINGOPS_TRUE,
FUSE_OPS (tune_params::FUSE_MOVW_MOVT | tune_params::FUSE_AES_AESMC),
tune_params::SCHED_AUTOPREF_OFF
@@ -2115,7 +2098,6 @@ const struct tune_params arm_cortex_a57_tune =
tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* Thumb. */
tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* ARM. */
tune_params::DISPARAGE_FLAGS_ALL,
- tune_params::PREF_NEON_64_FALSE,
tune_params::PREF_NEON_STRINGOPS_TRUE,
FUSE_OPS (tune_params::FUSE_MOVW_MOVT | tune_params::FUSE_AES_AESMC),
tune_params::SCHED_AUTOPREF_FULL
@@ -2138,7 +2120,6 @@ const struct tune_params arm_exynosm1_tune =
tune_params::LOG_OP_NON_SHORT_CIRCUIT_FALSE, /* Thumb. */
tune_params::LOG_OP_NON_SHORT_CIRCUIT_FALSE, /* ARM. */
tune_params::DISPARAGE_FLAGS_ALL,
- tune_params::PREF_NEON_64_FALSE,
tune_params::PREF_NEON_STRINGOPS_TRUE,
tune_params::FUSE_NOTHING,
tune_params::SCHED_AUTOPREF_OFF
@@ -2161,7 +2142,6 @@ const struct tune_params arm_xgene1_tune =
tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* Thumb. */
tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* ARM. */
tune_params::DISPARAGE_FLAGS_ALL,
- tune_params::PREF_NEON_64_FALSE,
tune_params::PREF_NEON_STRINGOPS_FALSE,
tune_params::FUSE_NOTHING,
tune_params::SCHED_AUTOPREF_OFF
@@ -2184,7 +2164,6 @@ const struct tune_params arm_cortex_a5_tune =
tune_params::LOG_OP_NON_SHORT_CIRCUIT_FALSE, /* Thumb. */
tune_params::LOG_OP_NON_SHORT_CIRCUIT_FALSE, /* ARM. */
tune_params::DISPARAGE_FLAGS_NEITHER,
- tune_params::PREF_NEON_64_FALSE,
tune_params::PREF_NEON_STRINGOPS_TRUE,
tune_params::FUSE_NOTHING,
tune_params::SCHED_AUTOPREF_OFF
@@ -2207,7 +2186,6 @@ const struct tune_params arm_cortex_a9_tune =
tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* Thumb. */
tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* ARM. */
tune_params::DISPARAGE_FLAGS_NEITHER,
- tune_params::PREF_NEON_64_FALSE,
tune_params::PREF_NEON_STRINGOPS_FALSE,
tune_params::FUSE_NOTHING,
tune_params::SCHED_AUTOPREF_OFF
@@ -2230,7 +2208,6 @@ const struct tune_params arm_cortex_a12_tune =
tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* Thumb. */
tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* ARM. */
tune_params::DISPARAGE_FLAGS_ALL,
- tune_params::PREF_NEON_64_FALSE,
tune_params::PREF_NEON_STRINGOPS_TRUE,
FUSE_OPS (tune_params::FUSE_MOVW_MOVT),
tune_params::SCHED_AUTOPREF_OFF
@@ -2253,7 +2230,6 @@ const struct tune_params arm_cortex_a73_tune =
tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* Thumb. */
tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* ARM. */
tune_params::DISPARAGE_FLAGS_ALL,
- tune_params::PREF_NEON_64_FALSE,
tune_params::PREF_NEON_STRINGOPS_TRUE,
FUSE_OPS (tune_params::FUSE_AES_AESMC | tune_params::FUSE_MOVW_MOVT),
tune_params::SCHED_AUTOPREF_FULL
@@ -2283,7 +2259,6 @@ const struct tune_params arm_v7m_tune =
tune_params::LOG_OP_NON_SHORT_CIRCUIT_FALSE, /* Thumb. */
tune_params::LOG_OP_NON_SHORT_CIRCUIT_FALSE, /* ARM. */
tune_params::DISPARAGE_FLAGS_NEITHER,
- tune_params::PREF_NEON_64_FALSE,
tune_params::PREF_NEON_STRINGOPS_FALSE,
tune_params::FUSE_NOTHING,
tune_params::SCHED_AUTOPREF_OFF
@@ -2308,7 +2283,6 @@ const struct tune_params arm_cortex_m7_tune =
tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* Thumb. */
tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* ARM. */
tune_params::DISPARAGE_FLAGS_NEITHER,
- tune_params::PREF_NEON_64_FALSE,
tune_params::PREF_NEON_STRINGOPS_FALSE,
tune_params::FUSE_NOTHING,
tune_params::SCHED_AUTOPREF_OFF
@@ -2334,7 +2308,6 @@ const struct tune_params arm_v6m_tune =
tune_params::LOG_OP_NON_SHORT_CIRCUIT_FALSE, /* Thumb. */
tune_params::LOG_OP_NON_SHORT_CIRCUIT_FALSE, /* ARM. */
tune_params::DISPARAGE_FLAGS_NEITHER,
- tune_params::PREF_NEON_64_FALSE,
tune_params::PREF_NEON_STRINGOPS_FALSE,
tune_params::FUSE_NOTHING,
tune_params::SCHED_AUTOPREF_OFF
@@ -2357,7 +2330,6 @@ const struct tune_params arm_fa726te_tune =
tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* Thumb. */
tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE, /* ARM. */
tune_params::DISPARAGE_FLAGS_NEITHER,
- tune_params::PREF_NEON_64_FALSE,
tune_params::PREF_NEON_STRINGOPS_FALSE,
tune_params::FUSE_NOTHING,
tune_params::SCHED_AUTOPREF_OFF
@@ -3571,12 +3543,6 @@ arm_option_override (void)
global_options.x_param_values,
global_options_set.x_param_values);
- /* Use Neon to perform 64-bits operations rather than core
- registers. */
- prefer_neon_for_64bits = current_tune->prefer_neon_for_64bits;
- if (use_neon_for_64bits == 1)
- prefer_neon_for_64bits = true;
-
/* Look through ready list and all of queue for instructions
relevant for L2 auto-prefetcher. */
int param_sched_autopref_queue_depth;
@@ -26524,9 +26490,6 @@ arm_print_tune_info (void)
(int) current_tune->logical_op_non_short_circuit_thumb,
(int) current_tune->logical_op_non_short_circuit_arm);
asm_fprintf (asm_out_file, "\t\t" ASM_COMMENT_START
- "prefer_neon_for_64bits:\t%d\n",
- (int) current_tune->prefer_neon_for_64bits);
- asm_fprintf (asm_out_file, "\t\t" ASM_COMMENT_START
"disparage_flag_setting_t16_encodings:\t%d\n",
(int) current_tune->disparage_flag_setting_t16_encodings);
asm_fprintf (asm_out_file, "\t\t" ASM_COMMENT_START
diff --git a/gcc/config/arm/arm.opt b/gcc/config/arm/arm.opt
index 9067d491b9c5fd9e1552a912e57d127b7770b858..5ecc5e5c91c521309925d4c14f04644e37f472e6 100644
--- a/gcc/config/arm/arm.opt
+++ b/gcc/config/arm/arm.opt
@@ -276,8 +276,8 @@ Target Report Var(unaligned_access) Init(2) Save
Enable unaligned word and halfword accesses to packed data.
mneon-for-64bits
-Target Report RejectNegative Var(use_neon_for_64bits) Init(0)
-Use Neon to perform 64-bits operations rather than core registers.
+Target Deprecated
+This option is deprecated and has no effect.
mslow-flash-data
Target Report Var(target_slow_flash_data) Init(0)
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index 096340cfb6667a3f90ecba93ab975d2b0ef87ad3..669baf06f768fbfee1dc824d687e134f71d3ffca 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -17996,9 +17996,7 @@ defined.
@item -mneon-for-64bits
@opindex mneon-for-64bits
-Enables using Neon to handle scalar 64-bits operations. This is
-disabled by default since the cost of moving data from core registers
-to Neon is high.
+This option is deprecated and has no effect.
@item -mslow-flash-data
@opindex mslow-flash-data