https://gcc.gnu.org/bugzilla/show_bug.cgi?id=114197
Bug ID: 114197 Summary: [14] middle-end: ICE in verify_dominators Product: gcc Version: 14.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: middle-end Assignee: unassigned at gcc dot gnu.org Reporter: ewlu at rivosinc dot com Target Milestone: --- Tested with riscv and x86_64 godbolt: https://godbolt.org/z/EvWj99d4b #pragma pack(push) struct a { volatile signed b : 8; }; #pragma pack(pop) int c; static struct a d = {5}; void e() { f: for (c = 8; c < 55; ++c) if (!d.b) goto f; } testcase.c: In function 'e': testcase.c:8:6: error: dominator of 7 should be 3, not 9 8 | void e() { | ^ during GIMPLE pass: vect dump file: testcase.c.179t.vect testcase.c:8:6: internal compiler error: in verify_dominators, at dominance.cc:1194 0xa0954c verify_dominators(cdi_direction) ../../../gcc/gcc/dominance.cc:1194 0x15e7ed1 checking_verify_dominators(cdi_direction) ../../../gcc/gcc/dominance.h:76 0x15e7ed1 slpeel_tree_duplicate_loop_to_edge_cfg(loop*, edge_def*, loop*, edge_def*, edge_def*, edge_def**, bool, vec<basic_block_def*, va_heap, vl_ptr>*) ../../../gcc/gcc/tree-vect-loop-manip.cc:1945 0x15ea20a vect_do_peeling(_loop_vec_info*, tree_node*, tree_node*, tree_node**, tree_node**, tree_node**, int, bool, bool, tree_node**) ../../../gcc/gcc/tree-vect-loop-manip.cc:3426 0x15d982e vect_transform_loop(_loop_vec_info*, gimple*) ../../../gcc/gcc/tree-vect-loop.cc:11935 0x161f981 vect_transform_loops ../../../gcc/gcc/tree-vectorizer.cc:1006 0x16200f3 try_vectorize_loop_1 ../../../gcc/gcc/tree-vectorizer.cc:1152 0x16200f3 try_vectorize_loop ../../../gcc/gcc/tree-vectorizer.cc:1182 0x162077c execute ../../../gcc/gcc/tree-vectorizer.cc:1298