def _integer_pow(x, *, y: int, _in_avals: Sequence[core.AbstractValue], _out_aval: core.AbstractValue):
    if (y == 0):
        return tf.broadcast_to(tf.constant(1, dtype=x.dtype, shape=()), _eval_shape(_out_aval.shape))
    is_reciprocal = (y < 0)
    if is_reciprocal:
        y = (- y)
    acc = None
    while (y > 0):
        if (y & 1):
            acc = (x if (acc is None) else tf.math.multiply(acc, x))
        y >>= 1
        if (y > 0):
            x = tf.math.multiply(x, x)
    return (tf.math.reciprocal(acc) if is_reciprocal else acc)
def _integer_pow(x, *, y: int, _in_avals: Sequence[core.AbstractValue], _out_aval: core.AbstractValue):
    if (y == 0):
        return tf.broadcast_to(tf.constant(1, dtype=x.dtype, shape=()), _eval_shape(_out_aval.shape))
    is_reciprocal = (y < 0)
    if is_reciprocal:
        y = (- y)
    acc = None
    while (y > 0):
        if (y & 1):
            acc = (x if (acc is None) else tf.math.multiply(acc, x))
        y >>= 1
        if (y > 0):
            x = tf.math.multiply(x, x)
    return (tf.math.reciprocal(acc) if is_reciprocal else acc)