[Bug target/59789] [4.9 Regression] ICE in in convert_move, at expr.c:333

hjl.tools at gmail dot com gcc-bugzilla@gcc.gnu.org
Mon Jan 13 17:53:00 GMT 2014


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59789

--- Comment #5 from H.J. Lu <hjl.tools at gmail dot com> ---
A smaller testcase:

[hjl@gnu-6 gcc]$ cat /tmp/x.c
#pragma GCC push_options
#pragma GCC target("sse2")
typedef int __v4si __attribute__ ((__vector_size__ (16)));
typedef long long __m128i __attribute__ ((__vector_size__ (16),
__may_alias__));

extern __inline __m128i __attribute__((__gnu_inline__, __always_inline__,
__artificial__))
_mm_set_epi32 (int __q3, int __q2, int __q1, int __q0)
{
  return __extension__ (__m128i)(__v4si){ __q0, __q1, __q2, __q3 };
}
#pragma GCC pop_options

__m128i
f1(void)
{
  return _mm_set_epi32 (0, 0, 0, 0);
}
[hjl@gnu-6 gcc]$ ./xgcc -B./ -S /tmp/x.c -m32   -O2 -march=i686 
/tmp/x.c: In function ‘f1’:
/tmp/x.c:14:1: warning: SSE vector return without SSE enabled changes the ABI
[enabled by default]
 f1(void)
 ^
/tmp/x.c:7:1: error: inlining failed in call to always_inline ‘_mm_set_epi32’:
target specific option mismatch
 _mm_set_epi32 (int __q3, int __q2, int __q1, int __q0)
 ^
/tmp/x.c:16:24: error: called from here
   return _mm_set_epi32 (0, 0, 0, 0);
                        ^
/tmp/x.c:16:3: internal compiler error: in convert_move, at expr.c:333
   return _mm_set_epi32 (0, 0, 0, 0);
   ^
0x7da639 convert_move(rtx_def*, rtx_def*, int)
    /export/gnu/import/git/gcc/gcc/expr.c:333
0x7e8e77 store_expr(tree_node*, rtx_def*, int, bool)
    /export/gnu/import/git/gcc/gcc/expr.c:5389
0x7e787a expand_assignment(tree_node*, tree_node*, bool)
    /export/gnu/import/git/gcc/gcc/expr.c:5114
0x6e0645 expand_gimple_stmt_1
    /export/gnu/import/git/gcc/gcc/cfgexpand.c:3213
0x6e0a3f expand_gimple_stmt
    /export/gnu/import/git/gcc/gcc/cfgexpand.c:3309
0x6e6e58 expand_gimple_basic_block
    /export/gnu/import/git/gcc/gcc/cfgexpand.c:5149
0x6e88fc gimple_expand_cfg
    /export/gnu/import/git/gcc/gcc/cfgexpand.c:5715
0x6e8f76 execute
    /export/gnu/import/git/gcc/gcc/cfgexpand.c:5935
Please submit a full bug report,
with preprocessed source if appropriate.
Please include the complete backtrace with any bug report.
See <http://gcc.gnu.org/bugs.html> for instructions.
[hjl@gnu-6 gcc]$


More information about the Gcc-bugs mailing list