https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101865
--- Comment #10 from Tulio Magno Quites Machado Filho <tuliom at ascii dot art.br> --- (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? These macros should only be used to indicate if a code should be generated. In my opinion, in order to generate a VSX instruction available on POWER8, it would be required to test for both _ARCH_PWR8 and __VSX__. For tests at execution time, it's required to validate what the kernel supports, e.g. using __builtin_cpu_supports().