https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89210
Bug ID: 89210 Summary: [9 Regression] ICE tree check: expected integer_cst, have real_cst in to_wide, at tree.h:5600 Product: gcc Version: 9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: gs...@t-online.de Target Milestone: --- Changed between 20190106 and 20190113 on x86_64-pc-linux-gnu : $ cat z1.c typedef int v4si __attribute__((vector_size (4 * sizeof (int)))); typedef double v4df __attribute__((vector_size (4 * sizeof (double)))); void f (v4df *x) { v4si a = { 1, 2, 3, 4 }; *x = __builtin_convertvector (a, v4df); } $ gcc-9-20190203 -c z1.c -O0 $ gcc-9-20190203 -c z1.c -O2 during RTL pass: expand z1.c: In function 'f': z1.c:6:6: internal compiler error: tree check: expected integer_cst, have real_cst in to_wide, at tree.h:5600 6 | *x = __builtin_convertvector (a, v4df); | ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 0x5d091a tree_check_failed(tree_node const*, char const*, int, char const*, ...) ../../gcc/tree.c:9813 0x65d6d4 tree_check(tree_node const*, char const*, int, char const*, tree_code) ../../gcc/tree.h:3432 0x65d6d4 wi::to_wide(tree_node const*) ../../gcc/tree.h:5600 0xefded1 vector_cst_int_elt(tree_node const*, unsigned int) ../../gcc/tree.c:11076 0xf0f0b4 vector_cst_elt(tree_node const*, unsigned int) ../../gcc/tree.c:11103 0x8abf58 expand_expr_real_1(tree_node*, rtx_def*, machine_mode, expand_modifier, rtx_def**, bool) ../../gcc/expr.c:10107 0x8b6676 store_expr(tree_node*, rtx_def*, int, bool, bool) ../../gcc/expr.c:5649 0x8b7f18 expand_assignment(tree_node*, tree_node*, bool) ../../gcc/expr.c:5432 0x772996 expand_gimple_stmt_1 ../../gcc/cfgexpand.c:3752 0x772996 expand_gimple_stmt ../../gcc/cfgexpand.c:3850 0x775baf expand_gimple_basic_block ../../gcc/cfgexpand.c:5886 0x77bc9e execute ../../gcc/cfgexpand.c:6509