https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117086
Bug ID: 117086 Summary: [15 Regression] ICE in tree check: expected vector_type, have boolean_type in TYPE_VECTOR_SUBPARTS, at tree.h:4255 Product: gcc Version: 15.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: rguenth at gcc dot gnu.org Target Milestone: --- > ./cc1plus -quiet lra-constraints.ii -O2 -march=znver5 -o /dev/null during GIMPLE pass: forwprop ../../src/gcc/gcc/lra-constraints.cc: In function ‘bool split_reg(bool, int, rtx_insn*, rtx, rtx_insn*)’: ../../src/gcc/gcc/lra-constraints.cc:6111:1: internal compiler error: tree check: expected vector_type, have boolean_type in TYPE_VECTOR_SUBPARTS, at tree.h:4255 6111 | split_reg (bool before_p, int original_regno, rtx_insn *insn, | ^~~~~~~~~ 0x3a92dab internal_error(char const*, ...) ../../src/gcc/gcc/diagnostic-global-context.cc:517 0x20532ec tree_check_failed(tree_node const*, char const*, int, char const*, ...) ../../src/gcc/gcc/tree.cc:9003 0xe61611 tree_check(tree_node const*, char const*, int, char const*, tree_code) ../../src/gcc/gcc/tree.h:3921 0xe9aef1 TYPE_VECTOR_SUBPARTS(tree_node const*) ../../src/gcc/gcc/tree.h:4255 0x1c6f538 verify_gimple_assign_ternary ../../src/gcc/gcc/tree-cfg.cc:4380 0x1c71459 verify_gimple_assign ../../src/gcc/gcc/tree-cfg.cc:4866 forwprop creates a bogus VEC_COND_EXPR: (gdb) p debug_gimple_stmt (stmt) _513 = VEC_COND_EXPR <mask__342.3367_293, 0, 1>; $1 = void (gdb) p rhs1_type $2 = <vector_type 0x7ffff14779d8> (gdb) p lhs_type $3 = <boolean_type 0x7ffff6827b28 bool> (gdb) p gimple_assign_rhs2 (stmt) $4 = (tree_node *) 0x7ffff68205a0 (gdb) p debug_tree ($4) <integer_cst 0x7ffff68205a0 type <boolean_type 0x7ffff6827b28 bool> constant 0>