On Tue, Aug 22, 2023 at 3:16 PM Jakub Jelinek <ja...@redhat.com> wrote: > > On Tue, Aug 22, 2023 at 09:02:29PM +0800, Hongtao Liu wrote: > > > 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. 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 > > But there's implicit negative (disallow 512-bit vector), I think > > That is wrong. > > > -mav512f -mavx10.1-256 or -mavx10.1-256 -mavx512f shouldn't enable > > 512-bit vector. > > Because then the -mavx10.1-256 option behaves completely differently from > all the other isa options. > > We have the -march= options which are processed separately, but the normal > ISA options either only enable something (when -mwhatever), or only disable > something > (when -mno-whatever). -mavx512f -mavx10.1-256 should be a union of those > ISAs, like say -mavx2 -mbmi is, not an intersection or something even > harder to understand. > > > Further, we should disallow a mix of exex512 and non-evex512 (e.g. > > -mavx10.1-512 -mavx10.2-256),they should be a unified separate switch > > that either disallows both or allows both. Instead of some isa > > allowing it and some isa disallowing it. > > No, it will be really terrible user experience if the new options behave > completely differently from everything else. Because then we'll need to > document it in detail how it behaves and users will have hard time to figure > it out, and specify what it does not just on the command line, but also when > mixing with target attribute or pragmas. -mavx10.1-512 -mavx10.2-256 should > be a union of those two ISAs. Either internally there is an ISA flag whether > the instructions in the avx10.2 ISA but not avx10.1 ISA can operate on > 512-bit vectors or not, in that case -mavx10.1-512 -mavx10.2-256 should > enable the AVX10.1 set including 512-bit vectors + just the < 512-bit > instructions from the 10.1 to 10.2 delta, or if there is no such separation > internally, it will just enable full AVX10.2-512. User has asked for it.
I think having all three -mavx10.1, -mavx10.1-256 and -mavx10.1-512 is just confusing. Please separate ISA (avx10.1) from size. If -m[no-]evex512 isn't good propose something else. -mavx512f will enable 512bits, -mavx10.1 will not unless -mevex512. -mavx512f -mavx512vl -mno-evex512 will disable 512bits. So scrap -mavx10.1-256 and -mavx10.1-512 please. Richard. > Jakub >