Skip to content

Commit 27e3431

Browse files
aarch64: Remove unsupported FMV features
It currently isn't possible to support function multiversioning features properly in GCC without also enabling the extension in the command line options (with the exception of features such as "rpres" that do not require assembler support). We therefore remove unsupported features from GCC's list of FMV features. Some of these features ("fcma", "jscvt", "frintts", "flagm2", "wfxt", "rcpc2", and perhaps "dpb" and "dpb2") will be added back in the future once support for the command line option has been added. The rest of the removed features I have proposed removing from the ACLE specification as well, since it doesn't seem worthwhile to include support for them; see the ACLE pull request for more detailed justification: ARM-software/acle#315 gcc/ChangeLog: * config/aarch64/aarch64-option-extensions.def: Remove "flagm2", "sha1", "pmull", "dit", "dpb", "dpb2", "jscvt", "fcma", "rcpc2", "frintts", "dgh", "ebf16", "sve-bf16", "sve-ebf16", "sve-i8mm", "sve2-pmull128", "memtag3", "bti" and "wfxt" entries.
1 parent a28df11 commit 27e3431

File tree

1 file changed

+0
-38
lines changed

1 file changed

+0
-38
lines changed

gcc/config/aarch64/aarch64-option-extensions.def

Lines changed: 0 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -103,8 +103,6 @@ AARCH64_OPT_FMV_EXTENSION("rng", RNG, (), (), (), "rng")
103103

104104
AARCH64_OPT_FMV_EXTENSION("flagm", FLAGM, (), (), (), "flagm")
105105

106-
AARCH64_FMV_FEATURE("flagm2", FLAGM2, (FLAGM))
107-
108106
AARCH64_OPT_FMV_EXTENSION("lse", LSE, (), (), (), "atomics")
109107

110108
AARCH64_OPT_FMV_EXTENSION("fp", FP, (), (), (), "fp")
@@ -124,16 +122,12 @@ AARCH64_FMV_FEATURE("rdm", RDM, (RDMA))
124122

125123
AARCH64_OPT_FMV_EXTENSION("crc", CRC, (), (), (), "crc32")
126124

127-
AARCH64_FMV_FEATURE("sha1", SHA1, ())
128-
129125
AARCH64_OPT_FMV_EXTENSION("sha2", SHA2, (SIMD), (), (), "sha1 sha2")
130126

131127
AARCH64_FMV_FEATURE("sha3", SHA3, (SHA3))
132128

133129
AARCH64_OPT_FMV_EXTENSION("aes", AES, (SIMD), (), (), "aes")
134130

135-
AARCH64_FMV_FEATURE("pmull", PMULL, ())
136-
137131
/* +nocrypto disables AES, SHA2 and SM4, and anything that depends on them
138132
(such as SHA3 and the SVE2 crypto extensions). */
139133
AARCH64_OPT_EXTENSION("crypto", CRYPTO, (AES, SHA2), (), (AES, SHA2, SM4),
@@ -157,44 +151,20 @@ AARCH64_OPT_EXTENSION("fp16fml", F16FML, (), (F16), (), "asimdfhm")
157151

158152
AARCH64_FMV_FEATURE("fp16fml", FP16FML, (F16FML))
159153

160-
AARCH64_FMV_FEATURE("dit", DIT, ())
161-
162-
AARCH64_FMV_FEATURE("dpb", DPB, ())
163-
164-
AARCH64_FMV_FEATURE("dpb2", DPB2, ())
165-
166-
AARCH64_FMV_FEATURE("jscvt", JSCVT, ())
167-
168-
AARCH64_FMV_FEATURE("fcma", FCMA, (SIMD))
169-
170154
AARCH64_OPT_FMV_EXTENSION("rcpc", RCPC, (), (), (), "lrcpc")
171155

172-
AARCH64_FMV_FEATURE("rcpc2", RCPC2, (RCPC))
173-
174156
AARCH64_OPT_FMV_EXTENSION("rcpc3", RCPC3, (), (), (), "lrcpc3")
175157

176-
AARCH64_FMV_FEATURE("frintts", FRINTTS, ())
177-
178-
AARCH64_FMV_FEATURE("dgh", DGH, ())
179-
180158
AARCH64_OPT_FMV_EXTENSION("i8mm", I8MM, (SIMD), (), (), "i8mm")
181159

182160
/* An explicit +bf16 implies +simd, but +bf16+nosimd still enables scalar BF16
183161
instructions. */
184162
AARCH64_OPT_FMV_EXTENSION("bf16", BF16, (FP), (SIMD), (), "bf16")
185163

186-
AARCH64_FMV_FEATURE("ebf16", EBF16, (BF16))
187-
188164
AARCH64_FMV_FEATURE("rpres", RPRES, ())
189165

190166
AARCH64_OPT_FMV_EXTENSION("sve", SVE, (SIMD, F16), (), (), "sve")
191167

192-
AARCH64_FMV_FEATURE("sve-bf16", SVE_BF16, (SVE, BF16))
193-
194-
AARCH64_FMV_FEATURE("sve-ebf16", SVE_EBF16, (SVE, BF16))
195-
196-
AARCH64_FMV_FEATURE("sve-i8mm", SVE_I8MM, (SVE, I8MM))
197-
198168
AARCH64_OPT_EXTENSION("f32mm", F32MM, (SVE), (), (), "f32mm")
199169

200170
AARCH64_FMV_FEATURE("f32mm", SVE_F32MM, (F32MM))
@@ -209,8 +179,6 @@ AARCH64_OPT_EXTENSION("sve2-aes", SVE2_AES, (SVE2, AES), (), (), "sveaes")
209179

210180
AARCH64_FMV_FEATURE("sve2-aes", SVE_AES, (SVE2_AES))
211181

212-
AARCH64_FMV_FEATURE("sve2-pmull128", SVE_PMULL128, (SVE2))
213-
214182
AARCH64_OPT_EXTENSION("sve2-bitperm", SVE2_BITPERM, (SVE2), (), (),
215183
"svebitperm")
216184

@@ -230,8 +198,6 @@ AARCH64_OPT_FMV_EXTENSION("memtag", MEMTAG, (), (), (), "")
230198

231199
AARCH64_FMV_FEATURE("memtag2", MEMTAG2, (MEMTAG))
232200

233-
AARCH64_FMV_FEATURE("memtag3", MEMTAG3, (MEMTAG))
234-
235201
AARCH64_OPT_FMV_EXTENSION("sb", SB, (), (), (), "sb")
236202

237203
AARCH64_OPT_FMV_EXTENSION("predres", PREDRES, (), (), (), "")
@@ -240,8 +206,6 @@ AARCH64_OPT_FMV_EXTENSION("ssbs", SSBS, (), (), (), "ssbs")
240206

241207
AARCH64_FMV_FEATURE("ssbs2", SSBS2, (SSBS))
242208

243-
AARCH64_FMV_FEATURE("bti", BTI, ())
244-
245209
AARCH64_OPT_EXTENSION("profile", PROFILE, (), (), (), "")
246210

247211
AARCH64_OPT_EXTENSION("tme", TME, (), (), (), "")
@@ -256,8 +220,6 @@ AARCH64_FMV_FEATURE("ls64_v", LS64_V, ())
256220

257221
AARCH64_FMV_FEATURE("ls64_accdata", LS64_ACCDATA, (LS64))
258222

259-
AARCH64_FMV_FEATURE("wfxt", WFXT, ())
260-
261223
AARCH64_OPT_EXTENSION("sme-f64f64", SME_F64F64, (SME), (), (), "")
262224

263225
AARCH64_FMV_FEATURE("sme-f64f64", SME_F64, (SME_F64F64))

0 commit comments

Comments
 (0)