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

Reply via email to