ICE on gcc 4.0.0rc2, but both 3.3.5 and 3.4.3 work. $ /usr/local/gcc-4.0/bin/g++ -c -O2 -funroll-loops -march=pentium4 3.cpp 3.cpp: In function 'void f()': 3.cpp:29: error: could not find a spill register (insn:HI 95 94 96 0 (set (reg:V4HI 29 mm0 [orig:115 D.2920 ] [115]) (vec_duplicate:V4HI (truncate:HI (subreg:SI (reg:HI 111 [ B ]) 0)))) 817 {*vec_dupv4hi} (insn_list:REG_DEP_TRUE 88 (nil)) (expr_list:REG_DEAD (reg:HI 111 [ B ]) (nil))) 3.cpp:29: internal compiler error: in failed_reload, at reload1.c:4982
-- Summary: ICE: could not find a spill register on MMX intrinsics Product: gcc Version: 4.0.0 Status: UNCONFIRMED Severity: normal Priority: P2 Component: target AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: jochang at gmail dot com CC: gcc-bugs at gcc dot gnu dot org GCC build triplet: i686-pc-linux-gnu GCC host triplet: i686-pc-linux-gnu GCC target triplet: i686-pc-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21101