http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46153
Summary: [4.5/4.6 Regression] ICE: in extract_insn, at recog.c:2110 (unrecognizable insn) with -ffloat-store and __builtin_ia32_movlhps Product: gcc Version: 4.6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: unassig...@gcc.gnu.org ReportedBy: zso...@seznam.cz ----- testcase.c ----- typedef float v4sf __attribute__ ((__vector_size__ (16))); v4sf foo (v4sf a) { return __builtin_ia32_movlhps (a, a); } ---------------------- Similiar to PR46098, but in this case __builtin_ia32_movlhps() causes a failure. Compiler output: $ gcc -ffloat-store testcase.c testcase.c: In function 'foo': testcase.c:6:1: error: unrecognizable insn: (insn 7 6 8 3 (set (mem/c/i:V4SF (plus:DI (reg/f:DI 54 virtual-stack-vars) (const_int -16 [0xfffffffffffffff0])) [0 D.2684+0 S16 A128]) (vec_select:V4SF (vec_concat:V8SF (reg:V4SF 60) (reg:V4SF 60)) (parallel [ (const_int 0 [0]) (const_int 1 [0x1]) (const_int 4 [0x4]) (const_int 5 [0x5]) ]))) testcase.c:5 -1 (nil)) testcase.c:6:1: internal compiler error: in extract_insn, at recog.c:2110 Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions. Tested revisions: r165885 - fail 4.5 r165781 - fail 4.4 r165754 - OK