On Tue, Aug 22, 2023 at 10:34 AM Jakub Jelinek <ja...@redhat.com> wrote: > > On Tue, Aug 22, 2023 at 09:36:15AM +0200, Richard Biener via Gcc-patches > wrote: > > I think internally we should have conditional 512bit support work across > > AVX512 and AVX10. > > > > I also think it makes sense to _internally_ have AVX10.1 (10.1!) just > > enable the respective AVX512 features. AVX10.2 would then internally > > cover the ISA extensions added in 10.2 only. Both would reduce the > > redundancy and possibly make providing inter-operation between > > AVX10.1 (10.1!) and AVX512 to the user easier. I see AVX 10.1 (10.1!) > > just as "re-branding" latest AVX512, so we should treat it that way > > (making it an alias to the AVX512 features). > > > > Whether we want allow -mavx10.1 -mno-avx512cd or whether > > we only allow the "positive" -mavx512f -mavx512... (omitting avx512cd) > > is an entirely separate > > question. But I think to not wreck the core idea (more interoperability, > > here between small/big cores) we absolutely have to > > provide a subset of avx10.1 but with disabled 512bit vectors which > > effectively means AVX512 with disabled 512bit support. > > Agreed. And I still think -mevex512 vs. -mno-evex512 is the best option > name to represent whether the effective ISA set allows 512-bit vectors or > not.
Works for me. Note it also implies mask regs are SImode, not DImode, not sure if that relates to evex more than mask reg encodings are all evex ... > I think -mavx10.1 -mno-avx512cd should be fine. And, -mavx10.1-256 > option IMHO should be in the same spirit to all the others a positive > enablement, > not both positive (enable avx512{f,cd,bw,dq,...} and negative (disallow > 512-bit vectors). So, if one uses -mavx512f -mavx10.1-256, because the > former would allow 512-bit vectors, the latter shouldn't disable those again > because it isn't a -mno-* option. Sure, instructions which are specific to > AVX10.1 (aren't present in any currently existing AVX512* ISA set) might be > enabled only in 128/256 bit variants if we differentiate that level. > But, if one uses -mavx2 -mavx10.1-256, because no AVX512* has been enabled > it can enable all the AVX10.1 implied AVX512* parts without EVEX.512. > > Jakub >