https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66084
--- Comment #1 from vfdff <zhongyunde at huawei dot com> --- the following try can fix the issue, but need consider the reason why the gcc_assert is added original ? [zhongyunde@linux-root ~/6183_hcc/gcc/gcc-4.7.0/gcc]$svn diff fold-const.c Index: fold-const.c =================================================================== --- fold-const.c (revision 128101) +++ fold-const.c (working copy) @@ -1970,8 +1970,7 @@ return fold_convert_loc (loc, type, fold_build1_loc (loc, REALPART_EXPR, TREE_TYPE (orig), arg)); - gcc_assert (TREE_CODE (orig) == VECTOR_TYPE - && tree_int_cst_equal (TYPE_SIZE (type), TYPE_SIZE (orig))); + gcc_assert (TREE_CODE (orig) == VECTOR_TYPE); return fold_build1_loc (loc, NOP_EXPR, type, arg); case REAL_TYPE: