@triton.jit
def add_kernel(x_ptr, y_ptr, z_ptr, size, block_size: tl.constexpr):
    offset = tl.program_id(0) * block_size
    x_block_ptr = tl.make_block_ptr(x_ptr, shape=(size,), strides=(1,),
        offsets=(offset,), block_shape=(block_size,), order=(0,))
    y_block_ptr = tl.make_block_ptr(y_ptr, shape=(size,), strides=(1,),
        offsets=(offset,), block_shape=(block_size,), order=(0,))
    x = tl.load(x_block_ptr, boundary_check=(0,))
    y = tl.load(y_block_ptr, boundary_check=(0,))
    z = x + y
    z_block_ptr = tl.make_block_ptr(z_ptr, shape=(size,), strides=(1,),
        offsets=(offset,), block_shape=(block_size,), order=(0,))
    tl.store(z_block_ptr, z, boundary_check=(0,))
