@triton.jit
def kernel(x_ptrs: 'VAR_ARGS_ARRAY', y_ptrs: 'VAR_ARGS_ARRAY', numel,
    BLOCK_SIZE: tl.constexpr):
    pid = tl.program_id(axis=0)
    offsets = BLOCK_SIZE * pid + tl.arange(0, BLOCK_SIZE)
    mask = offsets < numel
    for i in range(len(x_ptrs)):
        x_ptr = x_ptrs[i]
        y_ptr = y_ptrs[i]
        data = tl.load(x_ptr + offsets, mask)
        result = data * data
        tl.store(y_ptr + offsets, result, mask)
