def METHOD_NAME(self):
    self.merge_loop_var = 1
    check = lambda *a, **kw: self.reduce_check(*a, **kw)
    check(1, 2, 1, 0, 1)
    check(2, 1, 1, 1, 0)
    check(2, 1, 1, 0, 1)
    check(2, 1, 1, 0, 1, [0,0])
    check(2, 1, 1, 0, 0, [0,1])
    check(2, 1, 1, 0, 0, [0,1], [0,64])
    check(2, 1, 1, [0,1], 1, [0,1])
    check(3, 1, 1, [1,2], 0)
    check(3, 1, 1, [0,1], 1)
    check(3, 1, 1, [0,1], 0, [0,0,2])
    check(3, 2, 1, [2], 0)
    if jt.flags.use_cuda:
        # loop is not merged so parallel depth 2
        check(3, 2, 2, [1], 1)
    else:
        check(3, 2, 1, [1], 0)
    check(3, 2, 2, [1], 1, merge=0)
    check(4, 2, 1, [2,3], 0)
    check(4, 2, 2, [0,3], 1)