On Mon, 2023-08-14 at 16:57 +0800, Yujie Yang wrote: > On Mon, Aug 14, 2023 at 04:49:11PM +0800, Xi Ruoyao wrote: > > On Mon, 2023-08-14 at 16:44 +0800, Yujie Yang wrote: > > > I assume we all want: > > > > > > (1) -mlasx -mlsx -> enable LSX and LASX > > > (2) -mlasx -mno-lsx -> disable LSX and LASX > > > (3) -mno-lsx -mlasx -> enable LSX and LASX > > > > Yes. > > > > > Unless we declare -mlsx / -mlasx as driver deferred, AFAIK there is no > > > other way for > > > us to know the actual order of appearnce of all -m[no-]l[a]sx options on > > > the command > > > line. All we know from GCC's option system would be a final on/off state > > > of "lsx" > > > and a final on/off state of "lasx". > > > > But x86 does this correct; > > > > $ echo __AVX__ + __AVX2__ | LANG= cpp -E -mno-avx -mavx2 > > # 0 "<stdin>" > > # 0 "<built-in>" > > # 0 "<command-line>" > > # 1 "/usr/include/stdc-predef.h" 1 3 4 > > # 0 "<command-line>" 2 > > # 1 "<stdin>" > > 1 + 1 > > > > so there must be a way to handle this... > > > > -- > > Xi Ruoyao <xry...@xry111.site> > > School of Aerospace Science and Technology, Xidian University > > Emm... What happens if you reverse the order? > > $ echo __AVX__ + __AVX2__ | LANG= cpp -E -mavx2 -mno-avx > > Anyways, I believe there may be other ways to implement this, but it would > require equally much effort (or even much more) that the current approach. > Especially considering the possiblity of future updates -- we now have a > framework for this sort of things. > > Meanwhile you confortably can stay away from -msimd= and use only > -mlsx / -mlasx. So...a matter of style maybe?
I'm OK with that, but we need to document it clearly in invoke.texi. -- Xi Ruoyao <xry...@xry111.site> School of Aerospace Science and Technology, Xidian University