def output_type(self):
    first = self.arg[0]
    if isinstance(first, (ir.IntegerValue, ir.FloatingValue)):
        dtype = first.type().largest
    else:
        dtype = first.type()
    return rlz.shape_like(self.arg, dtype)
def output_type(self):
    first = self.arg[0]
    if isinstance(first, (ir.IntegerValue, ir.FloatingValue)):
        dtype = first.type().largest
    else:
        dtype = first.type()
    return rlz.shape_like(self.arg, dtype)