anchor.diff:           end,
       %% We KNOW that simplify/2 will return a #b_set{} record when called with
       %% a bs_match instruction.
  -    #b_set{} = I3 = simplify(I2, Ts0),
  -    I = beam_ssa:normalize(I3),
  +    #b_set{} = I = simplify(I2, Ts0),
       Ts = update_types(I, Ts0, Ds0),
       Ds = Ds0#{ Dst => I },
       {I, Ts, Ds};
  
positive.code:                dst=Dst}=I0 | Is],
         Ts0, Ds0, Ls, Fdb, Sub, Meta, Acc) ->
      Args = simplify_args(Args0, Ts0, Sub),
      I1 = beam_ssa:normalize(I0#b_set{args=Args}),
  
      [Fun | _] = Args,
      I = case normalized_type(Fun, Ts0) of
  
negative.code:             %% Note that we never simplify args; this instruction is specific
              %% to the operation being checked, and simplifying could break that
              %% connection.
              Ts = Ts0#{ Dst => Type },
              Ds = Ds0#{ Dst => I },
              {I, Ts, Ds}
      end;
  simplify(#b_set{op=bs_match,dst=Dst,args=Args0}=I0, Ts0, Ds0, _Ls, Sub) ->
      Args = simplify_args(Args0, Ts0, Sub),
      I1 = I0#b_set{args=Args},
      I2 = case {Args0,Args} of
               {[_,_,_,#b_var{},_],[Type,Val,Flags,#b_literal{val=all},Unit]} ->
                   %% The size `all` is used for the size of the final binary
  