https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71077
--- Comment #6 from patrick at parcs dot ath.cx --- On Fri, 12 Aug 2016, ysrumyan at gmail dot com wrote: > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71077 > > Yuri Rumyantsev <ysrumyan at gmail dot com> changed: > > What |Removed |Added > ---------------------------------------------------------------------------- > CC| |ysrumyan at gmail dot com > > --- Comment #5 from Yuri Rumyantsev <ysrumyan at gmail dot com> --- > We found out that after r235653 with minor change of int->bool type 176.gcc > still RF on HSW machine in 32-bit if opt level equal 3. If we turn off VRP > phase by -fno-tree-vrp option benchmark is passed. Need to understand why this > simplification affects on it. My only guess is that the combining step still doesn't handle VECTOR_CSTs correctly. Could you please check if this patch fixes the runtime failure? diff --git a/gcc/tree-ssa-threadedge.c b/gcc/tree-ssa-threadedge.c index 170e456..0db7bda 100644 --- a/gcc/tree-ssa-threadedge.c +++ b/gcc/tree-ssa-threadedge.c @@ -577,6 +577,7 @@ simplify_control_stmt_condition_1 (edge e, if (handle_dominating_asserts && (cond_code == EQ_EXPR || cond_code == NE_EXPR) && TREE_CODE (op0) == SSA_NAME + && INTEGRAL_TYPE_P (TREE_TYPE (op0)) && integer_zerop (op1)) { gimple *def_stmt = SSA_NAME_DEF_STMT (op0);