[Bug target/50762] ICE: in extract_insn, at recog.c:2137 (unrecognizable insn) with -mavx2 and __builtin_shuffle
regehr at cs dot utah.edu
gcc-bugzilla@gcc.gnu.org
Tue Nov 8 05:23:00 GMT 2011
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50762
John Regehr <regehr at cs dot utah.edu> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |regehr at cs dot utah.edu
--- Comment #1 from John Regehr <regehr at cs dot utah.edu> 2011-11-08 04:30:50 UTC ---
Same crash, but with vanilla compiler flags and only vanilla C code in the test
case:
[regehr@gamow tmp048]$ current-gcc -O small.c
small.c: In function 'func_59':
small.c:48:1: error: unrecognizable insn:
(insn 29 28 30 3 (set (reg:DI 0 ax [78])
(zero_extend:DI (const_int 1 [0x1]))) small.c:35 -1
(expr_list:REG_DEAD (reg/v:SI 59 [ p_60 ])
(nil)))
small.c:48:1: internal compiler error: in extract_insn, at recog.c:2137
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.
[regehr@gamow tmp048]$ current-gcc -v
Using built-in specs.
COLLECT_GCC=current-gcc
COLLECT_LTO_WRAPPER=/uusoc/exports/scratch/regehr/z/compiler-install/gcc-r181147-install/bin/../libexec/gcc/x86_64-unknown-linux-gnu/4.7.0/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: ../configure --with-libelf=/usr/local --enable-lto
--prefix=/home/regehr/z/compiler-install/gcc-r181147-install
--program-prefix=r181147- --enable-languages=c,c++
Thread model: posix
gcc version 4.7.0 20111108 (experimental) (GCC)
[regehr@gamow tmp048]$ cat small.c
int
func_2 (int si1, int si2)
{
return 0;
}
short
func_9 (int si1, int si2)
{
return 0;
}
int g_92;
int g_97;
int g_159;
int g_210;
int g_242;
int g_281;
int
func_59 (unsigned p_60)
{
int l_61[][1][1] = {
};
lbl_348:for (p_60 = 0; p_60 <= 1; p_60 += 1)
{
int l_65[][1] = {
0, 0, 0, 0, 0, 0, 0, 0, 0, 0x87D1
};
int l_243;
for (;;)
{
l_243 = func_9 (0, 0) == l_65[4][5];
if (l_243)
break;
return l_61[p_60 + 1][0][0];
}
}
for (;;)
{
if (p_60)
continue;
for (;; g_281 = 0)
if (l_61[0][0][0] = g_92)
if (func_2 (l_61[0][g_159][0] | g_210, g_97))
if (g_242)
goto lbl_348;
}
}
int
main ()
{
return 0;
}
More information about the Gcc-bugs
mailing list