re PR tree-optimization/9814 (gcc fails to optimise if (l&2) l|=2 away)
PR tree-optimization/9814
* ifcvt.c (noce_emit_move_insn): If we fail to recognize the move
instruction, add the necessary clobbers by re-expanding the RTL
for arithmetic operations via optab.c's expand_unop/expand_binop.
(noce_try_bitop): New function to optimize bit manipulation idioms
of the form "if (x & C) x = x op C" and "if (!(x & C) x = x op C".
(noce_process_if_block): Call noce_try_bitop.