Building gcc -DHAVE_CONFIG_H -I. -I../../.. -I../../.. -I../../../include -I../../../coregrind -I../../../include -I../../../VEX/pub -I../../../VEX/pub -DVGA_ppc64le=1 -DVGO_linux=1 -DVGP_ppc64le_linux=1 -DVGPV_ppc64le_linux_vanilla=1 -Winline -Wall -Wshadow -Wno-long-long -g -fno-stack-protector -m64 -Wl,-z,norelro -Winline -Wall -O -g -mregnames -m64 -DHAS_ALTIVEC -maltivec -MT jm_insns-jm-insns.o -MD -MP -MF .deps/jm_insns-jm-insns.Tpo -c -o jm_insns-jm-insns.o `test -f 'jm-insns.c' || echo './'`jm-insns.c /tmp/ccub8B9V.s: Assembler messages: /tmp/ccub8B9V.s:7810: Warning: invalid register expression /tmp/ccub8B9V.s:7865: Warning: invalid register expression /tmp/ccub8B9V.s:7882: Warning: invalid register expression /tmp/ccub8B9V.s:8899: Warning: invalid register expression /tmp/ccub8B9V.s:8958: Warning: invalid register expression /tmp/ccub8B9V.s:8975: Warning: invalid register expression /tmp/ccub8B9V.s:9270: Warning: invalid register expression /tmp/ccub8B9V.s:9321: Warning: invalid register expression /tmp/ccub8B9V.s:9338: Warning: invalid register expression /tmp/ccub8B9V.s:9612: Warning: invalid register expression /tmp/ccub8B9V.s:9649: Warning: invalid register expression /tmp/ccub8B9V.s:9666: Warning: invalid register expression /tmp/ccub8B9V.s:9914: Warning: invalid register expression /tmp/ccub8B9V.s:9965: Warning: invalid register expression /tmp/ccub8B9V.s:9982: Warning: invalid register expression /tmp/ccub8B9V.s:10234: Warning: invalid register expression /tmp/ccub8B9V.s:10292: Warning: invalid register expression /tmp/ccub8B9V.s:10309: Warning: invalid register expression /tmp/ccub8B9V.s:10605: Warning: invalid register expression /tmp/ccub8B9V.s:10656: Warning: invalid register expression /tmp/ccub8B9V.s:10673: Warning: invalid register expression /tmp/ccub8B9V.s:11860: Warning: invalid register expression /tmp/ccub8B9V.s:11911: Warning: invalid register expression /tmp/ccub8B9V.s:12397: Warning: invalid register expression /tmp/ccub8B9V.s:12441: Warning: invalid register expression /tmp/ccub8B9V.s:12458: Warning: invalid register expression /tmp/ccub8B9V.s:12849: Warning: invalid register expression /tmp/ccub8B9V.s:12900: Warning: invalid register expression /tmp/ccub8B9V.s:12917: Warning: invalid register expression /tmp/ccub8B9V.s:13197: Warning: invalid register expression /tmp/ccub8B9V.s:13234: Warning: invalid register expression /tmp/ccub8B9V.s:13251: Warning: invalid register expression /tmp/ccub8B9V.s:13721: Warning: invalid register expression /tmp/ccub8B9V.s:13765: Warning: invalid register expression /tmp/ccub8B9V.s:13782: Warning: invalid register expression /tmp/ccub8B9V.s:18346: Warning: invalid register expression /tmp/ccub8B9V.s:18390: Warning: invalid register expression /tmp/ccub8B9V.s:18407: Warning: invalid register expression /tmp/ccub8B9V.s:18832: Warning: invalid register expression /tmp/ccub8B9V.s:18872: Warning: invalid register expression /tmp/ccub8B9V.s:18889: Warning: invalid register expression mv -f .deps/jm_insns-jm-insns.Tpo .deps/jm_insns-jm-insns.Po The testcase also fails: jm-vmx: valgrind ./jm-insns -a *** jm-vmx failed (stdout) *** The warnings are about mfvscr %r10 and vor %r6. Which come from the following asm statements: __asm__ __volatile__ ("mfvscr %0" : "=vr" (tmpvscr)); __asm__ __volatile__ ("vor %0,17,17" : "=vr" (vec_out)); It looks to me that the constraints are wrong on those. The "=vr" should probably be "=v".
Created attachment 116713 [details] none/tests/ppc64/jm-insns.diff This changes all the constriants for mfvscr and vor from "=vr" to "=v". This makes jm-insns.c compile without warnings and the tests now passes for me.
After discussion on irc I committed this: commit a0d97e88ec6d71239d30a5a4b2b129e094150873 Author: Mark Wielaard <mark@klomp.org> Date: Thu Dec 6 20:52:22 2018 +0100 Bug 401822 Fix asm constraints for ppc64 jm-vmx jm-insns.c test. The mfvscr and vor instructions in jm-insns.c had a "=vr" constraint. This should have been an "=v" constraint. This resolved assembler warnings and the testcase failing on ppc64le with gcc 8.2 and binutils 2.30.