https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78625
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |aldyh at gcc dot gnu.org Component|rtl-optimization |tree-optimization Target Milestone|--- |7.0 --- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> --- #2 0x0000000001171bdf in pred_neg_p (x1=..., x2=...) at /space/rguenther/src/svn/trunk/gcc/tree-ssa-uninit.c:1488 1488 c2 = invert_tree_comparison (x2.cond_code, false); (gdb) l 1483 || !operand_equal_p (x1.pred_rhs, x2.pred_rhs, 0)) 1484 return false; 1485 1486 c1 = x1.cond_code; 1487 if (x1.invert == x2.invert) 1488 c2 = invert_tree_comparison (x2.cond_code, false); x2.cond_code is BIT_AND_EXPR. Sth like Index: gcc/tree-ssa-uninit.c =================================================================== --- gcc/tree-ssa-uninit.c (revision 243100) +++ gcc/tree-ssa-uninit.c (working copy) @@ -1485,7 +1485,12 @@ pred_neg_p (pred_info x1, pred_info x2) c1 = x1.cond_code; if (x1.invert == x2.invert) - c2 = invert_tree_comparison (x2.cond_code, false); + { + if (TREE_CODE_CLASS (x2.cond_code) == tcc_comparison) + c2 = invert_tree_comparison (x2.cond_code, false); + else + return false; + } else c2 = x2.cond_code; might fix it.