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.

Reply via email to