Any[quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    @finch{#0,lower.jl:81}(A_lvl_2.shape::Int64) == @finch{#0,lower.jl:81}(y_lvl.shape::Int64) || throw(DimensionMismatch("mismatched dimension limits ($(@finch{#0,lower.jl:81}(A_lvl_2.shape::Int64)) != $(@finch{#0,lower.jl:81}(y_lvl.shape::Int64)))"))
    @finch{#0,lower.jl:81}(x_lvl.shape::Int64) == @finch{#0,lower.jl:81}(A_lvl.shape::Int64) || throw(DimensionMismatch("mismatched dimension limits ($(@finch{#0,lower.jl:81}(x_lvl.shape::Int64)) != $(@finch{#0,lower.jl:81}(A_lvl.shape::Int64)))"))
    @finch{#0,lower.jl:81} begin
      begin
        @thaw(y)
        for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
          y[i] <<+>>= *(virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualSparseListLevel}, Finch.Furlable))[j], virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i, j])
        end
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == @finch{#0,lower.jl:81}(y_lvl.shape::Int64) || throw(DimensionMismatch("mismatched dimension limits ($(@finch{#0,lower.jl:81}(A_lvl_2.shape::Int64)) != $(@finch{#0,lower.jl:81}(y_lvl.shape::Int64)))"))
    @finch{#0,lower.jl:81}(x_lvl.shape::Int64) == @finch{#0,lower.jl:81}(A_lvl.shape::Int64) || throw(DimensionMismatch("mismatched dimension limits ($(@finch{#0,lower.jl:81}(x_lvl.shape::Int64)) != $(@finch{#0,lower.jl:81}(A_lvl.shape::Int64)))"))
    @finch{#0,lower.jl:81} begin
      begin
        @thaw(y)
        for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
          y[i] <<+>>= *(virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualSparseListLevel}, Finch.Furlable))[j], virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i, j])
        end
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(@finch{#0,lower.jl:81}(A_lvl_2.shape::Int64)) != $(@finch{#0,lower.jl:81}(y_lvl.shape::Int64)))"))
    @finch{#0,lower.jl:81}(x_lvl.shape::Int64) == @finch{#0,lower.jl:81}(A_lvl.shape::Int64) || throw(DimensionMismatch("mismatched dimension limits ($(@finch{#0,lower.jl:81}(x_lvl.shape::Int64)) != $(@finch{#0,lower.jl:81}(A_lvl.shape::Int64)))"))
    @finch{#0,lower.jl:81} begin
      begin
        @thaw(y)
        for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
          y[i] <<+>>= *(virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualSparseListLevel}, Finch.Furlable))[j], virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i, j])
        end
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(@finch{#0,lower.jl:81}(y_lvl.shape::Int64)))"))
    @finch{#0,lower.jl:81}(x_lvl.shape::Int64) == @finch{#0,lower.jl:81}(A_lvl.shape::Int64) || throw(DimensionMismatch("mismatched dimension limits ($(@finch{#0,lower.jl:81}(x_lvl.shape::Int64)) != $(@finch{#0,lower.jl:81}(A_lvl.shape::Int64)))"))
    @finch{#0,lower.jl:81} begin
      begin
        @thaw(y)
        for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
          y[i] <<+>>= *(virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualSparseListLevel}, Finch.Furlable))[j], virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i, j])
        end
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    @finch{#0,lower.jl:81}(x_lvl.shape::Int64) == @finch{#0,lower.jl:81}(A_lvl.shape::Int64) || throw(DimensionMismatch("mismatched dimension limits ($(@finch{#0,lower.jl:81}(x_lvl.shape::Int64)) != $(@finch{#0,lower.jl:81}(A_lvl.shape::Int64)))"))
    @finch{#0,lower.jl:81} begin
      begin
        @thaw(y)
        for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
          y[i] <<+>>= *(virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualSparseListLevel}, Finch.Furlable))[j], virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i, j])
        end
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == @finch{#0,lower.jl:81}(A_lvl.shape::Int64) || throw(DimensionMismatch("mismatched dimension limits ($(@finch{#0,lower.jl:81}(x_lvl.shape::Int64)) != $(@finch{#0,lower.jl:81}(A_lvl.shape::Int64)))"))
    @finch{#0,lower.jl:81} begin
      begin
        @thaw(y)
        for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
          y[i] <<+>>= *(virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualSparseListLevel}, Finch.Furlable))[j], virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i, j])
        end
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(@finch{#0,lower.jl:81}(x_lvl.shape::Int64)) != $(@finch{#0,lower.jl:81}(A_lvl.shape::Int64)))"))
    @finch{#0,lower.jl:81} begin
      begin
        @thaw(y)
        for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
          y[i] <<+>>= *(virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualSparseListLevel}, Finch.Furlable))[j], virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i, j])
        end
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(@finch{#0,lower.jl:81}(A_lvl.shape::Int64)))"))
    @finch{#0,lower.jl:81} begin
      begin
        @thaw(y)
        for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
          y[i] <<+>>= *(virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualSparseListLevel}, Finch.Furlable))[j], virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i, j])
        end
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    @finch{#0,lower.jl:81} begin
      begin
        @thaw(y)
        for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
          y[i] <<+>>= *(virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualSparseListLevel}, Finch.Furlable))[j], virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i, j])
        end
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    @finch{#0,lower.jl:81} begin
      begin
        for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
          y[i] <<+>>= *(virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualSparseListLevel}, Finch.Furlable))[j], virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i, j])
        end
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    @finch{#0,lower.jl:81} begin
      for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
        virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualSparseListLevel}, Finch.Furlable))[j], virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i, j])
      end
    end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    @finch{#0,thunks.jl:32} begin
      for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
        virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Thunk)[j], virtual(Finch.Lookup)[i, j])
      end
    end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[@finch{#0,lower.jl:81}(1)]
    x_lvl_q_stop = x_lvl.ptr[@finch{#0,lower.jl:81}(1) + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = @finch{#0,sequences.jl:26} begin
          for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
            virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Sequence)[j], virtual(Finch.Lookup)[i, j])
          end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[@finch{#0,lower.jl:81}(1) + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = @finch{#0,sequences.jl:26} begin
          for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
            virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Sequence)[j], virtual(Finch.Lookup)[i, j])
          end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = @finch{#0,sequences.jl:26} begin
          for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
            virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Sequence)[j], virtual(Finch.Lookup)[i, j])
          end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = @finch{#0,lower.jl:81}(1)
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) >= @finch{#0,lower.jl:81}(cached(phase_start, 1))
                j_4 = j
                @finch{#0,steppers.jl:30} begin
                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Stepper)[j], virtual(Finch.Lookup)[i, j])
                  end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if @finch{#0,lower.jl:81}(phase_stop) >= @finch{#0,lower.jl:81}(cached(phase_start, 1))
                j_4 = j
                @finch{#0,steppers.jl:30} begin
                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Stepper)[j], virtual(Finch.Lookup)[i, j])
                  end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= @finch{#0,lower.jl:81}(cached(phase_start, 1))
                j_4 = j
                @finch{#0,steppers.jl:30} begin
                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Stepper)[j], virtual(Finch.Lookup)[i, j])
                  end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= @finch{#0,lower.jl:81}(phase_start)
                j_4 = j
                @finch{#0,steppers.jl:30} begin
                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Stepper)[j], virtual(Finch.Lookup)[i, j])
                  end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                @finch{#0,steppers.jl:30} begin
                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Stepper)[j], virtual(Finch.Lookup)[i, j])
                  end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)))
                    j_start_2 = j
                    @finch{#0,thunks.jl:32} begin
                      for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                        virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Thunk)[j], virtual(Finch.Lookup)[i, j])
                      end
                    end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= @finch{#0,lower.jl:81}(phase_stop)
                    j_start_2 = j
                    @finch{#0,thunks.jl:32} begin
                      for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                        virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Thunk)[j], virtual(Finch.Lookup)[i, j])
                      end
                    end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    @finch{#0,thunks.jl:32} begin
                      for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                        virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Thunk)[j], virtual(Finch.Lookup)[i, j])
                      end
                    end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = @finch{#0,phases.jl:56} begin
                          for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                            virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Step)[j], virtual(Finch.Lookup)[i, j])
                          end
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            @finch{#0,switches.jl:58} begin
                              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Switch)[j], virtual(Finch.Lookup)[i, j])
                              end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if @finch{#0,lower.jl:81}(@finch{#0,lower.jl:81}(x_lvl_i) == @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))))
                                @finch{#0,thunks.jl:32} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Thunk)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if @finch{#0,lower.jl:81}(x_lvl_i) == @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1))))))
                                @finch{#0,thunks.jl:32} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Thunk)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1))))))
                                @finch{#0,thunks.jl:32} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Thunk)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == @finch{#0,lower.jl:81}(phase_stop_2)
                                @finch{#0,thunks.jl:32} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Thunk)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                @finch{#0,thunks.jl:32} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Thunk)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = @finch{#0,spikes.jl:26} begin
                                      for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                        virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Spike)[j], virtual(Finch.Lookup)[i, j])
                                      end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        @finch{#0,runs.jl:23} begin
                                          for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                            virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                          end
                                        end
                                        @finch{#0,runs.jl:23} begin
                                          for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                            virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                          end
                                        end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        @finch{#0,fills.jl:25} begin
                                          for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                            virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Fill)[], virtual(Finch.Lookup)[i, j])
                                          end
                                        end
                                        @finch{#0,runs.jl:23} begin
                                          for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                            virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                          end
                                        end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        @finch{#0,simplify_program.jl:198} begin
                                          for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                            virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Simplify), virtual(Finch.Lookup)[i, j])
                                          end
                                        end
                                        @finch{#0,runs.jl:23} begin
                                          for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                            virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                          end
                                        end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        @finch{#0,lower.jl:81} begin
                                          begin
                                          end
                                        end
                                        @finch{#0,runs.jl:23} begin
                                          for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                            virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                          end
                                        end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = @finch{#0,runs.jl:23} begin
                                      for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                        virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                      end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = @finch{#0,simplify_program.jl:198} begin
                                      for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                        virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Simplify)[], virtual(Finch.Lookup)[i, j])
                                      end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = @finch{#0,thunks.jl:32} begin
                                      for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                        virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Lookup)[i, j], virtual(Finch.Thunk)[])
                                      end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[@finch{#0,lower.jl:81}(x_lvl_q::Int64)]
                                        res_4 = @finch{#0,lookups.jl:22} begin
                                              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Lookup)[i, j], virtual(Finch.VirtualScalar)[])
                                              end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = @finch{#0,lookups.jl:22} begin
                                              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Lookup)[i, j], virtual(Finch.VirtualScalar)[])
                                              end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1))))))
                                                @finch{#0,thunks.jl:32} begin
                                                  for i = virtual(Finch.Extent)
                                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Thunk)[i], virtual(Finch.VirtualScalar)[])
                                                  end
                                                end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = @finch{#0,lower.jl:81}(phase_stop_2)
                                                @finch{#0,thunks.jl:32} begin
                                                  for i = virtual(Finch.Extent)
                                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Thunk)[i], virtual(Finch.VirtualScalar)[])
                                                  end
                                                end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                @finch{#0,thunks.jl:32} begin
                                                  for i = virtual(Finch.Extent)
                                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Thunk)[i], virtual(Finch.VirtualScalar)[])
                                                  end
                                                end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (@finch{#0,lower.jl:81}(1) - 1) * @finch{#0,lower.jl:81}(A_lvl.shape::Int64) + @finch{#0,lower.jl:81}(j_6)
                                                res_5 = @finch{#0,lower.jl:81} begin
                                                      for i = virtual(Finch.Extent)
                                                        virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Furlable)[i], virtual(Finch.VirtualScalar)[])
                                                      end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * @finch{#0,lower.jl:81}(A_lvl.shape::Int64) + @finch{#0,lower.jl:81}(j_6)
                                                res_5 = @finch{#0,lower.jl:81} begin
                                                      for i = virtual(Finch.Extent)
                                                        virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Furlable)[i], virtual(Finch.VirtualScalar)[])
                                                      end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + @finch{#0,lower.jl:81}(j_6)
                                                res_5 = @finch{#0,lower.jl:81} begin
                                                      for i = virtual(Finch.Extent)
                                                        virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Furlable)[i], virtual(Finch.VirtualScalar)[])
                                                      end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = @finch{#0,lower.jl:81} begin
                                                      for i = virtual(Finch.Extent)
                                                        virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Furlable)[i], virtual(Finch.VirtualScalar)[])
                                                      end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = @finch{#0,thunks.jl:32} begin
                                                      for i = virtual(Finch.Extent)
                                                        virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Thunk)[i], virtual(Finch.VirtualScalar)[])
                                                      end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[@finch{#0,lower.jl:81}(A_lvl_q::Int64)]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[@finch{#0,lower.jl:81}(A_lvl_q::Int64) + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = @finch{#0,sequences.jl:26} begin
                                                              for i = virtual(Finch.Extent)
                                                                virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Sequence)[i], virtual(Finch.VirtualScalar)[])
                                                              end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[@finch{#0,lower.jl:81}(A_lvl_q::Int64) + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = @finch{#0,sequences.jl:26} begin
                                                              for i = virtual(Finch.Extent)
                                                                virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Sequence)[i], virtual(Finch.VirtualScalar)[])
                                                              end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = @finch{#0,sequences.jl:26} begin
                                                              for i = virtual(Finch.Extent)
                                                                virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Sequence)[i], virtual(Finch.VirtualScalar)[])
                                                              end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = @finch{#0,lower.jl:81}(1)
                                                                @finch{#0,phases.jl:56} begin
                                                                  for i = virtual(Finch.Extent)
                                                                    virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Phase)[i], virtual(Finch.VirtualScalar)[])
                                                                  end
                                                                end
                                                                @finch{#0,phases.jl:56} begin
                                                                  for i = virtual(Finch.Extent)
                                                                    virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Phase)[i], virtual(Finch.VirtualScalar)[])
                                                                  end
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                @finch{#0,phases.jl:56} begin
                                                                  for i = virtual(Finch.Extent)
                                                                    virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Phase)[i], virtual(Finch.VirtualScalar)[])
                                                                  end
                                                                end
                                                                @finch{#0,phases.jl:56} begin
                                                                  for i = virtual(Finch.Extent)
                                                                    virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Phase)[i], virtual(Finch.VirtualScalar)[])
                                                                  end
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if @finch{#0,lower.jl:81}(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1))) >= @finch{#0,lower.jl:81}(cached(phase_start_3, 1))
                                                                    i_4 = i
                                                                    @finch{#0,steppers.jl:30} begin
                                                                      for i = virtual(Finch.Extent)
                                                                        virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Stepper)[i], virtual(Finch.VirtualScalar)[])
                                                                      end
                                                                    end
                                                                    i = @finch{#0,lower.jl:81}(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1))) + @finch{#0,lower.jl:81}(1)
                                                                end
                                                                @finch{#0,phases.jl:56} begin
                                                                  for i = virtual(Finch.Extent)
                                                                    virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Phase)[i], virtual(Finch.VirtualScalar)[])
                                                                  end
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if @finch{#0,lower.jl:81}(phase_stop_3) >= @finch{#0,lower.jl:81}(cached(phase_start_3, 1))
                                                                    i_4 = i
                                                                    @finch{#0,steppers.jl:30} begin
                                                                      for i = virtual(Finch.Extent)
                                                                        virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Stepper)[i], virtual(Finch.VirtualScalar)[])
                                                                      end
                                                                    end
                                                                    i = @finch{#0,lower.jl:81}(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1))) + @finch{#0,lower.jl:81}(1)
                                                                end
                                                                @finch{#0,phases.jl:56} begin
                                                                  for i = virtual(Finch.Extent)
                                                                    virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Phase)[i], virtual(Finch.VirtualScalar)[])
                                                                  end
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= @finch{#0,lower.jl:81}(cached(phase_start_3, 1))
                                                                    i_4 = i
                                                                    @finch{#0,steppers.jl:30} begin
                                                                      for i = virtual(Finch.Extent)
                                                                        virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Stepper)[i], virtual(Finch.VirtualScalar)[])
                                                                      end
                                                                    end
                                                                    i = @finch{#0,lower.jl:81}(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1))) + @finch{#0,lower.jl:81}(1)
                                                                end
                                                                @finch{#0,phases.jl:56} begin
                                                                  for i = virtual(Finch.Extent)
                                                                    virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Phase)[i], virtual(Finch.VirtualScalar)[])
                                                                  end
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= @finch{#0,lower.jl:81}(phase_start_3)
                                                                    i_4 = i
                                                                    @finch{#0,steppers.jl:30} begin
                                                                      for i = virtual(Finch.Extent)
                                                                        virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Stepper)[i], virtual(Finch.VirtualScalar)[])
                                                                      end
                                                                    end
                                                                    i = @finch{#0,lower.jl:81}(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1))) + @finch{#0,lower.jl:81}(1)
                                                                end
                                                                @finch{#0,phases.jl:56} begin
                                                                  for i = virtual(Finch.Extent)
                                                                    virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Phase)[i], virtual(Finch.VirtualScalar)[])
                                                                  end
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    @finch{#0,steppers.jl:30} begin
                                                                      for i = virtual(Finch.Extent)
                                                                        virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Stepper)[i], virtual(Finch.VirtualScalar)[])
                                                                      end
                                                                    end
                                                                    i = @finch{#0,lower.jl:81}(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1))) + @finch{#0,lower.jl:81}(1)
                                                                end
                                                                @finch{#0,phases.jl:56} begin
                                                                  for i = virtual(Finch.Extent)
                                                                    virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Phase)[i], virtual(Finch.VirtualScalar)[])
                                                                  end
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= @finch{#0,lower.jl:81}(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1)))
                                                                        i_start_2 = i
                                                                        @finch{#0,thunks.jl:32} begin
                                                                          for i = virtual(Finch.Extent)
                                                                            virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Thunk)[i], virtual(Finch.VirtualScalar)[])
                                                                          end
                                                                        end
                                                                    end
                                                                    i = @finch{#0,lower.jl:81}(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1))) + @finch{#0,lower.jl:81}(1)
                                                                end
                                                                @finch{#0,phases.jl:56} begin
                                                                  for i = virtual(Finch.Extent)
                                                                    virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Phase)[i], virtual(Finch.VirtualScalar)[])
                                                                  end
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= @finch{#0,lower.jl:81}(phase_stop_3)
                                                                        i_start_2 = i
                                                                        @finch{#0,thunks.jl:32} begin
                                                                          for i = virtual(Finch.Extent)
                                                                            virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Thunk)[i], virtual(Finch.VirtualScalar)[])
                                                                          end
                                                                        end
                                                                    end
                                                                    i = @finch{#0,lower.jl:81}(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1))) + @finch{#0,lower.jl:81}(1)
                                                                end
                                                                @finch{#0,phases.jl:56} begin
                                                                  for i = virtual(Finch.Extent)
                                                                    virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Phase)[i], virtual(Finch.VirtualScalar)[])
                                                                  end
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        @finch{#0,thunks.jl:32} begin
                                                                          for i = virtual(Finch.Extent)
                                                                            virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Thunk)[i], virtual(Finch.VirtualScalar)[])
                                                                          end
                                                                        end
                                                                    end
                                                                    i = @finch{#0,lower.jl:81}(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1))) + @finch{#0,lower.jl:81}(1)
                                                                end
                                                                @finch{#0,phases.jl:56} begin
                                                                  for i = virtual(Finch.Extent)
                                                                    virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Phase)[i], virtual(Finch.VirtualScalar)[])
                                                                  end
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = @finch{#0,phases.jl:56} begin
                                                                              for i = virtual(Finch.Extent)
                                                                                virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Step)[i], virtual(Finch.VirtualScalar)[])
                                                                              end
                                                                            end
                                                                    end
                                                                    i = @finch{#0,lower.jl:81}(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1))) + @finch{#0,lower.jl:81}(1)
                                                                end
                                                                @finch{#0,phases.jl:56} begin
                                                                  for i = virtual(Finch.Extent)
                                                                    virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Phase)[i], virtual(Finch.VirtualScalar)[])
                                                                  end
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                @finch{#0,switches.jl:58} begin
                                                                                  for i = virtual(Finch.Extent)
                                                                                    virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Switch)[i], virtual(Finch.VirtualScalar)[])
                                                                                  end
                                                                                end
                                                                                i = @finch{#0,lower.jl:81}(cached(phase_stop_4, cached(min(phase_stop_3, A_lvl_2_i), min(cached(A_lvl_2_i, max(A_lvl_2_i, +(i_start_2, 1))), max(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1)), +(i_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                                                                            end
                                                                    end
                                                                    i = @finch{#0,lower.jl:81}(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1))) + @finch{#0,lower.jl:81}(1)
                                                                end
                                                                @finch{#0,phases.jl:56} begin
                                                                  for i = virtual(Finch.Extent)
                                                                    virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Phase)[i], virtual(Finch.VirtualScalar)[])
                                                                  end
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if @finch{#0,lower.jl:81}(@finch{#0,lower.jl:81}(A_lvl_2_i) == @finch{#0,lower.jl:81}(cached(phase_stop_4, cached(min(phase_stop_3, A_lvl_2_i), min(cached(A_lvl_2_i, max(A_lvl_2_i, +(i_start_2, 1))), max(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1)), +(i_start_2, 1)))))))
                                                                                    @finch{#0,thunks.jl:32} begin
                                                                                      for i = virtual(Finch.Extent)
                                                                                        virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Thunk)[i], virtual(Finch.VirtualScalar)[])
                                                                                      end
                                                                                    end
                                                                                else
                                                                                    @finch{#0,runs.jl:23} begin
                                                                                      for i = virtual(Finch.Extent)
                                                                                        virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Run)[i], virtual(Finch.VirtualScalar)[])
                                                                                      end
                                                                                    end
                                                                                end
                                                                                i = @finch{#0,lower.jl:81}(cached(phase_stop_4, cached(min(phase_stop_3, A_lvl_2_i), min(cached(A_lvl_2_i, max(A_lvl_2_i, +(i_start_2, 1))), max(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1)), +(i_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                                                                            end
                                                                    end
                                                                    i = @finch{#0,lower.jl:81}(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1))) + @finch{#0,lower.jl:81}(1)
                                                                end
                                                                @finch{#0,phases.jl:56} begin
                                                                  for i = virtual(Finch.Extent)
                                                                    virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Phase)[i], virtual(Finch.VirtualScalar)[])
                                                                  end
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if @finch{#0,lower.jl:81}(A_lvl_2_i) == @finch{#0,lower.jl:81}(cached(phase_stop_4, cached(min(phase_stop_3, A_lvl_2_i), min(cached(A_lvl_2_i, max(A_lvl_2_i, +(i_start_2, 1))), max(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1)), +(i_start_2, 1))))))
                                                                                    @finch{#0,thunks.jl:32} begin
                                                                                      for i = virtual(Finch.Extent)
                                                                                        virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Thunk)[i], virtual(Finch.VirtualScalar)[])
                                                                                      end
                                                                                    end
                                                                                else
                                                                                    @finch{#0,runs.jl:23} begin
                                                                                      for i = virtual(Finch.Extent)
                                                                                        virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Run)[i], virtual(Finch.VirtualScalar)[])
                                                                                      end
                                                                                    end
                                                                                end
                                                                                i = @finch{#0,lower.jl:81}(cached(phase_stop_4, cached(min(phase_stop_3, A_lvl_2_i), min(cached(A_lvl_2_i, max(A_lvl_2_i, +(i_start_2, 1))), max(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1)), +(i_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                                                                            end
                                                                    end
                                                                    i = @finch{#0,lower.jl:81}(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1))) + @finch{#0,lower.jl:81}(1)
                                                                end
                                                                @finch{#0,phases.jl:56} begin
                                                                  for i = virtual(Finch.Extent)
                                                                    virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Phase)[i], virtual(Finch.VirtualScalar)[])
                                                                  end
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == @finch{#0,lower.jl:81}(cached(phase_stop_4, cached(min(phase_stop_3, A_lvl_2_i), min(cached(A_lvl_2_i, max(A_lvl_2_i, +(i_start_2, 1))), max(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1)), +(i_start_2, 1))))))
                                                                                    @finch{#0,thunks.jl:32} begin
                                                                                      for i = virtual(Finch.Extent)
                                                                                        virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Thunk)[i], virtual(Finch.VirtualScalar)[])
                                                                                      end
                                                                                    end
                                                                                else
                                                                                    @finch{#0,runs.jl:23} begin
                                                                                      for i = virtual(Finch.Extent)
                                                                                        virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Run)[i], virtual(Finch.VirtualScalar)[])
                                                                                      end
                                                                                    end
                                                                                end
                                                                                i = @finch{#0,lower.jl:81}(cached(phase_stop_4, cached(min(phase_stop_3, A_lvl_2_i), min(cached(A_lvl_2_i, max(A_lvl_2_i, +(i_start_2, 1))), max(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1)), +(i_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                                                                            end
                                                                    end
                                                                    i = @finch{#0,lower.jl:81}(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1))) + @finch{#0,lower.jl:81}(1)
                                                                end
                                                                @finch{#0,phases.jl:56} begin
                                                                  for i = virtual(Finch.Extent)
                                                                    virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Phase)[i], virtual(Finch.VirtualScalar)[])
                                                                  end
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == @finch{#0,lower.jl:81}(phase_stop_4)
                                                                                    @finch{#0,thunks.jl:32} begin
                                                                                      for i = virtual(Finch.Extent)
                                                                                        virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Thunk)[i], virtual(Finch.VirtualScalar)[])
                                                                                      end
                                                                                    end
                                                                                else
                                                                                    @finch{#0,runs.jl:23} begin
                                                                                      for i = virtual(Finch.Extent)
                                                                                        virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Run)[i], virtual(Finch.VirtualScalar)[])
                                                                                      end
                                                                                    end
                                                                                end
                                                                                i = @finch{#0,lower.jl:81}(cached(phase_stop_4, cached(min(phase_stop_3, A_lvl_2_i), min(cached(A_lvl_2_i, max(A_lvl_2_i, +(i_start_2, 1))), max(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1)), +(i_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                                                                            end
                                                                    end
                                                                    i = @finch{#0,lower.jl:81}(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1))) + @finch{#0,lower.jl:81}(1)
                                                                end
                                                                @finch{#0,phases.jl:56} begin
                                                                  for i = virtual(Finch.Extent)
                                                                    virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Phase)[i], virtual(Finch.VirtualScalar)[])
                                                                  end
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    @finch{#0,thunks.jl:32} begin
                                                                                      for i = virtual(Finch.Extent)
                                                                                        virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Thunk)[i], virtual(Finch.VirtualScalar)[])
                                                                                      end
                                                                                    end
                                                                                else
                                                                                    @finch{#0,runs.jl:23} begin
                                                                                      for i = virtual(Finch.Extent)
                                                                                        virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Run)[i], virtual(Finch.VirtualScalar)[])
                                                                                      end
                                                                                    end
                                                                                end
                                                                                i = @finch{#0,lower.jl:81}(cached(phase_stop_4, cached(min(phase_stop_3, A_lvl_2_i), min(cached(A_lvl_2_i, max(A_lvl_2_i, +(i_start_2, 1))), max(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1)), +(i_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                                                                            end
                                                                    end
                                                                    i = @finch{#0,lower.jl:81}(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1))) + @finch{#0,lower.jl:81}(1)
                                                                end
                                                                @finch{#0,phases.jl:56} begin
                                                                  for i = virtual(Finch.Extent)
                                                                    virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Phase)[i], virtual(Finch.VirtualScalar)[])
                                                                  end
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = @finch{#0,spikes.jl:26} begin
                                                                                          for i = virtual(Finch.Extent)
                                                                                            virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Spike)[i], virtual(Finch.VirtualScalar)[])
                                                                                          end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                    @finch{#0,runs.jl:23} begin
                                                                                      for i = virtual(Finch.Extent)
                                                                                        virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Run)[i], virtual(Finch.VirtualScalar)[])
                                                                                      end
                                                                                    end
                                                                                end
                                                                                i = @finch{#0,lower.jl:81}(cached(phase_stop_4, cached(min(phase_stop_3, A_lvl_2_i), min(cached(A_lvl_2_i, max(A_lvl_2_i, +(i_start_2, 1))), max(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1)), +(i_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                                                                            end
                                                                    end
                                                                    i = @finch{#0,lower.jl:81}(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1))) + @finch{#0,lower.jl:81}(1)
                                                                end
                                                                @finch{#0,phases.jl:56} begin
                                                                  for i = virtual(Finch.Extent)
                                                                    virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Phase)[i], virtual(Finch.VirtualScalar)[])
                                                                  end
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = begin
                                                                                            @finch{#0,runs.jl:23} begin
                                                                                              for i = virtual(Finch.Extent)
                                                                                                virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Run)[i], virtual(Finch.VirtualScalar)[])
                                                                                              end
                                                                                            end
                                                                                            @finch{#0,runs.jl:23} begin
                                                                                              for i = virtual(Finch.Extent)
                                                                                                virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Run)[i], virtual(Finch.VirtualScalar)[])
                                                                                              end
                                                                                            end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                    @finch{#0,runs.jl:23} begin
                                                                                      for i = virtual(Finch.Extent)
                                                                                        virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Run)[i], virtual(Finch.VirtualScalar)[])
                                                                                      end
                                                                                    end
                                                                                end
                                                                                i = @finch{#0,lower.jl:81}(cached(phase_stop_4, cached(min(phase_stop_3, A_lvl_2_i), min(cached(A_lvl_2_i, max(A_lvl_2_i, +(i_start_2, 1))), max(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1)), +(i_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                                                                            end
                                                                    end
                                                                    i = @finch{#0,lower.jl:81}(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1))) + @finch{#0,lower.jl:81}(1)
                                                                end
                                                                @finch{#0,phases.jl:56} begin
                                                                  for i = virtual(Finch.Extent)
                                                                    virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Phase)[i], virtual(Finch.VirtualScalar)[])
                                                                  end
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = begin
                                                                                            @finch{#0,fills.jl:25} begin
                                                                                              for i = virtual(Finch.Extent)
                                                                                                virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Fill)[], virtual(Finch.VirtualScalar)[])
                                                                                              end
                                                                                            end
                                                                                            @finch{#0,runs.jl:23} begin
                                                                                              for i = virtual(Finch.Extent)
                                                                                                virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Run)[i], virtual(Finch.VirtualScalar)[])
                                                                                              end
                                                                                            end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                    @finch{#0,runs.jl:23} begin
                                                                                      for i = virtual(Finch.Extent)
                                                                                        virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Run)[i], virtual(Finch.VirtualScalar)[])
                                                                                      end
                                                                                    end
                                                                                end
                                                                                i = @finch{#0,lower.jl:81}(cached(phase_stop_4, cached(min(phase_stop_3, A_lvl_2_i), min(cached(A_lvl_2_i, max(A_lvl_2_i, +(i_start_2, 1))), max(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1)), +(i_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                                                                            end
                                                                    end
                                                                    i = @finch{#0,lower.jl:81}(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1))) + @finch{#0,lower.jl:81}(1)
                                                                end
                                                                @finch{#0,phases.jl:56} begin
                                                                  for i = virtual(Finch.Extent)
                                                                    virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Phase)[i], virtual(Finch.VirtualScalar)[])
                                                                  end
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = begin
                                                                                            @finch{#0,simplify_program.jl:198} begin
                                                                                              for i = virtual(Finch.Extent)
                                                                                                virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Simplify), virtual(Finch.VirtualScalar)[])
                                                                                              end
                                                                                            end
                                                                                            @finch{#0,runs.jl:23} begin
                                                                                              for i = virtual(Finch.Extent)
                                                                                                virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Run)[i], virtual(Finch.VirtualScalar)[])
                                                                                              end
                                                                                            end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                    @finch{#0,runs.jl:23} begin
                                                                                      for i = virtual(Finch.Extent)
                                                                                        virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Run)[i], virtual(Finch.VirtualScalar)[])
                                                                                      end
                                                                                    end
                                                                                end
                                                                                i = @finch{#0,lower.jl:81}(cached(phase_stop_4, cached(min(phase_stop_3, A_lvl_2_i), min(cached(A_lvl_2_i, max(A_lvl_2_i, +(i_start_2, 1))), max(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1)), +(i_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                                                                            end
                                                                    end
                                                                    i = @finch{#0,lower.jl:81}(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1))) + @finch{#0,lower.jl:81}(1)
                                                                end
                                                                @finch{#0,phases.jl:56} begin
                                                                  for i = virtual(Finch.Extent)
                                                                    virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Phase)[i], virtual(Finch.VirtualScalar)[])
                                                                  end
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = begin
                                                                                            @finch{#0,lower.jl:81} begin
                                                                                              begin
                                                                                              end
                                                                                            end
                                                                                            @finch{#0,runs.jl:23} begin
                                                                                              for i = virtual(Finch.Extent)
                                                                                                virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Run)[i], virtual(Finch.VirtualScalar)[])
                                                                                              end
                                                                                            end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                    @finch{#0,runs.jl:23} begin
                                                                                      for i = virtual(Finch.Extent)
                                                                                        virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Run)[i], virtual(Finch.VirtualScalar)[])
                                                                                      end
                                                                                    end
                                                                                end
                                                                                i = @finch{#0,lower.jl:81}(cached(phase_stop_4, cached(min(phase_stop_3, A_lvl_2_i), min(cached(A_lvl_2_i, max(A_lvl_2_i, +(i_start_2, 1))), max(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1)), +(i_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                                                                            end
                                                                    end
                                                                    i = @finch{#0,lower.jl:81}(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1))) + @finch{#0,lower.jl:81}(1)
                                                                end
                                                                @finch{#0,phases.jl:56} begin
                                                                  for i = virtual(Finch.Extent)
                                                                    virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Phase)[i], virtual(Finch.VirtualScalar)[])
                                                                  end
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = @finch{#0,runs.jl:23} begin
                                                                                          for i = virtual(Finch.Extent)
                                                                                            virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Run)[i], virtual(Finch.VirtualScalar)[])
                                                                                          end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                    @finch{#0,runs.jl:23} begin
                                                                                      for i = virtual(Finch.Extent)
                                                                                        virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Run)[i], virtual(Finch.VirtualScalar)[])
                                                                                      end
                                                                                    end
                                                                                end
                                                                                i = @finch{#0,lower.jl:81}(cached(phase_stop_4, cached(min(phase_stop_3, A_lvl_2_i), min(cached(A_lvl_2_i, max(A_lvl_2_i, +(i_start_2, 1))), max(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1)), +(i_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                                                                            end
                                                                    end
                                                                    i = @finch{#0,lower.jl:81}(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1))) + @finch{#0,lower.jl:81}(1)
                                                                end
                                                                @finch{#0,phases.jl:56} begin
                                                                  for i = virtual(Finch.Extent)
                                                                    virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Phase)[i], virtual(Finch.VirtualScalar)[])
                                                                  end
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = @finch{#0,simplify_program.jl:198} begin
                                                                                          for i = virtual(Finch.Extent)
                                                                                            virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Simplify)[], virtual(Finch.VirtualScalar)[])
                                                                                          end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                    @finch{#0,runs.jl:23} begin
                                                                                      for i = virtual(Finch.Extent)
                                                                                        virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Run)[i], virtual(Finch.VirtualScalar)[])
                                                                                      end
                                                                                    end
                                                                                end
                                                                                i = @finch{#0,lower.jl:81}(cached(phase_stop_4, cached(min(phase_stop_3, A_lvl_2_i), min(cached(A_lvl_2_i, max(A_lvl_2_i, +(i_start_2, 1))), max(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1)), +(i_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                                                                            end
                                                                    end
                                                                    i = @finch{#0,lower.jl:81}(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1))) + @finch{#0,lower.jl:81}(1)
                                                                end
                                                                @finch{#0,phases.jl:56} begin
                                                                  for i = virtual(Finch.Extent)
                                                                    virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Phase)[i], virtual(Finch.VirtualScalar)[])
                                                                  end
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = @finch{#0,thunks.jl:32} begin
                                                                                          for i = virtual(Finch.Extent)
                                                                                            virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.VirtualScalar)[], virtual(Finch.Thunk)[])
                                                                                          end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                    @finch{#0,runs.jl:23} begin
                                                                                      for i = virtual(Finch.Extent)
                                                                                        virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Run)[i], virtual(Finch.VirtualScalar)[])
                                                                                      end
                                                                                    end
                                                                                end
                                                                                i = @finch{#0,lower.jl:81}(cached(phase_stop_4, cached(min(phase_stop_3, A_lvl_2_i), min(cached(A_lvl_2_i, max(A_lvl_2_i, +(i_start_2, 1))), max(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1)), +(i_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                                                                            end
                                                                    end
                                                                    i = @finch{#0,lower.jl:81}(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1))) + @finch{#0,lower.jl:81}(1)
                                                                end
                                                                @finch{#0,phases.jl:56} begin
                                                                  for i = virtual(Finch.Extent)
                                                                    virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Phase)[i], virtual(Finch.VirtualScalar)[])
                                                                  end
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = begin
                                                                                            A_lvl_3_val_2 = A_lvl_3.val[@finch{#0,lower.jl:81}(A_lvl_2_q::Int64)]
                                                                                            res_9 = @finch{#0,lookups.jl:22} begin
                                                                                                  for i = virtual(Finch.Extent)
                                                                                                    virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.VirtualScalar)[], virtual(Finch.VirtualScalar)[])
                                                                                                  end
                                                                                                end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                    @finch{#0,runs.jl:23} begin
                                                                                      for i = virtual(Finch.Extent)
                                                                                        virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Run)[i], virtual(Finch.VirtualScalar)[])
                                                                                      end
                                                                                    end
                                                                                end
                                                                                i = @finch{#0,lower.jl:81}(cached(phase_stop_4, cached(min(phase_stop_3, A_lvl_2_i), min(cached(A_lvl_2_i, max(A_lvl_2_i, +(i_start_2, 1))), max(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1)), +(i_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                                                                            end
                                                                    end
                                                                    i = @finch{#0,lower.jl:81}(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1))) + @finch{#0,lower.jl:81}(1)
                                                                end
                                                                @finch{#0,phases.jl:56} begin
                                                                  for i = virtual(Finch.Extent)
                                                                    virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Phase)[i], virtual(Finch.VirtualScalar)[])
                                                                  end
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = begin
                                                                                            A_lvl_3_val_2 = A_lvl_3.val[A_lvl_2_q]
                                                                                            res_9 = @finch{#0,lookups.jl:22} begin
                                                                                                  for i = virtual(Finch.Extent)
                                                                                                    virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.VirtualScalar)[], virtual(Finch.VirtualScalar)[])
                                                                                                  end
                                                                                                end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                    @finch{#0,runs.jl:23} begin
                                                                                      for i = virtual(Finch.Extent)
                                                                                        virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Run)[i], virtual(Finch.VirtualScalar)[])
                                                                                      end
                                                                                    end
                                                                                end
                                                                                i = @finch{#0,lower.jl:81}(cached(phase_stop_4, cached(min(phase_stop_3, A_lvl_2_i), min(cached(A_lvl_2_i, max(A_lvl_2_i, +(i_start_2, 1))), max(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1)), +(i_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                                                                            end
                                                                    end
                                                                    i = @finch{#0,lower.jl:81}(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1))) + @finch{#0,lower.jl:81}(1)
                                                                end
                                                                @finch{#0,phases.jl:56} begin
                                                                  for i = virtual(Finch.Extent)
                                                                    virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Phase)[i], virtual(Finch.VirtualScalar)[])
                                                                  end
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = begin
                                                                                            A_lvl_3_val_2 = A_lvl_3.val[A_lvl_2_q]
                                                                                            res_9 = begin
                                                                                                    i_6 = @finch{#0,lower.jl:81}(cached(phase_stop_4, cached(min(phase_stop_3, A_lvl_2_i), min(cached(A_lvl_2_i, max(A_lvl_2_i, +(i_start_2, 1))), max(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1)), +(i_start_2, 1))))))
                                                                                                    @finch{#0,thunks.jl:32} begin
                                                                                                      virtual(Finch.Thunk)[] <<+>>= *(virtual(Finch.VirtualScalar)[], virtual(Finch.VirtualScalar)[])
                                                                                                    end
                                                                                                end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                    @finch{#0,runs.jl:23} begin
                                                                                      for i = virtual(Finch.Extent)
                                                                                        virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Run)[i], virtual(Finch.VirtualScalar)[])
                                                                                      end
                                                                                    end
                                                                                end
                                                                                i = @finch{#0,lower.jl:81}(cached(phase_stop_4, cached(min(phase_stop_3, A_lvl_2_i), min(cached(A_lvl_2_i, max(A_lvl_2_i, +(i_start_2, 1))), max(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1)), +(i_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                                                                            end
                                                                    end
                                                                    i = @finch{#0,lower.jl:81}(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1))) + @finch{#0,lower.jl:81}(1)
                                                                end
                                                                @finch{#0,phases.jl:56} begin
                                                                  for i = virtual(Finch.Extent)
                                                                    virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Phase)[i], virtual(Finch.VirtualScalar)[])
                                                                  end
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = begin
                                                                                            A_lvl_3_val_2 = A_lvl_3.val[A_lvl_2_q]
                                                                                            res_9 = begin
                                                                                                    i_6 = @finch{#0,lower.jl:81}(phase_stop_4)
                                                                                                    @finch{#0,thunks.jl:32} begin
                                                                                                      virtual(Finch.Thunk)[] <<+>>= *(virtual(Finch.VirtualScalar)[], virtual(Finch.VirtualScalar)[])
                                                                                                    end
                                                                                                end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                    @finch{#0,runs.jl:23} begin
                                                                                      for i = virtual(Finch.Extent)
                                                                                        virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Run)[i], virtual(Finch.VirtualScalar)[])
                                                                                      end
                                                                                    end
                                                                                end
                                                                                i = @finch{#0,lower.jl:81}(cached(phase_stop_4, cached(min(phase_stop_3, A_lvl_2_i), min(cached(A_lvl_2_i, max(A_lvl_2_i, +(i_start_2, 1))), max(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1)), +(i_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                                                                            end
                                                                    end
                                                                    i = @finch{#0,lower.jl:81}(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1))) + @finch{#0,lower.jl:81}(1)
                                                                end
                                                                @finch{#0,phases.jl:56} begin
                                                                  for i = virtual(Finch.Extent)
                                                                    virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Phase)[i], virtual(Finch.VirtualScalar)[])
                                                                  end
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = begin
                                                                                            A_lvl_3_val_2 = A_lvl_3.val[A_lvl_2_q]
                                                                                            res_9 = begin
                                                                                                    i_6 = phase_stop_4
                                                                                                    @finch{#0,thunks.jl:32} begin
                                                                                                      virtual(Finch.Thunk)[] <<+>>= *(virtual(Finch.VirtualScalar)[], virtual(Finch.VirtualScalar)[])
                                                                                                    end
                                                                                                end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                    @finch{#0,runs.jl:23} begin
                                                                                      for i = virtual(Finch.Extent)
                                                                                        virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Run)[i], virtual(Finch.VirtualScalar)[])
                                                                                      end
                                                                                    end
                                                                                end
                                                                                i = @finch{#0,lower.jl:81}(cached(phase_stop_4, cached(min(phase_stop_3, A_lvl_2_i), min(cached(A_lvl_2_i, max(A_lvl_2_i, +(i_start_2, 1))), max(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1)), +(i_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                                                                            end
                                                                    end
                                                                    i = @finch{#0,lower.jl:81}(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1))) + @finch{#0,lower.jl:81}(1)
                                                                end
                                                                @finch{#0,phases.jl:56} begin
                                                                  for i = virtual(Finch.Extent)
                                                                    virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Phase)[i], virtual(Finch.VirtualScalar)[])
                                                                  end
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = begin
                                                                                            A_lvl_3_val_2 = A_lvl_3.val[A_lvl_2_q]
                                                                                            res_9 = begin
                                                                                                    i_6 = phase_stop_4
                                                                                                    y_lvl_q = (@finch{#0,lower.jl:81}(1) - 1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64) + @finch{#0,lower.jl:81}(i_6)
                                                                                                    res_10 = @finch{#0,lower.jl:81} begin
                                                                                                          virtual(Finch.VirtualScalar)[] <<+>>= *(virtual(Finch.VirtualScalar)[], virtual(Finch.VirtualScalar)[])
                                                                                                        end
                                                                                                end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                    @finch{#0,runs.jl:23} begin
                                                                                      for i = virtual(Finch.Extent)
                                                                                        virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Run)[i], virtual(Finch.VirtualScalar)[])
                                                                                      end
                                                                                    end
                                                                                end
                                                                                i = @finch{#0,lower.jl:81}(cached(phase_stop_4, cached(min(phase_stop_3, A_lvl_2_i), min(cached(A_lvl_2_i, max(A_lvl_2_i, +(i_start_2, 1))), max(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1)), +(i_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                                                                            end
                                                                    end
                                                                    i = @finch{#0,lower.jl:81}(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1))) + @finch{#0,lower.jl:81}(1)
                                                                end
                                                                @finch{#0,phases.jl:56} begin
                                                                  for i = virtual(Finch.Extent)
                                                                    virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Phase)[i], virtual(Finch.VirtualScalar)[])
                                                                  end
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = begin
                                                                                            A_lvl_3_val_2 = A_lvl_3.val[A_lvl_2_q]
                                                                                            res_9 = begin
                                                                                                    i_6 = phase_stop_4
                                                                                                    y_lvl_q = (1 - 1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64) + @finch{#0,lower.jl:81}(i_6)
                                                                                                    res_10 = @finch{#0,lower.jl:81} begin
                                                                                                          virtual(Finch.VirtualScalar)[] <<+>>= *(virtual(Finch.VirtualScalar)[], virtual(Finch.VirtualScalar)[])
                                                                                                        end
                                                                                                end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                    @finch{#0,runs.jl:23} begin
                                                                                      for i = virtual(Finch.Extent)
                                                                                        virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Run)[i], virtual(Finch.VirtualScalar)[])
                                                                                      end
                                                                                    end
                                                                                end
                                                                                i = @finch{#0,lower.jl:81}(cached(phase_stop_4, cached(min(phase_stop_3, A_lvl_2_i), min(cached(A_lvl_2_i, max(A_lvl_2_i, +(i_start_2, 1))), max(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1)), +(i_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                                                                            end
                                                                    end
                                                                    i = @finch{#0,lower.jl:81}(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1))) + @finch{#0,lower.jl:81}(1)
                                                                end
                                                                @finch{#0,phases.jl:56} begin
                                                                  for i = virtual(Finch.Extent)
                                                                    virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Phase)[i], virtual(Finch.VirtualScalar)[])
                                                                  end
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = begin
                                                                                            A_lvl_3_val_2 = A_lvl_3.val[A_lvl_2_q]
                                                                                            res_9 = begin
                                                                                                    i_6 = phase_stop_4
                                                                                                    y_lvl_q = (1 - 1) * y_lvl.shape + @finch{#0,lower.jl:81}(i_6)
                                                                                                    res_10 = @finch{#0,lower.jl:81} begin
                                                                                                          virtual(Finch.VirtualScalar)[] <<+>>= *(virtual(Finch.VirtualScalar)[], virtual(Finch.VirtualScalar)[])
                                                                                                        end
                                                                                                end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                    @finch{#0,runs.jl:23} begin
                                                                                      for i = virtual(Finch.Extent)
                                                                                        virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Run)[i], virtual(Finch.VirtualScalar)[])
                                                                                      end
                                                                                    end
                                                                                end
                                                                                i = @finch{#0,lower.jl:81}(cached(phase_stop_4, cached(min(phase_stop_3, A_lvl_2_i), min(cached(A_lvl_2_i, max(A_lvl_2_i, +(i_start_2, 1))), max(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1)), +(i_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                                                                            end
                                                                    end
                                                                    i = @finch{#0,lower.jl:81}(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1))) + @finch{#0,lower.jl:81}(1)
                                                                end
                                                                @finch{#0,phases.jl:56} begin
                                                                  for i = virtual(Finch.Extent)
                                                                    virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Phase)[i], virtual(Finch.VirtualScalar)[])
                                                                  end
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = begin
                                                                                            A_lvl_3_val_2 = A_lvl_3.val[A_lvl_2_q]
                                                                                            res_9 = begin
                                                                                                    i_6 = phase_stop_4
                                                                                                    y_lvl_q = (1 - 1) * y_lvl.shape + i_6
                                                                                                    res_10 = @finch{#0,lower.jl:81} begin
                                                                                                          virtual(Finch.VirtualScalar)[] <<+>>= *(virtual(Finch.VirtualScalar)[], virtual(Finch.VirtualScalar)[])
                                                                                                        end
                                                                                                end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                    @finch{#0,runs.jl:23} begin
                                                                                      for i = virtual(Finch.Extent)
                                                                                        virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Run)[i], virtual(Finch.VirtualScalar)[])
                                                                                      end
                                                                                    end
                                                                                end
                                                                                i = @finch{#0,lower.jl:81}(cached(phase_stop_4, cached(min(phase_stop_3, A_lvl_2_i), min(cached(A_lvl_2_i, max(A_lvl_2_i, +(i_start_2, 1))), max(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1)), +(i_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                                                                            end
                                                                    end
                                                                    i = @finch{#0,lower.jl:81}(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1))) + @finch{#0,lower.jl:81}(1)
                                                                end
                                                                @finch{#0,phases.jl:56} begin
                                                                  for i = virtual(Finch.Extent)
                                                                    virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Phase)[i], virtual(Finch.VirtualScalar)[])
                                                                  end
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = begin
                                                                                            A_lvl_3_val_2 = A_lvl_3.val[A_lvl_2_q]
                                                                                            res_9 = begin
                                                                                                    i_6 = phase_stop_4
                                                                                                    y_lvl_q = (1 - 1) * y_lvl.shape + i_6
                                                                                                    res_10 = (@finch{#0,lower.jl:81}(virtual(Finch.VirtualScalar)[]) = @finch{#0,lower.jl:81}(+(*(virtual(Finch.VirtualScalar)[], virtual(Finch.VirtualScalar)[]), virtual(Finch.VirtualScalar)[])))
                                                                                                end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                    @finch{#0,runs.jl:23} begin
                                                                                      for i = virtual(Finch.Extent)
                                                                                        virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Run)[i], virtual(Finch.VirtualScalar)[])
                                                                                      end
                                                                                    end
                                                                                end
                                                                                i = @finch{#0,lower.jl:81}(cached(phase_stop_4, cached(min(phase_stop_3, A_lvl_2_i), min(cached(A_lvl_2_i, max(A_lvl_2_i, +(i_start_2, 1))), max(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1)), +(i_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                                                                            end
                                                                    end
                                                                    i = @finch{#0,lower.jl:81}(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1))) + @finch{#0,lower.jl:81}(1)
                                                                end
                                                                @finch{#0,phases.jl:56} begin
                                                                  for i = virtual(Finch.Extent)
                                                                    virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Phase)[i], virtual(Finch.VirtualScalar)[])
                                                                  end
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = begin
                                                                                            A_lvl_3_val_2 = A_lvl_3.val[A_lvl_2_q]
                                                                                            res_9 = begin
                                                                                                    i_6 = phase_stop_4
                                                                                                    y_lvl_q = (1 - 1) * y_lvl.shape + i_6
                                                                                                    res_10 = (y_lvl_2.val[@finch{#0,lower.jl:81}(y_lvl_q::Int64)] = @finch{#0,lower.jl:81}(+(*(virtual(Finch.VirtualScalar)[], virtual(Finch.VirtualScalar)[]), virtual(Finch.VirtualScalar)[])))
                                                                                                end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                    @finch{#0,runs.jl:23} begin
                                                                                      for i = virtual(Finch.Extent)
                                                                                        virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Run)[i], virtual(Finch.VirtualScalar)[])
                                                                                      end
                                                                                    end
                                                                                end
                                                                                i = @finch{#0,lower.jl:81}(cached(phase_stop_4, cached(min(phase_stop_3, A_lvl_2_i), min(cached(A_lvl_2_i, max(A_lvl_2_i, +(i_start_2, 1))), max(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1)), +(i_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                                                                            end
                                                                    end
                                                                    i = @finch{#0,lower.jl:81}(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1))) + @finch{#0,lower.jl:81}(1)
                                                                end
                                                                @finch{#0,phases.jl:56} begin
                                                                  for i = virtual(Finch.Extent)
                                                                    virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Phase)[i], virtual(Finch.VirtualScalar)[])
                                                                  end
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = begin
                                                                                            A_lvl_3_val_2 = A_lvl_3.val[A_lvl_2_q]
                                                                                            res_9 = begin
                                                                                                    i_6 = phase_stop_4
                                                                                                    y_lvl_q = (1 - 1) * y_lvl.shape + i_6
                                                                                                    res_10 = (y_lvl_2.val[y_lvl_q] = @finch{#0,lower.jl:81}(+(*(virtual(Finch.VirtualScalar)[], virtual(Finch.VirtualScalar)[]), virtual(Finch.VirtualScalar)[])))
                                                                                                end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                    @finch{#0,runs.jl:23} begin
                                                                                      for i = virtual(Finch.Extent)
                                                                                        virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Run)[i], virtual(Finch.VirtualScalar)[])
                                                                                      end
                                                                                    end
                                                                                end
                                                                                i = @finch{#0,lower.jl:81}(cached(phase_stop_4, cached(min(phase_stop_3, A_lvl_2_i), min(cached(A_lvl_2_i, max(A_lvl_2_i, +(i_start_2, 1))), max(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1)), +(i_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                                                                            end
                                                                    end
                                                                    i = @finch{#0,lower.jl:81}(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1))) + @finch{#0,lower.jl:81}(1)
                                                                end
                                                                @finch{#0,phases.jl:56} begin
                                                                  for i = virtual(Finch.Extent)
                                                                    virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Phase)[i], virtual(Finch.VirtualScalar)[])
                                                                  end
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = begin
                                                                                            A_lvl_3_val_2 = A_lvl_3.val[A_lvl_2_q]
                                                                                            res_9 = begin
                                                                                                    i_6 = phase_stop_4
                                                                                                    y_lvl_q = (1 - 1) * y_lvl.shape + i_6
                                                                                                    res_10 = (y_lvl_2.val[y_lvl_q] = (@finch{#0,lower.jl:81}(+))(@finch{#0,lower.jl:81}(*(virtual(Finch.VirtualScalar)[], virtual(Finch.VirtualScalar)[])), @finch{#0,lower.jl:81}(virtual(Finch.VirtualScalar)[])))
                                                                                                end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                    @finch{#0,runs.jl:23} begin
                                                                                      for i = virtual(Finch.Extent)
                                                                                        virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Run)[i], virtual(Finch.VirtualScalar)[])
                                                                                      end
                                                                                    end
                                                                                end
                                                                                i = @finch{#0,lower.jl:81}(cached(phase_stop_4, cached(min(phase_stop_3, A_lvl_2_i), min(cached(A_lvl_2_i, max(A_lvl_2_i, +(i_start_2, 1))), max(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1)), +(i_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                                                                            end
                                                                    end
                                                                    i = @finch{#0,lower.jl:81}(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1))) + @finch{#0,lower.jl:81}(1)
                                                                end
                                                                @finch{#0,phases.jl:56} begin
                                                                  for i = virtual(Finch.Extent)
                                                                    virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Phase)[i], virtual(Finch.VirtualScalar)[])
                                                                  end
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = begin
                                                                                            A_lvl_3_val_2 = A_lvl_3.val[A_lvl_2_q]
                                                                                            res_9 = begin
                                                                                                    i_6 = phase_stop_4
                                                                                                    y_lvl_q = (1 - 1) * y_lvl.shape + i_6
                                                                                                    res_10 = (y_lvl_2.val[y_lvl_q] = (+)(@finch{#0,lower.jl:81}(*(virtual(Finch.VirtualScalar)[], virtual(Finch.VirtualScalar)[])), @finch{#0,lower.jl:81}(virtual(Finch.VirtualScalar)[])))
                                                                                                end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                    @finch{#0,runs.jl:23} begin
                                                                                      for i = virtual(Finch.Extent)
                                                                                        virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Run)[i], virtual(Finch.VirtualScalar)[])
                                                                                      end
                                                                                    end
                                                                                end
                                                                                i = @finch{#0,lower.jl:81}(cached(phase_stop_4, cached(min(phase_stop_3, A_lvl_2_i), min(cached(A_lvl_2_i, max(A_lvl_2_i, +(i_start_2, 1))), max(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1)), +(i_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                                                                            end
                                                                    end
                                                                    i = @finch{#0,lower.jl:81}(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1))) + @finch{#0,lower.jl:81}(1)
                                                                end
                                                                @finch{#0,phases.jl:56} begin
                                                                  for i = virtual(Finch.Extent)
                                                                    virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Phase)[i], virtual(Finch.VirtualScalar)[])
                                                                  end
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = begin
                                                                                            A_lvl_3_val_2 = A_lvl_3.val[A_lvl_2_q]
                                                                                            res_9 = begin
                                                                                                    i_6 = phase_stop_4
                                                                                                    y_lvl_q = (1 - 1) * y_lvl.shape + i_6
                                                                                                    res_10 = (y_lvl_2.val[y_lvl_q] = (+)((@finch{#0,lower.jl:81}(*))(@finch{#0,lower.jl:81}(virtual(Finch.VirtualScalar)[]), @finch{#0,lower.jl:81}(virtual(Finch.VirtualScalar)[])), @finch{#0,lower.jl:81}(virtual(Finch.VirtualScalar)[])))
                                                                                                end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                    @finch{#0,runs.jl:23} begin
                                                                                      for i = virtual(Finch.Extent)
                                                                                        virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Run)[i], virtual(Finch.VirtualScalar)[])
                                                                                      end
                                                                                    end
                                                                                end
                                                                                i = @finch{#0,lower.jl:81}(cached(phase_stop_4, cached(min(phase_stop_3, A_lvl_2_i), min(cached(A_lvl_2_i, max(A_lvl_2_i, +(i_start_2, 1))), max(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1)), +(i_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                                                                            end
                                                                    end
                                                                    i = @finch{#0,lower.jl:81}(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1))) + @finch{#0,lower.jl:81}(1)
                                                                end
                                                                @finch{#0,phases.jl:56} begin
                                                                  for i = virtual(Finch.Extent)
                                                                    virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Phase)[i], virtual(Finch.VirtualScalar)[])
                                                                  end
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = begin
                                                                                            A_lvl_3_val_2 = A_lvl_3.val[A_lvl_2_q]
                                                                                            res_9 = begin
                                                                                                    i_6 = phase_stop_4
                                                                                                    y_lvl_q = (1 - 1) * y_lvl.shape + i_6
                                                                                                    res_10 = (y_lvl_2.val[y_lvl_q] = (+)((*)(@finch{#0,lower.jl:81}(virtual(Finch.VirtualScalar)[]), @finch{#0,lower.jl:81}(virtual(Finch.VirtualScalar)[])), @finch{#0,lower.jl:81}(virtual(Finch.VirtualScalar)[])))
                                                                                                end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                    @finch{#0,runs.jl:23} begin
                                                                                      for i = virtual(Finch.Extent)
                                                                                        virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Run)[i], virtual(Finch.VirtualScalar)[])
                                                                                      end
                                                                                    end
                                                                                end
                                                                                i = @finch{#0,lower.jl:81}(cached(phase_stop_4, cached(min(phase_stop_3, A_lvl_2_i), min(cached(A_lvl_2_i, max(A_lvl_2_i, +(i_start_2, 1))), max(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1)), +(i_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                                                                            end
                                                                    end
                                                                    i = @finch{#0,lower.jl:81}(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1))) + @finch{#0,lower.jl:81}(1)
                                                                end
                                                                @finch{#0,phases.jl:56} begin
                                                                  for i = virtual(Finch.Extent)
                                                                    virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Phase)[i], virtual(Finch.VirtualScalar)[])
                                                                  end
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = begin
                                                                                            A_lvl_3_val_2 = A_lvl_3.val[A_lvl_2_q]
                                                                                            res_9 = begin
                                                                                                    i_6 = phase_stop_4
                                                                                                    y_lvl_q = (1 - 1) * y_lvl.shape + i_6
                                                                                                    res_10 = (y_lvl_2.val[y_lvl_q] = (+)((*)(x_lvl_2_val_2, @finch{#0,lower.jl:81}(virtual(Finch.VirtualScalar)[])), @finch{#0,lower.jl:81}(virtual(Finch.VirtualScalar)[])))
                                                                                                end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                    @finch{#0,runs.jl:23} begin
                                                                                      for i = virtual(Finch.Extent)
                                                                                        virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Run)[i], virtual(Finch.VirtualScalar)[])
                                                                                      end
                                                                                    end
                                                                                end
                                                                                i = @finch{#0,lower.jl:81}(cached(phase_stop_4, cached(min(phase_stop_3, A_lvl_2_i), min(cached(A_lvl_2_i, max(A_lvl_2_i, +(i_start_2, 1))), max(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1)), +(i_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                                                                            end
                                                                    end
                                                                    i = @finch{#0,lower.jl:81}(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1))) + @finch{#0,lower.jl:81}(1)
                                                                end
                                                                @finch{#0,phases.jl:56} begin
                                                                  for i = virtual(Finch.Extent)
                                                                    virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Phase)[i], virtual(Finch.VirtualScalar)[])
                                                                  end
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = begin
                                                                                            A_lvl_3_val_2 = A_lvl_3.val[A_lvl_2_q]
                                                                                            res_9 = begin
                                                                                                    i_6 = phase_stop_4
                                                                                                    y_lvl_q = (1 - 1) * y_lvl.shape + i_6
                                                                                                    res_10 = (y_lvl_2.val[y_lvl_q] = (+)((*)(x_lvl_2_val_2, A_lvl_3_val_2), @finch{#0,lower.jl:81}(virtual(Finch.VirtualScalar)[])))
                                                                                                end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                    @finch{#0,runs.jl:23} begin
                                                                                      for i = virtual(Finch.Extent)
                                                                                        virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Run)[i], virtual(Finch.VirtualScalar)[])
                                                                                      end
                                                                                    end
                                                                                end
                                                                                i = @finch{#0,lower.jl:81}(cached(phase_stop_4, cached(min(phase_stop_3, A_lvl_2_i), min(cached(A_lvl_2_i, max(A_lvl_2_i, +(i_start_2, 1))), max(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1)), +(i_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                                                                            end
                                                                    end
                                                                    i = @finch{#0,lower.jl:81}(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1))) + @finch{#0,lower.jl:81}(1)
                                                                end
                                                                @finch{#0,phases.jl:56} begin
                                                                  for i = virtual(Finch.Extent)
                                                                    virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Phase)[i], virtual(Finch.VirtualScalar)[])
                                                                  end
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = begin
                                                                                            A_lvl_3_val_2 = A_lvl_3.val[A_lvl_2_q]
                                                                                            res_9 = begin
                                                                                                    i_6 = phase_stop_4
                                                                                                    y_lvl_q = (1 - 1) * y_lvl.shape + i_6
                                                                                                    res_10 = (y_lvl_2.val[y_lvl_q] = (+)((*)(x_lvl_2_val_2, A_lvl_3_val_2), y_lvl_2.val[@finch{#0,lower.jl:81}(y_lvl_q::Int64)]))
                                                                                                end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                    @finch{#0,runs.jl:23} begin
                                                                                      for i = virtual(Finch.Extent)
                                                                                        virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Run)[i], virtual(Finch.VirtualScalar)[])
                                                                                      end
                                                                                    end
                                                                                end
                                                                                i = @finch{#0,lower.jl:81}(cached(phase_stop_4, cached(min(phase_stop_3, A_lvl_2_i), min(cached(A_lvl_2_i, max(A_lvl_2_i, +(i_start_2, 1))), max(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1)), +(i_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                                                                            end
                                                                    end
                                                                    i = @finch{#0,lower.jl:81}(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1))) + @finch{#0,lower.jl:81}(1)
                                                                end
                                                                @finch{#0,phases.jl:56} begin
                                                                  for i = virtual(Finch.Extent)
                                                                    virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Phase)[i], virtual(Finch.VirtualScalar)[])
                                                                  end
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = begin
                                                                                            A_lvl_3_val_2 = A_lvl_3.val[A_lvl_2_q]
                                                                                            res_9 = begin
                                                                                                    i_6 = phase_stop_4
                                                                                                    y_lvl_q = (1 - 1) * y_lvl.shape + i_6
                                                                                                    res_10 = (y_lvl_2.val[y_lvl_q] = (+)((*)(x_lvl_2_val_2, A_lvl_3_val_2), y_lvl_2.val[y_lvl_q]))
                                                                                                end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                    @finch{#0,runs.jl:23} begin
                                                                                      for i = virtual(Finch.Extent)
                                                                                        virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Run)[i], virtual(Finch.VirtualScalar)[])
                                                                                      end
                                                                                    end
                                                                                end
                                                                                i = @finch{#0,lower.jl:81}(cached(phase_stop_4, cached(min(phase_stop_3, A_lvl_2_i), min(cached(A_lvl_2_i, max(A_lvl_2_i, +(i_start_2, 1))), max(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1)), +(i_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                                                                            end
                                                                    end
                                                                    i = @finch{#0,lower.jl:81}(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1))) + @finch{#0,lower.jl:81}(1)
                                                                end
                                                                @finch{#0,phases.jl:56} begin
                                                                  for i = virtual(Finch.Extent)
                                                                    virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Phase)[i], virtual(Finch.VirtualScalar)[])
                                                                  end
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = begin
                                                                                            A_lvl_3_val_2 = A_lvl_3.val[A_lvl_2_q]
                                                                                            res_9 = begin
                                                                                                    i_6 = phase_stop_4
                                                                                                    y_lvl_q = (1 - 1) * y_lvl.shape + i_6
                                                                                                    res_10 = (y_lvl_2.val[y_lvl_q] = (+)((*)(x_lvl_2_val_2, A_lvl_3_val_2), y_lvl_2.val[y_lvl_q]))
                                                                                                end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                    @finch{#0,fills.jl:25} begin
                                                                                      for i = virtual(Finch.Extent)
                                                                                        virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Fill)[], virtual(Finch.VirtualScalar)[])
                                                                                      end
                                                                                    end
                                                                                end
                                                                                i = @finch{#0,lower.jl:81}(cached(phase_stop_4, cached(min(phase_stop_3, A_lvl_2_i), min(cached(A_lvl_2_i, max(A_lvl_2_i, +(i_start_2, 1))), max(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1)), +(i_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                                                                            end
                                                                    end
                                                                    i = @finch{#0,lower.jl:81}(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1))) + @finch{#0,lower.jl:81}(1)
                                                                end
                                                                @finch{#0,phases.jl:56} begin
                                                                  for i = virtual(Finch.Extent)
                                                                    virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Phase)[i], virtual(Finch.VirtualScalar)[])
                                                                  end
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = begin
                                                                                            A_lvl_3_val_2 = A_lvl_3.val[A_lvl_2_q]
                                                                                            res_9 = begin
                                                                                                    i_6 = phase_stop_4
                                                                                                    y_lvl_q = (1 - 1) * y_lvl.shape + i_6
                                                                                                    res_10 = (y_lvl_2.val[y_lvl_q] = (+)((*)(x_lvl_2_val_2, A_lvl_3_val_2), y_lvl_2.val[y_lvl_q]))
                                                                                                end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                    @finch{#0,simplify_program.jl:198} begin
                                                                                      for i = virtual(Finch.Extent)
                                                                                        virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Simplify), virtual(Finch.VirtualScalar)[])
                                                                                      end
                                                                                    end
                                                                                end
                                                                                i = @finch{#0,lower.jl:81}(cached(phase_stop_4, cached(min(phase_stop_3, A_lvl_2_i), min(cached(A_lvl_2_i, max(A_lvl_2_i, +(i_start_2, 1))), max(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1)), +(i_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                                                                            end
                                                                    end
                                                                    i = @finch{#0,lower.jl:81}(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1))) + @finch{#0,lower.jl:81}(1)
                                                                end
                                                                @finch{#0,phases.jl:56} begin
                                                                  for i = virtual(Finch.Extent)
                                                                    virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Phase)[i], virtual(Finch.VirtualScalar)[])
                                                                  end
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = begin
                                                                                            A_lvl_3_val_2 = A_lvl_3.val[A_lvl_2_q]
                                                                                            res_9 = begin
                                                                                                    i_6 = phase_stop_4
                                                                                                    y_lvl_q = (1 - 1) * y_lvl.shape + i_6
                                                                                                    res_10 = (y_lvl_2.val[y_lvl_q] = (+)((*)(x_lvl_2_val_2, A_lvl_3_val_2), y_lvl_2.val[y_lvl_q]))
                                                                                                end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                    @finch{#0,lower.jl:81} begin
                                                                                      begin
                                                                                      end
                                                                                    end
                                                                                end
                                                                                i = @finch{#0,lower.jl:81}(cached(phase_stop_4, cached(min(phase_stop_3, A_lvl_2_i), min(cached(A_lvl_2_i, max(A_lvl_2_i, +(i_start_2, 1))), max(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1)), +(i_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                                                                            end
                                                                    end
                                                                    i = @finch{#0,lower.jl:81}(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1))) + @finch{#0,lower.jl:81}(1)
                                                                end
                                                                @finch{#0,phases.jl:56} begin
                                                                  for i = virtual(Finch.Extent)
                                                                    virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Phase)[i], virtual(Finch.VirtualScalar)[])
                                                                  end
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = begin
                                                                                            A_lvl_3_val_2 = A_lvl_3.val[A_lvl_2_q]
                                                                                            res_9 = begin
                                                                                                    i_6 = phase_stop_4
                                                                                                    y_lvl_q = (1 - 1) * y_lvl.shape + i_6
                                                                                                    res_10 = (y_lvl_2.val[y_lvl_q] = (+)((*)(x_lvl_2_val_2, A_lvl_3_val_2), y_lvl_2.val[y_lvl_q]))
                                                                                                end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                end
                                                                                i = @finch{#0,lower.jl:81}(cached(phase_stop_4, cached(min(phase_stop_3, A_lvl_2_i), min(cached(A_lvl_2_i, max(A_lvl_2_i, +(i_start_2, 1))), max(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1)), +(i_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                                                                            end
                                                                    end
                                                                    i = @finch{#0,lower.jl:81}(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1))) + @finch{#0,lower.jl:81}(1)
                                                                end
                                                                @finch{#0,phases.jl:56} begin
                                                                  for i = virtual(Finch.Extent)
                                                                    virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Phase)[i], virtual(Finch.VirtualScalar)[])
                                                                  end
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = begin
                                                                                            A_lvl_3_val_2 = A_lvl_3.val[A_lvl_2_q]
                                                                                            res_9 = begin
                                                                                                    i_6 = phase_stop_4
                                                                                                    y_lvl_q = (1 - 1) * y_lvl.shape + i_6
                                                                                                    res_10 = (y_lvl_2.val[y_lvl_q] = (+)((*)(x_lvl_2_val_2, A_lvl_3_val_2), y_lvl_2.val[y_lvl_q]))
                                                                                                end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                end
                                                                                i = @finch{#0,lower.jl:81}(phase_stop_4) + @finch{#0,lower.jl:81}(1)
                                                                            end
                                                                    end
                                                                    i = @finch{#0,lower.jl:81}(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1))) + @finch{#0,lower.jl:81}(1)
                                                                end
                                                                @finch{#0,phases.jl:56} begin
                                                                  for i = virtual(Finch.Extent)
                                                                    virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Phase)[i], virtual(Finch.VirtualScalar)[])
                                                                  end
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = begin
                                                                                            A_lvl_3_val_2 = A_lvl_3.val[A_lvl_2_q]
                                                                                            res_9 = begin
                                                                                                    i_6 = phase_stop_4
                                                                                                    y_lvl_q = (1 - 1) * y_lvl.shape + i_6
                                                                                                    res_10 = (y_lvl_2.val[y_lvl_q] = (+)((*)(x_lvl_2_val_2, A_lvl_3_val_2), y_lvl_2.val[y_lvl_q]))
                                                                                                end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                end
                                                                                i = phase_stop_4 + @finch{#0,lower.jl:81}(1)
                                                                            end
                                                                    end
                                                                    i = @finch{#0,lower.jl:81}(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1))) + @finch{#0,lower.jl:81}(1)
                                                                end
                                                                @finch{#0,phases.jl:56} begin
                                                                  for i = virtual(Finch.Extent)
                                                                    virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Phase)[i], virtual(Finch.VirtualScalar)[])
                                                                  end
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = begin
                                                                                            A_lvl_3_val_2 = A_lvl_3.val[A_lvl_2_q]
                                                                                            res_9 = begin
                                                                                                    i_6 = phase_stop_4
                                                                                                    y_lvl_q = (1 - 1) * y_lvl.shape + i_6
                                                                                                    res_10 = (y_lvl_2.val[y_lvl_q] = (+)((*)(x_lvl_2_val_2, A_lvl_3_val_2), y_lvl_2.val[y_lvl_q]))
                                                                                                end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                end
                                                                                i = phase_stop_4 + 1
                                                                            end
                                                                    end
                                                                    i = @finch{#0,lower.jl:81}(cached(phase_stop_3, min(A_lvl_2.shape::Int64, A_lvl_2_i1))) + @finch{#0,lower.jl:81}(1)
                                                                end
                                                                @finch{#0,phases.jl:56} begin
                                                                  for i = virtual(Finch.Extent)
                                                                    virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Phase)[i], virtual(Finch.VirtualScalar)[])
                                                                  end
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = begin
                                                                                            A_lvl_3_val_2 = A_lvl_3.val[A_lvl_2_q]
                                                                                            res_9 = begin
                                                                                                    i_6 = phase_stop_4
                                                                                                    y_lvl_q = (1 - 1) * y_lvl.shape + i_6
                                                                                                    res_10 = (y_lvl_2.val[y_lvl_q] = (+)((*)(x_lvl_2_val_2, A_lvl_3_val_2), y_lvl_2.val[y_lvl_q]))
                                                                                                end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                end
                                                                                i = phase_stop_4 + 1
                                                                            end
                                                                    end
                                                                    i = @finch{#0,lower.jl:81}(phase_stop_3) + @finch{#0,lower.jl:81}(1)
                                                                end
                                                                @finch{#0,phases.jl:56} begin
                                                                  for i = virtual(Finch.Extent)
                                                                    virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Phase)[i], virtual(Finch.VirtualScalar)[])
                                                                  end
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = begin
                                                                                            A_lvl_3_val_2 = A_lvl_3.val[A_lvl_2_q]
                                                                                            res_9 = begin
                                                                                                    i_6 = phase_stop_4
                                                                                                    y_lvl_q = (1 - 1) * y_lvl.shape + i_6
                                                                                                    res_10 = (y_lvl_2.val[y_lvl_q] = (+)((*)(x_lvl_2_val_2, A_lvl_3_val_2), y_lvl_2.val[y_lvl_q]))
                                                                                                end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                end
                                                                                i = phase_stop_4 + 1
                                                                            end
                                                                    end
                                                                    i = phase_stop_3 + @finch{#0,lower.jl:81}(1)
                                                                end
                                                                @finch{#0,phases.jl:56} begin
                                                                  for i = virtual(Finch.Extent)
                                                                    virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Phase)[i], virtual(Finch.VirtualScalar)[])
                                                                  end
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = begin
                                                                                            A_lvl_3_val_2 = A_lvl_3.val[A_lvl_2_q]
                                                                                            res_9 = begin
                                                                                                    i_6 = phase_stop_4
                                                                                                    y_lvl_q = (1 - 1) * y_lvl.shape + i_6
                                                                                                    res_10 = (y_lvl_2.val[y_lvl_q] = (+)((*)(x_lvl_2_val_2, A_lvl_3_val_2), y_lvl_2.val[y_lvl_q]))
                                                                                                end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                end
                                                                                i = phase_stop_4 + 1
                                                                            end
                                                                    end
                                                                    i = phase_stop_3 + 1
                                                                end
                                                                @finch{#0,phases.jl:56} begin
                                                                  for i = virtual(Finch.Extent)
                                                                    virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Phase)[i], virtual(Finch.VirtualScalar)[])
                                                                  end
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = begin
                                                                                            A_lvl_3_val_2 = A_lvl_3.val[A_lvl_2_q]
                                                                                            res_9 = begin
                                                                                                    i_6 = phase_stop_4
                                                                                                    y_lvl_q = (1 - 1) * y_lvl.shape + i_6
                                                                                                    res_10 = (y_lvl_2.val[y_lvl_q] = (+)((*)(x_lvl_2_val_2, A_lvl_3_val_2), y_lvl_2.val[y_lvl_q]))
                                                                                                end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                end
                                                                                i = phase_stop_4 + 1
                                                                            end
                                                                    end
                                                                    i = phase_stop_3 + 1
                                                                end
                                                                if @finch{#0,lower.jl:81}(cached(phase_stop_5, A_lvl_2.shape::Int64)) >= @finch{#0,lower.jl:81}(cached(phase_start_5, max(1, +(1, A_lvl_2_i1))))
                                                                    i_7 = i
                                                                    @finch{#0,runs.jl:23} begin
                                                                      for i = virtual(Finch.Extent)
                                                                        virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Run)[i], virtual(Finch.VirtualScalar)[])
                                                                      end
                                                                    end
                                                                    i = @finch{#0,lower.jl:81}(cached(phase_stop_5, A_lvl_2.shape::Int64)) + @finch{#0,lower.jl:81}(1)
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = begin
                                                                                            A_lvl_3_val_2 = A_lvl_3.val[A_lvl_2_q]
                                                                                            res_9 = begin
                                                                                                    i_6 = phase_stop_4
                                                                                                    y_lvl_q = (1 - 1) * y_lvl.shape + i_6
                                                                                                    res_10 = (y_lvl_2.val[y_lvl_q] = (+)((*)(x_lvl_2_val_2, A_lvl_3_val_2), y_lvl_2.val[y_lvl_q]))
                                                                                                end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                end
                                                                                i = phase_stop_4 + 1
                                                                            end
                                                                    end
                                                                    i = phase_stop_3 + 1
                                                                end
                                                                if @finch{#0,lower.jl:81}(phase_stop_5) >= @finch{#0,lower.jl:81}(cached(phase_start_5, max(1, +(1, A_lvl_2_i1))))
                                                                    i_7 = i
                                                                    @finch{#0,runs.jl:23} begin
                                                                      for i = virtual(Finch.Extent)
                                                                        virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Run)[i], virtual(Finch.VirtualScalar)[])
                                                                      end
                                                                    end
                                                                    i = @finch{#0,lower.jl:81}(cached(phase_stop_5, A_lvl_2.shape::Int64)) + @finch{#0,lower.jl:81}(1)
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = begin
                                                                                            A_lvl_3_val_2 = A_lvl_3.val[A_lvl_2_q]
                                                                                            res_9 = begin
                                                                                                    i_6 = phase_stop_4
                                                                                                    y_lvl_q = (1 - 1) * y_lvl.shape + i_6
                                                                                                    res_10 = (y_lvl_2.val[y_lvl_q] = (+)((*)(x_lvl_2_val_2, A_lvl_3_val_2), y_lvl_2.val[y_lvl_q]))
                                                                                                end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                end
                                                                                i = phase_stop_4 + 1
                                                                            end
                                                                    end
                                                                    i = phase_stop_3 + 1
                                                                end
                                                                if phase_stop_5 >= @finch{#0,lower.jl:81}(cached(phase_start_5, max(1, +(1, A_lvl_2_i1))))
                                                                    i_7 = i
                                                                    @finch{#0,runs.jl:23} begin
                                                                      for i = virtual(Finch.Extent)
                                                                        virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Run)[i], virtual(Finch.VirtualScalar)[])
                                                                      end
                                                                    end
                                                                    i = @finch{#0,lower.jl:81}(cached(phase_stop_5, A_lvl_2.shape::Int64)) + @finch{#0,lower.jl:81}(1)
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = begin
                                                                                            A_lvl_3_val_2 = A_lvl_3.val[A_lvl_2_q]
                                                                                            res_9 = begin
                                                                                                    i_6 = phase_stop_4
                                                                                                    y_lvl_q = (1 - 1) * y_lvl.shape + i_6
                                                                                                    res_10 = (y_lvl_2.val[y_lvl_q] = (+)((*)(x_lvl_2_val_2, A_lvl_3_val_2), y_lvl_2.val[y_lvl_q]))
                                                                                                end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                end
                                                                                i = phase_stop_4 + 1
                                                                            end
                                                                    end
                                                                    i = phase_stop_3 + 1
                                                                end
                                                                if phase_stop_5 >= @finch{#0,lower.jl:81}(phase_start_5)
                                                                    i_7 = i
                                                                    @finch{#0,runs.jl:23} begin
                                                                      for i = virtual(Finch.Extent)
                                                                        virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Run)[i], virtual(Finch.VirtualScalar)[])
                                                                      end
                                                                    end
                                                                    i = @finch{#0,lower.jl:81}(cached(phase_stop_5, A_lvl_2.shape::Int64)) + @finch{#0,lower.jl:81}(1)
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = begin
                                                                                            A_lvl_3_val_2 = A_lvl_3.val[A_lvl_2_q]
                                                                                            res_9 = begin
                                                                                                    i_6 = phase_stop_4
                                                                                                    y_lvl_q = (1 - 1) * y_lvl.shape + i_6
                                                                                                    res_10 = (y_lvl_2.val[y_lvl_q] = (+)((*)(x_lvl_2_val_2, A_lvl_3_val_2), y_lvl_2.val[y_lvl_q]))
                                                                                                end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                end
                                                                                i = phase_stop_4 + 1
                                                                            end
                                                                    end
                                                                    i = phase_stop_3 + 1
                                                                end
                                                                if phase_stop_5 >= phase_start_5
                                                                    i_7 = i
                                                                    @finch{#0,runs.jl:23} begin
                                                                      for i = virtual(Finch.Extent)
                                                                        virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Run)[i], virtual(Finch.VirtualScalar)[])
                                                                      end
                                                                    end
                                                                    i = @finch{#0,lower.jl:81}(cached(phase_stop_5, A_lvl_2.shape::Int64)) + @finch{#0,lower.jl:81}(1)
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = begin
                                                                                            A_lvl_3_val_2 = A_lvl_3.val[A_lvl_2_q]
                                                                                            res_9 = begin
                                                                                                    i_6 = phase_stop_4
                                                                                                    y_lvl_q = (1 - 1) * y_lvl.shape + i_6
                                                                                                    res_10 = (y_lvl_2.val[y_lvl_q] = (+)((*)(x_lvl_2_val_2, A_lvl_3_val_2), y_lvl_2.val[y_lvl_q]))
                                                                                                end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                end
                                                                                i = phase_stop_4 + 1
                                                                            end
                                                                    end
                                                                    i = phase_stop_3 + 1
                                                                end
                                                                if phase_stop_5 >= phase_start_5
                                                                    i_7 = i
                                                                    @finch{#0,fills.jl:25} begin
                                                                      for i = virtual(Finch.Extent)
                                                                        virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Fill)[], virtual(Finch.VirtualScalar)[])
                                                                      end
                                                                    end
                                                                    i = @finch{#0,lower.jl:81}(cached(phase_stop_5, A_lvl_2.shape::Int64)) + @finch{#0,lower.jl:81}(1)
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = begin
                                                                                            A_lvl_3_val_2 = A_lvl_3.val[A_lvl_2_q]
                                                                                            res_9 = begin
                                                                                                    i_6 = phase_stop_4
                                                                                                    y_lvl_q = (1 - 1) * y_lvl.shape + i_6
                                                                                                    res_10 = (y_lvl_2.val[y_lvl_q] = (+)((*)(x_lvl_2_val_2, A_lvl_3_val_2), y_lvl_2.val[y_lvl_q]))
                                                                                                end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                end
                                                                                i = phase_stop_4 + 1
                                                                            end
                                                                    end
                                                                    i = phase_stop_3 + 1
                                                                end
                                                                if phase_stop_5 >= phase_start_5
                                                                    i_7 = i
                                                                    @finch{#0,simplify_program.jl:198} begin
                                                                      for i = virtual(Finch.Extent)
                                                                        virtual(Finch.Lookup)[i] <<+>>= *(virtual(Finch.Simplify), virtual(Finch.VirtualScalar)[])
                                                                      end
                                                                    end
                                                                    i = @finch{#0,lower.jl:81}(cached(phase_stop_5, A_lvl_2.shape::Int64)) + @finch{#0,lower.jl:81}(1)
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = begin
                                                                                            A_lvl_3_val_2 = A_lvl_3.val[A_lvl_2_q]
                                                                                            res_9 = begin
                                                                                                    i_6 = phase_stop_4
                                                                                                    y_lvl_q = (1 - 1) * y_lvl.shape + i_6
                                                                                                    res_10 = (y_lvl_2.val[y_lvl_q] = (+)((*)(x_lvl_2_val_2, A_lvl_3_val_2), y_lvl_2.val[y_lvl_q]))
                                                                                                end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                end
                                                                                i = phase_stop_4 + 1
                                                                            end
                                                                    end
                                                                    i = phase_stop_3 + 1
                                                                end
                                                                if phase_stop_5 >= phase_start_5
                                                                    i_7 = i
                                                                    @finch{#0,lower.jl:81} begin
                                                                      begin
                                                                      end
                                                                    end
                                                                    i = @finch{#0,lower.jl:81}(cached(phase_stop_5, A_lvl_2.shape::Int64)) + @finch{#0,lower.jl:81}(1)
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = begin
                                                                                            A_lvl_3_val_2 = A_lvl_3.val[A_lvl_2_q]
                                                                                            res_9 = begin
                                                                                                    i_6 = phase_stop_4
                                                                                                    y_lvl_q = (1 - 1) * y_lvl.shape + i_6
                                                                                                    res_10 = (y_lvl_2.val[y_lvl_q] = (+)((*)(x_lvl_2_val_2, A_lvl_3_val_2), y_lvl_2.val[y_lvl_q]))
                                                                                                end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                end
                                                                                i = phase_stop_4 + 1
                                                                            end
                                                                    end
                                                                    i = phase_stop_3 + 1
                                                                end
                                                                if phase_stop_5 >= phase_start_5
                                                                    i_7 = i
                                                                    i = @finch{#0,lower.jl:81}(cached(phase_stop_5, A_lvl_2.shape::Int64)) + @finch{#0,lower.jl:81}(1)
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = begin
                                                                                            A_lvl_3_val_2 = A_lvl_3.val[A_lvl_2_q]
                                                                                            res_9 = begin
                                                                                                    i_6 = phase_stop_4
                                                                                                    y_lvl_q = (1 - 1) * y_lvl.shape + i_6
                                                                                                    res_10 = (y_lvl_2.val[y_lvl_q] = (+)((*)(x_lvl_2_val_2, A_lvl_3_val_2), y_lvl_2.val[y_lvl_q]))
                                                                                                end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                end
                                                                                i = phase_stop_4 + 1
                                                                            end
                                                                    end
                                                                    i = phase_stop_3 + 1
                                                                end
                                                                if phase_stop_5 >= phase_start_5
                                                                    i_7 = i
                                                                    i = @finch{#0,lower.jl:81}(phase_stop_5) + @finch{#0,lower.jl:81}(1)
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = begin
                                                                                            A_lvl_3_val_2 = A_lvl_3.val[A_lvl_2_q]
                                                                                            res_9 = begin
                                                                                                    i_6 = phase_stop_4
                                                                                                    y_lvl_q = (1 - 1) * y_lvl.shape + i_6
                                                                                                    res_10 = (y_lvl_2.val[y_lvl_q] = (+)((*)(x_lvl_2_val_2, A_lvl_3_val_2), y_lvl_2.val[y_lvl_q]))
                                                                                                end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                end
                                                                                i = phase_stop_4 + 1
                                                                            end
                                                                    end
                                                                    i = phase_stop_3 + 1
                                                                end
                                                                if phase_stop_5 >= phase_start_5
                                                                    i_7 = i
                                                                    i = phase_stop_5 + @finch{#0,lower.jl:81}(1)
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = begin
                                                                                            A_lvl_3_val_2 = A_lvl_3.val[A_lvl_2_q]
                                                                                            res_9 = begin
                                                                                                    i_6 = phase_stop_4
                                                                                                    y_lvl_q = (1 - 1) * y_lvl.shape + i_6
                                                                                                    res_10 = (y_lvl_2.val[y_lvl_q] = (+)((*)(x_lvl_2_val_2, A_lvl_3_val_2), y_lvl_2.val[y_lvl_q]))
                                                                                                end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                end
                                                                                i = phase_stop_4 + 1
                                                                            end
                                                                    end
                                                                    i = phase_stop_3 + 1
                                                                end
                                                                if phase_stop_5 >= phase_start_5
                                                                    i_7 = i
                                                                    i = phase_stop_5 + 1
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,runs.jl:23} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = begin
                                                                                            A_lvl_3_val_2 = A_lvl_3.val[A_lvl_2_q]
                                                                                            res_9 = begin
                                                                                                    i_6 = phase_stop_4
                                                                                                    y_lvl_q = (1 - 1) * y_lvl.shape + i_6
                                                                                                    res_10 = (y_lvl_2.val[y_lvl_q] = (+)((*)(x_lvl_2_val_2, A_lvl_3_val_2), y_lvl_2.val[y_lvl_q]))
                                                                                                end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                end
                                                                                i = phase_stop_4 + 1
                                                                            end
                                                                    end
                                                                    i = phase_stop_3 + 1
                                                                end
                                                                if phase_stop_5 >= phase_start_5
                                                                    i_7 = i
                                                                    i = phase_stop_5 + 1
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,fills.jl:25} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Fill)[], virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = begin
                                                                                            A_lvl_3_val_2 = A_lvl_3.val[A_lvl_2_q]
                                                                                            res_9 = begin
                                                                                                    i_6 = phase_stop_4
                                                                                                    y_lvl_q = (1 - 1) * y_lvl.shape + i_6
                                                                                                    res_10 = (y_lvl_2.val[y_lvl_q] = (+)((*)(x_lvl_2_val_2, A_lvl_3_val_2), y_lvl_2.val[y_lvl_q]))
                                                                                                end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                end
                                                                                i = phase_stop_4 + 1
                                                                            end
                                                                    end
                                                                    i = phase_stop_3 + 1
                                                                end
                                                                if phase_stop_5 >= phase_start_5
                                                                    i_7 = i
                                                                    i = phase_stop_5 + 1
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,simplify_program.jl:198} begin
                                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Simplify), virtual(Finch.Lookup)[i, j])
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = begin
                                                                                            A_lvl_3_val_2 = A_lvl_3.val[A_lvl_2_q]
                                                                                            res_9 = begin
                                                                                                    i_6 = phase_stop_4
                                                                                                    y_lvl_q = (1 - 1) * y_lvl.shape + i_6
                                                                                                    res_10 = (y_lvl_2.val[y_lvl_q] = (+)((*)(x_lvl_2_val_2, A_lvl_3_val_2), y_lvl_2.val[y_lvl_q]))
                                                                                                end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                end
                                                                                i = phase_stop_4 + 1
                                                                            end
                                                                    end
                                                                    i = phase_stop_3 + 1
                                                                end
                                                                if phase_stop_5 >= phase_start_5
                                                                    i_7 = i
                                                                    i = phase_stop_5 + 1
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                                @finch{#0,lower.jl:81} begin
                                  begin
                                  end
                                end
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = begin
                                                                                            A_lvl_3_val_2 = A_lvl_3.val[A_lvl_2_q]
                                                                                            res_9 = begin
                                                                                                    i_6 = phase_stop_4
                                                                                                    y_lvl_q = (1 - 1) * y_lvl.shape + i_6
                                                                                                    res_10 = (y_lvl_2.val[y_lvl_q] = (+)((*)(x_lvl_2_val_2, A_lvl_3_val_2), y_lvl_2.val[y_lvl_q]))
                                                                                                end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                end
                                                                                i = phase_stop_4 + 1
                                                                            end
                                                                    end
                                                                    i = phase_stop_3 + 1
                                                                end
                                                                if phase_stop_5 >= phase_start_5
                                                                    i_7 = i
                                                                    i = phase_stop_5 + 1
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                            end
                            j = @finch{#0,lower.jl:81}(cached(phase_stop_2, cached(min(phase_stop, x_lvl_i), min(cached(x_lvl_i, max(x_lvl_i, +(j_start_2, 1))), max(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1)), +(j_start_2, 1)))))) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = begin
                                                                                            A_lvl_3_val_2 = A_lvl_3.val[A_lvl_2_q]
                                                                                            res_9 = begin
                                                                                                    i_6 = phase_stop_4
                                                                                                    y_lvl_q = (1 - 1) * y_lvl.shape + i_6
                                                                                                    res_10 = (y_lvl_2.val[y_lvl_q] = (+)((*)(x_lvl_2_val_2, A_lvl_3_val_2), y_lvl_2.val[y_lvl_q]))
                                                                                                end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                end
                                                                                i = phase_stop_4 + 1
                                                                            end
                                                                    end
                                                                    i = phase_stop_3 + 1
                                                                end
                                                                if phase_stop_5 >= phase_start_5
                                                                    i_7 = i
                                                                    i = phase_stop_5 + 1
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                            end
                            j = @finch{#0,lower.jl:81}(phase_stop_2) + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = begin
                                                                                            A_lvl_3_val_2 = A_lvl_3.val[A_lvl_2_q]
                                                                                            res_9 = begin
                                                                                                    i_6 = phase_stop_4
                                                                                                    y_lvl_q = (1 - 1) * y_lvl.shape + i_6
                                                                                                    res_10 = (y_lvl_2.val[y_lvl_q] = (+)((*)(x_lvl_2_val_2, A_lvl_3_val_2), y_lvl_2.val[y_lvl_q]))
                                                                                                end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                end
                                                                                i = phase_stop_4 + 1
                                                                            end
                                                                    end
                                                                    i = phase_stop_3 + 1
                                                                end
                                                                if phase_stop_5 >= phase_start_5
                                                                    i_7 = i
                                                                    i = phase_stop_5 + 1
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                            end
                            j = phase_stop_2 + @finch{#0,lower.jl:81}(1)
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = begin
                                                                                            A_lvl_3_val_2 = A_lvl_3.val[A_lvl_2_q]
                                                                                            res_9 = begin
                                                                                                    i_6 = phase_stop_4
                                                                                                    y_lvl_q = (1 - 1) * y_lvl.shape + i_6
                                                                                                    res_10 = (y_lvl_2.val[y_lvl_q] = (+)((*)(x_lvl_2_val_2, A_lvl_3_val_2), y_lvl_2.val[y_lvl_q]))
                                                                                                end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                end
                                                                                i = phase_stop_4 + 1
                                                                            end
                                                                    end
                                                                    i = phase_stop_3 + 1
                                                                end
                                                                if phase_stop_5 >= phase_start_5
                                                                    i_7 = i
                                                                    i = phase_stop_5 + 1
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                            end
                            j = phase_stop_2 + 1
                        end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop, min(x_lvl.shape::Int64, x_lvl_i1))) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = begin
                                                                                            A_lvl_3_val_2 = A_lvl_3.val[A_lvl_2_q]
                                                                                            res_9 = begin
                                                                                                    i_6 = phase_stop_4
                                                                                                    y_lvl_q = (1 - 1) * y_lvl.shape + i_6
                                                                                                    res_10 = (y_lvl_2.val[y_lvl_q] = (+)((*)(x_lvl_2_val_2, A_lvl_3_val_2), y_lvl_2.val[y_lvl_q]))
                                                                                                end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                end
                                                                                i = phase_stop_4 + 1
                                                                            end
                                                                    end
                                                                    i = phase_stop_3 + 1
                                                                end
                                                                if phase_stop_5 >= phase_start_5
                                                                    i_7 = i
                                                                    i = phase_stop_5 + 1
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                            end
                            j = phase_stop_2 + 1
                        end
                end
                j = @finch{#0,lower.jl:81}(phase_stop) + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = begin
                                                                                            A_lvl_3_val_2 = A_lvl_3.val[A_lvl_2_q]
                                                                                            res_9 = begin
                                                                                                    i_6 = phase_stop_4
                                                                                                    y_lvl_q = (1 - 1) * y_lvl.shape + i_6
                                                                                                    res_10 = (y_lvl_2.val[y_lvl_q] = (+)((*)(x_lvl_2_val_2, A_lvl_3_val_2), y_lvl_2.val[y_lvl_q]))
                                                                                                end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                end
                                                                                i = phase_stop_4 + 1
                                                                            end
                                                                    end
                                                                    i = phase_stop_3 + 1
                                                                end
                                                                if phase_stop_5 >= phase_start_5
                                                                    i_7 = i
                                                                    i = phase_stop_5 + 1
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                            end
                            j = phase_stop_2 + 1
                        end
                end
                j = phase_stop + @finch{#0,lower.jl:81}(1)
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = begin
                                                                                            A_lvl_3_val_2 = A_lvl_3.val[A_lvl_2_q]
                                                                                            res_9 = begin
                                                                                                    i_6 = phase_stop_4
                                                                                                    y_lvl_q = (1 - 1) * y_lvl.shape + i_6
                                                                                                    res_10 = (y_lvl_2.val[y_lvl_q] = (+)((*)(x_lvl_2_val_2, A_lvl_3_val_2), y_lvl_2.val[y_lvl_q]))
                                                                                                end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                end
                                                                                i = phase_stop_4 + 1
                                                                            end
                                                                    end
                                                                    i = phase_stop_3 + 1
                                                                end
                                                                if phase_stop_5 >= phase_start_5
                                                                    i_7 = i
                                                                    i = phase_stop_5 + 1
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                            end
                            j = phase_stop_2 + 1
                        end
                end
                j = phase_stop + 1
            end
            @finch{#0,phases.jl:56} begin
              for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Phase)[j], virtual(Finch.Lookup)[i, j])
              end
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = begin
                                                                                            A_lvl_3_val_2 = A_lvl_3.val[A_lvl_2_q]
                                                                                            res_9 = begin
                                                                                                    i_6 = phase_stop_4
                                                                                                    y_lvl_q = (1 - 1) * y_lvl.shape + i_6
                                                                                                    res_10 = (y_lvl_2.val[y_lvl_q] = (+)((*)(x_lvl_2_val_2, A_lvl_3_val_2), y_lvl_2.val[y_lvl_q]))
                                                                                                end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                end
                                                                                i = phase_stop_4 + 1
                                                                            end
                                                                    end
                                                                    i = phase_stop_3 + 1
                                                                end
                                                                if phase_stop_5 >= phase_start_5
                                                                    i_7 = i
                                                                    i = phase_stop_5 + 1
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                            end
                            j = phase_stop_2 + 1
                        end
                end
                j = phase_stop + 1
            end
            if @finch{#0,lower.jl:81}(cached(phase_stop_6, x_lvl.shape::Int64)) >= @finch{#0,lower.jl:81}(cached(phase_start_6, max(1, +(1, x_lvl_i1))))
                j_7 = j
                @finch{#0,runs.jl:23} begin
                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                  end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop_6, x_lvl.shape::Int64)) + @finch{#0,lower.jl:81}(1)
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = begin
                                                                                            A_lvl_3_val_2 = A_lvl_3.val[A_lvl_2_q]
                                                                                            res_9 = begin
                                                                                                    i_6 = phase_stop_4
                                                                                                    y_lvl_q = (1 - 1) * y_lvl.shape + i_6
                                                                                                    res_10 = (y_lvl_2.val[y_lvl_q] = (+)((*)(x_lvl_2_val_2, A_lvl_3_val_2), y_lvl_2.val[y_lvl_q]))
                                                                                                end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                end
                                                                                i = phase_stop_4 + 1
                                                                            end
                                                                    end
                                                                    i = phase_stop_3 + 1
                                                                end
                                                                if phase_stop_5 >= phase_start_5
                                                                    i_7 = i
                                                                    i = phase_stop_5 + 1
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                            end
                            j = phase_stop_2 + 1
                        end
                end
                j = phase_stop + 1
            end
            if @finch{#0,lower.jl:81}(phase_stop_6) >= @finch{#0,lower.jl:81}(cached(phase_start_6, max(1, +(1, x_lvl_i1))))
                j_7 = j
                @finch{#0,runs.jl:23} begin
                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                  end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop_6, x_lvl.shape::Int64)) + @finch{#0,lower.jl:81}(1)
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = begin
                                                                                            A_lvl_3_val_2 = A_lvl_3.val[A_lvl_2_q]
                                                                                            res_9 = begin
                                                                                                    i_6 = phase_stop_4
                                                                                                    y_lvl_q = (1 - 1) * y_lvl.shape + i_6
                                                                                                    res_10 = (y_lvl_2.val[y_lvl_q] = (+)((*)(x_lvl_2_val_2, A_lvl_3_val_2), y_lvl_2.val[y_lvl_q]))
                                                                                                end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                end
                                                                                i = phase_stop_4 + 1
                                                                            end
                                                                    end
                                                                    i = phase_stop_3 + 1
                                                                end
                                                                if phase_stop_5 >= phase_start_5
                                                                    i_7 = i
                                                                    i = phase_stop_5 + 1
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                            end
                            j = phase_stop_2 + 1
                        end
                end
                j = phase_stop + 1
            end
            if phase_stop_6 >= @finch{#0,lower.jl:81}(cached(phase_start_6, max(1, +(1, x_lvl_i1))))
                j_7 = j
                @finch{#0,runs.jl:23} begin
                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                  end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop_6, x_lvl.shape::Int64)) + @finch{#0,lower.jl:81}(1)
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = begin
                                                                                            A_lvl_3_val_2 = A_lvl_3.val[A_lvl_2_q]
                                                                                            res_9 = begin
                                                                                                    i_6 = phase_stop_4
                                                                                                    y_lvl_q = (1 - 1) * y_lvl.shape + i_6
                                                                                                    res_10 = (y_lvl_2.val[y_lvl_q] = (+)((*)(x_lvl_2_val_2, A_lvl_3_val_2), y_lvl_2.val[y_lvl_q]))
                                                                                                end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                end
                                                                                i = phase_stop_4 + 1
                                                                            end
                                                                    end
                                                                    i = phase_stop_3 + 1
                                                                end
                                                                if phase_stop_5 >= phase_start_5
                                                                    i_7 = i
                                                                    i = phase_stop_5 + 1
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                            end
                            j = phase_stop_2 + 1
                        end
                end
                j = phase_stop + 1
            end
            if phase_stop_6 >= @finch{#0,lower.jl:81}(phase_start_6)
                j_7 = j
                @finch{#0,runs.jl:23} begin
                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                  end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop_6, x_lvl.shape::Int64)) + @finch{#0,lower.jl:81}(1)
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = begin
                                                                                            A_lvl_3_val_2 = A_lvl_3.val[A_lvl_2_q]
                                                                                            res_9 = begin
                                                                                                    i_6 = phase_stop_4
                                                                                                    y_lvl_q = (1 - 1) * y_lvl.shape + i_6
                                                                                                    res_10 = (y_lvl_2.val[y_lvl_q] = (+)((*)(x_lvl_2_val_2, A_lvl_3_val_2), y_lvl_2.val[y_lvl_q]))
                                                                                                end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                end
                                                                                i = phase_stop_4 + 1
                                                                            end
                                                                    end
                                                                    i = phase_stop_3 + 1
                                                                end
                                                                if phase_stop_5 >= phase_start_5
                                                                    i_7 = i
                                                                    i = phase_stop_5 + 1
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                            end
                            j = phase_stop_2 + 1
                        end
                end
                j = phase_stop + 1
            end
            if phase_stop_6 >= phase_start_6
                j_7 = j
                @finch{#0,runs.jl:23} begin
                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Run)[j], virtual(Finch.Lookup)[i, j])
                  end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop_6, x_lvl.shape::Int64)) + @finch{#0,lower.jl:81}(1)
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = begin
                                                                                            A_lvl_3_val_2 = A_lvl_3.val[A_lvl_2_q]
                                                                                            res_9 = begin
                                                                                                    i_6 = phase_stop_4
                                                                                                    y_lvl_q = (1 - 1) * y_lvl.shape + i_6
                                                                                                    res_10 = (y_lvl_2.val[y_lvl_q] = (+)((*)(x_lvl_2_val_2, A_lvl_3_val_2), y_lvl_2.val[y_lvl_q]))
                                                                                                end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                end
                                                                                i = phase_stop_4 + 1
                                                                            end
                                                                    end
                                                                    i = phase_stop_3 + 1
                                                                end
                                                                if phase_stop_5 >= phase_start_5
                                                                    i_7 = i
                                                                    i = phase_stop_5 + 1
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                            end
                            j = phase_stop_2 + 1
                        end
                end
                j = phase_stop + 1
            end
            if phase_stop_6 >= phase_start_6
                j_7 = j
                @finch{#0,fills.jl:25} begin
                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Fill)[], virtual(Finch.Lookup)[i, j])
                  end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop_6, x_lvl.shape::Int64)) + @finch{#0,lower.jl:81}(1)
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = begin
                                                                                            A_lvl_3_val_2 = A_lvl_3.val[A_lvl_2_q]
                                                                                            res_9 = begin
                                                                                                    i_6 = phase_stop_4
                                                                                                    y_lvl_q = (1 - 1) * y_lvl.shape + i_6
                                                                                                    res_10 = (y_lvl_2.val[y_lvl_q] = (+)((*)(x_lvl_2_val_2, A_lvl_3_val_2), y_lvl_2.val[y_lvl_q]))
                                                                                                end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                end
                                                                                i = phase_stop_4 + 1
                                                                            end
                                                                    end
                                                                    i = phase_stop_3 + 1
                                                                end
                                                                if phase_stop_5 >= phase_start_5
                                                                    i_7 = i
                                                                    i = phase_stop_5 + 1
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                            end
                            j = phase_stop_2 + 1
                        end
                end
                j = phase_stop + 1
            end
            if phase_stop_6 >= phase_start_6
                j_7 = j
                @finch{#0,simplify_program.jl:198} begin
                  for j = virtual(Finch.Extent), i = virtual(Finch.Extent)
                    virtual(Unfurled(Finch.VirtualFiber{Finch.VirtualDenseLevel}, Finch.Furlable))[i] <<+>>= *(virtual(Finch.Simplify), virtual(Finch.Lookup)[i, j])
                  end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop_6, x_lvl.shape::Int64)) + @finch{#0,lower.jl:81}(1)
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = begin
                                                                                            A_lvl_3_val_2 = A_lvl_3.val[A_lvl_2_q]
                                                                                            res_9 = begin
                                                                                                    i_6 = phase_stop_4
                                                                                                    y_lvl_q = (1 - 1) * y_lvl.shape + i_6
                                                                                                    res_10 = (y_lvl_2.val[y_lvl_q] = (+)((*)(x_lvl_2_val_2, A_lvl_3_val_2), y_lvl_2.val[y_lvl_q]))
                                                                                                end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                end
                                                                                i = phase_stop_4 + 1
                                                                            end
                                                                    end
                                                                    i = phase_stop_3 + 1
                                                                end
                                                                if phase_stop_5 >= phase_start_5
                                                                    i_7 = i
                                                                    i = phase_stop_5 + 1
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                            end
                            j = phase_stop_2 + 1
                        end
                end
                j = phase_stop + 1
            end
            if phase_stop_6 >= phase_start_6
                j_7 = j
                @finch{#0,lower.jl:81} begin
                  begin
                  end
                end
                j = @finch{#0,lower.jl:81}(cached(phase_stop_6, x_lvl.shape::Int64)) + @finch{#0,lower.jl:81}(1)
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = begin
                                                                                            A_lvl_3_val_2 = A_lvl_3.val[A_lvl_2_q]
                                                                                            res_9 = begin
                                                                                                    i_6 = phase_stop_4
                                                                                                    y_lvl_q = (1 - 1) * y_lvl.shape + i_6
                                                                                                    res_10 = (y_lvl_2.val[y_lvl_q] = (+)((*)(x_lvl_2_val_2, A_lvl_3_val_2), y_lvl_2.val[y_lvl_q]))
                                                                                                end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                end
                                                                                i = phase_stop_4 + 1
                                                                            end
                                                                    end
                                                                    i = phase_stop_3 + 1
                                                                end
                                                                if phase_stop_5 >= phase_start_5
                                                                    i_7 = i
                                                                    i = phase_stop_5 + 1
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                            end
                            j = phase_stop_2 + 1
                        end
                end
                j = phase_stop + 1
            end
            if phase_stop_6 >= phase_start_6
                j_7 = j
                j = @finch{#0,lower.jl:81}(cached(phase_stop_6, x_lvl.shape::Int64)) + @finch{#0,lower.jl:81}(1)
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = begin
                                                                                            A_lvl_3_val_2 = A_lvl_3.val[A_lvl_2_q]
                                                                                            res_9 = begin
                                                                                                    i_6 = phase_stop_4
                                                                                                    y_lvl_q = (1 - 1) * y_lvl.shape + i_6
                                                                                                    res_10 = (y_lvl_2.val[y_lvl_q] = (+)((*)(x_lvl_2_val_2, A_lvl_3_val_2), y_lvl_2.val[y_lvl_q]))
                                                                                                end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                end
                                                                                i = phase_stop_4 + 1
                                                                            end
                                                                    end
                                                                    i = phase_stop_3 + 1
                                                                end
                                                                if phase_stop_5 >= phase_start_5
                                                                    i_7 = i
                                                                    i = phase_stop_5 + 1
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                            end
                            j = phase_stop_2 + 1
                        end
                end
                j = phase_stop + 1
            end
            if phase_stop_6 >= phase_start_6
                j_7 = j
                j = @finch{#0,lower.jl:81}(phase_stop_6) + @finch{#0,lower.jl:81}(1)
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = begin
                                                                                            A_lvl_3_val_2 = A_lvl_3.val[A_lvl_2_q]
                                                                                            res_9 = begin
                                                                                                    i_6 = phase_stop_4
                                                                                                    y_lvl_q = (1 - 1) * y_lvl.shape + i_6
                                                                                                    res_10 = (y_lvl_2.val[y_lvl_q] = (+)((*)(x_lvl_2_val_2, A_lvl_3_val_2), y_lvl_2.val[y_lvl_q]))
                                                                                                end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                end
                                                                                i = phase_stop_4 + 1
                                                                            end
                                                                    end
                                                                    i = phase_stop_3 + 1
                                                                end
                                                                if phase_stop_5 >= phase_start_5
                                                                    i_7 = i
                                                                    i = phase_stop_5 + 1
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                            end
                            j = phase_stop_2 + 1
                        end
                end
                j = phase_stop + 1
            end
            if phase_stop_6 >= phase_start_6
                j_7 = j
                j = phase_stop_6 + @finch{#0,lower.jl:81}(1)
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = begin
                                                                                            A_lvl_3_val_2 = A_lvl_3.val[A_lvl_2_q]
                                                                                            res_9 = begin
                                                                                                    i_6 = phase_stop_4
                                                                                                    y_lvl_q = (1 - 1) * y_lvl.shape + i_6
                                                                                                    res_10 = (y_lvl_2.val[y_lvl_q] = (+)((*)(x_lvl_2_val_2, A_lvl_3_val_2), y_lvl_2.val[y_lvl_q]))
                                                                                                end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                end
                                                                                i = phase_stop_4 + 1
                                                                            end
                                                                    end
                                                                    i = phase_stop_3 + 1
                                                                end
                                                                if phase_stop_5 >= phase_start_5
                                                                    i_7 = i
                                                                    i = phase_stop_5 + 1
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                            end
                            j = phase_stop_2 + 1
                        end
                end
                j = phase_stop + 1
            end
            if phase_stop_6 >= phase_start_6
                j_7 = j
                j = phase_stop_6 + 1
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
        @freeze(y)
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = begin
                                                                                            A_lvl_3_val_2 = A_lvl_3.val[A_lvl_2_q]
                                                                                            res_9 = begin
                                                                                                    i_6 = phase_stop_4
                                                                                                    y_lvl_q = (1 - 1) * y_lvl.shape + i_6
                                                                                                    res_10 = (y_lvl_2.val[y_lvl_q] = (+)((*)(x_lvl_2_val_2, A_lvl_3_val_2), y_lvl_2.val[y_lvl_q]))
                                                                                                end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                end
                                                                                i = phase_stop_4 + 1
                                                                            end
                                                                    end
                                                                    i = phase_stop_3 + 1
                                                                end
                                                                if phase_stop_5 >= phase_start_5
                                                                    i_7 = i
                                                                    i = phase_stop_5 + 1
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                            end
                            j = phase_stop_2 + 1
                        end
                end
                j = phase_stop + 1
            end
            if phase_stop_6 >= phase_start_6
                j_7 = j
                j = phase_stop_6 + 1
            end
        end
    @finch{#0,lower.jl:81} begin
      begin
      end
    end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = begin
                                                                                            A_lvl_3_val_2 = A_lvl_3.val[A_lvl_2_q]
                                                                                            res_9 = begin
                                                                                                    i_6 = phase_stop_4
                                                                                                    y_lvl_q = (1 - 1) * y_lvl.shape + i_6
                                                                                                    res_10 = (y_lvl_2.val[y_lvl_q] = (+)((*)(x_lvl_2_val_2, A_lvl_3_val_2), y_lvl_2.val[y_lvl_q]))
                                                                                                end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                end
                                                                                i = phase_stop_4 + 1
                                                                            end
                                                                    end
                                                                    i = phase_stop_3 + 1
                                                                end
                                                                if phase_stop_5 >= phase_start_5
                                                                    i_7 = i
                                                                    i = phase_stop_5 + 1
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                            end
                            j = phase_stop_2 + 1
                        end
                end
                j = phase_stop + 1
            end
            if phase_stop_6 >= phase_start_6
                j_7 = j
                j = phase_stop_6 + 1
            end
        end
    qos = @finch{#0,lower.jl:81}(1) * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = begin
                                                                                            A_lvl_3_val_2 = A_lvl_3.val[A_lvl_2_q]
                                                                                            res_9 = begin
                                                                                                    i_6 = phase_stop_4
                                                                                                    y_lvl_q = (1 - 1) * y_lvl.shape + i_6
                                                                                                    res_10 = (y_lvl_2.val[y_lvl_q] = (+)((*)(x_lvl_2_val_2, A_lvl_3_val_2), y_lvl_2.val[y_lvl_q]))
                                                                                                end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                end
                                                                                i = phase_stop_4 + 1
                                                                            end
                                                                    end
                                                                    i = phase_stop_3 + 1
                                                                end
                                                                if phase_stop_5 >= phase_start_5
                                                                    i_7 = i
                                                                    i = phase_stop_5 + 1
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                            end
                            j = phase_stop_2 + 1
                        end
                end
                j = phase_stop + 1
            end
            if phase_stop_6 >= phase_start_6
                j_7 = j
                j = phase_stop_6 + 1
            end
        end
    qos = 1 * @finch{#0,lower.jl:81}(y_lvl.shape::Int64)
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = begin
                                                                                            A_lvl_3_val_2 = A_lvl_3.val[A_lvl_2_q]
                                                                                            res_9 = begin
                                                                                                    i_6 = phase_stop_4
                                                                                                    y_lvl_q = (1 - 1) * y_lvl.shape + i_6
                                                                                                    res_10 = (y_lvl_2.val[y_lvl_q] = (+)((*)(x_lvl_2_val_2, A_lvl_3_val_2), y_lvl_2.val[y_lvl_q]))
                                                                                                end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                end
                                                                                i = phase_stop_4 + 1
                                                                            end
                                                                    end
                                                                    i = phase_stop_3 + 1
                                                                end
                                                                if phase_stop_5 >= phase_start_5
                                                                    i_7 = i
                                                                    i = phase_stop_5 + 1
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                            end
                            j = phase_stop_2 + 1
                        end
                end
                j = phase_stop + 1
            end
            if phase_stop_6 >= phase_start_6
                j_7 = j
                j = phase_stop_6 + 1
            end
        end
    qos = 1 * y_lvl.shape
    resize!(y_lvl_2.val, @finch{#0,lower.jl:81}(qos))
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = begin
                                                                                            A_lvl_3_val_2 = A_lvl_3.val[A_lvl_2_q]
                                                                                            res_9 = begin
                                                                                                    i_6 = phase_stop_4
                                                                                                    y_lvl_q = (1 - 1) * y_lvl.shape + i_6
                                                                                                    res_10 = (y_lvl_2.val[y_lvl_q] = (+)((*)(x_lvl_2_val_2, A_lvl_3_val_2), y_lvl_2.val[y_lvl_q]))
                                                                                                end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                end
                                                                                i = phase_stop_4 + 1
                                                                            end
                                                                    end
                                                                    i = phase_stop_3 + 1
                                                                end
                                                                if phase_stop_5 >= phase_start_5
                                                                    i_7 = i
                                                                    i = phase_stop_5 + 1
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                            end
                            j = phase_stop_2 + 1
                        end
                end
                j = phase_stop + 1
            end
            if phase_stop_6 >= phase_start_6
                j_7 = j
                j = phase_stop_6 + 1
            end
        end
    qos = 1 * y_lvl.shape
    resize!(y_lvl_2.val, qos)
    (y = @finch{#0,fibers.jl:35}(Finch.VirtualFiber{Finch.VirtualDenseLevel}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = begin
                                                                                            A_lvl_3_val_2 = A_lvl_3.val[A_lvl_2_q]
                                                                                            res_9 = begin
                                                                                                    i_6 = phase_stop_4
                                                                                                    y_lvl_q = (1 - 1) * y_lvl.shape + i_6
                                                                                                    res_10 = (y_lvl_2.val[y_lvl_q] = (+)((*)(x_lvl_2_val_2, A_lvl_3_val_2), y_lvl_2.val[y_lvl_q]))
                                                                                                end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                end
                                                                                i = phase_stop_4 + 1
                                                                            end
                                                                    end
                                                                    i = phase_stop_3 + 1
                                                                end
                                                                if phase_stop_5 >= phase_start_5
                                                                    i_7 = i
                                                                    i = phase_stop_5 + 1
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                            end
                            j = phase_stop_2 + 1
                        end
                end
                j = phase_stop + 1
            end
            if phase_stop_6 >= phase_start_6
                j_7 = j
                j = phase_stop_6 + 1
            end
        end
    qos = 1 * y_lvl.shape
    resize!(y_lvl_2.val, qos)

    (y = Fiber(@finch{#0,denselevels.jl:110}(Finch.VirtualDenseLevel(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0), :y_lvl, Int64, value(y_lvl.shape, Int64)))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = begin
                                                                                            A_lvl_3_val_2 = A_lvl_3.val[A_lvl_2_q]
                                                                                            res_9 = begin
                                                                                                    i_6 = phase_stop_4
                                                                                                    y_lvl_q = (1 - 1) * y_lvl.shape + i_6
                                                                                                    res_10 = (y_lvl_2.val[y_lvl_q] = (+)((*)(x_lvl_2_val_2, A_lvl_3_val_2), y_lvl_2.val[y_lvl_q]))
                                                                                                end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                end
                                                                                i = phase_stop_4 + 1
                                                                            end
                                                                    end
                                                                    i = phase_stop_3 + 1
                                                                end
                                                                if phase_stop_5 >= phase_start_5
                                                                    i_7 = i
                                                                    i = phase_stop_5 + 1
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                            end
                            j = phase_stop_2 + 1
                        end
                end
                j = phase_stop + 1
            end
            if phase_stop_6 >= phase_start_6
                j_7 = j
                j = phase_stop_6 + 1
            end
        end
    qos = 1 * y_lvl.shape
    resize!(y_lvl_2.val, qos)

    (y = Fiber((DenseLevel){Int64}(@finch{#0,elementlevels.jl:81}(Finch.VirtualElementLevel(:y_lvl_2, Float64, 0.0)), @finch{#0,lower.jl:81}(y_lvl.shape::Int64))),)

end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = begin
                                                                                            A_lvl_3_val_2 = A_lvl_3.val[A_lvl_2_q]
                                                                                            res_9 = begin
                                                                                                    i_6 = phase_stop_4
                                                                                                    y_lvl_q = (1 - 1) * y_lvl.shape + i_6
                                                                                                    res_10 = (y_lvl_2.val[y_lvl_q] = (+)((*)(x_lvl_2_val_2, A_lvl_3_val_2), y_lvl_2.val[y_lvl_q]))
                                                                                                end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                end
                                                                                i = phase_stop_4 + 1
                                                                            end
                                                                    end
                                                                    i = phase_stop_3 + 1
                                                                end
                                                                if phase_stop_5 >= phase_start_5
                                                                    i_7 = i
                                                                    i = phase_stop_5 + 1
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                            end
                            j = phase_stop_2 + 1
                        end
                end
                j = phase_stop + 1
            end
            if phase_stop_6 >= phase_start_6
                j_7 = j
                j = phase_stop_6 + 1
            end
        end
    qos = 1 * y_lvl.shape
    resize!(y_lvl_2.val, qos)
    (y = Fiber((DenseLevel){Int64}(y_lvl_2, @finch{#0,lower.jl:81}(y_lvl.shape::Int64))),)
end, quote
    y_lvl = ex.body.body.lhs.tns.bind.lvl
    y_lvl_2 = y_lvl.lvl
    A_lvl = (ex.body.body.rhs.args[1]).tns.bind.lvl
    A_lvl_2 = A_lvl.lvl
    A_lvl_3 = A_lvl_2.lvl
    x_lvl = (ex.body.body.rhs.args[2]).tns.bind.lvl
    x_lvl_2 = x_lvl.lvl
    A_lvl_2.shape == y_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(A_lvl_2.shape) != $(y_lvl.shape))"))
    x_lvl.shape == A_lvl.shape || throw(DimensionMismatch("mismatched dimension limits ($(x_lvl.shape) != $(A_lvl.shape))"))
    x_lvl_q = x_lvl.ptr[1]
    x_lvl_q_stop = x_lvl.ptr[1 + 1]
    if x_lvl_q < x_lvl_q_stop
        x_lvl_i = x_lvl.idx[x_lvl_q]
        x_lvl_i1 = x_lvl.idx[x_lvl_q_stop - 1]
    else
        x_lvl_i = 1
        x_lvl_i1 = 0
    end
    res = begin
            j = 1
            if phase_stop >= phase_start
                j_4 = j
                while j <= phase_stop
                    j_start_2 = j
                    x_lvl_i = x_lvl.idx[x_lvl_q]
                    res_2 = begin
                            j_5 = j
                            if x_lvl_i == phase_stop_2
                                res_3 = begin
                                        x_lvl_2_val_2 = x_lvl_2.val[x_lvl_q]
                                        res_4 = begin
                                                j_6 = phase_stop_2
                                                A_lvl_q = (1 - 1) * A_lvl.shape + j_6
                                                res_5 = begin
                                                        A_lvl_2_q = A_lvl_2.ptr[A_lvl_q]
                                                        A_lvl_2_q_stop = A_lvl_2.ptr[A_lvl_q + 1]
                                                        if A_lvl_2_q < A_lvl_2_q_stop
                                                            A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                            A_lvl_2_i1 = A_lvl_2.idx[A_lvl_2_q_stop - 1]
                                                        else
                                                            A_lvl_2_i = 1
                                                            A_lvl_2_i1 = 0
                                                        end
                                                        res_6 = begin
                                                                i = 1
                                                                if phase_stop_3 >= phase_start_3
                                                                    i_4 = i
                                                                    while i <= phase_stop_3
                                                                        i_start_2 = i
                                                                        A_lvl_2_i = A_lvl_2.idx[A_lvl_2_q]
                                                                        res_7 = begin
                                                                                i_5 = i
                                                                                if A_lvl_2_i == phase_stop_4
                                                                                    res_8 = begin
                                                                                            A_lvl_3_val_2 = A_lvl_3.val[A_lvl_2_q]
                                                                                            res_9 = begin
                                                                                                    i_6 = phase_stop_4
                                                                                                    y_lvl_q = (1 - 1) * y_lvl.shape + i_6
                                                                                                    res_10 = (y_lvl_2.val[y_lvl_q] = (+)((*)(x_lvl_2_val_2, A_lvl_3_val_2), y_lvl_2.val[y_lvl_q]))
                                                                                                end
                                                                                        end
                                                                                    A_lvl_2_q += 1
                                                                                    res_8
                                                                                else
                                                                                end
                                                                                i = phase_stop_4 + 1
                                                                            end
                                                                    end
                                                                    i = phase_stop_3 + 1
                                                                end
                                                                if phase_stop_5 >= phase_start_5
                                                                    i_7 = i
                                                                    i = phase_stop_5 + 1
                                                                end
                                                            end
                                                    end
                                            end
                                    end
                                x_lvl_q += 1
                                res_3
                            else
                            end
                            j = phase_stop_2 + 1
                        end
                end
                j = phase_stop + 1
            end
            if phase_stop_6 >= phase_start_6
                j_7 = j
                j = phase_stop_6 + 1
            end
        end
    qos = 1 * y_lvl.shape
    resize!(y_lvl_2.val, qos)
    (y = Fiber((DenseLevel){Int64}(y_lvl_2, y_lvl.shape)),)
end]
