https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71733
Peter Bergner <bergner at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |ASSIGNED Last reconfirmed| |2016-07-02 Assignee|unassigned at gcc dot gnu.org |bergner at gcc dot gnu.org Target Milestone|--- |7.0 Ever confirmed|0 |1 --- Comment #2 from Peter Bergner <bergner at gcc dot gnu.org> --- Confirmed. Here's a minimal test case. With -mno-vsx, we should be disabling direct move, which we don't seem to be doing. bergner@genoa:~/gcc/BUGS/sawdey/altivec$ cat bug.i typedef __attribute__((altivec(vector__))) unsigned char vec_t; vec_t foo (vec_t src) { return src; } bergner@genoa:~/gcc/BUGS/sawdey/altivec$ /home/bergner/gcc/build/gcc-fsf-mainline-debug/gcc/xgcc -B/home/bergner/gcc/build/gcc-fsf-mainline-debug/gcc/ -O0 -mcpu=power9 -mno-vsx -S bug.i bug.i: In function ‘foo’: bug.i:6:1: error: insn does not satisfy its constraints: } ^ (insn 18 24 30 (set (mem/c:V16QI (plus:DI (reg/f:DI 31 31) (const_int 48 [0x30])) [0 S16 A128]) (reg:V16QI 79 2 [ src ])) bug.i:4 1205 {*altivec_movv16qi} (nil)) bug.i:6:1: internal compiler error: in extract_constrain_insn_cached, at recog.c:2223 0x10c46563 _fatal_insn(char const*, rtx_def const*, char const*, int, char const*) /home/bergner/gcc/gcc-fsf-mainline-base/gcc/rtl-error.c:108 0x10c465ff _fatal_insn_not_found(rtx_def const*, char const*, int, char const*) /home/bergner/gcc/gcc-fsf-mainline-base/gcc/rtl-error.c:119 0x10bc9e1f extract_constrain_insn_cached(rtx_insn*) /home/bergner/gcc/gcc-fsf-mainline-base/gcc/recog.c:2223 0x114b259f insn_default_length(rtx_insn*) /home/bergner/gcc/gcc-fsf-mainline-base/gcc/config/rs6000/rs6000.md:6424 0x1073866f shorten_branches(rtx_insn*) /home/bergner/gcc/gcc-fsf-mainline-base/gcc/final.c:1184 0x10741eff rest_of_handle_shorten_branches /home/bergner/gcc/gcc-fsf-mainline-base/gcc/final.c:4537 0x10741fbf execute /home/bergner/gcc/gcc-fsf-mainline-base/gcc/final.c:4566