anchor.diff:  	_ -> To0
       end.
   
  -shortcut_select_label(To0, Reg, Val, D) ->
  -    case beam_utils:code_at(To0, D) of
  - 	[{jump,{f,To}}|_] ->
  - 	    shortcut_select_label(To, Reg, Val, D);
  -	[{test,is_atom,_,[Reg]},{select,select_val,Reg,{f,Fail},Map}|_] ->
  -	    To = find_select_val(Map, Val, Fail),
  -	    shortcut_select_label(To, Reg, Val, D);
  -  	[{test,is_eq_exact,{f,_},[Reg,{atom,Val}]},{label,To}|_] when is_atom(Val) ->
  -	    shortcut_select_label(To, Reg, Val, D);
  -  	[{test,is_eq_exact,{f,_},[Reg,{atom,Val}]},{jump,{f,To}}|_] when is_atom(Val) ->
  -	    shortcut_select_label(To, Reg, Val, D);
  -  	[{test,is_eq_exact,{f,To},[Reg,{atom,AnotherVal}]}|_]
  -	when is_atom(Val), Val =/= AnotherVal ->
  -	    shortcut_select_label(To, Reg, Val, D);
  -  	[{test,is_ne_exact,{f,To},[Reg,{atom,Val}]}|_] when is_atom(Val) ->
  -	    shortcut_select_label(To, Reg, Val, D);
  -  	[{test,is_ne_exact,{f,_},[Reg,{atom,_}]},{label,To}|_] when is_atom(Val) ->
  -	    shortcut_select_label(To, Reg, Val, D);
  -	[{test,is_tuple,{f,To},[Reg]}|_] when is_atom(Val) ->
  -	    shortcut_select_label(To, Reg, Val, D);
  -	_ ->
  -	    To0
  -    end.
  -
  -shortcut_fail_label(To0, Reg, Val, D) ->
  -    case beam_utils:code_at(To0, D) of
  - 	[{jump,{f,To}}|_] ->
  -	    shortcut_fail_label(To, Reg, Val, D);
  -  	[{test,is_eq_exact,{f,To},[Reg,{atom,Val}]}|_] when is_atom(Val) ->
  -	    shortcut_fail_label(To, Reg, Val, D);
  -	_ ->
  -	    To0
  -    end.
  -
  -shortcut_boolean_label(To0, Reg, Bool0, D) when is_boolean(Bool0) ->
  +shortcut_select_label(To, Reg, Lit, D) ->
  +    shortcut_rel_op(To, is_ne_exact, [Reg,Lit], D).
  +
  +shortcut_boolean_label(To0, Reg, {atom,Bool0}=Lit, D) when is_boolean(Bool0) ->
       case beam_utils:code_at(To0, D) of
   	[{line,_},{bif,'not',_,[Reg],Reg},{jump,{f,To}}|_] ->
  -	    Bool = not Bool0,
  +	    Bool = {atom,not Bool0},
   	    {shortcut_select_label(To, Reg, Bool, D),Bool};
   	_ ->
  -	    {To0,Bool0}
  +	    {To0,Lit}
       end;
   shortcut_boolean_label(To, _, Bool, _) -> {To,Bool}.
   
  -find_select_val([{_,Val},{f,To}|_], Val, _) -> To;
  -find_select_val([{_,_}, {f,_}|T], Val, Fail) ->
  -    find_select_val(T, Val, Fail);
  -find_select_val([], _, Fail) -> Fail.
  -
   replace_comp_op(To, Reg, Op, Ops, D) ->
  -    False = comp_op_find_shortcut(To, Reg, false, D),
  -    True = comp_op_find_shortcut(To, Reg, true, D),
  +    False = comp_op_find_shortcut(To, Reg, {atom,false}, D),
  +    True = comp_op_find_shortcut(To, Reg, {atom,true}, D),
       [bif_to_test(Op, Ops, False),{jump,{f,True}}].
   
   comp_op_find_shortcut(To0, Reg, Val, D) ->
  
positive.code: equal_ops([], []) -> true;
  equal_ops(_, _) -> false.
      
  shortcut_select_list([{_,Val}=Lit,{f,To0}|T], Reg, D, Acc) ->
      To = shortcut_select_label(To0, Reg, Val, D),
      shortcut_select_list(T, Reg, D, [{f,To},Lit|Acc]);
  shortcut_select_list([], _, _, Acc) -> reverse(Acc).
  
  
negative.code: backward([{test,bs_start_match2,{f,To0},Live,[Src|_]=Info,Dst}|Is], D, Acc) ->
      To = shortcut_bs_start_match(To0, Src, D),
      I = {test,bs_start_match2,{f,To},Live,Info,Dst},
      backward(Is, D, [I|Acc]);
  backward([{test,Op,{f,To0},Ops0}|Is], D, Acc) ->
      To1 = shortcut_bs_test(To0, Is, D),
  