https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69969
Bug ID: 69969 Summary: [5.3.0 Regression] Function attribute no-vsx Product: gcc Version: 5.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: cyrilbur at gmail dot com Target Milestone: --- Created attachment 37797 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=37797&action=edit preprocessed file $ powerpc64-buildroot-linux-gnu-gcc -v Using built-in specs. COLLECT_GCC=/scratch/cyrilb/buildroot/builds/be64/host/usr/bin/powerpc64-buildroot-linux-gnu-gcc.br_real COLLECT_LTO_WRAPPER=/scratch/cyrilb/buildroot/builds/be64/host/usr/libexec/gcc/powerpc64-buildroot-linux-gnu/5.3.0/lto-wrapper Target: powerpc64-buildroot-linux-gnu Configured with: ./configure --prefix=/scratch/cyrilb/buildroot/builds/be64/host/usr --sysconfdir=/scratch/cyrilb/buildroot/builds/be64/host/etc --enable-static --target=powerpc64-buildroot-linux-gnu --with-sysroot=/scratch/cyrilb/buildroot/builds/be64/host/usr/powerpc64-buildroot-linux-gnu/sysroot --disable-__cxa_atexit --with-gnu-ld --disable-libssp --disable-multilib --with-gmp=/scratch/cyrilb/buildroot/builds/be64/host/usr --with-mpfr=/scratch/cyrilb/buildroot/builds/be64/host/usr --with-pkgversion='Buildroot 2016.02-rc2-00080-gae4daa3' --with-bugurl=http://bugs.buildroot.net/ --disable-libquadmath --enable-tls --disable-libmudflap --enable-threads --with-mpc=/scratch/cyrilb/buildroot/builds/be64/host/usr --without-isl --without-cloog --disable-decimal-float --with-cpu=power8 --enable-languages=c --with-build-time-tools=/scratch/cyrilb/buildroot/builds/be64/host/usr/powerpc64-buildroot-linux-gnu/bin --enable-shared --disable-libgomp --enable-targets=powerpc64-linux Thread model: posix gcc version 5.3.0 (Buildroot 2016.02-rc2-00080-gae4daa3) Cross compiling (x86 host) for PowerPC64 $ powerpc64-buildroot-linux-gnu-gcc no-vsx-test.c -Wall -Wextra -maltivec -mvsx -save-temps no-vsx-test.c:7:1: error: -mallow-movmisalign requires -mvsx { ^ no-vsx-test.c: In function 'main': no-vsx-test.c:11:14: warning: unused parameter 'argc' [-Wunused-parameter] int main(int argc, char *argv[]) ^ no-vsx-test.c:11:26: warning: unused parameter 'argv' [-Wunused-parameter] int main(int argc, char *argv[]) ^ The issue appears be simply using __attribute__((__target__("no-vsx"))) in order to force the use of Altivec instructions. Both GCC 4.9.x and 5.2.x (despite having different command line requirements) will accept this test case and use the correct facility.