This patch refactors 'noce_try_store_flag_constants' a bit to make it easier to reason about. The function contains two series of conditions, and each branch of the second series corresponds to one or two branches of the first series. The patch introduces a new enumeration strategy_t instead and uses it to select the correct branch. Also, ISTM that the last 'else' branch is unreachable. Bootstrapped and regtested on x86_64-linux. OK for trunk? -- Regards, Mikhail Maltsev gcc/ChangeLog: 2016-05-23 Mikhail Maltsev * ifcvt.c (noce_try_store_flag_constants): Refactor.