Here are the bitwise operators. Note that combinations of signed and unsigned types lead to promotion to larger types. I don't think that is right, especially as the high bits will be zeroed anyway when the unsigned number is sign extended. Note also the object type used to promote the 'Q' (unsigned long long) type. On my machine i and l are the same precision, but different c-types, so it would also make me feel better if the rows/cols for l,L used the same types, making the functions symmetric in the arguments.

bitwise_and
not symmetric
in1       ?  , b  , B  , h  , H  , i  , I  , l  , L  , q  , Q  , f  , d  , g  , F  , D  , G  ,
        --------------------------------------------------------------------------------------
in2  ?  | ?  , b  , B  , h  , H  , i  , I  , i  , I  , q  , Q  , err, err, err, err, err, err,
in2  b  | b  , b  , h  , h  , i  , i  , q  , i  , q  , q  , O  , err, err, err, err, err, err,
in2  B  | B  , h  , B  , h  , H  , i  , I  , i  , I  , q  , Q  , err, err, err, err, err, err,
in2  h  | h  , h  , h  , h  , i  , i  , q  , i  , q  , q  , O  , err, err, err, err, err, err,
in2  H  | H  , i  , H  , i  , H  , i  , I  , i  , I  , q  , Q  , err, err, err, err, err, err,
in2  i  | i  , i  , i  , i  , i  , i  , q  , i  , q  , q  , O  , err, err, err, err, err, err,
in2  I  | I  , q  , I  , q  , I  , q  , I  , q  , I  , q  , Q  , err, err, err, err, err, err,
in2  l  | l  , l  , l  , l  , l  , l  , q  , l  , q  , q  , O  , err, err, err, err, err, err,
in2  L  | L  , q  , L  , q  , L  , q  , L  , q  , L  , q  , Q  , err, err, err, err, err, err,
in2  q  | q  , q  , q  , q  , q  , q  , q  , q  , q  , q  , O  , err, err, err, err, err, err,
in2  Q  | Q  , O  , Q  , O  , Q  , O  , Q  , O  , Q  , O  , Q  , err, err, err, err, err, err,
in2  f  | err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, err,
in2  d  | err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, err,
in2  g  | err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, err,
in2  F  | err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, err,
in2  D  | err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, err,
in2  G  | err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, err,

bitwise_or
not symmetric
in1       ?  , b  , B  , h  , H  , i  , I  , l  , L  , q  , Q  , f  , d  , g  , F  , D  , G  ,
        --------------------------------------------------------------------------------------
in2  ?  | ?  , b  , B  , h  , H  , i  , I  , i  , I  , q  , Q  , err, err, err, err, err, err,
in2  b  | b  , b  , h  , h  , i  , i  , q  , i  , q  , q  , O  , err, err, err, err, err, err,
in2  B  | B  , h  , B  , h  , H  , i  , I  , i  , I  , q  , Q  , err, err, err, err, err, err,
in2  h  | h  , h  , h  , h  , i  , i  , q  , i  , q  , q  , O  , err, err, err, err, err, err,
in2  H  | H  , i  , H  , i  , H  , i  , I  , i  , I  , q  , Q  , err, err, err, err, err, err,
in2  i  | i  , i  , i  , i  , i  , i  , q  , i  , q  , q  , O  , err, err, err, err, err, err,
in2  I  | I  , q  , I  , q  , I  , q  , I  , q  , I  , q  , Q  , err, err, err, err, err, err,
in2  l  | l  , l  , l  , l  , l  , l  , q  , l  , q  , q  , O  , err, err, err, err, err, err,
in2  L  | L  , q  , L  , q  , L  , q  , L  , q  , L  , q  , Q  , err, err, err, err, err, err,
in2  q  | q  , q  , q  , q  , q  , q  , q  , q  , q  , q  , O  , err, err, err, err, err, err,
in2  Q  | Q  , O  , Q  , O  , Q  , O  , Q  , O  , Q  , O  , Q  , err, err, err, err, err, err,
in2  f  | err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, err,
in2  d  | err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, err,
in2  g  | err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, err,
in2  F  | err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, err,
in2  D  | err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, err,
in2  G  | err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, err,

bitwise_xor
not symmetric
in1       ?  , b  , B  , h  , H  , i  , I  , l  , L  , q  , Q  , f  , d  , g  , F  , D  , G  ,
        --------------------------------------------------------------------------------------
in2  ?  | ?  , b  , B  , h  , H  , i  , I  , i  , I  , q  , Q  , err, err, err, err, err, err,
in2  b  | b  , b  , h  , h  , i  , i  , q  , i  , q  , q  , O  , err, err, err, err, err, err,
in2  B  | B  , h  , B  , h  , H  , i  , I  , i  , I  , q  , Q  , err, err, err, err, err, err,
in2  h  | h  , h  , h  , h  , i  , i  , q  , i  , q  , q  , O  , err, err, err, err, err, err,
in2  H  | H  , i  , H  , i  , H  , i  , I  , i  , I  , q  , Q  , err, err, err, err, err, err,
in2  i  | i  , i  , i  , i  , i  , i  , q  , i  , q  , q  , O  , err, err, err, err, err, err,
in2  I  | I  , q  , I  , q  , I  , q  , I  , q  , I  , q  , Q  , err, err, err, err, err, err,
in2  l  | l  , l  , l  , l  , l  , l  , q  , l  , q  , q  , O  , err, err, err, err, err, err,
in2  L  | L  , q  , L  , q  , L  , q  , L  , q  , L  , q  , Q  , err, err, err, err, err, err,
in2  q  | q  , q  , q  , q  , q  , q  , q  , q  , q  , q  , O  , err, err, err, err, err, err,
in2  Q  | Q  , O  , Q  , O  , Q  , O  , Q  , O  , Q  , O  , Q  , err, err, err, err, err, err,
in2  f  | err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, err,
in2  d  | err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, err,
in2  g  | err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, err,
in2  F  | err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, err,
in2  D  | err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, err,
in2  G  | err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, err, err,

Chuck