It's probably quite invalid use, but: $ ./xgcc -B. /home/marxin/Programming/gcc/gcc/testsuite/gcc.target/powerpc/builtins-2.c -mno-direct-move -Ofast -mmodulo -c during RTL pass: final /home/marxin/Programming/gcc/gcc/testsuite/gcc.target/powerpc/builtins-2.c: In function ‘main’: /home/marxin/Programming/gcc/gcc/testsuite/gcc.target/powerpc/builtins-2.c:92:1: internal compiler error: in output_1257, at config/rs6000/vsx.md:3252 } ^ 0x119fe4eb output_1257 ../../gcc/config/rs6000/vsx.md:3252 0x10862d3f get_insn_template(int, rtx_def*) ../../gcc/final.c:2139 0x1086572b final_scan_insn_1 ../../gcc/final.c:3105 0x10865d43 final_scan_insn(rtx_insn*, _IO_FILE*, int, int, int*) ../../gcc/final.c:3218 0x10862a63 final_1 ../../gcc/final.c:2088 0x10869d4f rest_of_handle_final ../../gcc/final.c:4671 0x1086a26f execute ../../gcc/final.c:4745
Confirmed. Any 64-bit target, -mcpu=power9 -mno-direct-move .
Author: segher Date: Sat Apr 14 21:13:20 2018 New Revision: 259386 URL: https://gcc.gnu.org/viewcvs?rev=259386&root=gcc&view=rev Log: rs6000: Disable -m[no-]direct-move (PR85293) The -mno-direct-move option causes a lot of problems, since it forces us to be able to generate code for p8 and up with some crucial instructions missing. This patch removes the -m[no-]direct-move options so that the user cannot put us into this unexpected situation anymore. Internally we still have all the same flags, and they are automatically set based on -mcpu; getting rid of that is a lot more work and will have to wait for GCC 9 (in some places the flag is used to see if we are compiling for a p8 _at all_). PR target/85293 * config/rs6000/rs6000.opt (mdirect-move): Make deprecated. * doc/invoke.texi (RS/6000 and PowerPC Options): Remove -mdirect-move and -mno-direct-move. gcc/testsuite/ PR target/85293 * gcc.target/powerpc/pr80098-2.c: Remove -mdirect-move. Remove the corresponding dg-error clause. * gcc.target/powerpc/pr80098-3.c: Ditto. * gcc.target/powerpc/pr80103-1.c: Delete. Removed: trunk/gcc/testsuite/gcc.target/powerpc/pr80103-1.c Modified: trunk/gcc/ChangeLog trunk/gcc/config/rs6000/rs6000.opt trunk/gcc/doc/invoke.texi trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/gcc.target/powerpc/pr80098-2.c trunk/gcc/testsuite/gcc.target/powerpc/pr80098-3.c
Fixed.