https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101865
--- Comment #15 from Segher Boessenkool <segher at gcc dot gnu.org> --- (In reply to HaoChen Gui from comment #9) > For this example, let's suppose that we set mcpu=power8 and mno-vsx in the > command line. Thus, _ARCH_PWR8 should be defined as mcpu=power8. But if the > Power8-specific codes contain VSX codes, could the asm be executed? I think > we just use the macro _ARCH_PWR8 here to guard which instructions are > available. Yes, it can be executed just fine. The only thing the compiler -mno-vsx flag does is make the compiler not generate any code that uses the VSRs (or any VSX insns). Whether the program tries to use VSX resources by itself is up to it. The CPU certainly does not think it does not have those insns. The kernel will not think it does not, either. Things will just work, by default anyway.