On Fri, Oct 07, 2022 at 04:31:28PM +1100, Michael Ellerman wrote: > "Nicholas Piggin" <npig...@gmail.com> writes: > > On Fri Oct 7, 2022 at 9:23 AM AEST, Segher Boessenkool wrote: > >> On Fri, Oct 07, 2022 at 07:56:09AM +1000, Nicholas Piggin wrote: > >> > On Fri Oct 7, 2022 at 5:54 AM AEST, Segher Boessenkool wrote: > >> > > On Fri, Sep 23, 2022 at 01:30:04PM +1000, Nicholas Piggin wrote: > ... > >> > > > +# No AltiVec or VSX or MMA instructions when building kernel > >> > > > KBUILD_CFLAGS += $(call cc-option,-mno-altivec) > >> > > > KBUILD_CFLAGS += $(call cc-option,-mno-vsx) > >> > > > +KBUILD_CFLAGS += $(call cc-option,-mno-mma) > >> > > > >> > > MMA code is never generated unless the code asks for it explicitly. > >> > > This is fundamental, not just an implementations side effect. > >> > > >> > Well, now it double won't be generated :) > >> > >> Yeah, but there are many other things you can unnecessarily disable as > >> well! :-) > >> > >> VMX and VSX are disabled here because the compiler *will* use those > >> registers if it feels like it (that is, if it thinks that will be > >> faster). MMA is a very different beast: the compiler can never know if > >> it will be faster, to start with. > > > > True, but now I don't have to find the exact clause and have my lawyer > > confirm that it definitely probably won't change in future and break > > things. > > Right. If someone asks "does the kernel ever use MMA instructions?" we > can just point at that line and we have a definite answer. No need to > audit the behaviour of all GCC and Clang versions ever released.
As I said, no sane compiler can use MMA ever (unless asked for it directly of course). But yeah, who knows what clang does! Segher