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: [email protected]
ReportedBy: [email protected]
----- 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