http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52199
Bug #: 52199 Summary: V2DI vec_duplicate ICE on valid code Classification: Unclassified Product: gcc Version: 4.7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: unassig...@gcc.gnu.org ReportedBy: berg...@gcc.gnu.org GCC ICEs on the reduced test case below: bergner@igoo:~> cat v2di-ice.i struct locale_time_t { const char *abday[7]; const unsigned int *wabday[7]; }; static const unsigned int empty_wstr[1] = { 0 }; void time_read (struct locale_time_t *time) { int cnt; for (cnt=0; cnt < 7; cnt++) { time->abday[cnt] = ""; time->wabday[cnt] = empty_wstr; } } bergner@igoo:~> /home/bergner/gcc/build/gcc-mainline/gcc/xgcc -B/home/bergner/gcc/build/gcc-mainline/gcc -O3 -fmerge-all-constants -mcpu=power7 -S v2di-ice.i v2di-ice.i: In function ‘time_read’: v2di-ice.i:19:1: error: unrecognizable insn: (insn 116 115 117 7 (set (reg:V2DI 234) (vec_duplicate:V2DI (symbol_ref:DI ("empty_wstr") [flags 0x82] <var_decl 0xfff8ff40140 empty_wstr>))) v2di-ice.i:17 -1 (nil)) v2di-ice.i:19:1: internal compiler error: in extract_insn, at recog.c:2123 Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions.