https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118140
--- Comment #13 from Robin Dapp <rdapp at gcc dot gnu.org> --- (In reply to Andrew Pinski from comment #11) > I see sometimes we check the return value of maybe_resimplify_conditional_op > and sometimes does not. > > E.g. in try_conditional_simplification we don't check the return value there > and that might be the issue. > > We do check it gimple_resimplify[123] for the non-constant case though (the > constant case maybe should assert it returns true). I think for the case here maybe_resimplify_conditional_op returns true either way because we did a successful simplification. The re-simplification is done "optionally" after a previous simplification was applied so whether it does something or not shouldn't affect correctness. It does affect correctness, at least in the scalar case, though, because of /* If the "then" value is a gimple value and the "else" value matters, create a VEC_COND_EXPR between them, then see if it can be further simplified. */ so the conditional would just be optimized away if we didn't do this particular re-conditionalization. Thanks for the aarch64 testcase, I can add it to the patch. The #if 0 shouldn't be necessary, right?