[PATCH] aarch64: Add support for FEAT_SVE2p2 and FEAT_SME2p2

Alice Carlotti alice.carlotti@arm.com
Mon Jul 7 10:49:40 GMT 2025


On Sun, Jul 06, 2025 at 11:52:47AM +0200, Jan Beulich wrote:
> On 04.07.2025 20:56, Alice Carlotti wrote:
> > I'll push this next week if there are no issues raised.  (For reference, I
> > wrote the tests by hand to verify the implementation.)
> > 
> > 
> > diff --git a/gas/config/tc-aarch64.c b/gas/config/tc-aarch64.c
> > index 13649e8f3d508f61145f3d855af377a2d95e2168..29a81d17112b15a09301a9cb518265e08a316c27 100644
> > --- a/gas/config/tc-aarch64.c
> > +++ b/gas/config/tc-aarch64.c
> > @@ -10797,6 +10797,8 @@ static const struct aarch64_option_cpu_value_table aarch64_features[] = {
> >    {"sme-b16b16",	AARCH64_FEATURE (SME_B16B16),
> >  			AARCH64_FEATURES (2, SVE_B16B16, SME2)},
> >    {"pops",		AARCH64_FEATURE (PoPS), AARCH64_NO_FEATURES},
> > +  {"sve2p2",		AARCH64_FEATURE (SVE2p2), AARCH64_FEATURE (SVE2)},
> > +  {"sme2p2",		AARCH64_FEATURE (SME2p2), AARCH64_FEATURE (SME2)},
> >    {NULL,		AARCH64_NO_FEATURES, AARCH64_NO_FEATURES},
> >  };
> >  
> > @@ -10817,13 +10819,15 @@ static const struct aarch64_virtual_dependency_table aarch64_dependencies[] = {
> >    {AARCH64_FEATURE (SSVE_FP8DOT2), AARCH64_FEATURE (FP8DOT2_SVE)},
> >    {AARCH64_FEATURE (SME_F16F16), AARCH64_FEATURE (SME_F16F16_F8F16)},
> >    {AARCH64_FEATURE (SME_F8F16), AARCH64_FEATURE (SME_F16F16_F8F16)},
> > -  {AARCH64_FEATURE (SVE2p1), AARCH64_FEATURES (3, SVE2p1_SME, SVE2p1_SME2,
> > -					       SVE2p1_SME2p1)},
> 
> Hmm, I may not be understanding the purpose of this table correctly, even
> if the comment ahead of it looks to be pretty clear. While the above was
> there before, ...
> 
> > +  {AARCH64_FEATURE (SVE), AARCH64_FEATURE (SVE_SME2p2)},
> 
> ... this strikes me as particularly odd: Why would enabling SVE imply
> anything SME-ish? (Which isn't to say this is the only - pre-existing or
> new - entry I don't understand.)
> 
> >    {AARCH64_FEATURE (SME), AARCH64_FEATURE (SVE2p1_SME)},
> > -  {AARCH64_FEATURE (SME2), AARCH64_FEATURE (SVE2p1_SME2)},
> >    {AARCH64_FEATURE (SVE2), AARCH64_FEATURE (SVE2_SME2)},
> > -  {AARCH64_FEATURE (SME2), AARCH64_FEATURE (SVE2_SME2)},
> > +  {AARCH64_FEATURE (SME2), AARCH64_FEATURES (2, SVE2_SME2, SVE2p1_SME2)},
> 
> This looks to be merely consolidation of two entries into one, i.e.
> unrelated to the purpose of the patch. Sadly the patch's description is
> empty altogether; such extra, unrelated changes imo want mentioning
> there (alongside anything pertaining to the main changes being made),
> if nothing else to make clear they're deliberate and not done by mistake.
> 
> Jan

Thanks - I'll split the reordering/combining into a separate patch.
Alice


More information about the Binutils mailing list