typedef double __v2df __attribute__ ((__vector_size__ (16))); typedef long long __v2di __attribute__ ((__vector_size__ (16)));
__v2df foo (__v2df X, __v2df Y, __v2di C) { return __builtin_ia32_vpermil2pd (X, Y, C, 1); } -O2 -mavx results in: /usr/src/gcc/obj/gcc/a.c: In function 'foo': /usr/src/gcc/obj/gcc/a.c:8:1: error: unrecognizable insn: (insn 8 7 9 3 /usr/src/gcc/obj/gcc/a.c:7 (set (reg:V2DF 63) (unspec:V2DF [ (reg/v:V2DF 60 [ X ]) (reg/v:V2DF 61 [ Y ]) (reg/v:V2DI 62 [ C ]) (const_int 1 [0x1]) ] 168)) -1 (nil)) /usr/src/gcc/obj/gcc/a.c:8:1: internal compiler error: in extract_insn, at recog.c:2103 Please submit a full bug report, with preprocessed source if appropriate. See <http://gcc.gnu.org/bugs.html> for instructions. -- Summary: ICE with __builtin_ia32_vpermil2p* and -mavx Product: gcc Version: 4.5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: target AssignedTo: jakub at gcc dot gnu dot org ReportedBy: jakub at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43667