def _dtypes_are_compatible_for_bitwise_ops(args):
    if (len(args) <= 1):
        return True
    is_signed = (lambda dtype: jnp.issubdtype(dtype, onp.signedinteger))
    width = (lambda dtype: jnp.iinfo(dtype).bits)
    (x, y) = args
    if (width(x) > width(y)):
        (x, y) = (y, x)
    return ((is_signed(x) == is_signed(y)) or ((width(x) == 32) and (width(y) == 32)) or ((width(x) == 32) and (width(y) == 64) and is_signed(y)))
def _dtypes_are_compatible_for_bitwise_ops(args):
    if (len(args) <= 1):
        return True
    is_signed = (lambda dtype: jnp.issubdtype(dtype, onp.signedinteger))
    width = (lambda dtype: jnp.iinfo(dtype).bits)
    (x, y) = args
    if (width(x) > width(y)):
        (x, y) = (y, x)
    return ((is_signed(x) == is_signed(y)) or ((width(x) == 32) and (width(y) == 32)) or ((width(x) == 32) and (width(y) == 64) and is_signed(y)))