#include "optimizer.hh"
#include <cassert>
#include "graph.hh"
#include "node.hh"

namespace rt
{

    namespace
    {

        //can't divide if the divide size is <= MIN_NODES_SIZE
        constexpr std::size_t MIN_NODES_SIZE = 1024;

        //max number of parallel nodes when dividing operation
        constexpr std::size_t MAX_NODES = 8;

        //make sure every size of new ops are multiple of this
        constexpr std::size_t SIZE_DIVISOR = 8;

        void elemwhise_size(std::size_t total, std::size_t& divs, std::size_t& size)
        {
            std::size_t n = total / MIN_NODES_SIZE;
            n = std::min(n, MAX_NODES);
            n = std::max(1UL, n);
            std::size_t m = total / n;
            while (n * m < total)
                ++m;

            if (n > 1)
            {
                while (m % SIZE_DIVISOR != 0)
                    ++m;
            }

            divs = n;
            size = m;
        }
        

        using opti_f = Node* (*)(Graph&, Node*, const std::vector<Node*>&);

        Node* opti_mat_mat_mul(Graph& graph, Node* node, const std::vector<Node*>& preds)
        {
            const std::size_t nm = node->len1;
            const std::size_t nn = node->len2;
            const std::size_t np = node->len3;

            std::size_t n;
            std::size_t m;

            if (nm > np) {
                elemwhise_size(nm, n, m);
            } else {
                elemwhise_size(np, n, m);
            }

            if (n < 2)
            {
                auto res = Node::op_mat_mat_mul(node->in1, node->in2, node->out1,
                    node->len1, node->len2, node->len3, preds);
                graph.add(res);
                return res;
            }

            std::vector<Node*> div_nodes;
            if (node->len1 > node->len2) {
                for (std::size_t i = 0; i < n - 1; ++i)
                    div_nodes.push_back(Node::op_mat_mat_mul(node->in1 + i * m * nn, node->in2,
                                node->out1 + i * m * np, m, nn, np, preds));

                    div_nodes.push_back(Node::op_mat_mat_mul(node->in1 + (n - 1) * m * nn, node->in2,
                                node->out1 + (n - 1) * m * np, nm - (n - 1) * m, nn, np, preds));
            } else {
                for (std::size_t i = 0; i < n - 1; ++i)
                    div_nodes.push_back(Node::op_mat_mat_mul(node->in1, node->in2 + i * m,
                                node->out1 + i * m * np, nm, nn, m, preds));

                    div_nodes.push_back(Node::op_mat_mat_mul(node->in1, node->in2 + (n - 1) * m,
                                node->out1 + (n - 1) * m * np, nm, nn, np - (n - 1) * m, preds));
            }

            for (auto n : div_nodes)
                    graph.add(n);
            
            auto res = Node::nop(div_nodes);
            graph.add(res);
            return res;
        }

        Node* opti_mat_rvect_add(Graph& graph, Node* node, const std::vector<Node*>& preds)
        {
            std::size_t n;
            std::size_t m;
            elemwhise_size(node->len1, n, m);

            if (n < 2)
            {
                auto res = Node::op_mat_rvect_add(node->in1, node->in2, node->out1,
                    node->len1, node->len2, preds);
                graph.add(res);
                return res;
            }

            const std::size_t nv = node->len2;

            std::vector<Node*> div_nodes;
            for (std::size_t i = 0; i < n - 1; ++i)
                div_nodes.push_back(Node::op_mat_rvect_add(node->in1 + (i * m * nv), node->in2,
                                                node->out1 + (i * m * nv), m, nv, preds));

            div_nodes.push_back(Node::op_mat_rvect_add(node->in1 + (n - 1) * m * nv, node->in2,
                node->out1 + (n - 1) * m * nv, node->len1 - ((n - 1) * m), nv, preds));

            for (auto n : div_nodes)
                graph.add(n);

            auto res = Node::nop(div_nodes);
            graph.add(res);
            return res;
        }

        Node* opti_sigmoid(Graph& graph, Node* node, const std::vector<Node*>& preds)
        {
            std::size_t n;
            std::size_t m;
            elemwhise_size(node->len1, n, m);

            if (n < 2)
            {
                auto res = Node::op_sigmoid(node->in1, node->out1,
                                            node->len1, preds);
                //res->use_simd = node->len1 % SIZE_DIVISOR == 0;
                    
                graph.add(res);
                return res;
            }

            const dbl_t* in = node->in1;
            dbl_t* out = node->out1;

            std::vector<Node*> div_nodes;
            for (std::size_t i = 0; i < n - 1; ++i)
                div_nodes.push_back(Node::op_sigmoid(in + i * m, out + i * m,
                                                     m, preds));

            div_nodes.push_back(Node::op_sigmoid(in + (n - 1) * m, out + (n - 1) * m,
                                                node->len1 - ((n - 1) * m), preds));

            for (auto n : div_nodes)
            {
                //n->use_simd = true;
                graph.add(n);
            }

            auto res = Node::nop(div_nodes);
            graph.add(res);
            return res;
        }

        Node* opti_mse(Graph& graph, Node* node, const std::vector<Node*>& preds)
        {
            auto res = Node::op_mse(node->in1, node->in2, node->out1,
                                    node->len1, node->len2, preds);
            graph.add(res);
            return res;
        }

        Node* opti_softmax(Graph& graph, Node* node, const std::vector<Node*>& preds)
        {
            std::size_t n;
            std::size_t m;
            elemwhise_size(node->len1, n, m);

            if (n < 2)
            {
                auto res = Node::op_softmax(node->in1, node->out1, node->len1, node->len2, preds);
                graph.add(res);
                return res;
            }

            std::size_t nv = node->len2;

            std::vector<Node*> div_nodes;
            for (std::size_t i = 0; i < n - 1; ++i)
                div_nodes.push_back(Node::op_softmax(node->in1 + (i * m * nv), node->out1 + (i * m * nv),
                                                                        m, nv, preds));

            div_nodes.push_back(Node::op_softmax(node->in1 + (n - 1) * m * nv,
                        node->out1 + (n - 1) * m * nv, node->len1 - ((n - 1) * m), nv, preds));

            for (auto n : div_nodes)
                graph.add(n);

            auto res = Node::nop(div_nodes);
            graph.add(res);
            return res;
        }

        Node* opti_log_softmax(Graph& graph, Node* node, const std::vector<Node*>& preds)
        {
            std::size_t n;
            std::size_t m;
            elemwhise_size(node->len1, n, m);

            if (n < 2)
            {
                auto res = Node::op_log_softmax(node->in1, node->out1, node->len1, node->len2, preds);
                graph.add(res);
                return res;
            }

            std::size_t nv = node->len2;

            std::vector<Node*> div_nodes;
            for (std::size_t i = 0; i < n - 1; ++i)
                div_nodes.push_back(Node::op_log_softmax(node->in1 + (i * m * nv),
                                            node->out1 + (i * m * nv), m, nv, preds));

            div_nodes.push_back(Node::op_log_softmax(node->in1 + (n - 1) * m * nv,
                                        node->out1 + (n - 1) * m * nv, node->len1 - ((n - 1) * m), nv, preds));

            for (auto n : div_nodes)
                graph.add(n);

            auto res = Node::nop(div_nodes);
            graph.add(res);
            return res;
        }

        Node* opti_softmax_cross_entropy(Graph& graph, Node* node, const std::vector<Node*>& preds)
        {
            auto res = Node::op_softmax_cross_entropy(node->in1, node->in2, node->out1,
                                                      node->len1, node->len2, preds);
            graph.add(res);
            return res;
        }

        Node* opti_conv2d(Graph& graph, Node* node, const std::vector<Node*>& preds)
        {
            auto res = Node::op_conv2d(node->in1, node->in2, node->intconst,
                                       node->int_cons1, node->int_cons2, node->out1,
                                       node->sizes1, node->sizes2, preds);
            graph.add(res);
            return res;
        }

        Node* opti_relu(Graph& graph, Node* node, const std::vector<Node*>& preds)
        {
            std::size_t n;
            std::size_t m;
            elemwhise_size(node->len1, n, m);

            if (n < 2)
            {
                auto res = Node::op_relu(node->in1, node->out1,
                                            node->len1, preds);
                graph.add(res);
                return res;
            }

            const dbl_t* in = node->in1;
            dbl_t* out = node->out1;

            std::vector<Node*> div_nodes;
            for (std::size_t i = 0; i < n - 1; ++i)
                div_nodes.push_back(Node::op_relu(in + i * m, out + i * m, m, preds));

            div_nodes.push_back(Node::op_relu(in + (n - 1) * m, out + (n - 1) * m,
                                                node->len1 - (n - 1) * m, preds));

            for (auto n : div_nodes)
                graph.add(n);

            auto res = Node::nop(div_nodes);
            graph.add(res);
            return res;
        }

        Node* opti_relu_leaky(Graph& graph, Node* node, const std::vector<Node*>& preds)
        {
            std::size_t n;
            std::size_t m;
            elemwhise_size(node->len1, n, m);

            if (n < 2)
            {
                auto res = Node::op_relu_leaky(node->in1, node->out1,
                                            node->len1, node->alpha_leaky, preds);
                graph.add(res);
                return res;
            }

            const dbl_t* in = node->in1;
            dbl_t* out = node->out1;

            std::vector<Node*> div_nodes;
            for (std::size_t i = 0; i < n - 1; ++i)
                div_nodes.push_back(Node::op_relu_leaky(in + i * m, out + i * m,
                                                     m, node->alpha_leaky, preds));

            div_nodes.push_back(Node::op_relu_leaky(in + (n - 1) * m, out + (n - 1) * m,
                                                 node->len1 - (n - 1) * m, node->alpha_leaky, preds));

            for (auto n : div_nodes)
                graph.add(n);

            auto res = Node::nop(div_nodes);
            graph.add(res);
            return res;
        }

        Node* opti_tanh(Graph& graph, Node* node, const std::vector<Node*>& preds)
        {
            std::size_t n;
            std::size_t m;
            elemwhise_size(node->len1, n, m);

            if (n < 2)
            {
                auto res = Node::op_tanh(node->in1, node->out1,
                                            node->len1, preds);
                graph.add(res);
                return res;
            }

            const dbl_t* in = node->in1;
            dbl_t* out = node->out1;

            std::vector<Node*> div_nodes;
            for (std::size_t i = 0; i < n - 1; ++i)
                div_nodes.push_back(Node::op_tanh(in + i * m, out + i * m,
                                                     m, preds));

            div_nodes.push_back(Node::op_tanh(in + (n - 1) * m, out + (n - 1) * m,
                                                    node->len1 - (n - 1) * m, preds));

            for (auto n : div_nodes)
                graph.add(n);

            auto res = Node::nop(div_nodes);
            graph.add(res);
            return res;
        }

        Node* opti_mse_grad(Graph& graph, Node* node, const std::vector<Node*>& preds)
        {
            std::size_t n;
            std::size_t m;
            elemwhise_size(node->len1, n, m);

            if (n < 2)
            {
                auto res = Node::op_mse_grad(node->in1, node->in2, node->out1,
                                                        node->len1, preds);
                graph.add(res);
                return res;
            }

            std::vector<Node*> div_nodes;
            for (std::size_t i = 0; i < n - 1; ++i)
                div_nodes.push_back(Node::op_mse_grad(node->in1 + i * m, node->in2 + i * m,
                                                            node->out1 + i * m, m, preds));

            div_nodes.push_back(Node::op_mse_grad(node->in1 + (n - 1) * m, node->in2 + (n - 1) * m,
                                            node->out1 + (n - 1) * m, node->len1 - (n - 1) * m, preds));

            for (auto n : div_nodes)
                graph.add(n);

            auto res = Node::nop(div_nodes);
            graph.add(res);
            return res;
        }

        Node* opti_sigmoid_grad(Graph& graph, Node* node, const std::vector<Node*>& preds)
        {
            std::size_t n;
            std::size_t m;
            elemwhise_size(node->len1, n, m);

            if (n < 2)
            {
                auto res = Node::op_sigmoid_grad(node->in1, node->in2, node->out1,
                                                        node->len1, preds);
                graph.add(res);
                return res;
            }

            std::vector<Node*> div_nodes;
            for (std::size_t i = 0; i < n - 1; ++i)
                div_nodes.push_back(Node::op_sigmoid_grad(node->in1 + i * m, node->in2 + i * m,
                                                            node->out1 + i * m, m, preds));

            div_nodes.push_back(Node::op_sigmoid_grad(node->in1 + (n - 1) * m, node->in2 + (n - 1) * m,
                                                node->out1 + (n - 1) * m, node->len1 - (n - 1) * m, preds));

            for (auto n : div_nodes)
                graph.add(n);

            auto res = Node::nop(div_nodes);
            graph.add(res);
            return res;
        }

        Node* opti_mat_mul_add(Graph& graph, Node* node, const std::vector<Node*>& preds)
        {
            auto res = Node::op_mat_mul_add(node->in1, node->in2, node->in3,
                                            node->out1, node->len1, node->len2, node->len3,
                                            preds);
            graph.add(res);
            return res;
        }

        Node* opti_tmat_mat_mul(Graph& graph, Node* node, const std::vector<Node*>& preds)
        {
            auto res = Node::op_tmat_mat_mul(node->in1, node->in2, node->out1,
                                             node->len1, node->len2, node->len3, preds);
            graph.add(res);
            return res;
        }

        Node* opti_mat_tmat_mul(Graph& graph, Node* node, const std::vector<Node*>& preds)
        {
            auto res = Node::op_mat_tmat_mul(node->in1, node->in2, node->out1,
                                             node->len1, node->len2, node->len3, preds);
            graph.add(res);
            return res;
        }

        Node* opti_mat_sum_rows(Graph& graph, Node* node, const std::vector<Node*>& preds)
        {
            auto res = Node::op_mat_sum_rows(node->in1, node->out1,
                                             node->len1, node->len2, preds);
            graph.add(res);
            return res;
        }

        Node* opti_mat_sum_cols(Graph& graph, Node* node, const std::vector<Node*>& preds)
        {
            auto res = Node::op_mat_sum_cols(node->in1, node->out1,
                                             node->len1, node->len2, preds);
            graph.add(res);
            return res;
        }

        Node* opti_softmax_cross_entropy_grad(Graph& graph, Node* node, const std::vector<Node*>& preds)
        {
            auto res = Node::op_softmax_cross_entropy_grad(node->in1, node->in2, node->out1,
                                                           node->len1, node->len2, preds);
            graph.add(res);
            return res;
        }

        Node* opti_relu_grad(Graph& graph, Node* node, const std::vector<Node*>& preds)
        {
            std::size_t n;
            std::size_t m;
            elemwhise_size(node->len1, n, m);

            if (n < 2)
            {
                auto res = Node::op_relu_grad(node->in1, node->in2, node->out1,
                                                        node->len1, preds);
                graph.add(res);
                return res;
            }

            std::vector<Node*> div_nodes;
            for (std::size_t i = 0; i < n - 1; ++i)
                div_nodes.push_back(Node::op_relu_grad(node->in1 + i * m, node->in2 + i * m,
                                                            node->out1 + i * m, m, preds));

            div_nodes.push_back(Node::op_relu_grad(node->in1 + (n - 1) * m, node->in2 + (n - 1) * m,
                                            node->out1 + (n - 1) * m, node->len1 - (n - 1) * m, preds));

            for (auto n : div_nodes)
                graph.add(n);

            auto res = Node::nop(div_nodes);
            graph.add(res);
            return res;
        }

        Node* opti_conv2d_bias_add(Graph& graph, Node* node, const std::vector<Node*>& preds)
        {
            auto res = Node::op_conv2d_bias_add(node->in1, node->in2, node->out1,
                                                node->sizes1, preds);
            graph.add(res);
            return res;
        }

        Node* opti_update(Graph& graph, Node* node, const std::vector<Node*>& preds)
        {
            std::size_t n;
            std::size_t m;
            elemwhise_size(node->len1, n, m);

            if (n < 2)
            {
                auto res = Node::op_update(node->out1, node->in1, node->in2,
                                                            node->len1, preds);
                graph.add(res);
                return res;
            }

            std::vector<Node*> div_nodes;
            for (std::size_t i = 0; i < n - 1; ++i)
                div_nodes.push_back(Node::op_update(node->out1 + i * m, node->in1 + i * m, node->in2, m, preds));

            div_nodes.push_back(Node::op_update(node->out1 + (n - 1) * m, node->in1 + (n - 1) * m,
                                                            node->in2, node->len1 - (n - 1) * m, preds));

            for (auto n : div_nodes)
                graph.add(n);

            auto res = Node::nop(div_nodes);
            graph.add(res);
            return res;
        }

        Node* opti_sigmoid_cross_entropy(Graph& graph, Node* node, const std::vector<Node*>& preds)
        {
            auto res = Node::op_sigmoid_cross_entropy(node->in1, node->in2, node->out1,
                                                      node->len1, preds);
            graph.add(res);
            return res;
        }

        Node* opti_sigmoid_cross_entropy_grad(Graph& graph, Node* node,
                                              const std::vector<Node*>& preds)
        {
            std::size_t n;
            std::size_t m;
            elemwhise_size(node->len1, n, m);

            if (n < 2)
            {
                auto res = Node::op_sigmoid_cross_entropy_grad(node->in1, node->in2, node->out1,
                                                        node->len1, preds);
                graph.add(res);
                return res;
            }

            std::vector<Node*> div_nodes;
            for (std::size_t i = 0; i < n - 1; ++i)
                div_nodes.push_back(Node::op_sigmoid_cross_entropy_grad(node->in1 + i * m, node->in2 + i * m,
                                                            node->out1 + i * m, m, preds));

            div_nodes.push_back(Node::op_sigmoid_cross_entropy_grad(node->in1 + (n - 1) * m, node->in2 + (n - 1) * m,
                                                                    node->out1 + (n - 1) * m, node->len1 - (n - 1) * m, preds));

            for (auto n : div_nodes)
                graph.add(n);

            auto res = Node::nop(div_nodes);
            graph.add(res);
            return res;
        }

        Node* opti_conv2d_input_grad(Graph& graph, Node* node, const std::vector<Node*>& preds)
        {
            int input_size[] = {0, node->intconst2[0], node->intconst2[1]};
            
            auto res = Node::op_conv2d_input_grad(node->in1, node->in2,
                                                  node->intconst, node->out1,
                                                  node->sizes1, node->sizes2,
                                                  input_size, preds);
            graph.add(res);
            return res;
        }

        Node* opti_conv2d_kernel_grad(Graph& graph, Node* node, const std::vector<Node*>& preds)
        {
            auto res = Node::op_conv2d_kernel_grad(node->in1, node->in2,
                                                   node->intconst, node->out1,
                                                   node->sizes1, node->sizes2,
                                                   node->intconst2, preds);
            graph.add(res);
            return res;
        }

        Node* opti_argmax_acc(Graph& graph, Node* node, const std::vector<Node*>& preds)
        {
            auto res = Node::op_argmax_acc(node->in1, node->in2, node->out1,
                                           node->len1, node->len2, preds);
            graph.add(res);
            return res;
        }

        Node* opti_moment_update(Graph& graph, Node* node, const std::vector<Node*>& preds)
        {
            std::size_t n;
            std::size_t m;
            elemwhise_size(node->len1, n, m);

            if (n < 2)
            {
                auto res = Node::op_moment_update(node->out1, node->in1, node->cons1,
                                                        node->cons2, node->len1, preds);
                graph.add(res);
                return res;
            }

            std::vector<Node*> div_nodes;
            for (std::size_t i = 0; i < n - 1; ++i)
                div_nodes.push_back(Node::op_moment_update(node->out1 + i * m, node->in1 + i * m,
                                                                node->cons1, node->cons2, m, preds));

            div_nodes.push_back(Node::op_moment_update(node->out1  + (n - 1) * m, node->in1  + (n - 1) * m,
                                                                node->cons1, node->cons2, node->len1 - (n - 1) * m, preds));

            for (auto n : div_nodes)
                graph.add(n);

            auto res = Node::nop(div_nodes);
            graph.add(res);
            return res;
        }

        Node* opti_moment_update2(Graph& graph, Node* node, const std::vector<Node*>& preds)
        {
            std::size_t n;
            std::size_t m;
            elemwhise_size(node->len1, n, m);

            if (n < 2)
            {
                auto res = Node::op_moment_update2(node->out1, node->in1, node->cons1,
                                                        node->cons2, node->len1, preds);
                graph.add(res);
                return res;
            }

            std::vector<Node*> div_nodes;
            for (std::size_t i = 0; i < n - 1; ++i)
                div_nodes.push_back(Node::op_moment_update2(node->out1 + i * m, node->in1 + i * m,
                                                                node->cons1, node->cons2, m, preds));

            div_nodes.push_back(Node::op_moment_update2(node->out1  + (n - 1) * m, node->in1  + (n - 1) * m,
                                                                node->cons1, node->cons2, node->len1 - (n - 1) * m, preds));

            for (auto n : div_nodes)
                graph.add(n);

            auto res = Node::nop(div_nodes);
            graph.add(res);
            return res;
        }

        Node* opti_adam_update(Graph& graph, Node* node, const std::vector<Node*>& preds)
        {
            std::size_t n;
            std::size_t m;
            elemwhise_size(node->len1, n, m);

            if (n < 2)
            {
                auto res = Node::op_adam_update(node->out1, node->out2,
                                                node->in1, node->in2,
                                                node->cons1, node->cons2,
                                                node->cons3, node->cons4,
                                                node->len1, preds);
                graph.add(res);
                return res;
            }

            std::vector<Node*> div_nodes;
            for (std::size_t i = 0; i < n - 1; ++i)
                div_nodes.push_back(Node::op_adam_update(node->out1 + i * m, node->out2 + i * m,
                                                        node->in1 + i * m, node->in2 + i * m,
                                                        node->cons1, node->cons2,
                                                        node->cons3, node->cons4,
                                                        m, preds));

            div_nodes.push_back(Node::op_adam_update(node->out1 + (n - 1) * m, node->out2 + (n - 1) * m,
                                                        node->in1 + (n - 1) * m, node->in2 + (n - 1) * m,
                                                        node->cons1, node->cons2,
                                                        node->cons3, node->cons4,
                                                        node->len1 - (n - 1) * m, preds));

            for (auto n : div_nodes)
                graph.add(n);

            auto res = Node::nop(div_nodes);
            graph.add(res);
            return res;
        }

        Node* opti_leaky_relu_grad(Graph& graph, Node* node, const std::vector<Node*>& preds)
        {
            std::size_t n;
            std::size_t m;
            elemwhise_size(node->len1, n, m);

            if (n < 2)
            {
                auto res = Node::op_leaky_relu_grad(node->in1, node->in2, node->out1,
                                                    node->cons1, node->len1, preds);
                graph.add(res);
                return res;
            }

            std::vector<Node*> div_nodes;
            for (std::size_t i = 0; i < n - 1; ++i)
                div_nodes.push_back(Node::op_leaky_relu_grad(node->in1 + i * n, node->in2 + i * n,
                                                    node->out1 + i * n, node->cons1, m, preds));

            div_nodes.push_back(Node::op_leaky_relu_grad(node->in1 + (n - 1) * m, node->in2 + (n - 1) * m,
                                                    node->out1 + (n - 1) * m, node->cons1, node->len1 - (n - 1) * m, preds));

            for (auto n : div_nodes)
                graph.add(n);

            auto res = Node::nop(div_nodes);
            graph.add(res);
            return res;
        }

        Node* opti_conv2d_bias_add_grad(Graph& graph, Node* node, const std::vector<Node*>& preds)
        {
            auto res = Node::op_conv2d_bias_add_grad(node->in1, node->sizes1,
                                                     node->out1, preds);
            graph.add(res);
            return res;
        }

        Node* opti_tanh_grad(Graph& graph, Node* node, const std::vector<Node*>& preds)
        {
            std::size_t n;
            std::size_t m;
            elemwhise_size(node->len1, n, m);

            if (n < 2)
            {
                auto res = Node::op_tanh_grad(node->in1, node->in2, node->out1, node->len1, preds);
                graph.add(res);
                return res;
            }

            std::vector<Node*> div_nodes;
            for (std::size_t i = 0; i < n - 1; ++i)
                div_nodes.push_back(Node::op_tanh_grad(node->in1 + i * n, node->in2 + i * n,
                                                    node->out1 + i * n, m, preds));

            div_nodes.push_back(Node::op_tanh_grad(node->in1 + (n - 1) * m, node->in2 + (n - 1) * m,
                                                    node->out1 + (n - 1) * m, node->len1 - (n - 1) * m, preds));

            for (auto n : div_nodes)
                graph.add(n);

            auto res = Node::nop(div_nodes);
            graph.add(res);
            return res;
        }

        Node* opti_conv2d_transpose(Graph& graph, Node* node, const std::vector<Node*>& preds)
        {
            auto res = Node::op_conv2d_transpose(node->in1, node->in2,
                                                 node->sizes1, node->intconst,
                                                 node->out1, node->sizes2,
                                                 node->sizes3, preds);
            graph.add(res);
            return res;
        }

        Node* opti_conv2d_transpose_input_grad(Graph& graph, Node* node,
                                               const std::vector<Node*>& preds)
        {
            auto res = Node::op_conv2d_transpose_input_grad(node->in1, node->in2,
                                                            node->intconst, node->out1,
                                                            node->sizes1, node->sizes2,
                                                            node->intconst2, preds);
            graph.add(res);
            return res;
        }

        Node* opti_conv2d_transpose_kernel_grad(Graph& graph, Node* node,
                                                const std::vector<Node*>& preds)
        {
            auto res = Node::op_conv2d_transpose_kernel_grad(node->in1, node->in2,
                                                             node->intconst, node->out1,
                                                             node->sizes1, node->sizes2,
                                                             node->sizes3,
                                                             preds);
            graph.add(res);
            return res;
        }

        Node* opti_add(Graph& graph, Node* node, const std::vector<Node*>& preds)
        {
            std::size_t n;
            std::size_t m;
            elemwhise_size(node->len1, n, m);

            if (n < 2)
            {
                auto res = Node::op_add(node->in1, node->in2, node->out1,
                                        node->len1, preds);
                //res->use_simd = node->len1 % SIZE_DIVISOR == 0;
                    
                graph.add(res);
                return res;
            }

            const dbl_t* in1 = node->in1;
            const dbl_t* in2 = node->in2;
            dbl_t* out = node->out1;

            std::vector<Node*> div_nodes;
            for (std::size_t i = 0; i < n - 1; ++i)
                div_nodes.push_back(Node::op_add(in1 + i * m, in2 + i * m,out + i * m,
                                                 m, preds));

            div_nodes.push_back(Node::op_add(in1 + (n - 1) * m, in2 + (n - 1) * m, out + (n - 1) * m,
                                             node->len1 - ((n - 1) * m), preds));

            for (auto n : div_nodes)
            {
                //n->use_simd = true;
                graph.add(n);
            }

            auto res = Node::nop(div_nodes);
            graph.add(res);
            return res;
        }


        opti_f optis_list[64] = {
            opti_mat_mat_mul,
            opti_mat_rvect_add,
            opti_sigmoid,
            opti_mse,
            opti_softmax,
            opti_log_softmax,
            opti_softmax_cross_entropy,
            opti_conv2d,
            opti_relu,
            opti_relu_leaky,
            opti_tanh,
            opti_mse_grad,
            opti_sigmoid_grad,
            opti_mat_mul_add,
            opti_tmat_mat_mul,
            opti_mat_tmat_mul,
            opti_mat_sum_rows,
            opti_mat_sum_cols,
            opti_softmax_cross_entropy_grad,
            opti_relu_grad,
            opti_conv2d_bias_add,
            opti_update,
            opti_sigmoid_cross_entropy,
            opti_sigmoid_cross_entropy_grad,
            opti_conv2d_input_grad,
            opti_conv2d_kernel_grad,
            opti_argmax_acc,
            opti_moment_update,
            opti_moment_update2,
            opti_adam_update,
            opti_leaky_relu_grad,
            opti_conv2d_bias_add_grad,
            opti_tanh_grad,
            opti_conv2d_transpose,
            opti_conv2d_transpose_input_grad,
            opti_conv2d_transpose_kernel_grad,
            opti_add
        };
        
    }

    namespace
    {

        Node* opti_node(Node* node, Graph& graph, std::map<Node*, Node*>& optis)
        {
            auto it = optis.find(node);
            if (it != optis.end())
                return it->second;

            std::vector<Node*> preds;
            for (auto n : node->preds)
                preds.push_back(opti_node(n, graph, optis));

            Node* res;
            if (node->type == Node::OP_NOP)
            {
                res = Node::nop(preds);
                graph.add(res);
            }
            else
                res = optis_list[node->type](graph, node, preds);

            optis[node] = res;
            return res;
        }
        
    }

    Graph* optimize(const Graph& graph, std::map<Node*, Node*>& optis)
    {
        optis.clear();
        auto graph_opti = new Graph;
        for (auto node : graph.nodes())
            opti_node(node, *graph_opti, optis);
        return graph_opti;
    }

    std::vector<Node*> convert_nodes(const std::vector<Node*> nodes,
                                     const std::map<Node*, Node*>& optis)
    {
        std::vector<Node*> res;
        for (auto n : nodes)
        {
            auto it = optis.find(n);
            assert(it != optis.end());
            res.push_back(it->second);
        }
        return res;
    }
    
}

	.file	"tmpxft_00242c45_00000000-6_optimizer.cudafe1.cpp"
	.text
#APP
	.globl _ZSt21ios_base_library_initv

#NO_APP
	.globl	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d8opti_mseERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.hidden	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d8opti_mseERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.type	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d8opti_mseERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, @function
_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d8opti_mseERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE:
.LFB4562:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rdx, %r9
	movq	%rdi, %rbp
	subq	$16, %rsp
	.cfi_def_cfa_offset 32
	movq	72(%rsi), %rax
	movq	120(%rsi), %rcx
	movq	88(%rsi), %rdx
	movq	64(%rsi), %rdi
	movq	128(%rsi), %r8
	movq	%rax, %rsi
	call	_ZN2rt4Node6op_mseEPKfS2_PfmmRKSt6vectorIPS0_SaIS5_EE@PLT
	movq	%rbp, %rdi
	movq	%rax, %rsi
	movq	%rax, 8(%rsp)
	call	_ZN2rt5Graph3addEPNS_4NodeE@PLT
	movq	8(%rsp), %rax
	addq	$16, %rsp
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4562:
	.size	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d8opti_mseERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, .-_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d8opti_mseERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.globl	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d26opti_softmax_cross_entropyERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.hidden	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d26opti_softmax_cross_entropyERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.type	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d26opti_softmax_cross_entropyERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, @function
_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d26opti_softmax_cross_entropyERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE:
.LFB4565:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rdx, %r9
	movq	%rdi, %rbp
	subq	$16, %rsp
	.cfi_def_cfa_offset 32
	movq	72(%rsi), %rax
	movq	120(%rsi), %rcx
	movq	88(%rsi), %rdx
	movq	64(%rsi), %rdi
	movq	128(%rsi), %r8
	movq	%rax, %rsi
	call	_ZN2rt4Node24op_softmax_cross_entropyEPKfS2_PfmmRKSt6vectorIPS0_SaIS5_EE@PLT
	movq	%rbp, %rdi
	movq	%rax, %rsi
	movq	%rax, 8(%rsp)
	call	_ZN2rt5Graph3addEPNS_4NodeE@PLT
	movq	8(%rsp), %rax
	addq	$16, %rsp
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4565:
	.size	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d26opti_softmax_cross_entropyERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, .-_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d26opti_softmax_cross_entropyERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.globl	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d11opti_conv2dERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.hidden	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d11opti_conv2dERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.type	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d11opti_conv2dERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, @function
_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d11opti_conv2dERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE:
.LFB4566:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rdx, %r8
	movq	%rdi, %rbp
	leaq	144(%rsi), %rdx
	subq	$24, %rsp
	.cfi_def_cfa_offset 40
	movl	208(%rsi), %ecx
	movq	64(%rsi), %rdi
	movq	72(%rsi), %rax
	movq	88(%rsi), %r9
	pushq	%r8
	.cfi_def_cfa_offset 48
	leaq	176(%rsi), %r8
	pushq	%r8
	.cfi_def_cfa_offset 56
	leaq	160(%rsi), %r8
	pushq	%r8
	.cfi_def_cfa_offset 64
	movl	212(%rsi), %r8d
	movq	%rax, %rsi
	call	_ZN2rt4Node9op_conv2dEPKfS2_PKiiiPfS4_S4_RKSt6vectorIPS0_SaIS7_EE@PLT
	addq	$32, %rsp
	.cfi_def_cfa_offset 32
	movq	%rbp, %rdi
	movq	%rax, %rsi
	movq	%rax, 8(%rsp)
	call	_ZN2rt5Graph3addEPNS_4NodeE@PLT
	movq	8(%rsp), %rax
	addq	$16, %rsp
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4566:
	.size	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d11opti_conv2dERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, .-_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d11opti_conv2dERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.globl	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d16opti_mat_mul_addERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.hidden	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d16opti_mat_mul_addERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.type	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d16opti_mat_mul_addERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, @function
_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d16opti_mat_mul_addERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE:
.LFB4572:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rdx, %r8
	movq	%rdi, %rbp
	subq	$16, %rsp
	.cfi_def_cfa_offset 32
	movq	88(%rsi), %rcx
	movq	80(%rsi), %rdx
	movq	64(%rsi), %rdi
	movq	72(%rsi), %rax
	pushq	%r8
	.cfi_def_cfa_offset 40
	pushq	136(%rsi)
	.cfi_def_cfa_offset 48
	movq	128(%rsi), %r9
	movq	120(%rsi), %r8
	movq	%rax, %rsi
	call	_ZN2rt4Node14op_mat_mul_addEPKfS2_S2_PfmmmRKSt6vectorIPS0_SaIS5_EE@PLT
	popq	%rdx
	.cfi_def_cfa_offset 40
	movq	%rbp, %rdi
	popq	%rcx
	.cfi_def_cfa_offset 32
	movq	%rax, %rsi
	movq	%rax, 8(%rsp)
	call	_ZN2rt5Graph3addEPNS_4NodeE@PLT
	movq	8(%rsp), %rax
	addq	$16, %rsp
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4572:
	.size	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d16opti_mat_mul_addERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, .-_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d16opti_mat_mul_addERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.globl	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d17opti_tmat_mat_mulERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.hidden	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d17opti_tmat_mat_mulERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.type	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d17opti_tmat_mat_mulERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, @function
_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d17opti_tmat_mat_mulERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE:
.LFB4573:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rdx, %r8
	movq	%rdi, %rbp
	subq	$24, %rsp
	.cfi_def_cfa_offset 40
	movq	120(%rsi), %rcx
	movq	88(%rsi), %rdx
	movq	64(%rsi), %rdi
	movq	72(%rsi), %rax
	pushq	%r8
	.cfi_def_cfa_offset 48
	movq	136(%rsi), %r9
	movq	128(%rsi), %r8
	movq	%rax, %rsi
	call	_ZN2rt4Node15op_tmat_mat_mulEPKfS2_PfmmmRKSt6vectorIPS0_SaIS5_EE@PLT
	popq	%rdx
	.cfi_def_cfa_offset 40
	movq	%rbp, %rdi
	popq	%rcx
	.cfi_def_cfa_offset 32
	movq	%rax, %rsi
	movq	%rax, 8(%rsp)
	call	_ZN2rt5Graph3addEPNS_4NodeE@PLT
	movq	8(%rsp), %rax
	addq	$16, %rsp
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4573:
	.size	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d17opti_tmat_mat_mulERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, .-_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d17opti_tmat_mat_mulERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.globl	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d17opti_mat_tmat_mulERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.hidden	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d17opti_mat_tmat_mulERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.type	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d17opti_mat_tmat_mulERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, @function
_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d17opti_mat_tmat_mulERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE:
.LFB4574:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rdx, %r8
	movq	%rdi, %rbp
	subq	$24, %rsp
	.cfi_def_cfa_offset 40
	movq	120(%rsi), %rcx
	movq	88(%rsi), %rdx
	movq	64(%rsi), %rdi
	movq	72(%rsi), %rax
	pushq	%r8
	.cfi_def_cfa_offset 48
	movq	136(%rsi), %r9
	movq	128(%rsi), %r8
	movq	%rax, %rsi
	call	_ZN2rt4Node15op_mat_tmat_mulEPKfS2_PfmmmRKSt6vectorIPS0_SaIS5_EE@PLT
	popq	%rdx
	.cfi_def_cfa_offset 40
	movq	%rbp, %rdi
	popq	%rcx
	.cfi_def_cfa_offset 32
	movq	%rax, %rsi
	movq	%rax, 8(%rsp)
	call	_ZN2rt5Graph3addEPNS_4NodeE@PLT
	movq	8(%rsp), %rax
	addq	$16, %rsp
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4574:
	.size	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d17opti_mat_tmat_mulERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, .-_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d17opti_mat_tmat_mulERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.globl	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d17opti_mat_sum_rowsERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.hidden	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d17opti_mat_sum_rowsERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.type	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d17opti_mat_sum_rowsERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, @function
_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d17opti_mat_sum_rowsERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE:
.LFB4575:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rdx, %r8
	movq	%rdi, %rbp
	subq	$16, %rsp
	.cfi_def_cfa_offset 32
	movq	88(%rsi), %rax
	movq	128(%rsi), %rcx
	movq	120(%rsi), %rdx
	movq	64(%rsi), %rdi
	movq	%rax, %rsi
	call	_ZN2rt4Node15op_mat_sum_rowsEPKfPfmmRKSt6vectorIPS0_SaIS5_EE@PLT
	movq	%rbp, %rdi
	movq	%rax, %rsi
	movq	%rax, 8(%rsp)
	call	_ZN2rt5Graph3addEPNS_4NodeE@PLT
	movq	8(%rsp), %rax
	addq	$16, %rsp
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4575:
	.size	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d17opti_mat_sum_rowsERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, .-_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d17opti_mat_sum_rowsERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.globl	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d17opti_mat_sum_colsERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.hidden	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d17opti_mat_sum_colsERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.type	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d17opti_mat_sum_colsERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, @function
_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d17opti_mat_sum_colsERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE:
.LFB4576:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rdx, %r8
	movq	%rdi, %rbp
	subq	$16, %rsp
	.cfi_def_cfa_offset 32
	movq	88(%rsi), %rax
	movq	128(%rsi), %rcx
	movq	120(%rsi), %rdx
	movq	64(%rsi), %rdi
	movq	%rax, %rsi
	call	_ZN2rt4Node15op_mat_sum_colsEPKfPfmmRKSt6vectorIPS0_SaIS5_EE@PLT
	movq	%rbp, %rdi
	movq	%rax, %rsi
	movq	%rax, 8(%rsp)
	call	_ZN2rt5Graph3addEPNS_4NodeE@PLT
	movq	8(%rsp), %rax
	addq	$16, %rsp
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4576:
	.size	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d17opti_mat_sum_colsERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, .-_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d17opti_mat_sum_colsERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.globl	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d31opti_softmax_cross_entropy_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.hidden	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d31opti_softmax_cross_entropy_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.type	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d31opti_softmax_cross_entropy_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, @function
_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d31opti_softmax_cross_entropy_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE:
.LFB4577:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rdx, %r9
	movq	%rdi, %rbp
	subq	$16, %rsp
	.cfi_def_cfa_offset 32
	movq	72(%rsi), %rax
	movq	120(%rsi), %rcx
	movq	88(%rsi), %rdx
	movq	64(%rsi), %rdi
	movq	128(%rsi), %r8
	movq	%rax, %rsi
	call	_ZN2rt4Node29op_softmax_cross_entropy_gradEPKfS2_PfmmRKSt6vectorIPS0_SaIS5_EE@PLT
	movq	%rbp, %rdi
	movq	%rax, %rsi
	movq	%rax, 8(%rsp)
	call	_ZN2rt5Graph3addEPNS_4NodeE@PLT
	movq	8(%rsp), %rax
	addq	$16, %rsp
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4577:
	.size	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d31opti_softmax_cross_entropy_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, .-_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d31opti_softmax_cross_entropy_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.globl	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d20opti_conv2d_bias_addERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.hidden	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d20opti_conv2d_bias_addERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.type	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d20opti_conv2d_bias_addERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, @function
_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d20opti_conv2d_bias_addERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE:
.LFB4579:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rdx, %r8
	movq	%rdi, %rbp
	leaq	160(%rsi), %rcx
	subq	$16, %rsp
	.cfi_def_cfa_offset 32
	movq	72(%rsi), %rax
	movq	88(%rsi), %rdx
	movq	64(%rsi), %rdi
	movq	%rax, %rsi
	call	_ZN2rt4Node18op_conv2d_bias_addEPKfS2_PfPKiRKSt6vectorIPS0_SaIS7_EE@PLT
	movq	%rbp, %rdi
	movq	%rax, %rsi
	movq	%rax, 8(%rsp)
	call	_ZN2rt5Graph3addEPNS_4NodeE@PLT
	movq	8(%rsp), %rax
	addq	$16, %rsp
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4579:
	.size	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d20opti_conv2d_bias_addERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, .-_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d20opti_conv2d_bias_addERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.globl	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d26opti_sigmoid_cross_entropyERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.hidden	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d26opti_sigmoid_cross_entropyERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.type	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d26opti_sigmoid_cross_entropyERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, @function
_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d26opti_sigmoid_cross_entropyERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE:
.LFB4581:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rdx, %r8
	movq	%rdi, %rbp
	subq	$16, %rsp
	.cfi_def_cfa_offset 32
	movq	72(%rsi), %rax
	movq	120(%rsi), %rcx
	movq	88(%rsi), %rdx
	movq	64(%rsi), %rdi
	movq	%rax, %rsi
	call	_ZN2rt4Node24op_sigmoid_cross_entropyEPKfS2_PfmRKSt6vectorIPS0_SaIS5_EE@PLT
	movq	%rbp, %rdi
	movq	%rax, %rsi
	movq	%rax, 8(%rsp)
	call	_ZN2rt5Graph3addEPNS_4NodeE@PLT
	movq	8(%rsp), %rax
	addq	$16, %rsp
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4581:
	.size	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d26opti_sigmoid_cross_entropyERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, .-_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d26opti_sigmoid_cross_entropyERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.globl	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d22opti_conv2d_input_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.hidden	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d22opti_conv2d_input_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.type	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d22opti_conv2d_input_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, @function
_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d22opti_conv2d_input_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE:
.LFB4583:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rdx, %r8
	movq	%rdi, %rbp
	leaq	144(%rsi), %rdx
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	leaq	176(%rsi), %r9
	subq	$40, %rsp
	.cfi_def_cfa_offset 64
	movq	88(%rsi), %rcx
	movq	64(%rsi), %rdi
	movq	%fs:40, %rax
	movq	%rax, 24(%rsp)
	xorl	%eax, %eax
	xorl	%eax, %eax
	movl	%eax, 12(%rsp)
	movq	152(%rsi), %rax
	movq	%rax, 16(%rsp)
	movq	72(%rsi), %rax
	pushq	%r8
	.cfi_def_cfa_offset 72
	leaq	20(%rsp), %r8
	pushq	%r8
	.cfi_def_cfa_offset 80
	leaq	160(%rsi), %r8
	movq	%rax, %rsi
	call	_ZN2rt4Node20op_conv2d_input_gradEPKfS2_PKiPfS4_S4_S4_RKSt6vectorIPS0_SaIS7_EE@PLT
	popq	%rdx
	.cfi_def_cfa_offset 72
	movq	%rbp, %rdi
	popq	%rcx
	.cfi_def_cfa_offset 64
	movq	%rax, %rsi
	movq	%rax, %rbx
	call	_ZN2rt5Graph3addEPNS_4NodeE@PLT
	movq	24(%rsp), %rax
	subq	%fs:40, %rax
	je	.L24
	call	__stack_chk_fail@PLT
.L24:
	addq	$40, %rsp
	.cfi_def_cfa_offset 24
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4583:
	.size	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d22opti_conv2d_input_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, .-_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d22opti_conv2d_input_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.globl	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d23opti_conv2d_kernel_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.hidden	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d23opti_conv2d_kernel_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.type	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d23opti_conv2d_kernel_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, @function
_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d23opti_conv2d_kernel_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE:
.LFB4584:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rdx, %r8
	movq	%rdi, %rbp
	leaq	144(%rsi), %rdx
	leaq	176(%rsi), %r9
	subq	$16, %rsp
	.cfi_def_cfa_offset 32
	movq	88(%rsi), %rcx
	movq	64(%rsi), %rdi
	movq	72(%rsi), %rax
	pushq	%r8
	.cfi_def_cfa_offset 40
	leaq	152(%rsi), %r8
	pushq	%r8
	.cfi_def_cfa_offset 48
	leaq	160(%rsi), %r8
	movq	%rax, %rsi
	call	_ZN2rt4Node21op_conv2d_kernel_gradEPKfS2_PKiPfS4_S4_S4_RKSt6vectorIPS0_SaIS7_EE@PLT
	popq	%rdx
	.cfi_def_cfa_offset 40
	movq	%rbp, %rdi
	popq	%rcx
	.cfi_def_cfa_offset 32
	movq	%rax, %rsi
	movq	%rax, 8(%rsp)
	call	_ZN2rt5Graph3addEPNS_4NodeE@PLT
	movq	8(%rsp), %rax
	addq	$16, %rsp
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4584:
	.size	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d23opti_conv2d_kernel_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, .-_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d23opti_conv2d_kernel_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.globl	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d15opti_argmax_accERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.hidden	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d15opti_argmax_accERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.type	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d15opti_argmax_accERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, @function
_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d15opti_argmax_accERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE:
.LFB4585:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rdx, %r9
	movq	%rdi, %rbp
	subq	$16, %rsp
	.cfi_def_cfa_offset 32
	movq	72(%rsi), %rax
	movq	120(%rsi), %rcx
	movq	88(%rsi), %rdx
	movq	64(%rsi), %rdi
	movq	128(%rsi), %r8
	movq	%rax, %rsi
	call	_ZN2rt4Node13op_argmax_accEPKfS2_PfmmRKSt6vectorIPS0_SaIS5_EE@PLT
	movq	%rbp, %rdi
	movq	%rax, %rsi
	movq	%rax, 8(%rsp)
	call	_ZN2rt5Graph3addEPNS_4NodeE@PLT
	movq	8(%rsp), %rax
	addq	$16, %rsp
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4585:
	.size	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d15opti_argmax_accERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, .-_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d15opti_argmax_accERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.globl	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d25opti_conv2d_bias_add_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.hidden	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d25opti_conv2d_bias_add_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.type	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d25opti_conv2d_bias_add_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, @function
_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d25opti_conv2d_bias_add_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE:
.LFB4590:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rdx, %rcx
	movq	%rdi, %rbp
	leaq	160(%rsi), %rax
	subq	$16, %rsp
	.cfi_def_cfa_offset 32
	movq	88(%rsi), %rdx
	movq	64(%rsi), %rdi
	movq	%rax, %rsi
	call	_ZN2rt4Node23op_conv2d_bias_add_gradEPKfPKiPfRKSt6vectorIPS0_SaIS7_EE@PLT
	movq	%rbp, %rdi
	movq	%rax, %rsi
	movq	%rax, 8(%rsp)
	call	_ZN2rt5Graph3addEPNS_4NodeE@PLT
	movq	8(%rsp), %rax
	addq	$16, %rsp
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4590:
	.size	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d25opti_conv2d_bias_add_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, .-_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d25opti_conv2d_bias_add_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.globl	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d21opti_conv2d_transposeERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.hidden	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d21opti_conv2d_transposeERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.type	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d21opti_conv2d_transposeERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, @function
_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d21opti_conv2d_transposeERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE:
.LFB4592:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rdx, %r8
	movq	%rdi, %rbp
	leaq	144(%rsi), %rcx
	leaq	160(%rsi), %rdx
	leaq	176(%rsi), %r9
	subq	$16, %rsp
	.cfi_def_cfa_offset 32
	movq	64(%rsi), %rdi
	movq	72(%rsi), %rax
	pushq	%r8
	.cfi_def_cfa_offset 40
	leaq	192(%rsi), %r8
	pushq	%r8
	.cfi_def_cfa_offset 48
	movq	88(%rsi), %r8
	movq	%rax, %rsi
	call	_ZN2rt4Node19op_conv2d_transposeEPKfS2_PKiS4_PfS4_S4_RKSt6vectorIPS0_SaIS7_EE@PLT
	popq	%rdx
	.cfi_def_cfa_offset 40
	movq	%rbp, %rdi
	popq	%rcx
	.cfi_def_cfa_offset 32
	movq	%rax, %rsi
	movq	%rax, 8(%rsp)
	call	_ZN2rt5Graph3addEPNS_4NodeE@PLT
	movq	8(%rsp), %rax
	addq	$16, %rsp
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4592:
	.size	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d21opti_conv2d_transposeERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, .-_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d21opti_conv2d_transposeERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.globl	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d32opti_conv2d_transpose_input_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.hidden	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d32opti_conv2d_transpose_input_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.type	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d32opti_conv2d_transpose_input_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, @function
_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d32opti_conv2d_transpose_input_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE:
.LFB4593:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rdx, %r8
	movq	%rdi, %rbp
	leaq	144(%rsi), %rdx
	leaq	176(%rsi), %r9
	subq	$16, %rsp
	.cfi_def_cfa_offset 32
	movq	88(%rsi), %rcx
	movq	64(%rsi), %rdi
	movq	72(%rsi), %rax
	pushq	%r8
	.cfi_def_cfa_offset 40
	leaq	152(%rsi), %r8
	pushq	%r8
	.cfi_def_cfa_offset 48
	leaq	160(%rsi), %r8
	movq	%rax, %rsi
	call	_ZN2rt4Node30op_conv2d_transpose_input_gradEPKfS2_PKiPfS4_S4_S4_RKSt6vectorIPS0_SaIS7_EE@PLT
	popq	%rdx
	.cfi_def_cfa_offset 40
	movq	%rbp, %rdi
	popq	%rcx
	.cfi_def_cfa_offset 32
	movq	%rax, %rsi
	movq	%rax, 8(%rsp)
	call	_ZN2rt5Graph3addEPNS_4NodeE@PLT
	movq	8(%rsp), %rax
	addq	$16, %rsp
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4593:
	.size	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d32opti_conv2d_transpose_input_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, .-_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d32opti_conv2d_transpose_input_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.globl	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d33opti_conv2d_transpose_kernel_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.hidden	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d33opti_conv2d_transpose_kernel_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.type	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d33opti_conv2d_transpose_kernel_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, @function
_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d33opti_conv2d_transpose_kernel_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE:
.LFB4594:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rdx, %r8
	movq	%rdi, %rbp
	leaq	144(%rsi), %rdx
	leaq	176(%rsi), %r9
	subq	$16, %rsp
	.cfi_def_cfa_offset 32
	movq	88(%rsi), %rcx
	movq	64(%rsi), %rdi
	movq	72(%rsi), %rax
	pushq	%r8
	.cfi_def_cfa_offset 40
	leaq	192(%rsi), %r8
	pushq	%r8
	.cfi_def_cfa_offset 48
	leaq	160(%rsi), %r8
	movq	%rax, %rsi
	call	_ZN2rt4Node31op_conv2d_transpose_kernel_gradEPKfS2_PKiPfS4_S4_S4_RKSt6vectorIPS0_SaIS7_EE@PLT
	popq	%rdx
	.cfi_def_cfa_offset 40
	movq	%rbp, %rdi
	popq	%rcx
	.cfi_def_cfa_offset 32
	movq	%rax, %rsi
	movq	%rax, 8(%rsp)
	call	_ZN2rt5Graph3addEPNS_4NodeE@PLT
	movq	8(%rsp), %rax
	addq	$16, %rsp
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4594:
	.size	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d33opti_conv2d_transpose_kernel_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, .-_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d33opti_conv2d_transpose_kernel_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.type	_ZL26__cudaUnregisterBinaryUtilv, @function
_ZL26__cudaUnregisterBinaryUtilv:
.LFB4611:
	.cfi_startproc
	endbr64
	movq	_ZL20__cudaFatCubinHandle(%rip), %rdi
	jmp	__cudaUnregisterFatBinary@PLT
	.cfi_endproc
.LFE4611:
	.size	_ZL26__cudaUnregisterBinaryUtilv, .-_ZL26__cudaUnregisterBinaryUtilv
	.align 2
	.type	_ZNSt12_Vector_baseIPN2rt4NodeESaIS2_EE11_M_allocateEm.isra.0, @function
_ZNSt12_Vector_baseIPN2rt4NodeESaIS2_EE11_M_allocateEm.isra.0:
.LFB5500:
	.cfi_startproc
	testq	%rdi, %rdi
	je	.L41
	movabsq	$1152921504606846975, %rax
	cmpq	%rdi, %rax
	jnb	.L42
	pushq	%rax
	.cfi_def_cfa_offset 16
	movabsq	$2305843009213693951, %rax
	cmpq	%rdi, %rax
	jnb	.L43
	call	_ZSt28__throw_bad_array_new_lengthv@PLT
.L43:
	call	_ZSt17__throw_bad_allocv@PLT
.L42:
	.cfi_def_cfa_offset 8
	salq	$3, %rdi
	jmp	_Znwm@PLT
.L41:
	xorl	%eax, %eax
	ret
	.cfi_endproc
.LFE5500:
	.size	_ZNSt12_Vector_baseIPN2rt4NodeESaIS2_EE11_M_allocateEm.isra.0, .-_ZNSt12_Vector_baseIPN2rt4NodeESaIS2_EE11_M_allocateEm.isra.0
	.align 2
	.type	_ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE8_M_eraseEPSt13_Rb_tree_nodeIS5_E.isra.0, @function
_ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE8_M_eraseEPSt13_Rb_tree_nodeIS5_E.isra.0:
.LFB5503:
	.cfi_startproc
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rdi, %rbx
	pushq	%rdx
	.cfi_def_cfa_offset 32
.L48:
	testq	%rbx, %rbx
	je	.L51
	movq	24(%rbx), %rdi
	call	_ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE8_M_eraseEPSt13_Rb_tree_nodeIS5_E.isra.0
	movq	16(%rbx), %rbp
	movq	%rbx, %rdi
	movl	$48, %esi
	call	_ZdlPvm@PLT
	movq	%rbp, %rbx
	jmp	.L48
.L51:
	popq	%rax
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE5503:
	.size	_ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE8_M_eraseEPSt13_Rb_tree_nodeIS5_E.isra.0, .-_ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE8_M_eraseEPSt13_Rb_tree_nodeIS5_E.isra.0
	.section	.text._ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE24_M_get_insert_unique_posERS4_.isra.0,"axG",@progbits,_ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE29_M_get_insert_hint_unique_posESt23_Rb_tree_const_iteratorIS5_ERS4_,comdat
	.align 2
	.type	_ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE24_M_get_insert_unique_posERS4_.isra.0, @function
_ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE24_M_get_insert_unique_posERS4_.isra.0:
.LFB5506:
	.cfi_startproc
	pushq	%r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	movb	$1, %al
	movq	%rsi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	leaq	8(%rdi), %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	movq	16(%rdi), %rbx
.L53:
	testq	%rbx, %rbx
	je	.L61
	cmpq	32(%rbx), %r12
	movq	24(%rbx), %rdx
	movq	%rbx, %rbp
	cmovb	16(%rbx), %rdx
	setb	%al
	movq	%rdx, %rbx
	jmp	.L53
.L61:
	testb	%al, %al
	je	.L59
	cmpq	%rbp, 24(%rdi)
	je	.L57
	movq	%rbp, %rdi
	call	_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base@PLT
	jmp	.L56
.L59:
	movq	%rbp, %rax
.L56:
	xorl	%edx, %edx
	cmpq	%r12, 32(%rax)
	cmovnb	%rdx, %rbp
	cmovnb	%rax, %rbx
.L57:
	movq	%rbx, %rax
	movq	%rbp, %rdx
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%rbp
	.cfi_def_cfa_offset 16
	popq	%r12
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE5506:
	.size	_ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE24_M_get_insert_unique_posERS4_.isra.0, .-_ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE24_M_get_insert_unique_posERS4_.isra.0
	.text
	.globl	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d14elemwhise_sizeEmRmS1_
	.hidden	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d14elemwhise_sizeEmRmS1_
	.type	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d14elemwhise_sizeEmRmS1_, @function
_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d14elemwhise_sizeEmRmS1_:
.LFB4546:
	.cfi_startproc
	endbr64
	movq	%rdx, %r9
	movl	$8, %r8d
	cmpq	$9215, %rdi
	ja	.L63
	movq	%rdi, %r8
	shrq	$10, %r8
.L63:
	testq	%r8, %r8
	movl	$1, %ecx
	movq	%rdi, %rax
	cmovne	%r8, %rcx
	xorl	%edx, %edx
	divq	%rcx
	movq	%rax, %rdx
	imulq	%rcx, %rdx
.L64:
	cmpq	%rdi, %rdx
	jnb	.L71
	incq	%rax
	addq	%rcx, %rdx
	jmp	.L64
.L71:
	cmpq	$1, %r8
	jbe	.L67
.L66:
	testb	$7, %al
	je	.L67
	incq	%rax
	jmp	.L66
.L67:
	movq	%rcx, (%rsi)
	movq	%rax, (%r9)
	ret
	.cfi_endproc
.LFE4546:
	.size	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d14elemwhise_sizeEmRmS1_, .-_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d14elemwhise_sizeEmRmS1_
	.section	.text.startup,"ax",@progbits
	.type	_ZL24__sti____cudaRegisterAllv, @function
_ZL24__sti____cudaRegisterAllv:
.LFB4634:
	.cfi_startproc
	endbr64
	pushq	%rax
	.cfi_def_cfa_offset 16
	leaq	_ZL15__fatDeviceText(%rip), %rdi
	call	__cudaRegisterFatBinary@PLT
	movq	%rax, %rdi
	movq	%rax, _ZL20__cudaFatCubinHandle(%rip)
	call	__cudaRegisterFatBinaryEnd@PLT
	leaq	_ZL26__cudaUnregisterBinaryUtilv(%rip), %rdi
	popq	%rdx
	.cfi_def_cfa_offset 8
	jmp	atexit@PLT
	.cfi_endproc
.LFE4634:
	.size	_ZL24__sti____cudaRegisterAllv, .-_ZL24__sti____cudaRegisterAllv
	.section	.init_array,"aw"
	.align 8
	.quad	_ZL24__sti____cudaRegisterAllv
	.section	.text._ZNSt6vectorIPN2rt4NodeESaIS2_EED2Ev,"axG",@progbits,_ZNSt6vectorIPN2rt4NodeESaIS2_EED5Ev,comdat
	.align 2
	.weak	_ZNSt6vectorIPN2rt4NodeESaIS2_EED2Ev
	.type	_ZNSt6vectorIPN2rt4NodeESaIS2_EED2Ev, @function
_ZNSt6vectorIPN2rt4NodeESaIS2_EED2Ev:
.LFB4944:
	.cfi_startproc
	endbr64
	movq	(%rdi), %rax
	testq	%rax, %rax
	je	.L74
	movq	16(%rdi), %rsi
	movq	%rax, %rdi
	subq	%rax, %rsi
	jmp	_ZdlPvm@PLT
.L74:
	ret
	.cfi_endproc
.LFE4944:
	.size	_ZNSt6vectorIPN2rt4NodeESaIS2_EED2Ev, .-_ZNSt6vectorIPN2rt4NodeESaIS2_EED2Ev
	.weak	_ZNSt6vectorIPN2rt4NodeESaIS2_EED1Ev
	.set	_ZNSt6vectorIPN2rt4NodeESaIS2_EED1Ev,_ZNSt6vectorIPN2rt4NodeESaIS2_EED2Ev
	.section	.text._ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE29_M_get_insert_hint_unique_posESt23_Rb_tree_const_iteratorIS5_ERS4_,"axG",@progbits,_ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE29_M_get_insert_hint_unique_posESt23_Rb_tree_const_iteratorIS5_ERS4_,comdat
	.align 2
	.weak	_ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE29_M_get_insert_hint_unique_posESt23_Rb_tree_const_iteratorIS5_ERS4_
	.type	_ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE29_M_get_insert_hint_unique_posESt23_Rb_tree_const_iteratorIS5_ERS4_, @function
_ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE29_M_get_insert_hint_unique_posESt23_Rb_tree_const_iteratorIS5_ERS4_:
.LFB5290:
	.cfi_startproc
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	leaq	8(%rdi), %rax
	movq	%rdi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 24
	.cfi_offset 3, -24
	movq	%rsi, %rbx
	subq	$24, %rsp
	.cfi_def_cfa_offset 48
	movq	(%rdx), %rsi
	cmpq	%rax, %rbx
	jne	.L77
	cmpq	$0, 40(%rdi)
	je	.L86
	movq	32(%rdi), %rdx
	cmpq	%rsi, 32(%rdx)
	jnb	.L86
	jmp	.L89
.L77:
	movq	32(%rbx), %rax
	cmpq	%rax, %rsi
	jnb	.L80
	movq	24(%rdi), %rax
	cmpq	%rbx, %rax
	je	.L87
	movq	%rbx, %rdi
	movq	%rsi, 8(%rsp)
	call	_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base@PLT
	movq	8(%rsp), %rsi
	movq	%rax, %rdx
	cmpq	%rsi, 32(%rax)
	jnb	.L86
	cmpq	$0, 24(%rdx)
	movq	%rbx, %rax
	jne	.L87
	jmp	.L89
.L80:
	cmpq	%rsi, %rax
	jnb	.L84
	movq	32(%rdi), %rdx
	cmpq	%rbx, %rdx
	jne	.L85
.L89:
	xorl	%eax, %eax
	jmp	.L79
.L85:
	movq	%rbx, %rdi
	movq	%rsi, 8(%rsp)
	call	_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base@PLT
	movq	8(%rsp), %rsi
	cmpq	32(%rax), %rsi
	jnb	.L86
	cmpq	$0, 24(%rbx)
	jne	.L87
	xorl	%eax, %eax
	movq	%rbx, %rdx
	jmp	.L79
.L87:
	movq	%rax, %rdx
	jmp	.L79
.L86:
	addq	$24, %rsp
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	movq	%rbp, %rdi
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	jmp	_ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE24_M_get_insert_unique_posERS4_.isra.0
.L84:
	.cfi_restore_state
	movq	%rbx, %rax
	xorl	%edx, %edx
.L79:
	addq	$24, %rsp
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE5290:
	.size	_ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE29_M_get_insert_hint_unique_posESt23_Rb_tree_const_iteratorIS5_ERS4_, .-_ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE29_M_get_insert_hint_unique_posESt23_Rb_tree_const_iteratorIS5_ERS4_
	.section	.text._ZNKSt6vectorIPN2rt4NodeESaIS2_EE12_M_check_lenEmPKc,"axG",@progbits,_ZNKSt6vectorIPN2rt4NodeESaIS2_EE12_M_check_lenEmPKc,comdat
	.align 2
	.weak	_ZNKSt6vectorIPN2rt4NodeESaIS2_EE12_M_check_lenEmPKc
	.type	_ZNKSt6vectorIPN2rt4NodeESaIS2_EE12_M_check_lenEmPKc, @function
_ZNKSt6vectorIPN2rt4NodeESaIS2_EE12_M_check_lenEmPKc:
.LFB5310:
	.cfi_startproc
	endbr64
	movq	%rdi, %rax
	movq	%rdx, %rdi
	movq	8(%rax), %rcx
	subq	(%rax), %rcx
	movabsq	$1152921504606846975, %rax
	sarq	$3, %rcx
	movq	%rax, %rdx
	subq	%rcx, %rdx
	cmpq	%rsi, %rdx
	jnb	.L91
	pushq	%rax
	.cfi_def_cfa_offset 16
	call	_ZSt20__throw_length_errorPKc@PLT
.L91:
	.cfi_def_cfa_offset 8
	cmpq	%rcx, %rsi
	cmovb	%rcx, %rsi
	addq	%rsi, %rcx
	jc	.L90
	movabsq	$1152921504606846975, %rax
	cmpq	%rax, %rcx
	cmovbe	%rcx, %rax
.L90:
	ret
	.cfi_endproc
.LFE5310:
	.size	_ZNKSt6vectorIPN2rt4NodeESaIS2_EE12_M_check_lenEmPKc, .-_ZNKSt6vectorIPN2rt4NodeESaIS2_EE12_M_check_lenEmPKc
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC0:
	.string	"vector::_M_realloc_insert"
	.text
	.align 2
	.type	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_.isra.0, @function
_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_.isra.0:
.LFB5510:
	.cfi_startproc
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	movq	%rdi, %r14
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$24, %rsp
	.cfi_def_cfa_offset 80
	movq	8(%rdi), %rbx
	cmpq	16(%rdi), %rbx
	je	.L100
	movq	(%rsi), %rax
	addq	$8, %rbx
	movq	%rax, -8(%rbx)
	movq	%rbx, 8(%rdi)
	jmp	.L99
.L100:
	movq	%rsi, 8(%rsp)
	leaq	.LC0(%rip), %rdx
	movl	$1, %esi
	movq	%rbx, %r15
	call	_ZNKSt6vectorIPN2rt4NodeESaIS2_EE12_M_check_lenEmPKc
	movq	(%r14), %r12
	movq	8(%r14), %r13
	movq	%rax, %rdi
	movq	%rax, (%rsp)
	call	_ZNSt12_Vector_baseIPN2rt4NodeESaIS2_EE11_M_allocateEm.isra.0
	movq	8(%rsp), %r8
	subq	%r12, %r15
	movq	%rax, %rbp
	movq	(%r8), %rax
	movq	%rax, 0(%rbp,%r15)
	testq	%r15, %r15
	jle	.L102
	movq	%r15, %rdx
	movq	%r12, %rsi
	movq	%rbp, %rdi
	call	memmove@PLT
.L102:
	subq	%rbx, %r13
	leaq	8(%rbp,%r15), %rdi
	testq	%r13, %r13
	jle	.L103
	movq	%r13, %rdx
	movq	%rbx, %rsi
	call	memmove@PLT
	movq	%rax, %rdi
.L103:
	addq	%rdi, %r13
	testq	%r12, %r12
	je	.L104
	movq	16(%r14), %rsi
	movq	%r12, %rdi
	subq	%r12, %rsi
	call	_ZdlPvm@PLT
.L104:
	movq	(%rsp), %rax
	movq	%rbp, (%r14)
	movq	%r13, 8(%r14)
	leaq	0(%rbp,%rax,8), %rax
	movq	%rax, 16(%r14)
.L99:
	addq	$24, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE5510:
	.size	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_.isra.0, .-_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_.isra.0
	.globl	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d9opti_nodeEPNS_4NodeERNS_5GraphERSt3mapIS2_S2_St4lessIS2_ESaISt4pairIKS2_S2_EEE
	.hidden	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d9opti_nodeEPNS_4NodeERNS_5GraphERSt3mapIS2_S2_St4lessIS2_ESaISt4pairIKS2_S2_EEE
	.type	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d9opti_nodeEPNS_4NodeERNS_5GraphERSt3mapIS2_S2_St4lessIS2_ESaISt4pairIKS2_S2_EEE, @function
_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d9opti_nodeEPNS_4NodeERNS_5GraphERSt3mapIS2_S2_St4lessIS2_ESaISt4pairIKS2_S2_EEE:
.LFB4596:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA4596
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rsi, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	leaq	8(%rdx), %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rdx, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdi, %rbx
	subq	$72, %rsp
	.cfi_def_cfa_offset 128
	movq	%fs:40, %rax
	movq	%rax, 56(%rsp)
	xorl	%eax, %eax
	movq	16(%rdx), %rax
	movq	%r12, %rdx
.L110:
	testq	%rax, %rax
	je	.L133
	cmpq	%rbx, 32(%rax)
	movq	24(%rax), %rcx
	cmovnb	16(%rax), %rcx
	cmovnb	%rax, %rdx
	movq	%rcx, %rax
	jmp	.L110
.L133:
	cmpq	%rdx, %r12
	je	.L113
	cmpq	32(%rdx), %rbx
	jb	.L113
	movq	40(%rdx), %r14
	jmp	.L109
.L113:
	xorl	%edx, %edx
	leaq	32(%rsp), %rax
	movq	16(%rbx), %r15
	movq	8(%rbx), %r14
	movq	%rdx, 32(%rsp)
	movq	%rdx, 40(%rsp)
	movq	%rdx, 48(%rsp)
	movq	%rax, 8(%rsp)
.L115:
	cmpq	%r14, %r15
	je	.L134
	movq	(%r14), %rdi
	movq	%rbp, %rdx
	movq	%r13, %rsi
.LEHB0:
	call	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d9opti_nodeEPNS_4NodeERNS_5GraphERSt3mapIS2_S2_St4lessIS2_ESaISt4pairIKS2_S2_EEE
	movq	8(%rsp), %rdi
	leaq	24(%rsp), %rsi
	movq	%rax, 24(%rsp)
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_.isra.0
	addq	$8, %r14
	jmp	.L115
.L134:
	movslq	(%rbx), %rax
	cmpl	$1000, %eax
	jne	.L117
	movq	8(%rsp), %rdi
	call	_ZN2rt4Node3nopERKSt6vectorIPS0_SaIS2_EE@PLT
	movq	%rax, %rsi
	movq	%r13, %rdi
	movq	%rax, %r14
	call	_ZN2rt5Graph3addEPNS_4NodeE@PLT
	jmp	.L118
.L117:
	leaq	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d10optis_listE(%rip), %rcx
	movq	8(%rsp), %rdx
	movq	%rbx, %rsi
	movq	%r13, %rdi
	call	*(%rcx,%rax,8)
	movq	%rax, %r14
.L118:
	movq	16(%rbp), %rax
	movq	%r12, %r15
.L119:
	testq	%rax, %rax
	je	.L135
	cmpq	%rbx, 32(%rax)
	movq	24(%rax), %rdx
	cmovnb	16(%rax), %rdx
	cmovnb	%rax, %r15
	movq	%rdx, %rax
	jmp	.L119
.L135:
	cmpq	%r15, %r12
	je	.L122
	cmpq	32(%r15), %rbx
	jnb	.L123
.L122:
	movl	$48, %edi
	movq	%r15, %r13
	call	_Znwm@PLT
.LEHE0:
	movq	%rbx, 32(%rax)
	movq	%rax, %r15
	xorl	%eax, %eax
	movq	%r13, %rsi
	movq	%rax, 40(%r15)
	leaq	32(%r15), %rdx
	movq	%rbp, %rdi
	call	_ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE29_M_get_insert_hint_unique_posESt23_Rb_tree_const_iteratorIS5_ERS4_
	movq	%rax, %r13
	testq	%rdx, %rdx
	je	.L124
	testq	%rax, %rax
	setne	%dil
	cmpq	%rdx, %r12
	sete	%al
	orb	%al, %dil
	jne	.L125
	cmpq	32(%rdx), %rbx
	setb	%dil
.L125:
	movzbl	%dil, %edi
	movq	%r12, %rcx
	movq	%r15, %rsi
	call	_ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS_@PLT
	incq	40(%rbp)
	jmp	.L123
.L124:
	movq	%r15, %rdi
	movl	$48, %esi
	movq	%r13, %r15
	call	_ZdlPvm@PLT
.L123:
	movq	%r14, 40(%r15)
	movq	8(%rsp), %rdi
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EED1Ev
	jmp	.L109
.L130:
	endbr64
	movq	%rax, %rbx
.L127:
	movq	8(%rsp), %rdi
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EED1Ev
	movq	56(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L132
	movq	%rbx, %rdi
.LEHB1:
	call	_Unwind_Resume@PLT
.LEHE1:
.L109:
	movq	56(%rsp), %rax
	subq	%fs:40, %rax
	je	.L129
.L132:
	call	__stack_chk_fail@PLT
.L129:
	addq	$72, %rsp
	.cfi_def_cfa_offset 56
	movq	%r14, %rax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4596:
	.globl	__gxx_personality_v0
	.section	.gcc_except_table,"a",@progbits
.LLSDA4596:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE4596-.LLSDACSB4596
.LLSDACSB4596:
	.uleb128 .LEHB0-.LFB4596
	.uleb128 .LEHE0-.LEHB0
	.uleb128 .L130-.LFB4596
	.uleb128 0
	.uleb128 .LEHB1-.LFB4596
	.uleb128 .LEHE1-.LEHB1
	.uleb128 0
	.uleb128 0
.LLSDACSE4596:
	.text
	.size	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d9opti_nodeEPNS_4NodeERNS_5GraphERSt3mapIS2_S2_St4lessIS2_ESaISt4pairIKS2_S2_EEE, .-_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d9opti_nodeEPNS_4NodeERNS_5GraphERSt3mapIS2_S2_St4lessIS2_ESaISt4pairIKS2_S2_EEE
	.globl	_ZN2rt8optimizeERKNS_5GraphERSt3mapIPNS_4NodeES5_St4lessIS5_ESaISt4pairIKS5_S5_EEE
	.type	_ZN2rt8optimizeERKNS_5GraphERSt3mapIPNS_4NodeES5_St4lessIS5_ESaISt4pairIKS5_S5_EEE, @function
_ZN2rt8optimizeERKNS_5GraphERSt3mapIPNS_4NodeES5_St4lessIS5_ESaISt4pairIKS5_S5_EEE:
.LFB4598:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA4598
	endbr64
	pushq	%r14
	.cfi_def_cfa_offset 16
	.cfi_offset 14, -16
	pushq	%r13
	.cfi_def_cfa_offset 24
	.cfi_offset 13, -24
	pushq	%r12
	.cfi_def_cfa_offset 32
	.cfi_offset 12, -32
	movq	%rdi, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 40
	.cfi_offset 6, -40
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset 3, -48
	movq	%rsi, %rbx
	subq	$32, %rsp
	.cfi_def_cfa_offset 80
	movq	16(%rsi), %rdi
	movq	%fs:40, %rax
	movq	%rax, 24(%rsp)
	xorl	%eax, %eax
	movq	%rsp, %r13
	call	_ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE8_M_eraseEPSt13_Rb_tree_nodeIS5_E.isra.0
	xorl	%eax, %eax
	xorl	%edx, %edx
	movl	$24, %edi
	movq	%rax, 16(%rbx)
	leaq	8(%rbx), %rax
	movq	%rdx, 40(%rbx)
	movq	%rax, 24(%rbx)
	movq	%rax, 32(%rbx)
.LEHB2:
	call	_Znwm@PLT
	xorl	%ecx, %ecx
	movq	%r12, %rsi
	movq	%r13, %rdi
	movq	%rcx, (%rax)
	movq	%rax, %rbp
	movq	%rcx, 8(%rax)
	movq	%rcx, 16(%rax)
	call	_ZNK2rt5Graph5nodesEv@PLT
.LEHE2:
	movq	8(%rsp), %r14
	movq	(%rsp), %r12
.L137:
	cmpq	%r12, %r14
	je	.L145
	movq	(%r12), %rdi
	movq	%rbx, %rdx
	movq	%rbp, %rsi
.LEHB3:
	call	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d9opti_nodeEPNS_4NodeERNS_5GraphERSt3mapIS2_S2_St4lessIS2_ESaISt4pairIKS2_S2_EEE
.LEHE3:
	addq	$8, %r12
	jmp	.L137
.L145:
	movq	%r13, %rdi
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EED1Ev
	movq	24(%rsp), %rax
	subq	%fs:40, %rax
	je	.L141
	jmp	.L143
.L142:
	endbr64
	movq	%rax, %rbx
.L139:
	movq	%r13, %rdi
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EED1Ev
	movq	24(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L143
	movq	%rbx, %rdi
.LEHB4:
	call	_Unwind_Resume@PLT
.LEHE4:
.L143:
	call	__stack_chk_fail@PLT
.L141:
	addq	$32, %rsp
	.cfi_def_cfa_offset 48
	movq	%rbp, %rax
	popq	%rbx
	.cfi_def_cfa_offset 40
	popq	%rbp
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r13
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4598:
	.section	.gcc_except_table
.LLSDA4598:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE4598-.LLSDACSB4598
.LLSDACSB4598:
	.uleb128 .LEHB2-.LFB4598
	.uleb128 .LEHE2-.LEHB2
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB3-.LFB4598
	.uleb128 .LEHE3-.LEHB3
	.uleb128 .L142-.LFB4598
	.uleb128 0
	.uleb128 .LEHB4-.LFB4598
	.uleb128 .LEHE4-.LEHB4
	.uleb128 0
	.uleb128 0
.LLSDACSE4598:
	.text
	.size	_ZN2rt8optimizeERKNS_5GraphERSt3mapIPNS_4NodeES5_St4lessIS5_ESaISt4pairIKS5_S5_EEE, .-_ZN2rt8optimizeERKNS_5GraphERSt3mapIPNS_4NodeES5_St4lessIS5_ESaISt4pairIKS5_S5_EEE
	.globl	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d8opti_addERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.hidden	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d8opti_addERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.type	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d8opti_addERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, @function
_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d8opti_addERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE:
.LFB4595:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA4595
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rsi, %rbx
	subq	$120, %rsp
	.cfi_def_cfa_offset 176
	movq	%rdi, 16(%rsp)
	movq	120(%rsi), %rdi
	leaq	56(%rsp), %rsi
	movq	%rdx, 24(%rsp)
	leaq	64(%rsp), %rdx
	movq	%fs:40, %rax
	movq	%rax, 104(%rsp)
	xorl	%eax, %eax
	call	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d14elemwhise_sizeEmRmS1_
	movq	56(%rsp), %r14
	movq	72(%rbx), %rax
	movq	88(%rbx), %r12
	movq	64(%rbx), %r13
	cmpq	$1, %r14
	movq	%rax, 32(%rsp)
	ja	.L147
	movq	24(%rsp), %r8
	movq	%rdi, %rcx
	movq	%r12, %rdx
	movq	%r13, %rdi
	movq	%rax, %rsi
.LEHB5:
	call	_ZN2rt4Node6op_addEPKfS2_PfmRKSt6vectorIPS0_SaIS5_EE@PLT
	movq	16(%rsp), %rdi
	movq	%rax, %rsi
	movq	%rax, %rbx
	call	_ZN2rt5Graph3addEPNS_4NodeE@PLT
.LEHE5:
	jmp	.L146
.L147:
	xorl	%eax, %eax
	decq	%r14
	xorl	%r15d, %r15d
	movq	%rax, 80(%rsp)
	movq	%rax, 88(%rsp)
	movq	%rax, 96(%rsp)
	leaq	80(%rsp), %rax
	movq	%rax, 8(%rsp)
.L149:
	movq	64(%rsp), %rbp
	movq	32(%rsp), %rax
	movq	24(%rsp), %r8
	movq	%rbp, %rdi
	movq	%rbp, %rcx
	imulq	%r15, %rdi
	salq	$2, %rdi
	leaq	(%r12,%rdi), %rdx
	leaq	(%rax,%rdi), %rsi
	addq	%r13, %rdi
.LEHB6:
	call	_ZN2rt4Node6op_addEPKfS2_PfmRKSt6vectorIPS0_SaIS5_EE@PLT
	movq	%rax, 72(%rsp)
	movq	8(%rsp), %rdi
	leaq	72(%rsp), %rax
	movq	%rax, %rsi
	movq	%rax, 40(%rsp)
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_.isra.0
	incq	%r15
	cmpq	%r14, %r15
	jb	.L149
	imulq	%r14, %rbp
	movq	120(%rbx), %rcx
	movq	32(%rsp), %rsi
	movq	24(%rsp), %r8
	leaq	0(,%rbp,4), %rax
	subq	%rbp, %rcx
	leaq	(%r12,%rax), %rdx
	addq	%rax, %rsi
	leaq	0(%r13,%rax), %rdi
	call	_ZN2rt4Node6op_addEPKfS2_PfmRKSt6vectorIPS0_SaIS5_EE@PLT
	movq	40(%rsp), %rsi
	movq	8(%rsp), %rdi
	movq	%rax, 72(%rsp)
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_.isra.0
	movq	88(%rsp), %rbp
	movq	80(%rsp), %rbx
.L150:
	cmpq	%rbx, %rbp
	je	.L159
	movq	(%rbx), %rsi
	movq	16(%rsp), %rdi
	call	_ZN2rt5Graph3addEPNS_4NodeE@PLT
	addq	$8, %rbx
	jmp	.L150
.L159:
	movq	8(%rsp), %rdi
	call	_ZN2rt4Node3nopERKSt6vectorIPS0_SaIS2_EE@PLT
	movq	16(%rsp), %rdi
	movq	%rax, %rsi
	movq	%rax, %rbx
	call	_ZN2rt5Graph3addEPNS_4NodeE@PLT
.LEHE6:
	movq	8(%rsp), %rdi
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EED1Ev
	jmp	.L146
.L155:
	endbr64
	movq	%rax, %rbx
.L152:
	movq	8(%rsp), %rdi
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EED1Ev
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L158
	movq	%rbx, %rdi
.LEHB7:
	call	_Unwind_Resume@PLT
.LEHE7:
.L146:
	movq	104(%rsp), %rax
	subq	%fs:40, %rax
	je	.L154
.L158:
	call	__stack_chk_fail@PLT
.L154:
	addq	$120, %rsp
	.cfi_def_cfa_offset 56
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4595:
	.section	.gcc_except_table
.LLSDA4595:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE4595-.LLSDACSB4595
.LLSDACSB4595:
	.uleb128 .LEHB5-.LFB4595
	.uleb128 .LEHE5-.LEHB5
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB6-.LFB4595
	.uleb128 .LEHE6-.LEHB6
	.uleb128 .L155-.LFB4595
	.uleb128 0
	.uleb128 .LEHB7-.LFB4595
	.uleb128 .LEHE7-.LEHB7
	.uleb128 0
	.uleb128 0
.LLSDACSE4595:
	.text
	.size	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d8opti_addERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, .-_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d8opti_addERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.globl	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d14opti_tanh_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.hidden	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d14opti_tanh_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.type	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d14opti_tanh_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, @function
_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d14opti_tanh_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE:
.LFB4591:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA4591
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rsi, %rbx
	subq	$104, %rsp
	.cfi_def_cfa_offset 160
	movq	120(%rsi), %r10
	movq	%rdi, 8(%rsp)
	leaq	40(%rsp), %rsi
	movq	%rdx, 16(%rsp)
	movq	%r10, %rdi
	leaq	48(%rsp), %rdx
	movq	%fs:40, %rax
	movq	%rax, 88(%rsp)
	xorl	%eax, %eax
	call	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d14elemwhise_sizeEmRmS1_
	movq	40(%rsp), %rax
	cmpq	$1, %rax
	ja	.L161
	movq	88(%rbx), %rdx
	movq	72(%rbx), %rsi
	movq	%r10, %rcx
	movq	64(%rbx), %rdi
	movq	16(%rsp), %r8
.LEHB8:
	call	_ZN2rt4Node12op_tanh_gradEPKfS2_PfmRKSt6vectorIPS0_SaIS5_EE@PLT
	movq	8(%rsp), %rdi
	movq	%rax, %rsi
	movq	%rax, %rbx
	call	_ZN2rt5Graph3addEPNS_4NodeE@PLT
.LEHE8:
	jmp	.L160
.L161:
	xorl	%edx, %edx
	leaq	-1(%rax), %r15
	xorl	%r13d, %r13d
	xorl	%r14d, %r14d
	leaq	0(,%rax,4), %rbp
	leaq	64(%rsp), %rax
	movq	%rdx, 64(%rsp)
	movq	%rdx, 72(%rsp)
	movq	%rdx, 80(%rsp)
	movq	%rax, (%rsp)
.L163:
	movq	48(%rsp), %r12
	movq	88(%rbx), %rdx
	movq	72(%rbx), %rsi
	movq	64(%rbx), %rdi
	movq	16(%rsp), %r8
	addq	%r13, %rdx
	movq	%r12, %rcx
	addq	%r13, %rsi
	addq	%r13, %rdi
.LEHB9:
	call	_ZN2rt4Node12op_tanh_gradEPKfS2_PfmRKSt6vectorIPS0_SaIS5_EE@PLT
	movq	%rax, 56(%rsp)
	movq	(%rsp), %rdi
	leaq	56(%rsp), %rax
	movq	%rax, %rsi
	movq	%rax, 24(%rsp)
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_.isra.0
	incq	%r14
	addq	%rbp, %r13
	cmpq	%r15, %r14
	jb	.L163
	imulq	%r15, %r12
	movq	120(%rbx), %rcx
	movq	88(%rbx), %rdx
	movq	72(%rbx), %rsi
	movq	16(%rsp), %r8
	leaq	0(,%r12,4), %rdi
	subq	%r12, %rcx
	addq	%rdi, %rdx
	addq	%rdi, %rsi
	addq	64(%rbx), %rdi
	call	_ZN2rt4Node12op_tanh_gradEPKfS2_PfmRKSt6vectorIPS0_SaIS5_EE@PLT
	movq	24(%rsp), %rsi
	movq	(%rsp), %rdi
	movq	%rax, 56(%rsp)
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_.isra.0
	movq	72(%rsp), %rbp
	movq	64(%rsp), %rbx
.L164:
	cmpq	%rbp, %rbx
	je	.L173
	movq	(%rbx), %rsi
	movq	8(%rsp), %rdi
	call	_ZN2rt5Graph3addEPNS_4NodeE@PLT
	addq	$8, %rbx
	jmp	.L164
.L173:
	movq	(%rsp), %rdi
	call	_ZN2rt4Node3nopERKSt6vectorIPS0_SaIS2_EE@PLT
	movq	8(%rsp), %rdi
	movq	%rax, %rsi
	movq	%rax, %rbx
	call	_ZN2rt5Graph3addEPNS_4NodeE@PLT
.LEHE9:
	movq	(%rsp), %rdi
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EED1Ev
	jmp	.L160
.L169:
	endbr64
	movq	%rax, %rbx
.L166:
	movq	(%rsp), %rdi
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EED1Ev
	movq	88(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L172
	movq	%rbx, %rdi
.LEHB10:
	call	_Unwind_Resume@PLT
.LEHE10:
.L160:
	movq	88(%rsp), %rax
	subq	%fs:40, %rax
	je	.L168
.L172:
	call	__stack_chk_fail@PLT
.L168:
	addq	$104, %rsp
	.cfi_def_cfa_offset 56
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4591:
	.section	.gcc_except_table
.LLSDA4591:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE4591-.LLSDACSB4591
.LLSDACSB4591:
	.uleb128 .LEHB8-.LFB4591
	.uleb128 .LEHE8-.LEHB8
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB9-.LFB4591
	.uleb128 .LEHE9-.LEHB9
	.uleb128 .L169-.LFB4591
	.uleb128 0
	.uleb128 .LEHB10-.LFB4591
	.uleb128 .LEHE10-.LEHB10
	.uleb128 0
	.uleb128 0
.LLSDACSE4591:
	.text
	.size	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d14opti_tanh_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, .-_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d14opti_tanh_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.globl	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d20opti_leaky_relu_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.hidden	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d20opti_leaky_relu_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.type	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d20opti_leaky_relu_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, @function
_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d20opti_leaky_relu_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE:
.LFB4589:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA4589
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rsi, %rbx
	subq	$104, %rsp
	.cfi_def_cfa_offset 160
	movq	120(%rsi), %r10
	movq	%rdi, 8(%rsp)
	leaq	40(%rsp), %rsi
	movq	%rdx, 16(%rsp)
	movq	%r10, %rdi
	leaq	48(%rsp), %rdx
	movq	%fs:40, %rax
	movq	%rax, 88(%rsp)
	xorl	%eax, %eax
	call	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d14elemwhise_sizeEmRmS1_
	movq	40(%rsp), %rax
	cmpq	$1, %rax
	ja	.L175
	movss	104(%rbx), %xmm0
	movq	88(%rbx), %rdx
	movq	%r10, %rcx
	movq	72(%rbx), %rsi
	movq	64(%rbx), %rdi
	movq	16(%rsp), %r8
.LEHB11:
	call	_ZN2rt4Node18op_leaky_relu_gradEPKfS2_PffmRKSt6vectorIPS0_SaIS5_EE@PLT
	movq	8(%rsp), %rdi
	movq	%rax, %rsi
	movq	%rax, %rbx
	call	_ZN2rt5Graph3addEPNS_4NodeE@PLT
.LEHE11:
	jmp	.L174
.L175:
	xorl	%edx, %edx
	leaq	-1(%rax), %r15
	xorl	%r13d, %r13d
	xorl	%r14d, %r14d
	leaq	0(,%rax,4), %rbp
	leaq	64(%rsp), %rax
	movq	%rdx, 64(%rsp)
	movq	%rdx, 72(%rsp)
	movq	%rdx, 80(%rsp)
	movq	%rax, (%rsp)
.L177:
	movq	48(%rsp), %r12
	movq	88(%rbx), %rdx
	movq	72(%rbx), %rsi
	movq	64(%rbx), %rdi
	movss	104(%rbx), %xmm0
	movq	16(%rsp), %r8
	addq	%r13, %rdx
	movq	%r12, %rcx
	addq	%r13, %rsi
	addq	%r13, %rdi
.LEHB12:
	call	_ZN2rt4Node18op_leaky_relu_gradEPKfS2_PffmRKSt6vectorIPS0_SaIS5_EE@PLT
	movq	%rax, 56(%rsp)
	movq	(%rsp), %rdi
	leaq	56(%rsp), %rax
	movq	%rax, %rsi
	movq	%rax, 24(%rsp)
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_.isra.0
	incq	%r14
	addq	%rbp, %r13
	cmpq	%r15, %r14
	jb	.L177
	imulq	%r15, %r12
	movq	120(%rbx), %rcx
	movq	88(%rbx), %rdx
	movq	72(%rbx), %rsi
	movss	104(%rbx), %xmm0
	movq	16(%rsp), %r8
	leaq	0(,%r12,4), %rdi
	subq	%r12, %rcx
	addq	%rdi, %rdx
	addq	%rdi, %rsi
	addq	64(%rbx), %rdi
	call	_ZN2rt4Node18op_leaky_relu_gradEPKfS2_PffmRKSt6vectorIPS0_SaIS5_EE@PLT
	movq	24(%rsp), %rsi
	movq	(%rsp), %rdi
	movq	%rax, 56(%rsp)
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_.isra.0
	movq	72(%rsp), %rbp
	movq	64(%rsp), %rbx
.L178:
	cmpq	%rbp, %rbx
	je	.L187
	movq	(%rbx), %rsi
	movq	8(%rsp), %rdi
	call	_ZN2rt5Graph3addEPNS_4NodeE@PLT
	addq	$8, %rbx
	jmp	.L178
.L187:
	movq	(%rsp), %rdi
	call	_ZN2rt4Node3nopERKSt6vectorIPS0_SaIS2_EE@PLT
	movq	8(%rsp), %rdi
	movq	%rax, %rsi
	movq	%rax, %rbx
	call	_ZN2rt5Graph3addEPNS_4NodeE@PLT
.LEHE12:
	movq	(%rsp), %rdi
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EED1Ev
	jmp	.L174
.L183:
	endbr64
	movq	%rax, %rbx
.L180:
	movq	(%rsp), %rdi
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EED1Ev
	movq	88(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L186
	movq	%rbx, %rdi
.LEHB13:
	call	_Unwind_Resume@PLT
.LEHE13:
.L174:
	movq	88(%rsp), %rax
	subq	%fs:40, %rax
	je	.L182
.L186:
	call	__stack_chk_fail@PLT
.L182:
	addq	$104, %rsp
	.cfi_def_cfa_offset 56
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4589:
	.section	.gcc_except_table
.LLSDA4589:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE4589-.LLSDACSB4589
.LLSDACSB4589:
	.uleb128 .LEHB11-.LFB4589
	.uleb128 .LEHE11-.LEHB11
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB12-.LFB4589
	.uleb128 .LEHE12-.LEHB12
	.uleb128 .L183-.LFB4589
	.uleb128 0
	.uleb128 .LEHB13-.LFB4589
	.uleb128 .LEHE13-.LEHB13
	.uleb128 0
	.uleb128 0
.LLSDACSE4589:
	.text
	.size	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d20opti_leaky_relu_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, .-_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d20opti_leaky_relu_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.globl	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d16opti_adam_updateERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.hidden	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d16opti_adam_updateERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.type	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d16opti_adam_updateERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, @function
_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d16opti_adam_updateERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE:
.LFB4588:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA4588
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rsi, %rbx
	subq	$88, %rsp
	.cfi_def_cfa_offset 144
	movq	120(%rsi), %r8
	movq	%rdi, 8(%rsp)
	leaq	32(%rsp), %rdx
	leaq	24(%rsp), %rsi
	movq	%r8, %rdi
	movq	%fs:40, %rax
	movq	%rax, 72(%rsp)
	xorl	%eax, %eax
	movq	%r8, (%rsp)
	call	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d14elemwhise_sizeEmRmS1_
	movq	24(%rsp), %r13
	movq	(%rsp), %r8
	cmpq	$1, %r13
	ja	.L189
	movss	104(%rbx), %xmm0
	movq	72(%rbx), %rcx
	movq	%r12, %r9
	movq	64(%rbx), %rdx
	movq	96(%rbx), %rsi
	movq	88(%rbx), %rdi
	movss	116(%rbx), %xmm3
	movss	112(%rbx), %xmm2
	movss	108(%rbx), %xmm1
.LEHB14:
	call	_ZN2rt4Node14op_adam_updateEPfS1_PKfS3_ffffmRKSt6vectorIPS0_SaIS5_EE@PLT
	movq	8(%rsp), %rdi
	movq	%rax, %rsi
	movq	%rax, %rbx
	call	_ZN2rt5Graph3addEPNS_4NodeE@PLT
.LEHE14:
	jmp	.L188
.L189:
	xorl	%eax, %eax
	decq	%r13
	xorl	%r14d, %r14d
	movq	%rax, 48(%rsp)
	movq	%rax, 56(%rsp)
	movq	%rax, 64(%rsp)
	leaq	48(%rsp), %rax
	movq	%rax, (%rsp)
.L191:
	movq	32(%rsp), %rbp
	movq	72(%rbx), %rcx
	movq	%r12, %r9
	movq	64(%rbx), %rdx
	movq	96(%rbx), %rsi
	movq	%rbp, %rdi
	movss	104(%rbx), %xmm0
	movss	116(%rbx), %xmm3
	movq	%rbp, %r8
	imulq	%r14, %rdi
	movss	112(%rbx), %xmm2
	movss	108(%rbx), %xmm1
	salq	$2, %rdi
	addq	%rdi, %rcx
	addq	%rdi, %rdx
	addq	%rdi, %rsi
	addq	88(%rbx), %rdi
.LEHB15:
	call	_ZN2rt4Node14op_adam_updateEPfS1_PKfS3_ffffmRKSt6vectorIPS0_SaIS5_EE@PLT
	leaq	40(%rsp), %r15
	movq	(%rsp), %rdi
	movq	%rax, 40(%rsp)
	movq	%r15, %rsi
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_.isra.0
	incq	%r14
	cmpq	%r13, %r14
	jb	.L191
	imulq	%r13, %rbp
	movq	72(%rbx), %rcx
	movq	64(%rbx), %rdx
	movq	%r12, %r9
	movq	96(%rbx), %rsi
	movq	120(%rbx), %r8
	movss	104(%rbx), %xmm0
	movss	116(%rbx), %xmm3
	leaq	0(,%rbp,4), %rax
	movss	112(%rbx), %xmm2
	movss	108(%rbx), %xmm1
	subq	%rbp, %r8
	addq	%rax, %rcx
	addq	%rax, %rdx
	addq	%rax, %rsi
	addq	88(%rbx), %rax
	movq	%rax, %rdi
	call	_ZN2rt4Node14op_adam_updateEPfS1_PKfS3_ffffmRKSt6vectorIPS0_SaIS5_EE@PLT
	movq	(%rsp), %rdi
	movq	%r15, %rsi
	movq	%rax, 40(%rsp)
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_.isra.0
	movq	56(%rsp), %rbp
	movq	48(%rsp), %rbx
.L192:
	cmpq	%rbp, %rbx
	je	.L201
	movq	(%rbx), %rsi
	movq	8(%rsp), %rdi
	call	_ZN2rt5Graph3addEPNS_4NodeE@PLT
	addq	$8, %rbx
	jmp	.L192
.L201:
	movq	(%rsp), %rdi
	call	_ZN2rt4Node3nopERKSt6vectorIPS0_SaIS2_EE@PLT
	movq	8(%rsp), %rdi
	movq	%rax, %rsi
	movq	%rax, %rbx
	call	_ZN2rt5Graph3addEPNS_4NodeE@PLT
.LEHE15:
	movq	(%rsp), %rdi
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EED1Ev
	jmp	.L188
.L197:
	endbr64
	movq	%rax, %rbx
.L194:
	movq	(%rsp), %rdi
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EED1Ev
	movq	72(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L200
	movq	%rbx, %rdi
.LEHB16:
	call	_Unwind_Resume@PLT
.LEHE16:
.L188:
	movq	72(%rsp), %rax
	subq	%fs:40, %rax
	je	.L196
.L200:
	call	__stack_chk_fail@PLT
.L196:
	addq	$88, %rsp
	.cfi_def_cfa_offset 56
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4588:
	.section	.gcc_except_table
.LLSDA4588:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE4588-.LLSDACSB4588
.LLSDACSB4588:
	.uleb128 .LEHB14-.LFB4588
	.uleb128 .LEHE14-.LEHB14
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB15-.LFB4588
	.uleb128 .LEHE15-.LEHB15
	.uleb128 .L197-.LFB4588
	.uleb128 0
	.uleb128 .LEHB16-.LFB4588
	.uleb128 .LEHE16-.LEHB16
	.uleb128 0
	.uleb128 0
.LLSDACSE4588:
	.text
	.size	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d16opti_adam_updateERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, .-_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d16opti_adam_updateERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.globl	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d19opti_moment_update2ERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.hidden	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d19opti_moment_update2ERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.type	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d19opti_moment_update2ERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, @function
_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d19opti_moment_update2ERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE:
.LFB4587:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA4587
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rsi, %rbx
	subq	$88, %rsp
	.cfi_def_cfa_offset 144
	movq	120(%rsi), %r10
	movq	%rdi, 8(%rsp)
	leaq	32(%rsp), %rdx
	leaq	24(%rsp), %rsi
	movq	%r10, %rdi
	movq	%fs:40, %rax
	movq	%rax, 72(%rsp)
	xorl	%eax, %eax
	call	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d14elemwhise_sizeEmRmS1_
	movq	24(%rsp), %r13
	cmpq	$1, %r13
	ja	.L203
	movss	104(%rbx), %xmm0
	movq	64(%rbx), %rsi
	movq	%r12, %rcx
	movq	%r10, %rdx
	movq	88(%rbx), %rdi
	movss	108(%rbx), %xmm1
.LEHB17:
	call	_ZN2rt4Node17op_moment_update2EPfPKfffmRKSt6vectorIPS0_SaIS5_EE@PLT
	movq	8(%rsp), %rdi
	movq	%rax, %rsi
	movq	%rax, %rbx
	call	_ZN2rt5Graph3addEPNS_4NodeE@PLT
.LEHE17:
	jmp	.L202
.L203:
	xorl	%eax, %eax
	decq	%r13
	xorl	%r14d, %r14d
	movq	%rax, 48(%rsp)
	movq	%rax, 56(%rsp)
	movq	%rax, 64(%rsp)
	leaq	48(%rsp), %rax
	movq	%rax, (%rsp)
.L205:
	movq	32(%rsp), %rbp
	movq	64(%rbx), %rsi
	movq	%r12, %rcx
	movss	104(%rbx), %xmm0
	movss	108(%rbx), %xmm1
	movq	%rbp, %rdi
	movq	%rbp, %rdx
	imulq	%r14, %rdi
	salq	$2, %rdi
	addq	%rdi, %rsi
	addq	88(%rbx), %rdi
.LEHB18:
	call	_ZN2rt4Node17op_moment_update2EPfPKfffmRKSt6vectorIPS0_SaIS5_EE@PLT
	leaq	40(%rsp), %r15
	movq	(%rsp), %rdi
	movq	%rax, 40(%rsp)
	movq	%r15, %rsi
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_.isra.0
	incq	%r14
	cmpq	%r13, %r14
	jb	.L205
	imulq	%r13, %rbp
	movq	120(%rbx), %rdx
	movq	64(%rbx), %rsi
	movq	%r12, %rcx
	movss	104(%rbx), %xmm0
	movss	108(%rbx), %xmm1
	leaq	0(,%rbp,4), %rdi
	subq	%rbp, %rdx
	addq	%rdi, %rsi
	addq	88(%rbx), %rdi
	call	_ZN2rt4Node17op_moment_update2EPfPKfffmRKSt6vectorIPS0_SaIS5_EE@PLT
	movq	(%rsp), %rdi
	movq	%r15, %rsi
	movq	%rax, 40(%rsp)
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_.isra.0
	movq	56(%rsp), %rbp
	movq	48(%rsp), %rbx
.L206:
	cmpq	%rbx, %rbp
	je	.L215
	movq	(%rbx), %rsi
	movq	8(%rsp), %rdi
	call	_ZN2rt5Graph3addEPNS_4NodeE@PLT
	addq	$8, %rbx
	jmp	.L206
.L215:
	movq	(%rsp), %rdi
	call	_ZN2rt4Node3nopERKSt6vectorIPS0_SaIS2_EE@PLT
	movq	8(%rsp), %rdi
	movq	%rax, %rsi
	movq	%rax, %rbx
	call	_ZN2rt5Graph3addEPNS_4NodeE@PLT
.LEHE18:
	movq	(%rsp), %rdi
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EED1Ev
	jmp	.L202
.L211:
	endbr64
	movq	%rax, %rbx
.L208:
	movq	(%rsp), %rdi
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EED1Ev
	movq	72(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L214
	movq	%rbx, %rdi
.LEHB19:
	call	_Unwind_Resume@PLT
.LEHE19:
.L202:
	movq	72(%rsp), %rax
	subq	%fs:40, %rax
	je	.L210
.L214:
	call	__stack_chk_fail@PLT
.L210:
	addq	$88, %rsp
	.cfi_def_cfa_offset 56
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4587:
	.section	.gcc_except_table
.LLSDA4587:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE4587-.LLSDACSB4587
.LLSDACSB4587:
	.uleb128 .LEHB17-.LFB4587
	.uleb128 .LEHE17-.LEHB17
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB18-.LFB4587
	.uleb128 .LEHE18-.LEHB18
	.uleb128 .L211-.LFB4587
	.uleb128 0
	.uleb128 .LEHB19-.LFB4587
	.uleb128 .LEHE19-.LEHB19
	.uleb128 0
	.uleb128 0
.LLSDACSE4587:
	.text
	.size	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d19opti_moment_update2ERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, .-_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d19opti_moment_update2ERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.globl	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d18opti_moment_updateERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.hidden	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d18opti_moment_updateERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.type	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d18opti_moment_updateERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, @function
_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d18opti_moment_updateERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE:
.LFB4586:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA4586
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rsi, %rbx
	subq	$88, %rsp
	.cfi_def_cfa_offset 144
	movq	120(%rsi), %r10
	movq	%rdi, 8(%rsp)
	leaq	32(%rsp), %rdx
	leaq	24(%rsp), %rsi
	movq	%r10, %rdi
	movq	%fs:40, %rax
	movq	%rax, 72(%rsp)
	xorl	%eax, %eax
	call	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d14elemwhise_sizeEmRmS1_
	movq	24(%rsp), %r13
	cmpq	$1, %r13
	ja	.L217
	movss	104(%rbx), %xmm0
	movq	64(%rbx), %rsi
	movq	%r12, %rcx
	movq	%r10, %rdx
	movq	88(%rbx), %rdi
	movss	108(%rbx), %xmm1
.LEHB20:
	call	_ZN2rt4Node16op_moment_updateEPfPKfffmRKSt6vectorIPS0_SaIS5_EE@PLT
	movq	8(%rsp), %rdi
	movq	%rax, %rsi
	movq	%rax, %rbx
	call	_ZN2rt5Graph3addEPNS_4NodeE@PLT
.LEHE20:
	jmp	.L216
.L217:
	xorl	%eax, %eax
	decq	%r13
	xorl	%r14d, %r14d
	movq	%rax, 48(%rsp)
	movq	%rax, 56(%rsp)
	movq	%rax, 64(%rsp)
	leaq	48(%rsp), %rax
	movq	%rax, (%rsp)
.L219:
	movq	32(%rsp), %rbp
	movq	64(%rbx), %rsi
	movq	%r12, %rcx
	movss	104(%rbx), %xmm0
	movss	108(%rbx), %xmm1
	movq	%rbp, %rdi
	movq	%rbp, %rdx
	imulq	%r14, %rdi
	salq	$2, %rdi
	addq	%rdi, %rsi
	addq	88(%rbx), %rdi
.LEHB21:
	call	_ZN2rt4Node16op_moment_updateEPfPKfffmRKSt6vectorIPS0_SaIS5_EE@PLT
	leaq	40(%rsp), %r15
	movq	(%rsp), %rdi
	movq	%rax, 40(%rsp)
	movq	%r15, %rsi
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_.isra.0
	incq	%r14
	cmpq	%r13, %r14
	jb	.L219
	imulq	%r13, %rbp
	movq	120(%rbx), %rdx
	movq	64(%rbx), %rsi
	movq	%r12, %rcx
	movss	104(%rbx), %xmm0
	movss	108(%rbx), %xmm1
	leaq	0(,%rbp,4), %rdi
	subq	%rbp, %rdx
	addq	%rdi, %rsi
	addq	88(%rbx), %rdi
	call	_ZN2rt4Node16op_moment_updateEPfPKfffmRKSt6vectorIPS0_SaIS5_EE@PLT
	movq	(%rsp), %rdi
	movq	%r15, %rsi
	movq	%rax, 40(%rsp)
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_.isra.0
	movq	56(%rsp), %rbp
	movq	48(%rsp), %rbx
.L220:
	cmpq	%rbx, %rbp
	je	.L229
	movq	(%rbx), %rsi
	movq	8(%rsp), %rdi
	call	_ZN2rt5Graph3addEPNS_4NodeE@PLT
	addq	$8, %rbx
	jmp	.L220
.L229:
	movq	(%rsp), %rdi
	call	_ZN2rt4Node3nopERKSt6vectorIPS0_SaIS2_EE@PLT
	movq	8(%rsp), %rdi
	movq	%rax, %rsi
	movq	%rax, %rbx
	call	_ZN2rt5Graph3addEPNS_4NodeE@PLT
.LEHE21:
	movq	(%rsp), %rdi
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EED1Ev
	jmp	.L216
.L225:
	endbr64
	movq	%rax, %rbx
.L222:
	movq	(%rsp), %rdi
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EED1Ev
	movq	72(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L228
	movq	%rbx, %rdi
.LEHB22:
	call	_Unwind_Resume@PLT
.LEHE22:
.L216:
	movq	72(%rsp), %rax
	subq	%fs:40, %rax
	je	.L224
.L228:
	call	__stack_chk_fail@PLT
.L224:
	addq	$88, %rsp
	.cfi_def_cfa_offset 56
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4586:
	.section	.gcc_except_table
.LLSDA4586:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE4586-.LLSDACSB4586
.LLSDACSB4586:
	.uleb128 .LEHB20-.LFB4586
	.uleb128 .LEHE20-.LEHB20
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB21-.LFB4586
	.uleb128 .LEHE21-.LEHB21
	.uleb128 .L225-.LFB4586
	.uleb128 0
	.uleb128 .LEHB22-.LFB4586
	.uleb128 .LEHE22-.LEHB22
	.uleb128 0
	.uleb128 0
.LLSDACSE4586:
	.text
	.size	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d18opti_moment_updateERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, .-_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d18opti_moment_updateERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.globl	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d31opti_sigmoid_cross_entropy_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.hidden	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d31opti_sigmoid_cross_entropy_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.type	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d31opti_sigmoid_cross_entropy_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, @function
_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d31opti_sigmoid_cross_entropy_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE:
.LFB4582:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA4582
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rsi, %rbx
	subq	$88, %rsp
	.cfi_def_cfa_offset 144
	movq	120(%rsi), %r10
	movq	%rdi, 8(%rsp)
	leaq	32(%rsp), %rdx
	leaq	24(%rsp), %rsi
	movq	%r10, %rdi
	movq	%fs:40, %rax
	movq	%rax, 72(%rsp)
	xorl	%eax, %eax
	call	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d14elemwhise_sizeEmRmS1_
	movq	24(%rsp), %r13
	cmpq	$1, %r13
	ja	.L231
	movq	88(%rbx), %rdx
	movq	72(%rbx), %rsi
	movq	%r12, %r8
	movq	%r10, %rcx
	movq	64(%rbx), %rdi
.LEHB23:
	call	_ZN2rt4Node29op_sigmoid_cross_entropy_gradEPKfS2_PfmRKSt6vectorIPS0_SaIS5_EE@PLT
	movq	8(%rsp), %rdi
	movq	%rax, %rsi
	movq	%rax, %rbx
	call	_ZN2rt5Graph3addEPNS_4NodeE@PLT
.LEHE23:
	jmp	.L230
.L231:
	xorl	%eax, %eax
	decq	%r13
	xorl	%r14d, %r14d
	movq	%rax, 48(%rsp)
	movq	%rax, 56(%rsp)
	movq	%rax, 64(%rsp)
	leaq	48(%rsp), %rax
	movq	%rax, (%rsp)
.L233:
	movq	32(%rsp), %rbp
	movq	88(%rbx), %rdx
	movq	%r12, %r8
	movq	72(%rbx), %rsi
	movq	%rbp, %rdi
	movq	%rbp, %rcx
	imulq	%r14, %rdi
	salq	$2, %rdi
	addq	%rdi, %rdx
	addq	%rdi, %rsi
	addq	64(%rbx), %rdi
.LEHB24:
	call	_ZN2rt4Node29op_sigmoid_cross_entropy_gradEPKfS2_PfmRKSt6vectorIPS0_SaIS5_EE@PLT
	leaq	40(%rsp), %r15
	movq	(%rsp), %rdi
	movq	%rax, 40(%rsp)
	movq	%r15, %rsi
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_.isra.0
	incq	%r14
	cmpq	%r13, %r14
	jb	.L233
	imulq	%r13, %rbp
	movq	120(%rbx), %rcx
	movq	88(%rbx), %rdx
	movq	%r12, %r8
	movq	72(%rbx), %rsi
	leaq	0(,%rbp,4), %rdi
	subq	%rbp, %rcx
	addq	%rdi, %rdx
	addq	%rdi, %rsi
	addq	64(%rbx), %rdi
	call	_ZN2rt4Node29op_sigmoid_cross_entropy_gradEPKfS2_PfmRKSt6vectorIPS0_SaIS5_EE@PLT
	movq	(%rsp), %rdi
	movq	%r15, %rsi
	movq	%rax, 40(%rsp)
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_.isra.0
	movq	56(%rsp), %rbp
	movq	48(%rsp), %rbx
.L234:
	cmpq	%rbp, %rbx
	je	.L243
	movq	(%rbx), %rsi
	movq	8(%rsp), %rdi
	call	_ZN2rt5Graph3addEPNS_4NodeE@PLT
	addq	$8, %rbx
	jmp	.L234
.L243:
	movq	(%rsp), %rdi
	call	_ZN2rt4Node3nopERKSt6vectorIPS0_SaIS2_EE@PLT
	movq	8(%rsp), %rdi
	movq	%rax, %rsi
	movq	%rax, %rbx
	call	_ZN2rt5Graph3addEPNS_4NodeE@PLT
.LEHE24:
	movq	(%rsp), %rdi
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EED1Ev
	jmp	.L230
.L239:
	endbr64
	movq	%rax, %rbx
.L236:
	movq	(%rsp), %rdi
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EED1Ev
	movq	72(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L242
	movq	%rbx, %rdi
.LEHB25:
	call	_Unwind_Resume@PLT
.LEHE25:
.L230:
	movq	72(%rsp), %rax
	subq	%fs:40, %rax
	je	.L238
.L242:
	call	__stack_chk_fail@PLT
.L238:
	addq	$88, %rsp
	.cfi_def_cfa_offset 56
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4582:
	.section	.gcc_except_table
.LLSDA4582:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE4582-.LLSDACSB4582
.LLSDACSB4582:
	.uleb128 .LEHB23-.LFB4582
	.uleb128 .LEHE23-.LEHB23
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB24-.LFB4582
	.uleb128 .LEHE24-.LEHB24
	.uleb128 .L239-.LFB4582
	.uleb128 0
	.uleb128 .LEHB25-.LFB4582
	.uleb128 .LEHE25-.LEHB25
	.uleb128 0
	.uleb128 0
.LLSDACSE4582:
	.text
	.size	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d31opti_sigmoid_cross_entropy_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, .-_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d31opti_sigmoid_cross_entropy_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.globl	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d11opti_updateERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.hidden	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d11opti_updateERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.type	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d11opti_updateERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, @function
_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d11opti_updateERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE:
.LFB4580:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA4580
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rsi, %rbx
	subq	$88, %rsp
	.cfi_def_cfa_offset 144
	movq	120(%rsi), %r10
	movq	%rdi, 8(%rsp)
	leaq	32(%rsp), %rdx
	leaq	24(%rsp), %rsi
	movq	%r10, %rdi
	movq	%fs:40, %rax
	movq	%rax, 72(%rsp)
	xorl	%eax, %eax
	call	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d14elemwhise_sizeEmRmS1_
	movq	24(%rsp), %r13
	cmpq	$1, %r13
	ja	.L245
	movq	72(%rbx), %rdx
	movq	64(%rbx), %rsi
	movq	%r12, %r8
	movq	%r10, %rcx
	movq	88(%rbx), %rdi
.LEHB26:
	call	_ZN2rt4Node9op_updateEPfPKfS3_mRKSt6vectorIPS0_SaIS5_EE@PLT
	movq	8(%rsp), %rdi
	movq	%rax, %rsi
	movq	%rax, %rbx
	call	_ZN2rt5Graph3addEPNS_4NodeE@PLT
.LEHE26:
	jmp	.L244
.L245:
	xorl	%eax, %eax
	decq	%r13
	xorl	%r14d, %r14d
	movq	%rax, 48(%rsp)
	movq	%rax, 56(%rsp)
	movq	%rax, 64(%rsp)
	leaq	48(%rsp), %rax
	movq	%rax, (%rsp)
.L247:
	movq	32(%rsp), %rbp
	movq	64(%rbx), %rsi
	movq	%r12, %r8
	movq	72(%rbx), %rdx
	movq	%rbp, %rdi
	movq	%rbp, %rcx
	imulq	%r14, %rdi
	salq	$2, %rdi
	addq	%rdi, %rsi
	addq	88(%rbx), %rdi
.LEHB27:
	call	_ZN2rt4Node9op_updateEPfPKfS3_mRKSt6vectorIPS0_SaIS5_EE@PLT
	leaq	40(%rsp), %r15
	movq	(%rsp), %rdi
	movq	%rax, 40(%rsp)
	movq	%r15, %rsi
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_.isra.0
	incq	%r14
	cmpq	%r13, %r14
	jb	.L247
	imulq	%r13, %rbp
	movq	120(%rbx), %rcx
	movq	64(%rbx), %rsi
	movq	%r12, %r8
	movq	72(%rbx), %rdx
	leaq	0(,%rbp,4), %rdi
	subq	%rbp, %rcx
	addq	%rdi, %rsi
	addq	88(%rbx), %rdi
	call	_ZN2rt4Node9op_updateEPfPKfS3_mRKSt6vectorIPS0_SaIS5_EE@PLT
	movq	(%rsp), %rdi
	movq	%r15, %rsi
	movq	%rax, 40(%rsp)
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_.isra.0
	movq	56(%rsp), %rbp
	movq	48(%rsp), %rbx
.L248:
	cmpq	%rbx, %rbp
	je	.L257
	movq	(%rbx), %rsi
	movq	8(%rsp), %rdi
	call	_ZN2rt5Graph3addEPNS_4NodeE@PLT
	addq	$8, %rbx
	jmp	.L248
.L257:
	movq	(%rsp), %rdi
	call	_ZN2rt4Node3nopERKSt6vectorIPS0_SaIS2_EE@PLT
	movq	8(%rsp), %rdi
	movq	%rax, %rsi
	movq	%rax, %rbx
	call	_ZN2rt5Graph3addEPNS_4NodeE@PLT
.LEHE27:
	movq	(%rsp), %rdi
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EED1Ev
	jmp	.L244
.L253:
	endbr64
	movq	%rax, %rbx
.L250:
	movq	(%rsp), %rdi
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EED1Ev
	movq	72(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L256
	movq	%rbx, %rdi
.LEHB28:
	call	_Unwind_Resume@PLT
.LEHE28:
.L244:
	movq	72(%rsp), %rax
	subq	%fs:40, %rax
	je	.L252
.L256:
	call	__stack_chk_fail@PLT
.L252:
	addq	$88, %rsp
	.cfi_def_cfa_offset 56
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4580:
	.section	.gcc_except_table
.LLSDA4580:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE4580-.LLSDACSB4580
.LLSDACSB4580:
	.uleb128 .LEHB26-.LFB4580
	.uleb128 .LEHE26-.LEHB26
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB27-.LFB4580
	.uleb128 .LEHE27-.LEHB27
	.uleb128 .L253-.LFB4580
	.uleb128 0
	.uleb128 .LEHB28-.LFB4580
	.uleb128 .LEHE28-.LEHB28
	.uleb128 0
	.uleb128 0
.LLSDACSE4580:
	.text
	.size	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d11opti_updateERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, .-_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d11opti_updateERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.globl	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d14opti_relu_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.hidden	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d14opti_relu_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.type	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d14opti_relu_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, @function
_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d14opti_relu_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE:
.LFB4578:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA4578
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rsi, %rbx
	subq	$88, %rsp
	.cfi_def_cfa_offset 144
	movq	120(%rsi), %r10
	movq	%rdi, 8(%rsp)
	leaq	32(%rsp), %rdx
	leaq	24(%rsp), %rsi
	movq	%r10, %rdi
	movq	%fs:40, %rax
	movq	%rax, 72(%rsp)
	xorl	%eax, %eax
	call	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d14elemwhise_sizeEmRmS1_
	movq	24(%rsp), %r13
	cmpq	$1, %r13
	ja	.L259
	movq	88(%rbx), %rdx
	movq	72(%rbx), %rsi
	movq	%r12, %r8
	movq	%r10, %rcx
	movq	64(%rbx), %rdi
.LEHB29:
	call	_ZN2rt4Node12op_relu_gradEPKfS2_PfmRKSt6vectorIPS0_SaIS5_EE@PLT
	movq	8(%rsp), %rdi
	movq	%rax, %rsi
	movq	%rax, %rbx
	call	_ZN2rt5Graph3addEPNS_4NodeE@PLT
.LEHE29:
	jmp	.L258
.L259:
	xorl	%eax, %eax
	decq	%r13
	xorl	%r14d, %r14d
	movq	%rax, 48(%rsp)
	movq	%rax, 56(%rsp)
	movq	%rax, 64(%rsp)
	leaq	48(%rsp), %rax
	movq	%rax, (%rsp)
.L261:
	movq	32(%rsp), %rbp
	movq	88(%rbx), %rdx
	movq	%r12, %r8
	movq	72(%rbx), %rsi
	movq	%rbp, %rdi
	movq	%rbp, %rcx
	imulq	%r14, %rdi
	salq	$2, %rdi
	addq	%rdi, %rdx
	addq	%rdi, %rsi
	addq	64(%rbx), %rdi
.LEHB30:
	call	_ZN2rt4Node12op_relu_gradEPKfS2_PfmRKSt6vectorIPS0_SaIS5_EE@PLT
	leaq	40(%rsp), %r15
	movq	(%rsp), %rdi
	movq	%rax, 40(%rsp)
	movq	%r15, %rsi
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_.isra.0
	incq	%r14
	cmpq	%r13, %r14
	jb	.L261
	imulq	%r13, %rbp
	movq	120(%rbx), %rcx
	movq	88(%rbx), %rdx
	movq	%r12, %r8
	movq	72(%rbx), %rsi
	leaq	0(,%rbp,4), %rdi
	subq	%rbp, %rcx
	addq	%rdi, %rdx
	addq	%rdi, %rsi
	addq	64(%rbx), %rdi
	call	_ZN2rt4Node12op_relu_gradEPKfS2_PfmRKSt6vectorIPS0_SaIS5_EE@PLT
	movq	(%rsp), %rdi
	movq	%r15, %rsi
	movq	%rax, 40(%rsp)
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_.isra.0
	movq	56(%rsp), %rbp
	movq	48(%rsp), %rbx
.L262:
	cmpq	%rbp, %rbx
	je	.L271
	movq	(%rbx), %rsi
	movq	8(%rsp), %rdi
	call	_ZN2rt5Graph3addEPNS_4NodeE@PLT
	addq	$8, %rbx
	jmp	.L262
.L271:
	movq	(%rsp), %rdi
	call	_ZN2rt4Node3nopERKSt6vectorIPS0_SaIS2_EE@PLT
	movq	8(%rsp), %rdi
	movq	%rax, %rsi
	movq	%rax, %rbx
	call	_ZN2rt5Graph3addEPNS_4NodeE@PLT
.LEHE30:
	movq	(%rsp), %rdi
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EED1Ev
	jmp	.L258
.L267:
	endbr64
	movq	%rax, %rbx
.L264:
	movq	(%rsp), %rdi
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EED1Ev
	movq	72(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L270
	movq	%rbx, %rdi
.LEHB31:
	call	_Unwind_Resume@PLT
.LEHE31:
.L258:
	movq	72(%rsp), %rax
	subq	%fs:40, %rax
	je	.L266
.L270:
	call	__stack_chk_fail@PLT
.L266:
	addq	$88, %rsp
	.cfi_def_cfa_offset 56
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4578:
	.section	.gcc_except_table
.LLSDA4578:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE4578-.LLSDACSB4578
.LLSDACSB4578:
	.uleb128 .LEHB29-.LFB4578
	.uleb128 .LEHE29-.LEHB29
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB30-.LFB4578
	.uleb128 .LEHE30-.LEHB30
	.uleb128 .L267-.LFB4578
	.uleb128 0
	.uleb128 .LEHB31-.LFB4578
	.uleb128 .LEHE31-.LEHB31
	.uleb128 0
	.uleb128 0
.LLSDACSE4578:
	.text
	.size	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d14opti_relu_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, .-_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d14opti_relu_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.globl	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d17opti_sigmoid_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.hidden	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d17opti_sigmoid_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.type	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d17opti_sigmoid_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, @function
_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d17opti_sigmoid_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE:
.LFB4571:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA4571
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rsi, %rbx
	subq	$88, %rsp
	.cfi_def_cfa_offset 144
	movq	120(%rsi), %r10
	movq	%rdi, 8(%rsp)
	leaq	32(%rsp), %rdx
	leaq	24(%rsp), %rsi
	movq	%r10, %rdi
	movq	%fs:40, %rax
	movq	%rax, 72(%rsp)
	xorl	%eax, %eax
	call	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d14elemwhise_sizeEmRmS1_
	movq	24(%rsp), %r13
	cmpq	$1, %r13
	ja	.L273
	movq	88(%rbx), %rdx
	movq	72(%rbx), %rsi
	movq	%r12, %r8
	movq	%r10, %rcx
	movq	64(%rbx), %rdi
.LEHB32:
	call	_ZN2rt4Node15op_sigmoid_gradEPKfS2_PfmRKSt6vectorIPS0_SaIS5_EE@PLT
	movq	8(%rsp), %rdi
	movq	%rax, %rsi
	movq	%rax, %rbx
	call	_ZN2rt5Graph3addEPNS_4NodeE@PLT
.LEHE32:
	jmp	.L272
.L273:
	xorl	%eax, %eax
	decq	%r13
	xorl	%r14d, %r14d
	movq	%rax, 48(%rsp)
	movq	%rax, 56(%rsp)
	movq	%rax, 64(%rsp)
	leaq	48(%rsp), %rax
	movq	%rax, (%rsp)
.L275:
	movq	32(%rsp), %rbp
	movq	88(%rbx), %rdx
	movq	%r12, %r8
	movq	72(%rbx), %rsi
	movq	%rbp, %rdi
	movq	%rbp, %rcx
	imulq	%r14, %rdi
	salq	$2, %rdi
	addq	%rdi, %rdx
	addq	%rdi, %rsi
	addq	64(%rbx), %rdi
.LEHB33:
	call	_ZN2rt4Node15op_sigmoid_gradEPKfS2_PfmRKSt6vectorIPS0_SaIS5_EE@PLT
	leaq	40(%rsp), %r15
	movq	(%rsp), %rdi
	movq	%rax, 40(%rsp)
	movq	%r15, %rsi
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_.isra.0
	incq	%r14
	cmpq	%r13, %r14
	jb	.L275
	imulq	%r13, %rbp
	movq	120(%rbx), %rcx
	movq	88(%rbx), %rdx
	movq	%r12, %r8
	movq	72(%rbx), %rsi
	leaq	0(,%rbp,4), %rdi
	subq	%rbp, %rcx
	addq	%rdi, %rdx
	addq	%rdi, %rsi
	addq	64(%rbx), %rdi
	call	_ZN2rt4Node15op_sigmoid_gradEPKfS2_PfmRKSt6vectorIPS0_SaIS5_EE@PLT
	movq	(%rsp), %rdi
	movq	%r15, %rsi
	movq	%rax, 40(%rsp)
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_.isra.0
	movq	56(%rsp), %rbp
	movq	48(%rsp), %rbx
.L276:
	cmpq	%rbp, %rbx
	je	.L285
	movq	(%rbx), %rsi
	movq	8(%rsp), %rdi
	call	_ZN2rt5Graph3addEPNS_4NodeE@PLT
	addq	$8, %rbx
	jmp	.L276
.L285:
	movq	(%rsp), %rdi
	call	_ZN2rt4Node3nopERKSt6vectorIPS0_SaIS2_EE@PLT
	movq	8(%rsp), %rdi
	movq	%rax, %rsi
	movq	%rax, %rbx
	call	_ZN2rt5Graph3addEPNS_4NodeE@PLT
.LEHE33:
	movq	(%rsp), %rdi
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EED1Ev
	jmp	.L272
.L281:
	endbr64
	movq	%rax, %rbx
.L278:
	movq	(%rsp), %rdi
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EED1Ev
	movq	72(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L284
	movq	%rbx, %rdi
.LEHB34:
	call	_Unwind_Resume@PLT
.LEHE34:
.L272:
	movq	72(%rsp), %rax
	subq	%fs:40, %rax
	je	.L280
.L284:
	call	__stack_chk_fail@PLT
.L280:
	addq	$88, %rsp
	.cfi_def_cfa_offset 56
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4571:
	.section	.gcc_except_table
.LLSDA4571:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE4571-.LLSDACSB4571
.LLSDACSB4571:
	.uleb128 .LEHB32-.LFB4571
	.uleb128 .LEHE32-.LEHB32
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB33-.LFB4571
	.uleb128 .LEHE33-.LEHB33
	.uleb128 .L281-.LFB4571
	.uleb128 0
	.uleb128 .LEHB34-.LFB4571
	.uleb128 .LEHE34-.LEHB34
	.uleb128 0
	.uleb128 0
.LLSDACSE4571:
	.text
	.size	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d17opti_sigmoid_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, .-_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d17opti_sigmoid_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.globl	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d13opti_mse_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.hidden	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d13opti_mse_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.type	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d13opti_mse_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, @function
_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d13opti_mse_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE:
.LFB4570:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA4570
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	movq	%rdx, %r12
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rsi, %rbx
	subq	$88, %rsp
	.cfi_def_cfa_offset 144
	movq	120(%rsi), %r10
	movq	%rdi, 8(%rsp)
	leaq	32(%rsp), %rdx
	leaq	24(%rsp), %rsi
	movq	%r10, %rdi
	movq	%fs:40, %rax
	movq	%rax, 72(%rsp)
	xorl	%eax, %eax
	call	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d14elemwhise_sizeEmRmS1_
	movq	24(%rsp), %r13
	cmpq	$1, %r13
	ja	.L287
	movq	88(%rbx), %rdx
	movq	72(%rbx), %rsi
	movq	%r12, %r8
	movq	%r10, %rcx
	movq	64(%rbx), %rdi
.LEHB35:
	call	_ZN2rt4Node11op_mse_gradEPKfS2_PfmRKSt6vectorIPS0_SaIS5_EE@PLT
	movq	8(%rsp), %rdi
	movq	%rax, %rsi
	movq	%rax, %rbx
	call	_ZN2rt5Graph3addEPNS_4NodeE@PLT
.LEHE35:
	jmp	.L286
.L287:
	xorl	%eax, %eax
	decq	%r13
	xorl	%r14d, %r14d
	movq	%rax, 48(%rsp)
	movq	%rax, 56(%rsp)
	movq	%rax, 64(%rsp)
	leaq	48(%rsp), %rax
	movq	%rax, (%rsp)
.L289:
	movq	32(%rsp), %rbp
	movq	88(%rbx), %rdx
	movq	%r12, %r8
	movq	72(%rbx), %rsi
	movq	%rbp, %rdi
	movq	%rbp, %rcx
	imulq	%r14, %rdi
	salq	$2, %rdi
	addq	%rdi, %rdx
	addq	%rdi, %rsi
	addq	64(%rbx), %rdi
.LEHB36:
	call	_ZN2rt4Node11op_mse_gradEPKfS2_PfmRKSt6vectorIPS0_SaIS5_EE@PLT
	leaq	40(%rsp), %r15
	movq	(%rsp), %rdi
	movq	%rax, 40(%rsp)
	movq	%r15, %rsi
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_.isra.0
	incq	%r14
	cmpq	%r13, %r14
	jb	.L289
	imulq	%r13, %rbp
	movq	120(%rbx), %rcx
	movq	88(%rbx), %rdx
	movq	%r12, %r8
	movq	72(%rbx), %rsi
	leaq	0(,%rbp,4), %rdi
	subq	%rbp, %rcx
	addq	%rdi, %rdx
	addq	%rdi, %rsi
	addq	64(%rbx), %rdi
	call	_ZN2rt4Node11op_mse_gradEPKfS2_PfmRKSt6vectorIPS0_SaIS5_EE@PLT
	movq	(%rsp), %rdi
	movq	%r15, %rsi
	movq	%rax, 40(%rsp)
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_.isra.0
	movq	56(%rsp), %rbp
	movq	48(%rsp), %rbx
.L290:
	cmpq	%rbp, %rbx
	je	.L299
	movq	(%rbx), %rsi
	movq	8(%rsp), %rdi
	call	_ZN2rt5Graph3addEPNS_4NodeE@PLT
	addq	$8, %rbx
	jmp	.L290
.L299:
	movq	(%rsp), %rdi
	call	_ZN2rt4Node3nopERKSt6vectorIPS0_SaIS2_EE@PLT
	movq	8(%rsp), %rdi
	movq	%rax, %rsi
	movq	%rax, %rbx
	call	_ZN2rt5Graph3addEPNS_4NodeE@PLT
.LEHE36:
	movq	(%rsp), %rdi
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EED1Ev
	jmp	.L286
.L295:
	endbr64
	movq	%rax, %rbx
.L292:
	movq	(%rsp), %rdi
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EED1Ev
	movq	72(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L298
	movq	%rbx, %rdi
.LEHB37:
	call	_Unwind_Resume@PLT
.LEHE37:
.L286:
	movq	72(%rsp), %rax
	subq	%fs:40, %rax
	je	.L294
.L298:
	call	__stack_chk_fail@PLT
.L294:
	addq	$88, %rsp
	.cfi_def_cfa_offset 56
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4570:
	.section	.gcc_except_table
.LLSDA4570:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE4570-.LLSDACSB4570
.LLSDACSB4570:
	.uleb128 .LEHB35-.LFB4570
	.uleb128 .LEHE35-.LEHB35
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB36-.LFB4570
	.uleb128 .LEHE36-.LEHB36
	.uleb128 .L295-.LFB4570
	.uleb128 0
	.uleb128 .LEHB37-.LFB4570
	.uleb128 .LEHE37-.LEHB37
	.uleb128 0
	.uleb128 0
.LLSDACSE4570:
	.text
	.size	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d13opti_mse_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, .-_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d13opti_mse_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.globl	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d9opti_tanhERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.hidden	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d9opti_tanhERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.type	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d9opti_tanhERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, @function
_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d9opti_tanhERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE:
.LFB4569:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA4569
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$104, %rsp
	.cfi_def_cfa_offset 160
	movq	%rdi, 8(%rsp)
	movq	120(%rsi), %rdi
	leaq	40(%rsp), %rsi
	movq	%rdx, 16(%rsp)
	leaq	48(%rsp), %rdx
	movq	%fs:40, %rax
	movq	%rax, 88(%rsp)
	xorl	%eax, %eax
	call	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d14elemwhise_sizeEmRmS1_
	movq	40(%rsp), %r14
	movq	88(%rbp), %r13
	movq	64(%rbp), %r12
	cmpq	$1, %r14
	ja	.L301
	movq	16(%rsp), %rcx
	movq	%rdi, %rdx
	movq	%r13, %rsi
	movq	%r12, %rdi
.LEHB38:
	call	_ZN2rt4Node7op_tanhEPKfPfmRKSt6vectorIPS0_SaIS5_EE@PLT
	movq	8(%rsp), %rdi
	movq	%rax, %rsi
	movq	%rax, %rbx
	call	_ZN2rt5Graph3addEPNS_4NodeE@PLT
.LEHE38:
	jmp	.L300
.L301:
	xorl	%eax, %eax
	decq	%r14
	xorl	%r15d, %r15d
	movq	%rax, 64(%rsp)
	movq	%rax, 72(%rsp)
	movq	%rax, 80(%rsp)
	leaq	64(%rsp), %rax
	movq	%rax, (%rsp)
.L303:
	movq	48(%rsp), %rbx
	movq	16(%rsp), %rcx
	movq	%rbx, %rdi
	movq	%rbx, %rdx
	imulq	%r15, %rdi
	salq	$2, %rdi
	leaq	0(%r13,%rdi), %rsi
	addq	%r12, %rdi
.LEHB39:
	call	_ZN2rt4Node7op_tanhEPKfPfmRKSt6vectorIPS0_SaIS5_EE@PLT
	movq	%rax, 56(%rsp)
	movq	(%rsp), %rdi
	leaq	56(%rsp), %rax
	movq	%rax, %rsi
	movq	%rax, 24(%rsp)
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_.isra.0
	incq	%r15
	cmpq	%r14, %r15
	jb	.L303
	imulq	%r14, %rbx
	movq	120(%rbp), %rdx
	movq	16(%rsp), %rcx
	leaq	0(,%rbx,4), %rax
	subq	%rbx, %rdx
	leaq	0(%r13,%rax), %rsi
	leaq	(%r12,%rax), %rdi
	call	_ZN2rt4Node7op_tanhEPKfPfmRKSt6vectorIPS0_SaIS5_EE@PLT
	movq	24(%rsp), %rsi
	movq	(%rsp), %rdi
	movq	%rax, 56(%rsp)
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_.isra.0
	movq	72(%rsp), %rbp
	movq	64(%rsp), %rbx
.L304:
	cmpq	%rbx, %rbp
	je	.L313
	movq	(%rbx), %rsi
	movq	8(%rsp), %rdi
	call	_ZN2rt5Graph3addEPNS_4NodeE@PLT
	addq	$8, %rbx
	jmp	.L304
.L313:
	movq	(%rsp), %rdi
	call	_ZN2rt4Node3nopERKSt6vectorIPS0_SaIS2_EE@PLT
	movq	8(%rsp), %rdi
	movq	%rax, %rsi
	movq	%rax, %rbx
	call	_ZN2rt5Graph3addEPNS_4NodeE@PLT
.LEHE39:
	movq	(%rsp), %rdi
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EED1Ev
	jmp	.L300
.L309:
	endbr64
	movq	%rax, %rbx
.L306:
	movq	(%rsp), %rdi
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EED1Ev
	movq	88(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L312
	movq	%rbx, %rdi
.LEHB40:
	call	_Unwind_Resume@PLT
.LEHE40:
.L300:
	movq	88(%rsp), %rax
	subq	%fs:40, %rax
	je	.L308
.L312:
	call	__stack_chk_fail@PLT
.L308:
	addq	$104, %rsp
	.cfi_def_cfa_offset 56
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4569:
	.section	.gcc_except_table
.LLSDA4569:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE4569-.LLSDACSB4569
.LLSDACSB4569:
	.uleb128 .LEHB38-.LFB4569
	.uleb128 .LEHE38-.LEHB38
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB39-.LFB4569
	.uleb128 .LEHE39-.LEHB39
	.uleb128 .L309-.LFB4569
	.uleb128 0
	.uleb128 .LEHB40-.LFB4569
	.uleb128 .LEHE40-.LEHB40
	.uleb128 0
	.uleb128 0
.LLSDACSE4569:
	.text
	.size	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d9opti_tanhERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, .-_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d9opti_tanhERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.globl	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d15opti_relu_leakyERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.hidden	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d15opti_relu_leakyERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.type	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d15opti_relu_leakyERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, @function
_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d15opti_relu_leakyERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE:
.LFB4568:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA4568
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rsi, %rbx
	subq	$104, %rsp
	.cfi_def_cfa_offset 160
	movq	%rdi, 8(%rsp)
	movq	120(%rsi), %rdi
	leaq	40(%rsp), %rsi
	movq	%rdx, 16(%rsp)
	leaq	48(%rsp), %rdx
	movq	%fs:40, %rax
	movq	%rax, 88(%rsp)
	xorl	%eax, %eax
	call	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d14elemwhise_sizeEmRmS1_
	movq	40(%rsp), %r14
	movq	88(%rbx), %r13
	movq	64(%rbx), %r12
	cmpq	$1, %r14
	ja	.L315
	movss	216(%rbx), %xmm0
	movq	16(%rsp), %rcx
	movq	%rdi, %rdx
	movq	%r13, %rsi
	movq	%r12, %rdi
.LEHB41:
	call	_ZN2rt4Node13op_relu_leakyEPKfPfmfRKSt6vectorIPS0_SaIS5_EE@PLT
	movq	8(%rsp), %rdi
	movq	%rax, %rsi
	movq	%rax, %rbx
	call	_ZN2rt5Graph3addEPNS_4NodeE@PLT
.LEHE41:
	jmp	.L314
.L315:
	xorl	%eax, %eax
	decq	%r14
	xorl	%r15d, %r15d
	movq	%rax, 64(%rsp)
	movq	%rax, 72(%rsp)
	movq	%rax, 80(%rsp)
	leaq	64(%rsp), %rax
	movq	%rax, (%rsp)
.L317:
	movq	48(%rsp), %rbp
	movss	216(%rbx), %xmm0
	movq	16(%rsp), %rcx
	movq	%rbp, %rdi
	movq	%rbp, %rdx
	imulq	%r15, %rdi
	salq	$2, %rdi
	leaq	0(%r13,%rdi), %rsi
	addq	%r12, %rdi
.LEHB42:
	call	_ZN2rt4Node13op_relu_leakyEPKfPfmfRKSt6vectorIPS0_SaIS5_EE@PLT
	movq	%rax, 56(%rsp)
	movq	(%rsp), %rdi
	leaq	56(%rsp), %rax
	movq	%rax, %rsi
	movq	%rax, 24(%rsp)
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_.isra.0
	incq	%r15
	cmpq	%r14, %r15
	jb	.L317
	imulq	%r14, %rbp
	movq	120(%rbx), %rdx
	movq	16(%rsp), %rcx
	movss	216(%rbx), %xmm0
	leaq	0(,%rbp,4), %rax
	subq	%rbp, %rdx
	leaq	0(%r13,%rax), %rsi
	leaq	(%r12,%rax), %rdi
	call	_ZN2rt4Node13op_relu_leakyEPKfPfmfRKSt6vectorIPS0_SaIS5_EE@PLT
	movq	24(%rsp), %rsi
	movq	(%rsp), %rdi
	movq	%rax, 56(%rsp)
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_.isra.0
	movq	72(%rsp), %rbp
	movq	64(%rsp), %rbx
.L318:
	cmpq	%rbx, %rbp
	je	.L327
	movq	(%rbx), %rsi
	movq	8(%rsp), %rdi
	call	_ZN2rt5Graph3addEPNS_4NodeE@PLT
	addq	$8, %rbx
	jmp	.L318
.L327:
	movq	(%rsp), %rdi
	call	_ZN2rt4Node3nopERKSt6vectorIPS0_SaIS2_EE@PLT
	movq	8(%rsp), %rdi
	movq	%rax, %rsi
	movq	%rax, %rbx
	call	_ZN2rt5Graph3addEPNS_4NodeE@PLT
.LEHE42:
	movq	(%rsp), %rdi
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EED1Ev
	jmp	.L314
.L323:
	endbr64
	movq	%rax, %rbx
.L320:
	movq	(%rsp), %rdi
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EED1Ev
	movq	88(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L326
	movq	%rbx, %rdi
.LEHB43:
	call	_Unwind_Resume@PLT
.LEHE43:
.L314:
	movq	88(%rsp), %rax
	subq	%fs:40, %rax
	je	.L322
.L326:
	call	__stack_chk_fail@PLT
.L322:
	addq	$104, %rsp
	.cfi_def_cfa_offset 56
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4568:
	.section	.gcc_except_table
.LLSDA4568:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE4568-.LLSDACSB4568
.LLSDACSB4568:
	.uleb128 .LEHB41-.LFB4568
	.uleb128 .LEHE41-.LEHB41
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB42-.LFB4568
	.uleb128 .LEHE42-.LEHB42
	.uleb128 .L323-.LFB4568
	.uleb128 0
	.uleb128 .LEHB43-.LFB4568
	.uleb128 .LEHE43-.LEHB43
	.uleb128 0
	.uleb128 0
.LLSDACSE4568:
	.text
	.size	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d15opti_relu_leakyERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, .-_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d15opti_relu_leakyERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.globl	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d9opti_reluERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.hidden	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d9opti_reluERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.type	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d9opti_reluERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, @function
_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d9opti_reluERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE:
.LFB4567:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA4567
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$104, %rsp
	.cfi_def_cfa_offset 160
	movq	%rdi, 8(%rsp)
	movq	120(%rsi), %rdi
	leaq	40(%rsp), %rsi
	movq	%rdx, 16(%rsp)
	leaq	48(%rsp), %rdx
	movq	%fs:40, %rax
	movq	%rax, 88(%rsp)
	xorl	%eax, %eax
	call	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d14elemwhise_sizeEmRmS1_
	movq	40(%rsp), %r14
	movq	88(%rbp), %r13
	movq	64(%rbp), %r12
	cmpq	$1, %r14
	ja	.L329
	movq	16(%rsp), %rcx
	movq	%rdi, %rdx
	movq	%r13, %rsi
	movq	%r12, %rdi
.LEHB44:
	call	_ZN2rt4Node7op_reluEPKfPfmRKSt6vectorIPS0_SaIS5_EE@PLT
	movq	8(%rsp), %rdi
	movq	%rax, %rsi
	movq	%rax, %rbx
	call	_ZN2rt5Graph3addEPNS_4NodeE@PLT
.LEHE44:
	jmp	.L328
.L329:
	xorl	%eax, %eax
	decq	%r14
	xorl	%r15d, %r15d
	movq	%rax, 64(%rsp)
	movq	%rax, 72(%rsp)
	movq	%rax, 80(%rsp)
	leaq	64(%rsp), %rax
	movq	%rax, (%rsp)
.L331:
	movq	48(%rsp), %rbx
	movq	16(%rsp), %rcx
	movq	%rbx, %rdi
	movq	%rbx, %rdx
	imulq	%r15, %rdi
	salq	$2, %rdi
	leaq	0(%r13,%rdi), %rsi
	addq	%r12, %rdi
.LEHB45:
	call	_ZN2rt4Node7op_reluEPKfPfmRKSt6vectorIPS0_SaIS5_EE@PLT
	movq	%rax, 56(%rsp)
	movq	(%rsp), %rdi
	leaq	56(%rsp), %rax
	movq	%rax, %rsi
	movq	%rax, 24(%rsp)
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_.isra.0
	incq	%r15
	cmpq	%r14, %r15
	jb	.L331
	imulq	%r14, %rbx
	movq	120(%rbp), %rdx
	movq	16(%rsp), %rcx
	leaq	0(,%rbx,4), %rax
	subq	%rbx, %rdx
	leaq	0(%r13,%rax), %rsi
	leaq	(%r12,%rax), %rdi
	call	_ZN2rt4Node7op_reluEPKfPfmRKSt6vectorIPS0_SaIS5_EE@PLT
	movq	24(%rsp), %rsi
	movq	(%rsp), %rdi
	movq	%rax, 56(%rsp)
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_.isra.0
	movq	72(%rsp), %rbp
	movq	64(%rsp), %rbx
.L332:
	cmpq	%rbx, %rbp
	je	.L341
	movq	(%rbx), %rsi
	movq	8(%rsp), %rdi
	call	_ZN2rt5Graph3addEPNS_4NodeE@PLT
	addq	$8, %rbx
	jmp	.L332
.L341:
	movq	(%rsp), %rdi
	call	_ZN2rt4Node3nopERKSt6vectorIPS0_SaIS2_EE@PLT
	movq	8(%rsp), %rdi
	movq	%rax, %rsi
	movq	%rax, %rbx
	call	_ZN2rt5Graph3addEPNS_4NodeE@PLT
.LEHE45:
	movq	(%rsp), %rdi
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EED1Ev
	jmp	.L328
.L337:
	endbr64
	movq	%rax, %rbx
.L334:
	movq	(%rsp), %rdi
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EED1Ev
	movq	88(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L340
	movq	%rbx, %rdi
.LEHB46:
	call	_Unwind_Resume@PLT
.LEHE46:
.L328:
	movq	88(%rsp), %rax
	subq	%fs:40, %rax
	je	.L336
.L340:
	call	__stack_chk_fail@PLT
.L336:
	addq	$104, %rsp
	.cfi_def_cfa_offset 56
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4567:
	.section	.gcc_except_table
.LLSDA4567:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE4567-.LLSDACSB4567
.LLSDACSB4567:
	.uleb128 .LEHB44-.LFB4567
	.uleb128 .LEHE44-.LEHB44
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB45-.LFB4567
	.uleb128 .LEHE45-.LEHB45
	.uleb128 .L337-.LFB4567
	.uleb128 0
	.uleb128 .LEHB46-.LFB4567
	.uleb128 .LEHE46-.LEHB46
	.uleb128 0
	.uleb128 0
.LLSDACSE4567:
	.text
	.size	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d9opti_reluERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, .-_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d9opti_reluERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.globl	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d16opti_log_softmaxERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.hidden	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d16opti_log_softmaxERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.type	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d16opti_log_softmaxERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, @function
_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d16opti_log_softmaxERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE:
.LFB4564:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA4564
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rdx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rsi, %rbx
	subq	$104, %rsp
	.cfi_def_cfa_offset 160
	movq	120(%rsi), %r10
	movq	%rdi, 16(%rsp)
	leaq	48(%rsp), %rdx
	leaq	40(%rsp), %rsi
	movq	%r10, %rdi
	movq	%fs:40, %rax
	movq	%rax, 88(%rsp)
	xorl	%eax, %eax
	call	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d14elemwhise_sizeEmRmS1_
	movq	40(%rsp), %r14
	movq	128(%rbx), %r12
	cmpq	$1, %r14
	ja	.L343
	movq	88(%rbx), %rsi
	movq	64(%rbx), %rdi
	movq	%r13, %r8
	movq	%r12, %rcx
	movq	%r10, %rdx
.LEHB47:
	call	_ZN2rt4Node14op_log_softmaxEPKfPfmmRKSt6vectorIPS0_SaIS5_EE@PLT
	movq	16(%rsp), %rdi
	movq	%rax, %rsi
	movq	%rax, %rbx
	call	_ZN2rt5Graph3addEPNS_4NodeE@PLT
.LEHE47:
	jmp	.L342
.L343:
	xorl	%eax, %eax
	decq	%r14
	xorl	%r15d, %r15d
	movq	%rax, 64(%rsp)
	movq	%rax, 72(%rsp)
	movq	%rax, 80(%rsp)
	leaq	64(%rsp), %rax
	movq	%rax, 8(%rsp)
.L345:
	movq	48(%rsp), %rbp
	movq	88(%rbx), %rsi
	movq	%r13, %r8
	movq	%r12, %rcx
	movq	%rbp, %rdi
	movq	%rbp, %rdx
	imulq	%r12, %rdi
	imulq	%r15, %rdi
	salq	$2, %rdi
	addq	%rdi, %rsi
	addq	64(%rbx), %rdi
.LEHB48:
	call	_ZN2rt4Node14op_log_softmaxEPKfPfmmRKSt6vectorIPS0_SaIS5_EE@PLT
	movq	%rax, 56(%rsp)
	movq	8(%rsp), %rdi
	leaq	56(%rsp), %rax
	movq	%rax, %rsi
	movq	%rax, 24(%rsp)
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_.isra.0
	incq	%r15
	cmpq	%r14, %r15
	jb	.L345
	imulq	%r14, %rbp
	movq	120(%rbx), %rdx
	movq	88(%rbx), %rsi
	movq	%r13, %r8
	movq	%r12, %rcx
	movq	%rbp, %rdi
	subq	%rbp, %rdx
	imulq	%r12, %rdi
	salq	$2, %rdi
	addq	%rdi, %rsi
	addq	64(%rbx), %rdi
	call	_ZN2rt4Node14op_log_softmaxEPKfPfmmRKSt6vectorIPS0_SaIS5_EE@PLT
	movq	24(%rsp), %rsi
	movq	8(%rsp), %rdi
	movq	%rax, 56(%rsp)
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_.isra.0
	movq	72(%rsp), %rbp
	movq	64(%rsp), %rbx
.L346:
	cmpq	%rbp, %rbx
	je	.L355
	movq	(%rbx), %rsi
	movq	16(%rsp), %rdi
	call	_ZN2rt5Graph3addEPNS_4NodeE@PLT
	addq	$8, %rbx
	jmp	.L346
.L355:
	movq	8(%rsp), %rdi
	call	_ZN2rt4Node3nopERKSt6vectorIPS0_SaIS2_EE@PLT
	movq	16(%rsp), %rdi
	movq	%rax, %rsi
	movq	%rax, %rbx
	call	_ZN2rt5Graph3addEPNS_4NodeE@PLT
.LEHE48:
	movq	8(%rsp), %rdi
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EED1Ev
	jmp	.L342
.L351:
	endbr64
	movq	%rax, %rbx
.L348:
	movq	8(%rsp), %rdi
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EED1Ev
	movq	88(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L354
	movq	%rbx, %rdi
.LEHB49:
	call	_Unwind_Resume@PLT
.LEHE49:
.L342:
	movq	88(%rsp), %rax
	subq	%fs:40, %rax
	je	.L350
.L354:
	call	__stack_chk_fail@PLT
.L350:
	addq	$104, %rsp
	.cfi_def_cfa_offset 56
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4564:
	.section	.gcc_except_table
.LLSDA4564:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE4564-.LLSDACSB4564
.LLSDACSB4564:
	.uleb128 .LEHB47-.LFB4564
	.uleb128 .LEHE47-.LEHB47
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB48-.LFB4564
	.uleb128 .LEHE48-.LEHB48
	.uleb128 .L351-.LFB4564
	.uleb128 0
	.uleb128 .LEHB49-.LFB4564
	.uleb128 .LEHE49-.LEHB49
	.uleb128 0
	.uleb128 0
.LLSDACSE4564:
	.text
	.size	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d16opti_log_softmaxERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, .-_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d16opti_log_softmaxERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.globl	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d12opti_softmaxERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.hidden	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d12opti_softmaxERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.type	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d12opti_softmaxERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, @function
_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d12opti_softmaxERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE:
.LFB4563:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA4563
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rdx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rsi, %rbx
	subq	$104, %rsp
	.cfi_def_cfa_offset 160
	movq	120(%rsi), %r10
	movq	%rdi, 16(%rsp)
	leaq	48(%rsp), %rdx
	leaq	40(%rsp), %rsi
	movq	%r10, %rdi
	movq	%fs:40, %rax
	movq	%rax, 88(%rsp)
	xorl	%eax, %eax
	call	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d14elemwhise_sizeEmRmS1_
	movq	40(%rsp), %r14
	movq	128(%rbx), %r12
	cmpq	$1, %r14
	ja	.L357
	movq	88(%rbx), %rsi
	movq	64(%rbx), %rdi
	movq	%r13, %r8
	movq	%r12, %rcx
	movq	%r10, %rdx
.LEHB50:
	call	_ZN2rt4Node10op_softmaxEPKfPfmmRKSt6vectorIPS0_SaIS5_EE@PLT
	movq	16(%rsp), %rdi
	movq	%rax, %rsi
	movq	%rax, %rbx
	call	_ZN2rt5Graph3addEPNS_4NodeE@PLT
.LEHE50:
	jmp	.L356
.L357:
	xorl	%eax, %eax
	decq	%r14
	xorl	%r15d, %r15d
	movq	%rax, 64(%rsp)
	movq	%rax, 72(%rsp)
	movq	%rax, 80(%rsp)
	leaq	64(%rsp), %rax
	movq	%rax, 8(%rsp)
.L359:
	movq	48(%rsp), %rbp
	movq	88(%rbx), %rsi
	movq	%r13, %r8
	movq	%r12, %rcx
	movq	%rbp, %rdi
	movq	%rbp, %rdx
	imulq	%r12, %rdi
	imulq	%r15, %rdi
	salq	$2, %rdi
	addq	%rdi, %rsi
	addq	64(%rbx), %rdi
.LEHB51:
	call	_ZN2rt4Node10op_softmaxEPKfPfmmRKSt6vectorIPS0_SaIS5_EE@PLT
	movq	%rax, 56(%rsp)
	movq	8(%rsp), %rdi
	leaq	56(%rsp), %rax
	movq	%rax, %rsi
	movq	%rax, 24(%rsp)
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_.isra.0
	incq	%r15
	cmpq	%r14, %r15
	jb	.L359
	imulq	%r14, %rbp
	movq	120(%rbx), %rdx
	movq	88(%rbx), %rsi
	movq	%r13, %r8
	movq	%r12, %rcx
	movq	%rbp, %rdi
	subq	%rbp, %rdx
	imulq	%r12, %rdi
	salq	$2, %rdi
	addq	%rdi, %rsi
	addq	64(%rbx), %rdi
	call	_ZN2rt4Node10op_softmaxEPKfPfmmRKSt6vectorIPS0_SaIS5_EE@PLT
	movq	24(%rsp), %rsi
	movq	8(%rsp), %rdi
	movq	%rax, 56(%rsp)
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_.isra.0
	movq	72(%rsp), %rbp
	movq	64(%rsp), %rbx
.L360:
	cmpq	%rbp, %rbx
	je	.L369
	movq	(%rbx), %rsi
	movq	16(%rsp), %rdi
	call	_ZN2rt5Graph3addEPNS_4NodeE@PLT
	addq	$8, %rbx
	jmp	.L360
.L369:
	movq	8(%rsp), %rdi
	call	_ZN2rt4Node3nopERKSt6vectorIPS0_SaIS2_EE@PLT
	movq	16(%rsp), %rdi
	movq	%rax, %rsi
	movq	%rax, %rbx
	call	_ZN2rt5Graph3addEPNS_4NodeE@PLT
.LEHE51:
	movq	8(%rsp), %rdi
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EED1Ev
	jmp	.L356
.L365:
	endbr64
	movq	%rax, %rbx
.L362:
	movq	8(%rsp), %rdi
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EED1Ev
	movq	88(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L368
	movq	%rbx, %rdi
.LEHB52:
	call	_Unwind_Resume@PLT
.LEHE52:
.L356:
	movq	88(%rsp), %rax
	subq	%fs:40, %rax
	je	.L364
.L368:
	call	__stack_chk_fail@PLT
.L364:
	addq	$104, %rsp
	.cfi_def_cfa_offset 56
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4563:
	.section	.gcc_except_table
.LLSDA4563:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE4563-.LLSDACSB4563
.LLSDACSB4563:
	.uleb128 .LEHB50-.LFB4563
	.uleb128 .LEHE50-.LEHB50
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB51-.LFB4563
	.uleb128 .LEHE51-.LEHB51
	.uleb128 .L365-.LFB4563
	.uleb128 0
	.uleb128 .LEHB52-.LFB4563
	.uleb128 .LEHE52-.LEHB52
	.uleb128 0
	.uleb128 0
.LLSDACSE4563:
	.text
	.size	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d12opti_softmaxERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, .-_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d12opti_softmaxERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.globl	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d12opti_sigmoidERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.hidden	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d12opti_sigmoidERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.type	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d12opti_sigmoidERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, @function
_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d12opti_sigmoidERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE:
.LFB4561:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA4561
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	movq	%rsi, %rbp
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	subq	$104, %rsp
	.cfi_def_cfa_offset 160
	movq	%rdi, 8(%rsp)
	movq	120(%rsi), %rdi
	leaq	40(%rsp), %rsi
	movq	%rdx, 16(%rsp)
	leaq	48(%rsp), %rdx
	movq	%fs:40, %rax
	movq	%rax, 88(%rsp)
	xorl	%eax, %eax
	call	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d14elemwhise_sizeEmRmS1_
	movq	40(%rsp), %r14
	movq	88(%rbp), %r13
	movq	64(%rbp), %r12
	cmpq	$1, %r14
	ja	.L371
	movq	16(%rsp), %rcx
	movq	%rdi, %rdx
	movq	%r13, %rsi
	movq	%r12, %rdi
.LEHB53:
	call	_ZN2rt4Node10op_sigmoidEPKfPfmRKSt6vectorIPS0_SaIS5_EE@PLT
	movq	8(%rsp), %rdi
	movq	%rax, %rsi
	movq	%rax, %rbx
	call	_ZN2rt5Graph3addEPNS_4NodeE@PLT
.LEHE53:
	jmp	.L370
.L371:
	xorl	%eax, %eax
	decq	%r14
	xorl	%r15d, %r15d
	movq	%rax, 64(%rsp)
	movq	%rax, 72(%rsp)
	movq	%rax, 80(%rsp)
	leaq	64(%rsp), %rax
	movq	%rax, (%rsp)
.L373:
	movq	48(%rsp), %rbx
	movq	16(%rsp), %rcx
	movq	%rbx, %rdi
	movq	%rbx, %rdx
	imulq	%r15, %rdi
	salq	$2, %rdi
	leaq	0(%r13,%rdi), %rsi
	addq	%r12, %rdi
.LEHB54:
	call	_ZN2rt4Node10op_sigmoidEPKfPfmRKSt6vectorIPS0_SaIS5_EE@PLT
	movq	%rax, 56(%rsp)
	movq	(%rsp), %rdi
	leaq	56(%rsp), %rax
	movq	%rax, %rsi
	movq	%rax, 24(%rsp)
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_.isra.0
	incq	%r15
	cmpq	%r14, %r15
	jb	.L373
	imulq	%r14, %rbx
	movq	120(%rbp), %rdx
	movq	16(%rsp), %rcx
	leaq	0(,%rbx,4), %rax
	subq	%rbx, %rdx
	leaq	0(%r13,%rax), %rsi
	leaq	(%r12,%rax), %rdi
	call	_ZN2rt4Node10op_sigmoidEPKfPfmRKSt6vectorIPS0_SaIS5_EE@PLT
	movq	24(%rsp), %rsi
	movq	(%rsp), %rdi
	movq	%rax, 56(%rsp)
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_.isra.0
	movq	72(%rsp), %rbp
	movq	64(%rsp), %rbx
.L374:
	cmpq	%rbx, %rbp
	je	.L383
	movq	(%rbx), %rsi
	movq	8(%rsp), %rdi
	call	_ZN2rt5Graph3addEPNS_4NodeE@PLT
	addq	$8, %rbx
	jmp	.L374
.L383:
	movq	(%rsp), %rdi
	call	_ZN2rt4Node3nopERKSt6vectorIPS0_SaIS2_EE@PLT
	movq	8(%rsp), %rdi
	movq	%rax, %rsi
	movq	%rax, %rbx
	call	_ZN2rt5Graph3addEPNS_4NodeE@PLT
.LEHE54:
	movq	(%rsp), %rdi
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EED1Ev
	jmp	.L370
.L379:
	endbr64
	movq	%rax, %rbx
.L376:
	movq	(%rsp), %rdi
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EED1Ev
	movq	88(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L382
	movq	%rbx, %rdi
.LEHB55:
	call	_Unwind_Resume@PLT
.LEHE55:
.L370:
	movq	88(%rsp), %rax
	subq	%fs:40, %rax
	je	.L378
.L382:
	call	__stack_chk_fail@PLT
.L378:
	addq	$104, %rsp
	.cfi_def_cfa_offset 56
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4561:
	.section	.gcc_except_table
.LLSDA4561:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE4561-.LLSDACSB4561
.LLSDACSB4561:
	.uleb128 .LEHB53-.LFB4561
	.uleb128 .LEHE53-.LEHB53
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB54-.LFB4561
	.uleb128 .LEHE54-.LEHB54
	.uleb128 .L379-.LFB4561
	.uleb128 0
	.uleb128 .LEHB55-.LFB4561
	.uleb128 .LEHE55-.LEHB55
	.uleb128 0
	.uleb128 0
.LLSDACSE4561:
	.text
	.size	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d12opti_sigmoidERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, .-_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d12opti_sigmoidERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.globl	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d18opti_mat_rvect_addERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.hidden	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d18opti_mat_rvect_addERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.type	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d18opti_mat_rvect_addERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, @function
_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d18opti_mat_rvect_addERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE:
.LFB4560:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA4560
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	movq	%rdx, %r13
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rsi, %rbx
	subq	$104, %rsp
	.cfi_def_cfa_offset 160
	movq	120(%rsi), %r10
	movq	%rdi, 16(%rsp)
	leaq	48(%rsp), %rdx
	leaq	40(%rsp), %rsi
	movq	%r10, %rdi
	movq	%fs:40, %rax
	movq	%rax, 88(%rsp)
	xorl	%eax, %eax
	call	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d14elemwhise_sizeEmRmS1_
	movq	40(%rsp), %r14
	movq	128(%rbx), %r12
	cmpq	$1, %r14
	ja	.L385
	movq	88(%rbx), %rdx
	movq	72(%rbx), %rsi
	movq	%r13, %r9
	movq	%r12, %r8
	movq	64(%rbx), %rdi
	movq	%r10, %rcx
.LEHB56:
	call	_ZN2rt4Node16op_mat_rvect_addEPKfS2_PfmmRKSt6vectorIPS0_SaIS5_EE@PLT
	movq	16(%rsp), %rdi
	movq	%rax, %rsi
	movq	%rax, %rbx
	call	_ZN2rt5Graph3addEPNS_4NodeE@PLT
.LEHE56:
	jmp	.L384
.L385:
	xorl	%eax, %eax
	decq	%r14
	xorl	%r15d, %r15d
	movq	%rax, 64(%rsp)
	movq	%rax, 72(%rsp)
	movq	%rax, 80(%rsp)
	leaq	64(%rsp), %rax
	movq	%rax, 8(%rsp)
.L387:
	movq	48(%rsp), %rbp
	movq	88(%rbx), %rdx
	movq	%r13, %r9
	movq	%r12, %r8
	movq	72(%rbx), %rsi
	movq	%rbp, %rdi
	movq	%rbp, %rcx
	imulq	%r12, %rdi
	imulq	%r15, %rdi
	salq	$2, %rdi
	addq	%rdi, %rdx
	addq	64(%rbx), %rdi
.LEHB57:
	call	_ZN2rt4Node16op_mat_rvect_addEPKfS2_PfmmRKSt6vectorIPS0_SaIS5_EE@PLT
	movq	%rax, 56(%rsp)
	movq	8(%rsp), %rdi
	leaq	56(%rsp), %rax
	movq	%rax, %rsi
	movq	%rax, 24(%rsp)
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_.isra.0
	incq	%r15
	cmpq	%r14, %r15
	jb	.L387
	imulq	%r14, %rbp
	movq	120(%rbx), %rcx
	movq	88(%rbx), %rdx
	movq	%r13, %r9
	movq	72(%rbx), %rsi
	movq	%r12, %r8
	movq	%rbp, %rdi
	subq	%rbp, %rcx
	imulq	%r12, %rdi
	salq	$2, %rdi
	addq	%rdi, %rdx
	addq	64(%rbx), %rdi
	call	_ZN2rt4Node16op_mat_rvect_addEPKfS2_PfmmRKSt6vectorIPS0_SaIS5_EE@PLT
	movq	24(%rsp), %rsi
	movq	8(%rsp), %rdi
	movq	%rax, 56(%rsp)
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_.isra.0
	movq	72(%rsp), %rbp
	movq	64(%rsp), %rbx
.L388:
	cmpq	%rbp, %rbx
	je	.L397
	movq	(%rbx), %rsi
	movq	16(%rsp), %rdi
	call	_ZN2rt5Graph3addEPNS_4NodeE@PLT
	addq	$8, %rbx
	jmp	.L388
.L397:
	movq	8(%rsp), %rdi
	call	_ZN2rt4Node3nopERKSt6vectorIPS0_SaIS2_EE@PLT
	movq	16(%rsp), %rdi
	movq	%rax, %rsi
	movq	%rax, %rbx
	call	_ZN2rt5Graph3addEPNS_4NodeE@PLT
.LEHE57:
	movq	8(%rsp), %rdi
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EED1Ev
	jmp	.L384
.L393:
	endbr64
	movq	%rax, %rbx
.L390:
	movq	8(%rsp), %rdi
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EED1Ev
	movq	88(%rsp), %rax
	subq	%fs:40, %rax
	jne	.L396
	movq	%rbx, %rdi
.LEHB58:
	call	_Unwind_Resume@PLT
.LEHE58:
.L384:
	movq	88(%rsp), %rax
	subq	%fs:40, %rax
	je	.L392
.L396:
	call	__stack_chk_fail@PLT
.L392:
	addq	$104, %rsp
	.cfi_def_cfa_offset 56
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4560:
	.section	.gcc_except_table
.LLSDA4560:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE4560-.LLSDACSB4560
.LLSDACSB4560:
	.uleb128 .LEHB56-.LFB4560
	.uleb128 .LEHE56-.LEHB56
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB57-.LFB4560
	.uleb128 .LEHE57-.LEHB57
	.uleb128 .L393-.LFB4560
	.uleb128 0
	.uleb128 .LEHB58-.LFB4560
	.uleb128 .LEHE58-.LEHB58
	.uleb128 0
	.uleb128 0
.LLSDACSE4560:
	.text
	.size	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d18opti_mat_rvect_addERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, .-_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d18opti_mat_rvect_addERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.globl	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d16opti_mat_mat_mulERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.hidden	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d16opti_mat_mat_mulERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.type	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d16opti_mat_mat_mulERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, @function
_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d16opti_mat_mat_mulERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE:
.LFB4549:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA4549
	endbr64
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	pushq	%r15
	pushq	%r14
	pushq	%r13
	.cfi_offset 15, -24
	.cfi_offset 14, -32
	.cfi_offset 13, -40
	movq	%rdx, %r13
	leaq	-96(%rbp), %rdx
	pushq	%r12
	pushq	%rbx
	.cfi_offset 12, -48
	.cfi_offset 3, -56
	movq	%rsi, %rbx
	subq	$120, %rsp
	movq	%rdi, -144(%rbp)
	movq	120(%rsi), %r15
	movq	%r15, %rdi
	movq	%fs:40, %rax
	movq	%rax, -56(%rbp)
	xorl	%eax, %eax
	movq	128(%rsi), %rax
	movq	%rax, -128(%rbp)
	movq	136(%rsi), %rax
	leaq	-104(%rbp), %rsi
	cmpq	%r15, %rax
	movq	%rax, -120(%rbp)
	jb	.L416
	movq	-120(%rbp), %rdi
.L416:
	call	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d14elemwhise_sizeEmRmS1_
	movq	-104(%rbp), %rax
	movq	88(%rbx), %rdx
	movq	72(%rbx), %rsi
	movq	64(%rbx), %rdi
	cmpq	$1, %rax
	ja	.L401
	pushq	%r10
	movq	-120(%rbp), %r9
	movq	%r15, %rcx
	pushq	%r13
	movq	-128(%rbp), %r8
.LEHB59:
	call	_ZN2rt4Node14op_mat_mat_mulEPKfS2_PfmmmRKSt6vectorIPS0_SaIS5_EE@PLT
	movq	-144(%rbp), %rdi
	popq	%r11
	movq	%rax, %rsi
	popq	%r12
	movq	%rax, %rbx
	call	_ZN2rt5Graph3addEPNS_4NodeE@PLT
.LEHE59:
	jmp	.L398
.L401:
	xorl	%r9d, %r9d
	leaq	-1(%rax), %r12
	leaq	-88(%rbp), %rax
	xorl	%r14d, %r14d
	cmpq	%r15, -128(%rbp)
	movq	%r9, -80(%rbp)
	movq	%r9, -72(%rbp)
	movq	%r9, -64(%rbp)
	movq	%rax, -160(%rbp)
	jnb	.L403
.L404:
	movq	-96(%rbp), %rax
	movq	-120(%rbp), %rcx
	movq	88(%rbx), %rdx
	movq	72(%rbx), %rsi
	movq	%rax, -136(%rbp)
	imulq	%r14, %rax
	imulq	%rax, %rcx
	leaq	(%rdx,%rcx,4), %rdx
	movq	-128(%rbp), %rcx
	imulq	%rcx, %rax
	movq	64(%rbx), %rcx
	pushq	%r8
	movq	-120(%rbp), %r9
	movq	-128(%rbp), %r8
	pushq	%r13
	leaq	(%rcx,%rax,4), %rdi
	movq	-136(%rbp), %rcx
.LEHB60:
	.cfi_escape 0x2e,0x10
	call	_ZN2rt4Node14op_mat_mat_mulEPKfS2_PfmmmRKSt6vectorIPS0_SaIS5_EE@PLT
	popq	%rdx
	movq	-160(%rbp), %rsi
	popq	%rcx
	movq	%rax, -88(%rbp)
	leaq	-80(%rbp), %rax
	movq	%rax, %rdi
	movq	%rax, -152(%rbp)
	.cfi_escape 0x2e,0
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_.isra.0
	incq	%r14
	cmpq	%r12, %r14
	jb	.L404
	movq	-136(%rbp), %rax
	movq	%r15, %rcx
	movq	-120(%rbp), %rdx
	movq	72(%rbx), %rsi
	imulq	%r12, %rax
	leaq	0(,%rax,4), %rdi
	subq	%rax, %rcx
	movq	-128(%rbp), %rax
	imulq	%rdi, %rdx
	addq	88(%rbx), %rdx
	imulq	%rax, %rdi
	movq	%rax, %r8
	addq	64(%rbx), %rdi
	pushq	%rbx
	pushq	%r13
	movq	-120(%rbp), %r9
	jmp	.L421
.L403:
	movq	-96(%rbp), %rax
	movq	-120(%rbp), %rcx
	movq	88(%rbx), %rdx
	movq	64(%rbx), %rdi
	movq	%rax, -136(%rbp)
	imulq	%r14, %rax
	imulq	%rax, %rcx
	leaq	(%rdx,%rcx,4), %rdx
	movq	72(%rbx), %rcx
	pushq	%r11
	movq	-136(%rbp), %r9
	movq	-128(%rbp), %r8
	pushq	%r13
	leaq	(%rcx,%rax,4), %rsi
	movq	%r15, %rcx
	.cfi_escape 0x2e,0x10
	call	_ZN2rt4Node14op_mat_mat_mulEPKfS2_PfmmmRKSt6vectorIPS0_SaIS5_EE@PLT
	popq	%r9
	movq	-160(%rbp), %rsi
	popq	%r10
	movq	%rax, -88(%rbp)
	leaq	-80(%rbp), %rax
	movq	%rax, %rdi
	movq	%rax, -152(%rbp)
	.cfi_escape 0x2e,0
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_.isra.0
	incq	%r14
	cmpq	%r12, %r14
	jb	.L403
	movq	-136(%rbp), %rax
	movq	-120(%rbp), %rdx
	movq	%r15, %rcx
	movq	64(%rbx), %rdi
	imulq	%r12, %rax
	leaq	0(,%rax,4), %rsi
	imulq	%rsi, %rdx
	addq	72(%rbx), %rsi
	addq	88(%rbx), %rdx
	pushq	%r8
	movq	-120(%rbp), %r9
	movq	-128(%rbp), %r8
	pushq	%r13
	subq	%rax, %r9
.L421:
	.cfi_escape 0x2e,0x10
	call	_ZN2rt4Node14op_mat_mat_mulEPKfS2_PfmmmRKSt6vectorIPS0_SaIS5_EE@PLT
	movq	-160(%rbp), %rsi
	movq	-152(%rbp), %rdi
	popq	%rdx
	popq	%rcx
	movq	%rax, -88(%rbp)
	.cfi_escape 0x2e,0
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_.isra.0
	movq	-72(%rbp), %r15
	movq	-80(%rbp), %rbx
.L406:
	cmpq	%rbx, %r15
	je	.L422
	movq	(%rbx), %rsi
	movq	-144(%rbp), %rdi
	call	_ZN2rt5Graph3addEPNS_4NodeE@PLT
	addq	$8, %rbx
	jmp	.L406
.L422:
	leaq	-80(%rbp), %rax
	movq	%rax, %rdi
	movq	%rax, %r14
	call	_ZN2rt4Node3nopERKSt6vectorIPS0_SaIS2_EE@PLT
	movq	-144(%rbp), %rdi
	movq	%rax, %rsi
	movq	%rax, %rbx
	call	_ZN2rt5Graph3addEPNS_4NodeE@PLT
.LEHE60:
	movq	%r14, %rdi
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EED1Ev
	jmp	.L398
.L412:
	endbr64
	movq	%rax, %rbx
.L408:
	leaq	-80(%rbp), %rdi
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EED1Ev
	movq	-56(%rbp), %rax
	subq	%fs:40, %rax
	jne	.L419
	movq	%rbx, %rdi
.LEHB61:
	call	_Unwind_Resume@PLT
.LEHE61:
.L398:
	movq	-56(%rbp), %rax
	subq	%fs:40, %rax
	je	.L410
.L419:
	call	__stack_chk_fail@PLT
.L410:
	leaq	-40(%rbp), %rsp
	movq	%rbx, %rax
	popq	%rbx
	popq	%r12
	popq	%r13
	popq	%r14
	popq	%r15
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE4549:
	.section	.gcc_except_table
.LLSDA4549:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE4549-.LLSDACSB4549
.LLSDACSB4549:
	.uleb128 .LEHB59-.LFB4549
	.uleb128 .LEHE59-.LEHB59
	.uleb128 0
	.uleb128 0
	.uleb128 .LEHB60-.LFB4549
	.uleb128 .LEHE60-.LEHB60
	.uleb128 .L412-.LFB4549
	.uleb128 0
	.uleb128 .LEHB61-.LFB4549
	.uleb128 .LEHE61-.LEHB61
	.uleb128 0
	.uleb128 0
.LLSDACSE4549:
	.text
	.size	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d16opti_mat_mat_mulERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, .-_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d16opti_mat_mat_mulERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.globl	_ZN2rt13convert_nodesESt6vectorIPNS_4NodeESaIS2_EERKSt3mapIS2_S2_St4lessIS2_ESaISt4pairIKS2_S2_EEE
	.type	_ZN2rt13convert_nodesESt6vectorIPNS_4NodeESaIS2_EERKSt3mapIS2_S2_St4lessIS2_ESaISt4pairIKS2_S2_EEE, @function
_ZN2rt13convert_nodesESt6vectorIPNS_4NodeESaIS2_EERKSt3mapIS2_S2_St4lessIS2_ESaISt4pairIKS2_S2_EEE:
.LFB4602:
	.cfi_startproc
	.cfi_personality 0x9b,DW.ref.__gxx_personality_v0
	.cfi_lsda 0x1b,.LLSDA4602
	endbr64
	pushq	%r15
	.cfi_def_cfa_offset 16
	.cfi_offset 15, -16
	xorl	%eax, %eax
	pushq	%r14
	.cfi_def_cfa_offset 24
	.cfi_offset 14, -24
	pushq	%r13
	.cfi_def_cfa_offset 32
	.cfi_offset 13, -32
	pushq	%r12
	.cfi_def_cfa_offset 40
	.cfi_offset 12, -40
	pushq	%rbp
	.cfi_def_cfa_offset 48
	.cfi_offset 6, -48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	.cfi_offset 3, -56
	movq	%rdi, %rbx
	subq	$56, %rsp
	.cfi_def_cfa_offset 112
	movq	%rax, (%rdi)
	movq	%rax, 8(%rdi)
	movq	%rax, 16(%rdi)
	movq	8(%rsi), %rax
	movq	%rdx, 24(%rsp)
	movq	(%rsi), %r15
	movq	%rax, 32(%rsp)
.L424:
	cmpq	%r15, 32(%rsp)
	je	.L443
	movq	24(%rsp), %rax
	movq	(%r15), %rcx
	leaq	8(%rax), %rdx
	movq	16(%rax), %rax
	movq	%rdx, %r13
.L425:
	testq	%rax, %rax
	je	.L444
	movq	16(%rax), %rsi
	movq	24(%rax), %rdi
	cmpq	%rcx, 32(%rax)
	jnb	.L426
	movq	%r13, %rax
	movq	%rdi, %rsi
.L426:
	movq	%rax, %r13
	movq	%rsi, %rax
	jmp	.L425
.L444:
	cmpq	%r13, %rdx
	je	.L428
	cmpq	32(%r13), %rcx
	jnb	.L428
	movq	%rdx, %r13
.L428:
	movq	8(%rbx), %rbp
	cmpq	16(%rbx), %rbp
	je	.L429
	movq	40(%r13), %rax
	addq	$8, %rbp
	movq	%rax, -8(%rbp)
	movq	%rbp, 8(%rbx)
	jmp	.L430
.L429:
	leaq	.LC0(%rip), %rdx
	movl	$1, %esi
	movq	%rbx, %rdi
.LEHB62:
	call	_ZNKSt6vectorIPN2rt4NodeESaIS2_EE12_M_check_lenEmPKc
	movq	%rax, 16(%rsp)
	movq	8(%rbx), %rax
	movq	(%rbx), %r14
	movq	16(%rsp), %rdi
	movq	%rax, 40(%rsp)
	movq	%rbp, %rax
	subq	%r14, %rax
	movq	%rax, 8(%rsp)
	call	_ZNSt12_Vector_baseIPN2rt4NodeESaIS2_EE11_M_allocateEm.isra.0
.LEHE62:
	movq	%rax, %r12
	movq	8(%rsp), %rcx
	movq	40(%r13), %rax
	movq	%rax, (%r12,%rcx)
	testq	%rcx, %rcx
	jle	.L431
	movq	%rcx, %rdx
	movq	%r14, %rsi
	movq	%r12, %rdi
	call	memmove@PLT
.L431:
	movq	40(%rsp), %r13
	movq	8(%rsp), %rax
	subq	%rbp, %r13
	leaq	8(%r12,%rax), %rcx
	testq	%r13, %r13
	jle	.L432
	movq	%rcx, %rdi
	movq	%r13, %rdx
	movq	%rbp, %rsi
	call	memmove@PLT
	movq	%rax, %rcx
.L432:
	addq	%rcx, %r13
	testq	%r14, %r14
	je	.L433
	movq	16(%rbx), %rsi
	movq	%r14, %rdi
	subq	%r14, %rsi
	call	_ZdlPvm@PLT
.L433:
	movq	16(%rsp), %rax
	movq	%r12, (%rbx)
	movq	%r13, 8(%rbx)
	leaq	(%r12,%rax,8), %rax
	movq	%rax, 16(%rbx)
.L430:
	addq	$8, %r15
	jmp	.L424
.L437:
	endbr64
	movq	%rax, %rbp
.L435:
	movq	%rbx, %rdi
	call	_ZNSt6vectorIPN2rt4NodeESaIS2_EED1Ev
	movq	%rbp, %rdi
.LEHB63:
	call	_Unwind_Resume@PLT
.LEHE63:
.L443:
	addq	$56, %rsp
	.cfi_def_cfa_offset 56
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%rbp
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	ret
	.cfi_endproc
.LFE4602:
	.section	.gcc_except_table
.LLSDA4602:
	.byte	0xff
	.byte	0xff
	.byte	0x1
	.uleb128 .LLSDACSE4602-.LLSDACSB4602
.LLSDACSB4602:
	.uleb128 .LEHB62-.LFB4602
	.uleb128 .LEHE62-.LEHB62
	.uleb128 .L437-.LFB4602
	.uleb128 0
	.uleb128 .LEHB63-.LFB4602
	.uleb128 .LEHE63-.LEHB63
	.uleb128 0
	.uleb128 0
.LLSDACSE4602:
	.text
	.size	_ZN2rt13convert_nodesESt6vectorIPNS_4NodeESaIS2_EERKSt3mapIS2_S2_St4lessIS2_ESaISt4pairIKS2_S2_EEE, .-_ZN2rt13convert_nodesESt6vectorIPNS_4NodeESaIS2_EERKSt3mapIS2_S2_St4lessIS2_ESaISt4pairIKS2_S2_EEE
	.section	.nvFatBinSegment,"aw"
	.align 8
	.type	_ZL15__fatDeviceText, @object
	.size	_ZL15__fatDeviceText, 24
_ZL15__fatDeviceText:
	.long	1180844977
	.long	1
	.quad	fatbinData
	.quad	0
	.local	_ZL20__cudaFatCubinHandle
	.comm	_ZL20__cudaFatCubinHandle,8,8
	.hidden	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d10optis_listE
	.globl	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d10optis_listE
	.section	.data.rel.local,"aw"
	.align 32
	.type	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d10optis_listE, @object
	.size	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d10optis_listE, 512
_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d10optis_listE:
	.quad	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d16opti_mat_mat_mulERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.quad	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d18opti_mat_rvect_addERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.quad	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d12opti_sigmoidERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.quad	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d8opti_mseERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.quad	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d12opti_softmaxERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.quad	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d16opti_log_softmaxERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.quad	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d26opti_softmax_cross_entropyERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.quad	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d11opti_conv2dERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.quad	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d9opti_reluERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.quad	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d15opti_relu_leakyERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.quad	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d9opti_tanhERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.quad	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d13opti_mse_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.quad	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d17opti_sigmoid_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.quad	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d16opti_mat_mul_addERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.quad	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d17opti_tmat_mat_mulERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.quad	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d17opti_mat_tmat_mulERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.quad	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d17opti_mat_sum_rowsERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.quad	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d17opti_mat_sum_colsERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.quad	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d31opti_softmax_cross_entropy_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.quad	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d14opti_relu_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.quad	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d20opti_conv2d_bias_addERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.quad	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d11opti_updateERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.quad	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d26opti_sigmoid_cross_entropyERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.quad	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d31opti_sigmoid_cross_entropy_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.quad	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d22opti_conv2d_input_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.quad	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d23opti_conv2d_kernel_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.quad	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d15opti_argmax_accERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.quad	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d18opti_moment_updateERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.quad	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d19opti_moment_update2ERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.quad	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d16opti_adam_updateERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.quad	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d20opti_leaky_relu_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.quad	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d25opti_conv2d_bias_add_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.quad	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d14opti_tanh_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.quad	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d21opti_conv2d_transposeERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.quad	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d32opti_conv2d_transpose_input_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.quad	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d33opti_conv2d_transpose_kernel_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.quad	_ZN2rt45_GLOBAL__N__03605120_12_optimizer_cu_89fbc80d8opti_addERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.zero	216
	.hidden	DW.ref.__gxx_personality_v0
	.weak	DW.ref.__gxx_personality_v0
	.section	.data.rel.local.DW.ref.__gxx_personality_v0,"awG",@progbits,DW.ref.__gxx_personality_v0,comdat
	.align 8
	.type	DW.ref.__gxx_personality_v0, @object
	.size	DW.ref.__gxx_personality_v0, 8
DW.ref.__gxx_personality_v0:
	.quad	__gxx_personality_v0
	.ident	"GCC: (Ubuntu 13.3.0-6ubuntu2~24.04) 13.3.0"
	.section	.note.GNU-stack,"",@progbits
	.section	.note.gnu.property,"a"
	.align 8
	.long	1f - 0f
	.long	4f - 1f
	.long	5
0:
	.string	"GNU"
1:
	.align 8
	.long	0xc0000002
	.long	3f - 2f
2:
	.long	0x3
3:
	.align 8
4:


#include <hip/hip_runtime.h>
#include "optimizer.hh"
#include <cassert>
#include "graph.hh"
#include "node.hh"

namespace rt
{

    namespace
    {

        //can't divide if the divide size is <= MIN_NODES_SIZE
        constexpr std::size_t MIN_NODES_SIZE = 1024;

        //max number of parallel nodes when dividing operation
        constexpr std::size_t MAX_NODES = 8;

        //make sure every size of new ops are multiple of this
        constexpr std::size_t SIZE_DIVISOR = 8;

        void elemwhise_size(std::size_t total, std::size_t& divs, std::size_t& size)
        {
            std::size_t n = total / MIN_NODES_SIZE;
            n = std::min(n, MAX_NODES);
            n = std::max(1UL, n);
            std::size_t m = total / n;
            while (n * m < total)
                ++m;

            if (n > 1)
            {
                while (m % SIZE_DIVISOR != 0)
                    ++m;
            }

            divs = n;
            size = m;
        }
        

        using opti_f = Node* (*)(Graph&, Node*, const std::vector<Node*>&);

        Node* opti_mat_mat_mul(Graph& graph, Node* node, const std::vector<Node*>& preds)
        {
            const std::size_t nm = node->len1;
            const std::size_t nn = node->len2;
            const std::size_t np = node->len3;

            std::size_t n;
            std::size_t m;

            if (nm > np) {
                elemwhise_size(nm, n, m);
            } else {
                elemwhise_size(np, n, m);
            }

            if (n < 2)
            {
                auto res = Node::op_mat_mat_mul(node->in1, node->in2, node->out1,
                    node->len1, node->len2, node->len3, preds);
                graph.add(res);
                return res;
            }

            std::vector<Node*> div_nodes;
            if (node->len1 > node->len2) {
                for (std::size_t i = 0; i < n - 1; ++i)
                    div_nodes.push_back(Node::op_mat_mat_mul(node->in1 + i * m * nn, node->in2,
                                node->out1 + i * m * np, m, nn, np, preds));

                    div_nodes.push_back(Node::op_mat_mat_mul(node->in1 + (n - 1) * m * nn, node->in2,
                                node->out1 + (n - 1) * m * np, nm - (n - 1) * m, nn, np, preds));
            } else {
                for (std::size_t i = 0; i < n - 1; ++i)
                    div_nodes.push_back(Node::op_mat_mat_mul(node->in1, node->in2 + i * m,
                                node->out1 + i * m * np, nm, nn, m, preds));

                    div_nodes.push_back(Node::op_mat_mat_mul(node->in1, node->in2 + (n - 1) * m,
                                node->out1 + (n - 1) * m * np, nm, nn, np - (n - 1) * m, preds));
            }

            for (auto n : div_nodes)
                    graph.add(n);
            
            auto res = Node::nop(div_nodes);
            graph.add(res);
            return res;
        }

        Node* opti_mat_rvect_add(Graph& graph, Node* node, const std::vector<Node*>& preds)
        {
            std::size_t n;
            std::size_t m;
            elemwhise_size(node->len1, n, m);

            if (n < 2)
            {
                auto res = Node::op_mat_rvect_add(node->in1, node->in2, node->out1,
                    node->len1, node->len2, preds);
                graph.add(res);
                return res;
            }

            const std::size_t nv = node->len2;

            std::vector<Node*> div_nodes;
            for (std::size_t i = 0; i < n - 1; ++i)
                div_nodes.push_back(Node::op_mat_rvect_add(node->in1 + (i * m * nv), node->in2,
                                                node->out1 + (i * m * nv), m, nv, preds));

            div_nodes.push_back(Node::op_mat_rvect_add(node->in1 + (n - 1) * m * nv, node->in2,
                node->out1 + (n - 1) * m * nv, node->len1 - ((n - 1) * m), nv, preds));

            for (auto n : div_nodes)
                graph.add(n);

            auto res = Node::nop(div_nodes);
            graph.add(res);
            return res;
        }

        Node* opti_sigmoid(Graph& graph, Node* node, const std::vector<Node*>& preds)
        {
            std::size_t n;
            std::size_t m;
            elemwhise_size(node->len1, n, m);

            if (n < 2)
            {
                auto res = Node::op_sigmoid(node->in1, node->out1,
                                            node->len1, preds);
                //res->use_simd = node->len1 % SIZE_DIVISOR == 0;
                    
                graph.add(res);
                return res;
            }

            const dbl_t* in = node->in1;
            dbl_t* out = node->out1;

            std::vector<Node*> div_nodes;
            for (std::size_t i = 0; i < n - 1; ++i)
                div_nodes.push_back(Node::op_sigmoid(in + i * m, out + i * m,
                                                     m, preds));

            div_nodes.push_back(Node::op_sigmoid(in + (n - 1) * m, out + (n - 1) * m,
                                                node->len1 - ((n - 1) * m), preds));

            for (auto n : div_nodes)
            {
                //n->use_simd = true;
                graph.add(n);
            }

            auto res = Node::nop(div_nodes);
            graph.add(res);
            return res;
        }

        Node* opti_mse(Graph& graph, Node* node, const std::vector<Node*>& preds)
        {
            auto res = Node::op_mse(node->in1, node->in2, node->out1,
                                    node->len1, node->len2, preds);
            graph.add(res);
            return res;
        }

        Node* opti_softmax(Graph& graph, Node* node, const std::vector<Node*>& preds)
        {
            std::size_t n;
            std::size_t m;
            elemwhise_size(node->len1, n, m);

            if (n < 2)
            {
                auto res = Node::op_softmax(node->in1, node->out1, node->len1, node->len2, preds);
                graph.add(res);
                return res;
            }

            std::size_t nv = node->len2;

            std::vector<Node*> div_nodes;
            for (std::size_t i = 0; i < n - 1; ++i)
                div_nodes.push_back(Node::op_softmax(node->in1 + (i * m * nv), node->out1 + (i * m * nv),
                                                                        m, nv, preds));

            div_nodes.push_back(Node::op_softmax(node->in1 + (n - 1) * m * nv,
                        node->out1 + (n - 1) * m * nv, node->len1 - ((n - 1) * m), nv, preds));

            for (auto n : div_nodes)
                graph.add(n);

            auto res = Node::nop(div_nodes);
            graph.add(res);
            return res;
        }

        Node* opti_log_softmax(Graph& graph, Node* node, const std::vector<Node*>& preds)
        {
            std::size_t n;
            std::size_t m;
            elemwhise_size(node->len1, n, m);

            if (n < 2)
            {
                auto res = Node::op_log_softmax(node->in1, node->out1, node->len1, node->len2, preds);
                graph.add(res);
                return res;
            }

            std::size_t nv = node->len2;

            std::vector<Node*> div_nodes;
            for (std::size_t i = 0; i < n - 1; ++i)
                div_nodes.push_back(Node::op_log_softmax(node->in1 + (i * m * nv),
                                            node->out1 + (i * m * nv), m, nv, preds));

            div_nodes.push_back(Node::op_log_softmax(node->in1 + (n - 1) * m * nv,
                                        node->out1 + (n - 1) * m * nv, node->len1 - ((n - 1) * m), nv, preds));

            for (auto n : div_nodes)
                graph.add(n);

            auto res = Node::nop(div_nodes);
            graph.add(res);
            return res;
        }

        Node* opti_softmax_cross_entropy(Graph& graph, Node* node, const std::vector<Node*>& preds)
        {
            auto res = Node::op_softmax_cross_entropy(node->in1, node->in2, node->out1,
                                                      node->len1, node->len2, preds);
            graph.add(res);
            return res;
        }

        Node* opti_conv2d(Graph& graph, Node* node, const std::vector<Node*>& preds)
        {
            auto res = Node::op_conv2d(node->in1, node->in2, node->intconst,
                                       node->int_cons1, node->int_cons2, node->out1,
                                       node->sizes1, node->sizes2, preds);
            graph.add(res);
            return res;
        }

        Node* opti_relu(Graph& graph, Node* node, const std::vector<Node*>& preds)
        {
            std::size_t n;
            std::size_t m;
            elemwhise_size(node->len1, n, m);

            if (n < 2)
            {
                auto res = Node::op_relu(node->in1, node->out1,
                                            node->len1, preds);
                graph.add(res);
                return res;
            }

            const dbl_t* in = node->in1;
            dbl_t* out = node->out1;

            std::vector<Node*> div_nodes;
            for (std::size_t i = 0; i < n - 1; ++i)
                div_nodes.push_back(Node::op_relu(in + i * m, out + i * m, m, preds));

            div_nodes.push_back(Node::op_relu(in + (n - 1) * m, out + (n - 1) * m,
                                                node->len1 - (n - 1) * m, preds));

            for (auto n : div_nodes)
                graph.add(n);

            auto res = Node::nop(div_nodes);
            graph.add(res);
            return res;
        }

        Node* opti_relu_leaky(Graph& graph, Node* node, const std::vector<Node*>& preds)
        {
            std::size_t n;
            std::size_t m;
            elemwhise_size(node->len1, n, m);

            if (n < 2)
            {
                auto res = Node::op_relu_leaky(node->in1, node->out1,
                                            node->len1, node->alpha_leaky, preds);
                graph.add(res);
                return res;
            }

            const dbl_t* in = node->in1;
            dbl_t* out = node->out1;

            std::vector<Node*> div_nodes;
            for (std::size_t i = 0; i < n - 1; ++i)
                div_nodes.push_back(Node::op_relu_leaky(in + i * m, out + i * m,
                                                     m, node->alpha_leaky, preds));

            div_nodes.push_back(Node::op_relu_leaky(in + (n - 1) * m, out + (n - 1) * m,
                                                 node->len1 - (n - 1) * m, node->alpha_leaky, preds));

            for (auto n : div_nodes)
                graph.add(n);

            auto res = Node::nop(div_nodes);
            graph.add(res);
            return res;
        }

        Node* opti_tanh(Graph& graph, Node* node, const std::vector<Node*>& preds)
        {
            std::size_t n;
            std::size_t m;
            elemwhise_size(node->len1, n, m);

            if (n < 2)
            {
                auto res = Node::op_tanh(node->in1, node->out1,
                                            node->len1, preds);
                graph.add(res);
                return res;
            }

            const dbl_t* in = node->in1;
            dbl_t* out = node->out1;

            std::vector<Node*> div_nodes;
            for (std::size_t i = 0; i < n - 1; ++i)
                div_nodes.push_back(Node::op_tanh(in + i * m, out + i * m,
                                                     m, preds));

            div_nodes.push_back(Node::op_tanh(in + (n - 1) * m, out + (n - 1) * m,
                                                    node->len1 - (n - 1) * m, preds));

            for (auto n : div_nodes)
                graph.add(n);

            auto res = Node::nop(div_nodes);
            graph.add(res);
            return res;
        }

        Node* opti_mse_grad(Graph& graph, Node* node, const std::vector<Node*>& preds)
        {
            std::size_t n;
            std::size_t m;
            elemwhise_size(node->len1, n, m);

            if (n < 2)
            {
                auto res = Node::op_mse_grad(node->in1, node->in2, node->out1,
                                                        node->len1, preds);
                graph.add(res);
                return res;
            }

            std::vector<Node*> div_nodes;
            for (std::size_t i = 0; i < n - 1; ++i)
                div_nodes.push_back(Node::op_mse_grad(node->in1 + i * m, node->in2 + i * m,
                                                            node->out1 + i * m, m, preds));

            div_nodes.push_back(Node::op_mse_grad(node->in1 + (n - 1) * m, node->in2 + (n - 1) * m,
                                            node->out1 + (n - 1) * m, node->len1 - (n - 1) * m, preds));

            for (auto n : div_nodes)
                graph.add(n);

            auto res = Node::nop(div_nodes);
            graph.add(res);
            return res;
        }

        Node* opti_sigmoid_grad(Graph& graph, Node* node, const std::vector<Node*>& preds)
        {
            std::size_t n;
            std::size_t m;
            elemwhise_size(node->len1, n, m);

            if (n < 2)
            {
                auto res = Node::op_sigmoid_grad(node->in1, node->in2, node->out1,
                                                        node->len1, preds);
                graph.add(res);
                return res;
            }

            std::vector<Node*> div_nodes;
            for (std::size_t i = 0; i < n - 1; ++i)
                div_nodes.push_back(Node::op_sigmoid_grad(node->in1 + i * m, node->in2 + i * m,
                                                            node->out1 + i * m, m, preds));

            div_nodes.push_back(Node::op_sigmoid_grad(node->in1 + (n - 1) * m, node->in2 + (n - 1) * m,
                                                node->out1 + (n - 1) * m, node->len1 - (n - 1) * m, preds));

            for (auto n : div_nodes)
                graph.add(n);

            auto res = Node::nop(div_nodes);
            graph.add(res);
            return res;
        }

        Node* opti_mat_mul_add(Graph& graph, Node* node, const std::vector<Node*>& preds)
        {
            auto res = Node::op_mat_mul_add(node->in1, node->in2, node->in3,
                                            node->out1, node->len1, node->len2, node->len3,
                                            preds);
            graph.add(res);
            return res;
        }

        Node* opti_tmat_mat_mul(Graph& graph, Node* node, const std::vector<Node*>& preds)
        {
            auto res = Node::op_tmat_mat_mul(node->in1, node->in2, node->out1,
                                             node->len1, node->len2, node->len3, preds);
            graph.add(res);
            return res;
        }

        Node* opti_mat_tmat_mul(Graph& graph, Node* node, const std::vector<Node*>& preds)
        {
            auto res = Node::op_mat_tmat_mul(node->in1, node->in2, node->out1,
                                             node->len1, node->len2, node->len3, preds);
            graph.add(res);
            return res;
        }

        Node* opti_mat_sum_rows(Graph& graph, Node* node, const std::vector<Node*>& preds)
        {
            auto res = Node::op_mat_sum_rows(node->in1, node->out1,
                                             node->len1, node->len2, preds);
            graph.add(res);
            return res;
        }

        Node* opti_mat_sum_cols(Graph& graph, Node* node, const std::vector<Node*>& preds)
        {
            auto res = Node::op_mat_sum_cols(node->in1, node->out1,
                                             node->len1, node->len2, preds);
            graph.add(res);
            return res;
        }

        Node* opti_softmax_cross_entropy_grad(Graph& graph, Node* node, const std::vector<Node*>& preds)
        {
            auto res = Node::op_softmax_cross_entropy_grad(node->in1, node->in2, node->out1,
                                                           node->len1, node->len2, preds);
            graph.add(res);
            return res;
        }

        Node* opti_relu_grad(Graph& graph, Node* node, const std::vector<Node*>& preds)
        {
            std::size_t n;
            std::size_t m;
            elemwhise_size(node->len1, n, m);

            if (n < 2)
            {
                auto res = Node::op_relu_grad(node->in1, node->in2, node->out1,
                                                        node->len1, preds);
                graph.add(res);
                return res;
            }

            std::vector<Node*> div_nodes;
            for (std::size_t i = 0; i < n - 1; ++i)
                div_nodes.push_back(Node::op_relu_grad(node->in1 + i * m, node->in2 + i * m,
                                                            node->out1 + i * m, m, preds));

            div_nodes.push_back(Node::op_relu_grad(node->in1 + (n - 1) * m, node->in2 + (n - 1) * m,
                                            node->out1 + (n - 1) * m, node->len1 - (n - 1) * m, preds));

            for (auto n : div_nodes)
                graph.add(n);

            auto res = Node::nop(div_nodes);
            graph.add(res);
            return res;
        }

        Node* opti_conv2d_bias_add(Graph& graph, Node* node, const std::vector<Node*>& preds)
        {
            auto res = Node::op_conv2d_bias_add(node->in1, node->in2, node->out1,
                                                node->sizes1, preds);
            graph.add(res);
            return res;
        }

        Node* opti_update(Graph& graph, Node* node, const std::vector<Node*>& preds)
        {
            std::size_t n;
            std::size_t m;
            elemwhise_size(node->len1, n, m);

            if (n < 2)
            {
                auto res = Node::op_update(node->out1, node->in1, node->in2,
                                                            node->len1, preds);
                graph.add(res);
                return res;
            }

            std::vector<Node*> div_nodes;
            for (std::size_t i = 0; i < n - 1; ++i)
                div_nodes.push_back(Node::op_update(node->out1 + i * m, node->in1 + i * m, node->in2, m, preds));

            div_nodes.push_back(Node::op_update(node->out1 + (n - 1) * m, node->in1 + (n - 1) * m,
                                                            node->in2, node->len1 - (n - 1) * m, preds));

            for (auto n : div_nodes)
                graph.add(n);

            auto res = Node::nop(div_nodes);
            graph.add(res);
            return res;
        }

        Node* opti_sigmoid_cross_entropy(Graph& graph, Node* node, const std::vector<Node*>& preds)
        {
            auto res = Node::op_sigmoid_cross_entropy(node->in1, node->in2, node->out1,
                                                      node->len1, preds);
            graph.add(res);
            return res;
        }

        Node* opti_sigmoid_cross_entropy_grad(Graph& graph, Node* node,
                                              const std::vector<Node*>& preds)
        {
            std::size_t n;
            std::size_t m;
            elemwhise_size(node->len1, n, m);

            if (n < 2)
            {
                auto res = Node::op_sigmoid_cross_entropy_grad(node->in1, node->in2, node->out1,
                                                        node->len1, preds);
                graph.add(res);
                return res;
            }

            std::vector<Node*> div_nodes;
            for (std::size_t i = 0; i < n - 1; ++i)
                div_nodes.push_back(Node::op_sigmoid_cross_entropy_grad(node->in1 + i * m, node->in2 + i * m,
                                                            node->out1 + i * m, m, preds));

            div_nodes.push_back(Node::op_sigmoid_cross_entropy_grad(node->in1 + (n - 1) * m, node->in2 + (n - 1) * m,
                                                                    node->out1 + (n - 1) * m, node->len1 - (n - 1) * m, preds));

            for (auto n : div_nodes)
                graph.add(n);

            auto res = Node::nop(div_nodes);
            graph.add(res);
            return res;
        }

        Node* opti_conv2d_input_grad(Graph& graph, Node* node, const std::vector<Node*>& preds)
        {
            int input_size[] = {0, node->intconst2[0], node->intconst2[1]};
            
            auto res = Node::op_conv2d_input_grad(node->in1, node->in2,
                                                  node->intconst, node->out1,
                                                  node->sizes1, node->sizes2,
                                                  input_size, preds);
            graph.add(res);
            return res;
        }

        Node* opti_conv2d_kernel_grad(Graph& graph, Node* node, const std::vector<Node*>& preds)
        {
            auto res = Node::op_conv2d_kernel_grad(node->in1, node->in2,
                                                   node->intconst, node->out1,
                                                   node->sizes1, node->sizes2,
                                                   node->intconst2, preds);
            graph.add(res);
            return res;
        }

        Node* opti_argmax_acc(Graph& graph, Node* node, const std::vector<Node*>& preds)
        {
            auto res = Node::op_argmax_acc(node->in1, node->in2, node->out1,
                                           node->len1, node->len2, preds);
            graph.add(res);
            return res;
        }

        Node* opti_moment_update(Graph& graph, Node* node, const std::vector<Node*>& preds)
        {
            std::size_t n;
            std::size_t m;
            elemwhise_size(node->len1, n, m);

            if (n < 2)
            {
                auto res = Node::op_moment_update(node->out1, node->in1, node->cons1,
                                                        node->cons2, node->len1, preds);
                graph.add(res);
                return res;
            }

            std::vector<Node*> div_nodes;
            for (std::size_t i = 0; i < n - 1; ++i)
                div_nodes.push_back(Node::op_moment_update(node->out1 + i * m, node->in1 + i * m,
                                                                node->cons1, node->cons2, m, preds));

            div_nodes.push_back(Node::op_moment_update(node->out1  + (n - 1) * m, node->in1  + (n - 1) * m,
                                                                node->cons1, node->cons2, node->len1 - (n - 1) * m, preds));

            for (auto n : div_nodes)
                graph.add(n);

            auto res = Node::nop(div_nodes);
            graph.add(res);
            return res;
        }

        Node* opti_moment_update2(Graph& graph, Node* node, const std::vector<Node*>& preds)
        {
            std::size_t n;
            std::size_t m;
            elemwhise_size(node->len1, n, m);

            if (n < 2)
            {
                auto res = Node::op_moment_update2(node->out1, node->in1, node->cons1,
                                                        node->cons2, node->len1, preds);
                graph.add(res);
                return res;
            }

            std::vector<Node*> div_nodes;
            for (std::size_t i = 0; i < n - 1; ++i)
                div_nodes.push_back(Node::op_moment_update2(node->out1 + i * m, node->in1 + i * m,
                                                                node->cons1, node->cons2, m, preds));

            div_nodes.push_back(Node::op_moment_update2(node->out1  + (n - 1) * m, node->in1  + (n - 1) * m,
                                                                node->cons1, node->cons2, node->len1 - (n - 1) * m, preds));

            for (auto n : div_nodes)
                graph.add(n);

            auto res = Node::nop(div_nodes);
            graph.add(res);
            return res;
        }

        Node* opti_adam_update(Graph& graph, Node* node, const std::vector<Node*>& preds)
        {
            std::size_t n;
            std::size_t m;
            elemwhise_size(node->len1, n, m);

            if (n < 2)
            {
                auto res = Node::op_adam_update(node->out1, node->out2,
                                                node->in1, node->in2,
                                                node->cons1, node->cons2,
                                                node->cons3, node->cons4,
                                                node->len1, preds);
                graph.add(res);
                return res;
            }

            std::vector<Node*> div_nodes;
            for (std::size_t i = 0; i < n - 1; ++i)
                div_nodes.push_back(Node::op_adam_update(node->out1 + i * m, node->out2 + i * m,
                                                        node->in1 + i * m, node->in2 + i * m,
                                                        node->cons1, node->cons2,
                                                        node->cons3, node->cons4,
                                                        m, preds));

            div_nodes.push_back(Node::op_adam_update(node->out1 + (n - 1) * m, node->out2 + (n - 1) * m,
                                                        node->in1 + (n - 1) * m, node->in2 + (n - 1) * m,
                                                        node->cons1, node->cons2,
                                                        node->cons3, node->cons4,
                                                        node->len1 - (n - 1) * m, preds));

            for (auto n : div_nodes)
                graph.add(n);

            auto res = Node::nop(div_nodes);
            graph.add(res);
            return res;
        }

        Node* opti_leaky_relu_grad(Graph& graph, Node* node, const std::vector<Node*>& preds)
        {
            std::size_t n;
            std::size_t m;
            elemwhise_size(node->len1, n, m);

            if (n < 2)
            {
                auto res = Node::op_leaky_relu_grad(node->in1, node->in2, node->out1,
                                                    node->cons1, node->len1, preds);
                graph.add(res);
                return res;
            }

            std::vector<Node*> div_nodes;
            for (std::size_t i = 0; i < n - 1; ++i)
                div_nodes.push_back(Node::op_leaky_relu_grad(node->in1 + i * n, node->in2 + i * n,
                                                    node->out1 + i * n, node->cons1, m, preds));

            div_nodes.push_back(Node::op_leaky_relu_grad(node->in1 + (n - 1) * m, node->in2 + (n - 1) * m,
                                                    node->out1 + (n - 1) * m, node->cons1, node->len1 - (n - 1) * m, preds));

            for (auto n : div_nodes)
                graph.add(n);

            auto res = Node::nop(div_nodes);
            graph.add(res);
            return res;
        }

        Node* opti_conv2d_bias_add_grad(Graph& graph, Node* node, const std::vector<Node*>& preds)
        {
            auto res = Node::op_conv2d_bias_add_grad(node->in1, node->sizes1,
                                                     node->out1, preds);
            graph.add(res);
            return res;
        }

        Node* opti_tanh_grad(Graph& graph, Node* node, const std::vector<Node*>& preds)
        {
            std::size_t n;
            std::size_t m;
            elemwhise_size(node->len1, n, m);

            if (n < 2)
            {
                auto res = Node::op_tanh_grad(node->in1, node->in2, node->out1, node->len1, preds);
                graph.add(res);
                return res;
            }

            std::vector<Node*> div_nodes;
            for (std::size_t i = 0; i < n - 1; ++i)
                div_nodes.push_back(Node::op_tanh_grad(node->in1 + i * n, node->in2 + i * n,
                                                    node->out1 + i * n, m, preds));

            div_nodes.push_back(Node::op_tanh_grad(node->in1 + (n - 1) * m, node->in2 + (n - 1) * m,
                                                    node->out1 + (n - 1) * m, node->len1 - (n - 1) * m, preds));

            for (auto n : div_nodes)
                graph.add(n);

            auto res = Node::nop(div_nodes);
            graph.add(res);
            return res;
        }

        Node* opti_conv2d_transpose(Graph& graph, Node* node, const std::vector<Node*>& preds)
        {
            auto res = Node::op_conv2d_transpose(node->in1, node->in2,
                                                 node->sizes1, node->intconst,
                                                 node->out1, node->sizes2,
                                                 node->sizes3, preds);
            graph.add(res);
            return res;
        }

        Node* opti_conv2d_transpose_input_grad(Graph& graph, Node* node,
                                               const std::vector<Node*>& preds)
        {
            auto res = Node::op_conv2d_transpose_input_grad(node->in1, node->in2,
                                                            node->intconst, node->out1,
                                                            node->sizes1, node->sizes2,
                                                            node->intconst2, preds);
            graph.add(res);
            return res;
        }

        Node* opti_conv2d_transpose_kernel_grad(Graph& graph, Node* node,
                                                const std::vector<Node*>& preds)
        {
            auto res = Node::op_conv2d_transpose_kernel_grad(node->in1, node->in2,
                                                             node->intconst, node->out1,
                                                             node->sizes1, node->sizes2,
                                                             node->sizes3,
                                                             preds);
            graph.add(res);
            return res;
        }

        Node* opti_add(Graph& graph, Node* node, const std::vector<Node*>& preds)
        {
            std::size_t n;
            std::size_t m;
            elemwhise_size(node->len1, n, m);

            if (n < 2)
            {
                auto res = Node::op_add(node->in1, node->in2, node->out1,
                                        node->len1, preds);
                //res->use_simd = node->len1 % SIZE_DIVISOR == 0;
                    
                graph.add(res);
                return res;
            }

            const dbl_t* in1 = node->in1;
            const dbl_t* in2 = node->in2;
            dbl_t* out = node->out1;

            std::vector<Node*> div_nodes;
            for (std::size_t i = 0; i < n - 1; ++i)
                div_nodes.push_back(Node::op_add(in1 + i * m, in2 + i * m,out + i * m,
                                                 m, preds));

            div_nodes.push_back(Node::op_add(in1 + (n - 1) * m, in2 + (n - 1) * m, out + (n - 1) * m,
                                             node->len1 - ((n - 1) * m), preds));

            for (auto n : div_nodes)
            {
                //n->use_simd = true;
                graph.add(n);
            }

            auto res = Node::nop(div_nodes);
            graph.add(res);
            return res;
        }


        opti_f optis_list[64] = {
            opti_mat_mat_mul,
            opti_mat_rvect_add,
            opti_sigmoid,
            opti_mse,
            opti_softmax,
            opti_log_softmax,
            opti_softmax_cross_entropy,
            opti_conv2d,
            opti_relu,
            opti_relu_leaky,
            opti_tanh,
            opti_mse_grad,
            opti_sigmoid_grad,
            opti_mat_mul_add,
            opti_tmat_mat_mul,
            opti_mat_tmat_mul,
            opti_mat_sum_rows,
            opti_mat_sum_cols,
            opti_softmax_cross_entropy_grad,
            opti_relu_grad,
            opti_conv2d_bias_add,
            opti_update,
            opti_sigmoid_cross_entropy,
            opti_sigmoid_cross_entropy_grad,
            opti_conv2d_input_grad,
            opti_conv2d_kernel_grad,
            opti_argmax_acc,
            opti_moment_update,
            opti_moment_update2,
            opti_adam_update,
            opti_leaky_relu_grad,
            opti_conv2d_bias_add_grad,
            opti_tanh_grad,
            opti_conv2d_transpose,
            opti_conv2d_transpose_input_grad,
            opti_conv2d_transpose_kernel_grad,
            opti_add
        };
        
    }

    namespace
    {

        Node* opti_node(Node* node, Graph& graph, std::map<Node*, Node*>& optis)
        {
            auto it = optis.find(node);
            if (it != optis.end())
                return it->second;

            std::vector<Node*> preds;
            for (auto n : node->preds)
                preds.push_back(opti_node(n, graph, optis));

            Node* res;
            if (node->type == Node::OP_NOP)
            {
                res = Node::nop(preds);
                graph.add(res);
            }
            else
                res = optis_list[node->type](graph, node, preds);

            optis[node] = res;
            return res;
        }
        
    }

    Graph* optimize(const Graph& graph, std::map<Node*, Node*>& optis)
    {
        optis.clear();
        auto graph_opti = new Graph;
        for (auto node : graph.nodes())
            opti_node(node, *graph_opti, optis);
        return graph_opti;
    }

    std::vector<Node*> convert_nodes(const std::vector<Node*> nodes,
                                     const std::map<Node*, Node*>& optis)
    {
        std::vector<Node*> res;
        for (auto n : nodes)
        {
            auto it = optis.find(n);
            assert(it != optis.end());
            res.push_back(it->second);
        }
        return res;
    }
    
}

	.text
	.file	"optimizer.hip"
                                        # Start of file scope inline assembly
	.globl	_ZSt21ios_base_library_initv

                                        # End of file scope inline assembly
	.globl	_ZN2rt8optimizeERKNS_5GraphERSt3mapIPNS_4NodeES5_St4lessIS5_ESaISt4pairIKS5_S5_EEE # -- Begin function _ZN2rt8optimizeERKNS_5GraphERSt3mapIPNS_4NodeES5_St4lessIS5_ESaISt4pairIKS5_S5_EEE
	.type	_ZN2rt8optimizeERKNS_5GraphERSt3mapIPNS_4NodeES5_St4lessIS5_ESaISt4pairIKS5_S5_EEE,@function
_ZN2rt8optimizeERKNS_5GraphERSt3mapIPNS_4NodeES5_St4lessIS5_ESaISt4pairIKS5_S5_EEE: # @_ZN2rt8optimizeERKNS_5GraphERSt3mapIPNS_4NodeES5_St4lessIS5_ESaISt4pairIKS5_S5_EEE
.Lfunc_begin0:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception0
# %bb.0:
	pushq	%r15
	.cfi_def_cfa_offset 16
	pushq	%r14
	.cfi_def_cfa_offset 24
	pushq	%r12
	.cfi_def_cfa_offset 32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	subq	$24, %rsp
	.cfi_def_cfa_offset 64
	.cfi_offset %rbx, -40
	.cfi_offset %r12, -32
	.cfi_offset %r14, -24
	.cfi_offset %r15, -16
	movq	%rsi, %r14
	movq	%rdi, %r15
	movq	%rsi, %rdi
	callq	_ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE5clearEv
	movl	$24, %edi
	callq	_Znwm
	movq	%rax, %rbx
	xorps	%xmm0, %xmm0
	movups	%xmm0, (%rax)
	movq	$0, 16(%rax)
	movq	%rsp, %r12
	movq	%r12, %rdi
	movq	%r15, %rsi
	callq	_ZNK2rt5Graph5nodesEv
	movq	(%r12), %r15
	movq	8(%r12), %r12
	cmpq	%r12, %r15
	je	.LBB0_4
.LBB0_1:                                # %.lr.ph
                                        # =>This Inner Loop Header: Depth=1
	movq	(%r15), %rdi
.Ltmp0:
	movq	%rbx, %rsi
	movq	%r14, %rdx
	callq	_ZN2rt12_GLOBAL__N_19opti_nodeEPNS_4NodeERNS_5GraphERSt3mapIS2_S2_St4lessIS2_ESaISt4pairIKS2_S2_EEE
.Ltmp1:
# %bb.2:                                #   in Loop: Header=BB0_1 Depth=1
	addq	$8, %r15
	cmpq	%r12, %r15
	jne	.LBB0_1
# %bb.3:                                # %._crit_edge.loopexit
	movq	(%rsp), %r15
.LBB0_4:                                # %._crit_edge
	testq	%r15, %r15
	je	.LBB0_6
# %bb.5:
	movq	%r15, %rdi
	callq	_ZdlPv
.LBB0_6:                                # %_ZNSt6vectorIPN2rt4NodeESaIS2_EED2Ev.exit
	movq	%rbx, %rax
	addq	$24, %rsp
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	retq
.LBB0_7:
	.cfi_def_cfa_offset 64
.Ltmp2:
	movq	%rax, %rbx
	movq	(%rsp), %rdi
	testq	%rdi, %rdi
	je	.LBB0_9
# %bb.8:
	callq	_ZdlPv
.LBB0_9:                                # %_ZNSt6vectorIPN2rt4NodeESaIS2_EED2Ev.exit10
	movq	%rbx, %rdi
	callq	_Unwind_Resume@PLT
.Lfunc_end0:
	.size	_ZN2rt8optimizeERKNS_5GraphERSt3mapIPNS_4NodeES5_St4lessIS5_ESaISt4pairIKS5_S5_EEE, .Lfunc_end0-_ZN2rt8optimizeERKNS_5GraphERSt3mapIPNS_4NodeES5_St4lessIS5_ESaISt4pairIKS5_S5_EEE
	.cfi_endproc
	.section	.gcc_except_table,"a",@progbits
	.p2align	2, 0x0
GCC_except_table0:
.Lexception0:
	.byte	255                             # @LPStart Encoding = omit
	.byte	255                             # @TType Encoding = omit
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end0-.Lcst_begin0
.Lcst_begin0:
	.uleb128 .Lfunc_begin0-.Lfunc_begin0    # >> Call Site 1 <<
	.uleb128 .Ltmp0-.Lfunc_begin0           #   Call between .Lfunc_begin0 and .Ltmp0
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp0-.Lfunc_begin0           # >> Call Site 2 <<
	.uleb128 .Ltmp1-.Ltmp0                  #   Call between .Ltmp0 and .Ltmp1
	.uleb128 .Ltmp2-.Lfunc_begin0           #     jumps to .Ltmp2
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp1-.Lfunc_begin0           # >> Call Site 3 <<
	.uleb128 .Lfunc_end0-.Ltmp1             #   Call between .Ltmp1 and .Lfunc_end0
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end0:
	.p2align	2, 0x0
                                        # -- End function
	.text
	.type	_ZN2rt12_GLOBAL__N_19opti_nodeEPNS_4NodeERNS_5GraphERSt3mapIS2_S2_St4lessIS2_ESaISt4pairIKS2_S2_EEE,@function # -- Begin function _ZN2rt12_GLOBAL__N_19opti_nodeEPNS_4NodeERNS_5GraphERSt3mapIS2_S2_St4lessIS2_ESaISt4pairIKS2_S2_EEE
_ZN2rt12_GLOBAL__N_19opti_nodeEPNS_4NodeERNS_5GraphERSt3mapIS2_S2_St4lessIS2_ESaISt4pairIKS2_S2_EEE: # @_ZN2rt12_GLOBAL__N_19opti_nodeEPNS_4NodeERNS_5GraphERSt3mapIS2_S2_St4lessIS2_ESaISt4pairIKS2_S2_EEE
.Lfunc_begin1:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception1
# %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	pushq	%r15
	.cfi_def_cfa_offset 24
	pushq	%r14
	.cfi_def_cfa_offset 32
	pushq	%r13
	.cfi_def_cfa_offset 40
	pushq	%r12
	.cfi_def_cfa_offset 48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	subq	$56, %rsp
	.cfi_def_cfa_offset 112
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	.cfi_offset %rbp, -16
	movq	%rsi, %r14
	movq	%rdi, %r15
	movq	%rdi, 48(%rsp)
	movq	%rdx, 8(%rsp)                   # 8-byte Spill
	movq	16(%rdx), %rcx
	testq	%rcx, %rcx
	je	.LBB1_7
# %bb.1:                                # %.lr.ph.i.i.i.preheader
	movq	8(%rsp), %rax                   # 8-byte Reload
	leaq	8(%rax), %rdx
	movq	%rdx, %rax
.LBB1_2:                                # %.lr.ph.i.i.i
                                        # =>This Inner Loop Header: Depth=1
	xorl	%esi, %esi
	cmpq	%r15, 32(%rcx)
	setb	%sil
	cmovaeq	%rcx, %rax
	movq	16(%rcx,%rsi,8), %rcx
	testq	%rcx, %rcx
	jne	.LBB1_2
# %bb.3:                                # %_ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE14_M_lower_boundEPSt13_Rb_tree_nodeIS5_EPSt18_Rb_tree_node_baseRS4_.exit.i.i
	cmpq	%rdx, %rax
	je	.LBB1_7
# %bb.4:                                # %_ZNSt3mapIPN2rt4NodeES2_St4lessIS2_ESaISt4pairIKS2_S2_EEE4findERS6_.exit
	cmpq	%r15, 32(%rax)
	jbe	.LBB1_5
.LBB1_7:                                # %_ZNSt3mapIPN2rt4NodeES2_St4lessIS2_ESaISt4pairIKS2_S2_EEE4findERS6_.exit.thread
	xorps	%xmm0, %xmm0
	movaps	%xmm0, 16(%rsp)
	movq	$0, 32(%rsp)
	movq	8(%r15), %rbp
	movq	16(%r15), %rbx
	cmpq	%rbx, %rbp
	je	.LBB1_12
# %bb.8:
	leaq	16(%rsp), %r12
	leaq	40(%rsp), %r13
.LBB1_9:                                # %.lr.ph
                                        # =>This Inner Loop Header: Depth=1
	movq	(%rbp), %rdi
.Ltmp3:
	movq	%r14, %rsi
	movq	8(%rsp), %rdx                   # 8-byte Reload
	callq	_ZN2rt12_GLOBAL__N_19opti_nodeEPNS_4NodeERNS_5GraphERSt3mapIS2_S2_St4lessIS2_ESaISt4pairIKS2_S2_EEE
.Ltmp4:
# %bb.10:                               #   in Loop: Header=BB1_9 Depth=1
	movq	%rax, 40(%rsp)
.Ltmp5:
	movq	%r12, %rdi
	movq	%r13, %rsi
	callq	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_
.Ltmp6:
# %bb.11:                               # %_ZNSt6vectorIPN2rt4NodeESaIS2_EE9push_backEOS2_.exit
                                        #   in Loop: Header=BB1_9 Depth=1
	addq	$8, %rbp
	cmpq	%rbx, %rbp
	jne	.LBB1_9
.LBB1_12:                               # %._crit_edge
	movslq	(%r15), %rax
	cmpq	$1000, %rax                     # imm = 0x3E8
	jne	.LBB1_16
# %bb.13:
.Ltmp10:
	leaq	16(%rsp), %rdi
	callq	_ZN2rt4Node3nopERKSt6vectorIPS0_SaIS2_EE
.Ltmp11:
# %bb.14:
.Ltmp12:
	movq	%rax, %r15
	movq	%r14, %rdi
	movq	%rax, %rsi
	callq	_ZN2rt5Graph3addEPNS_4NodeE
.Ltmp13:
	jmp	.LBB1_18
.LBB1_16:
.Ltmp8:
	leaq	16(%rsp), %rdx
	movq	%r14, %rdi
	movq	%r15, %rsi
	callq	*_ZN2rt12_GLOBAL__N_110optis_listE(,%rax,8)
.Ltmp9:
# %bb.17:
	movq	%rax, %r15
.LBB1_18:
.Ltmp14:
	leaq	48(%rsp), %rsi
	movq	8(%rsp), %rdi                   # 8-byte Reload
	callq	_ZNSt3mapIPN2rt4NodeES2_St4lessIS2_ESaISt4pairIKS2_S2_EEEixERS6_
.Ltmp15:
# %bb.19:
	movq	%r15, (%rax)
	movq	16(%rsp), %rdi
	testq	%rdi, %rdi
	je	.LBB1_6
# %bb.20:
	callq	_ZdlPv
	jmp	.LBB1_6
.LBB1_5:
	movq	40(%rax), %r15
.LBB1_6:
	movq	%r15, %rax
	addq	$56, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%r12
	.cfi_def_cfa_offset 40
	popq	%r13
	.cfi_def_cfa_offset 32
	popq	%r14
	.cfi_def_cfa_offset 24
	popq	%r15
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	retq
.LBB1_15:
	.cfi_def_cfa_offset 112
.Ltmp16:
	jmp	.LBB1_22
.LBB1_21:
.Ltmp7:
.LBB1_22:
	movq	%rax, %rbx
	movq	16(%rsp), %rdi
	testq	%rdi, %rdi
	je	.LBB1_24
# %bb.23:
	callq	_ZdlPv
.LBB1_24:                               # %_ZNSt6vectorIPN2rt4NodeESaIS2_EED2Ev.exit22
	movq	%rbx, %rdi
	callq	_Unwind_Resume@PLT
.Lfunc_end1:
	.size	_ZN2rt12_GLOBAL__N_19opti_nodeEPNS_4NodeERNS_5GraphERSt3mapIS2_S2_St4lessIS2_ESaISt4pairIKS2_S2_EEE, .Lfunc_end1-_ZN2rt12_GLOBAL__N_19opti_nodeEPNS_4NodeERNS_5GraphERSt3mapIS2_S2_St4lessIS2_ESaISt4pairIKS2_S2_EEE
	.cfi_endproc
	.section	.gcc_except_table,"a",@progbits
	.p2align	2, 0x0
GCC_except_table1:
.Lexception1:
	.byte	255                             # @LPStart Encoding = omit
	.byte	255                             # @TType Encoding = omit
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end1-.Lcst_begin1
.Lcst_begin1:
	.uleb128 .Ltmp3-.Lfunc_begin1           # >> Call Site 1 <<
	.uleb128 .Ltmp6-.Ltmp3                  #   Call between .Ltmp3 and .Ltmp6
	.uleb128 .Ltmp7-.Lfunc_begin1           #     jumps to .Ltmp7
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp10-.Lfunc_begin1          # >> Call Site 2 <<
	.uleb128 .Ltmp15-.Ltmp10                #   Call between .Ltmp10 and .Ltmp15
	.uleb128 .Ltmp16-.Lfunc_begin1          #     jumps to .Ltmp16
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp15-.Lfunc_begin1          # >> Call Site 3 <<
	.uleb128 .Lfunc_end1-.Ltmp15            #   Call between .Ltmp15 and .Lfunc_end1
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end1:
	.p2align	2, 0x0
                                        # -- End function
	.text
	.globl	_ZN2rt13convert_nodesESt6vectorIPNS_4NodeESaIS2_EERKSt3mapIS2_S2_St4lessIS2_ESaISt4pairIKS2_S2_EEE # -- Begin function _ZN2rt13convert_nodesESt6vectorIPNS_4NodeESaIS2_EERKSt3mapIS2_S2_St4lessIS2_ESaISt4pairIKS2_S2_EEE
	.type	_ZN2rt13convert_nodesESt6vectorIPNS_4NodeESaIS2_EERKSt3mapIS2_S2_St4lessIS2_ESaISt4pairIKS2_S2_EEE,@function
_ZN2rt13convert_nodesESt6vectorIPNS_4NodeESaIS2_EERKSt3mapIS2_S2_St4lessIS2_ESaISt4pairIKS2_S2_EEE: # @_ZN2rt13convert_nodesESt6vectorIPNS_4NodeESaIS2_EERKSt3mapIS2_S2_St4lessIS2_ESaISt4pairIKS2_S2_EEE
.Lfunc_begin2:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception2
# %bb.0:
	pushq	%r15
	.cfi_def_cfa_offset 16
	pushq	%r14
	.cfi_def_cfa_offset 24
	pushq	%r13
	.cfi_def_cfa_offset 32
	pushq	%r12
	.cfi_def_cfa_offset 40
	pushq	%rbx
	.cfi_def_cfa_offset 48
	.cfi_offset %rbx, -48
	.cfi_offset %r12, -40
	.cfi_offset %r13, -32
	.cfi_offset %r14, -24
	.cfi_offset %r15, -16
	movq	%rdi, %rbx
	xorps	%xmm0, %xmm0
	movups	%xmm0, (%rdi)
	movq	$0, 16(%rdi)
	movq	(%rsi), %r15
	movq	8(%rsi), %r12
	cmpq	%r12, %r15
	je	.LBB2_11
# %bb.1:                                # %.lr.ph
	movq	%rdx, %r14
	leaq	8(%rdx), %r13
.LBB2_2:                                # =>This Loop Header: Depth=1
                                        #     Child Loop BB2_4 Depth 2
	movq	16(%r14), %rsi
	movq	%r13, %rdx
	testq	%rsi, %rsi
	je	.LBB2_7
# %bb.3:                                # %.lr.ph.i.i.i.preheader
                                        #   in Loop: Header=BB2_2 Depth=1
	movq	(%r15), %rcx
	movq	%r13, %rax
.LBB2_4:                                # %.lr.ph.i.i.i
                                        #   Parent Loop BB2_2 Depth=1
                                        # =>  This Inner Loop Header: Depth=2
	xorl	%edx, %edx
	cmpq	%rcx, 32(%rsi)
	setb	%dl
	cmovaeq	%rsi, %rax
	movq	16(%rsi,%rdx,8), %rsi
	testq	%rsi, %rsi
	jne	.LBB2_4
# %bb.5:                                # %_ZNKSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE14_M_lower_boundEPKSt13_Rb_tree_nodeIS5_EPKSt18_Rb_tree_node_baseRS4_.exit.i.i
                                        #   in Loop: Header=BB2_2 Depth=1
	movq	%r13, %rdx
	cmpq	%r13, %rax
	je	.LBB2_7
# %bb.6:                                #   in Loop: Header=BB2_2 Depth=1
	cmpq	32(%rax), %rcx
	cmovbq	%r13, %rax
	movq	%rax, %rdx
.LBB2_7:                                # %_ZNKSt3mapIPN2rt4NodeES2_St4lessIS2_ESaISt4pairIKS2_S2_EEE4findERS6_.exit
                                        #   in Loop: Header=BB2_2 Depth=1
	addq	$40, %rdx
	movq	8(%rbx), %rsi
	cmpq	16(%rbx), %rsi
	je	.LBB2_9
# %bb.8:                                #   in Loop: Header=BB2_2 Depth=1
	movq	(%rdx), %rax
	movq	%rax, (%rsi)
	addq	$8, 8(%rbx)
	jmp	.LBB2_10
.LBB2_9:                                #   in Loop: Header=BB2_2 Depth=1
.Ltmp17:
	movq	%rbx, %rdi
	callq	_ZNSt6vectorIPN2rt4NodeESaIS2_EE17_M_realloc_insertIJRKS2_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S4_EEDpOT_
.Ltmp18:
.LBB2_10:                               # %_ZNSt6vectorIPN2rt4NodeESaIS2_EE9push_backERKS2_.exit
                                        #   in Loop: Header=BB2_2 Depth=1
	addq	$8, %r15
	cmpq	%r12, %r15
	jne	.LBB2_2
.LBB2_11:                               # %._crit_edge
	movq	%rbx, %rax
	popq	%rbx
	.cfi_def_cfa_offset 40
	popq	%r12
	.cfi_def_cfa_offset 32
	popq	%r13
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	retq
.LBB2_12:
	.cfi_def_cfa_offset 48
.Ltmp19:
	movq	%rax, %r14
	movq	(%rbx), %rdi
	testq	%rdi, %rdi
	je	.LBB2_14
# %bb.13:
	callq	_ZdlPv
.LBB2_14:                               # %_ZNSt6vectorIPN2rt4NodeESaIS2_EED2Ev.exit
	movq	%r14, %rdi
	callq	_Unwind_Resume@PLT
.Lfunc_end2:
	.size	_ZN2rt13convert_nodesESt6vectorIPNS_4NodeESaIS2_EERKSt3mapIS2_S2_St4lessIS2_ESaISt4pairIKS2_S2_EEE, .Lfunc_end2-_ZN2rt13convert_nodesESt6vectorIPNS_4NodeESaIS2_EERKSt3mapIS2_S2_St4lessIS2_ESaISt4pairIKS2_S2_EEE
	.cfi_endproc
	.section	.gcc_except_table,"a",@progbits
	.p2align	2, 0x0
GCC_except_table2:
.Lexception2:
	.byte	255                             # @LPStart Encoding = omit
	.byte	255                             # @TType Encoding = omit
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end2-.Lcst_begin2
.Lcst_begin2:
	.uleb128 .Ltmp17-.Lfunc_begin2          # >> Call Site 1 <<
	.uleb128 .Ltmp18-.Ltmp17                #   Call between .Ltmp17 and .Ltmp18
	.uleb128 .Ltmp19-.Lfunc_begin2          #     jumps to .Ltmp19
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp18-.Lfunc_begin2          # >> Call Site 2 <<
	.uleb128 .Lfunc_end2-.Ltmp18            #   Call between .Ltmp18 and .Lfunc_end2
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end2:
	.p2align	2, 0x0
                                        # -- End function
	.section	.text._ZNSt3mapIPN2rt4NodeES2_St4lessIS2_ESaISt4pairIKS2_S2_EEEixERS6_,"axG",@progbits,_ZNSt3mapIPN2rt4NodeES2_St4lessIS2_ESaISt4pairIKS2_S2_EEEixERS6_,comdat
	.weak	_ZNSt3mapIPN2rt4NodeES2_St4lessIS2_ESaISt4pairIKS2_S2_EEEixERS6_ # -- Begin function _ZNSt3mapIPN2rt4NodeES2_St4lessIS2_ESaISt4pairIKS2_S2_EEEixERS6_
	.p2align	1, 0x90
	.type	_ZNSt3mapIPN2rt4NodeES2_St4lessIS2_ESaISt4pairIKS2_S2_EEEixERS6_,@function
_ZNSt3mapIPN2rt4NodeES2_St4lessIS2_ESaISt4pairIKS2_S2_EEEixERS6_: # @_ZNSt3mapIPN2rt4NodeES2_St4lessIS2_ESaISt4pairIKS2_S2_EEEixERS6_
	.cfi_startproc
# %bb.0:
	subq	$24, %rsp
	.cfi_def_cfa_offset 32
	movq	%rsi, %rdx
	movq	16(%rdi), %r8
	leaq	8(%rdi), %rsi
	testq	%r8, %r8
	je	.LBB3_5
# %bb.1:                                # %.lr.ph.i.i.i
	movq	(%rdx), %rcx
	movq	%rsi, %rax
.LBB3_2:                                # =>This Inner Loop Header: Depth=1
	xorl	%r9d, %r9d
	cmpq	%rcx, 32(%r8)
	setb	%r9b
	cmovaeq	%r8, %rax
	movq	16(%r8,%r9,8), %r8
	testq	%r8, %r8
	jne	.LBB3_2
# %bb.3:                                # %_ZNSt3mapIPN2rt4NodeES2_St4lessIS2_ESaISt4pairIKS2_S2_EEE11lower_boundERS6_.exit
	cmpq	%rsi, %rax
	je	.LBB3_5
# %bb.4:
	movq	%rax, %rsi
	cmpq	32(%rax), %rcx
	jae	.LBB3_6
.LBB3_5:                                # %.critedge
	leaq	16(%rsp), %rcx
	movq	%rdx, (%rcx)
	leaq	15(%rsp), %r8
	movl	$_ZSt19piecewise_construct, %edx
	callq	_ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE22_M_emplace_hint_uniqueIJRKSt21piecewise_construct_tSt5tupleIJRS4_EESG_IJEEEEESt17_Rb_tree_iteratorIS5_ESt23_Rb_tree_const_iteratorIS5_EDpOT_
.LBB3_6:
	addq	$40, %rax
	addq	$24, %rsp
	.cfi_def_cfa_offset 8
	retq
.Lfunc_end3:
	.size	_ZNSt3mapIPN2rt4NodeES2_St4lessIS2_ESaISt4pairIKS2_S2_EEEixERS6_, .Lfunc_end3-_ZNSt3mapIPN2rt4NodeES2_St4lessIS2_ESaISt4pairIKS2_S2_EEEixERS6_
	.cfi_endproc
                                        # -- End function
	.section	.text.__clang_call_terminate,"axG",@progbits,__clang_call_terminate,comdat
	.hidden	__clang_call_terminate          # -- Begin function __clang_call_terminate
	.weak	__clang_call_terminate
	.type	__clang_call_terminate,@function
__clang_call_terminate:                 # @__clang_call_terminate
	.cfi_startproc
# %bb.0:
	pushq	%rax
	.cfi_def_cfa_offset 16
	callq	__cxa_begin_catch
	callq	_ZSt9terminatev
.Lfunc_end4:
	.size	__clang_call_terminate, .Lfunc_end4-__clang_call_terminate
	.cfi_endproc
                                        # -- End function
	.section	.text._ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_,"axG",@progbits,_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_,comdat
	.weak	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_ # -- Begin function _ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_
	.p2align	1, 0x90
	.type	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_,@function
_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_: # @_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_
	.cfi_startproc
# %bb.0:
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset %rbx, -16
	movq	%rsi, %rdx
	movq	%rdi, %rbx
	movq	8(%rdi), %rsi
	cmpq	16(%rdi), %rsi
	je	.LBB5_2
# %bb.1:
	movq	(%rdx), %rax
	movq	%rax, (%rsi)
	movq	8(%rbx), %rax
	addq	$8, %rax
	movq	%rax, 8(%rbx)
	jmp	.LBB5_3
.LBB5_2:
	movq	%rbx, %rdi
	callq	_ZNSt6vectorIPN2rt4NodeESaIS2_EE17_M_realloc_insertIJS2_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S4_EEDpOT_
	movq	8(%rbx), %rax
.LBB5_3:
	addq	$-8, %rax
	popq	%rbx
	.cfi_def_cfa_offset 8
	retq
.Lfunc_end5:
	.size	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_, .Lfunc_end5-_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_
	.cfi_endproc
                                        # -- End function
	.section	.text._ZNSt6vectorIPN2rt4NodeESaIS2_EE17_M_realloc_insertIJS2_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S4_EEDpOT_,"axG",@progbits,_ZNSt6vectorIPN2rt4NodeESaIS2_EE17_M_realloc_insertIJS2_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S4_EEDpOT_,comdat
	.weak	_ZNSt6vectorIPN2rt4NodeESaIS2_EE17_M_realloc_insertIJS2_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S4_EEDpOT_ # -- Begin function _ZNSt6vectorIPN2rt4NodeESaIS2_EE17_M_realloc_insertIJS2_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S4_EEDpOT_
	.p2align	1, 0x90
	.type	_ZNSt6vectorIPN2rt4NodeESaIS2_EE17_M_realloc_insertIJS2_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S4_EEDpOT_,@function
_ZNSt6vectorIPN2rt4NodeESaIS2_EE17_M_realloc_insertIJS2_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S4_EEDpOT_: # @_ZNSt6vectorIPN2rt4NodeESaIS2_EE17_M_realloc_insertIJS2_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S4_EEDpOT_
	.cfi_startproc
# %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	pushq	%r15
	.cfi_def_cfa_offset 24
	pushq	%r14
	.cfi_def_cfa_offset 32
	pushq	%r13
	.cfi_def_cfa_offset 40
	pushq	%r12
	.cfi_def_cfa_offset 48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	subq	$24, %rsp
	.cfi_def_cfa_offset 80
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	.cfi_offset %rbp, -16
	movq	%rdx, (%rsp)                    # 8-byte Spill
	movq	%rsi, %r12
	movq	%rdi, %rbx
	movl	$1, %esi
	movl	$.L.str, %edx
	callq	_ZNKSt6vectorIPN2rt4NodeESaIS2_EE12_M_check_lenEmPKc
	movq	(%rbx), %r13
	movq	8(%rbx), %r15
	movq	%r12, 8(%rsp)                   # 8-byte Spill
	subq	%r13, %r12
	movq	%r12, %r14
	sarq	$3, %r14
	testq	%rax, %rax
	movq	%rax, 16(%rsp)                  # 8-byte Spill
	je	.LBB6_1
# %bb.2:
	movq	%rbx, %rdi
	movq	%rax, %rsi
	xorl	%edx, %edx
	callq	_ZNSt15__new_allocatorIPN2rt4NodeEE8allocateEmPKv
	movq	%rax, %rbp
	jmp	.LBB6_3
.LBB6_1:
	xorl	%ebp, %ebp
.LBB6_3:                                # %_ZNSt12_Vector_baseIPN2rt4NodeESaIS2_EE11_M_allocateEm.exit
	movq	(%rsp), %rax                    # 8-byte Reload
	movq	(%rax), %rax
	movq	%rax, (%rbp,%r14,8)
	testq	%r12, %r12
	jle	.LBB6_5
# %bb.4:
	movq	%rbp, %rdi
	movq	%r13, %rsi
	movq	%r12, %rdx
	callq	memmove@PLT
.LBB6_5:                                # %_ZNSt6vectorIPN2rt4NodeESaIS2_EE11_S_relocateEPS2_S5_S5_RS3_.exit
	addq	%rbp, %r12
	addq	$8, %r12
	movq	8(%rsp), %rsi                   # 8-byte Reload
	subq	%rsi, %r15
	testq	%r15, %r15
	jle	.LBB6_7
# %bb.6:
	movq	%r12, %rdi
	movq	%r15, %rdx
	callq	memmove@PLT
.LBB6_7:                                # %_ZNSt6vectorIPN2rt4NodeESaIS2_EE11_S_relocateEPS2_S5_S5_RS3_.exit16
	testq	%r13, %r13
	je	.LBB6_9
# %bb.8:
	movq	%r13, %rdi
	callq	_ZdlPv
.LBB6_9:                                # %_ZNSt12_Vector_baseIPN2rt4NodeESaIS2_EE13_M_deallocateEPS2_m.exit
	addq	%r15, %r12
	movq	%rbp, (%rbx)
	movq	%r12, 8(%rbx)
	movq	16(%rsp), %rax                  # 8-byte Reload
	leaq	(,%rax,8), %rax
	addq	%rbp, %rax
	movq	%rax, 16(%rbx)
	addq	$24, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%r12
	.cfi_def_cfa_offset 40
	popq	%r13
	.cfi_def_cfa_offset 32
	popq	%r14
	.cfi_def_cfa_offset 24
	popq	%r15
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	retq
.Lfunc_end6:
	.size	_ZNSt6vectorIPN2rt4NodeESaIS2_EE17_M_realloc_insertIJS2_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S4_EEDpOT_, .Lfunc_end6-_ZNSt6vectorIPN2rt4NodeESaIS2_EE17_M_realloc_insertIJS2_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S4_EEDpOT_
	.cfi_endproc
                                        # -- End function
	.section	.text._ZNKSt6vectorIPN2rt4NodeESaIS2_EE12_M_check_lenEmPKc,"axG",@progbits,_ZNKSt6vectorIPN2rt4NodeESaIS2_EE12_M_check_lenEmPKc,comdat
	.weak	_ZNKSt6vectorIPN2rt4NodeESaIS2_EE12_M_check_lenEmPKc # -- Begin function _ZNKSt6vectorIPN2rt4NodeESaIS2_EE12_M_check_lenEmPKc
	.p2align	1, 0x90
	.type	_ZNKSt6vectorIPN2rt4NodeESaIS2_EE12_M_check_lenEmPKc,@function
_ZNKSt6vectorIPN2rt4NodeESaIS2_EE12_M_check_lenEmPKc: # @_ZNKSt6vectorIPN2rt4NodeESaIS2_EE12_M_check_lenEmPKc
	.cfi_startproc
# %bb.0:
	movabsq	$1152921504606846975, %rcx      # imm = 0xFFFFFFFFFFFFFFF
	movq	8(%rdi), %r8
	subq	(%rdi), %r8
	sarq	$3, %r8
	movq	%rcx, %rax
	subq	%r8, %rax
	cmpq	%rsi, %rax
	jb	.LBB7_2
# %bb.1:
	cmpq	%rsi, %r8
	cmovaq	%r8, %rsi
	leaq	(%rsi,%r8), %rax
	cmpq	%rcx, %rax
	cmovaeq	%rcx, %rax
	addq	%r8, %rsi
	cmovbq	%rcx, %rax
	retq
.LBB7_2:
	pushq	%rax
	.cfi_def_cfa_offset 16
	movq	%rdx, %rdi
	callq	_ZSt20__throw_length_errorPKc
.Lfunc_end7:
	.size	_ZNKSt6vectorIPN2rt4NodeESaIS2_EE12_M_check_lenEmPKc, .Lfunc_end7-_ZNKSt6vectorIPN2rt4NodeESaIS2_EE12_M_check_lenEmPKc
	.cfi_endproc
                                        # -- End function
	.section	.text._ZNSt15__new_allocatorIPN2rt4NodeEE8allocateEmPKv,"axG",@progbits,_ZNSt15__new_allocatorIPN2rt4NodeEE8allocateEmPKv,comdat
	.weak	_ZNSt15__new_allocatorIPN2rt4NodeEE8allocateEmPKv # -- Begin function _ZNSt15__new_allocatorIPN2rt4NodeEE8allocateEmPKv
	.p2align	1, 0x90
	.type	_ZNSt15__new_allocatorIPN2rt4NodeEE8allocateEmPKv,@function
_ZNSt15__new_allocatorIPN2rt4NodeEE8allocateEmPKv: # @_ZNSt15__new_allocatorIPN2rt4NodeEE8allocateEmPKv
	.cfi_startproc
# %bb.0:
	pushq	%rax
	.cfi_def_cfa_offset 16
	movq	%rsi, %rax
	shrq	$60, %rax
	jne	.LBB8_1
# %bb.3:
	shlq	$3, %rsi
	movq	%rsi, %rdi
	popq	%rax
	.cfi_def_cfa_offset 8
	jmp	_Znwm                           # TAILCALL
.LBB8_1:
	.cfi_def_cfa_offset 16
	shrq	$61, %rsi
	je	.LBB8_2
# %bb.4:
	callq	_ZSt28__throw_bad_array_new_lengthv
.LBB8_2:
	callq	_ZSt17__throw_bad_allocv
.Lfunc_end8:
	.size	_ZNSt15__new_allocatorIPN2rt4NodeEE8allocateEmPKv, .Lfunc_end8-_ZNSt15__new_allocatorIPN2rt4NodeEE8allocateEmPKv
	.cfi_endproc
                                        # -- End function
	.text
	.type	_ZN2rt12_GLOBAL__N_116opti_mat_mat_mulERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE,@function # -- Begin function _ZN2rt12_GLOBAL__N_116opti_mat_mat_mulERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
_ZN2rt12_GLOBAL__N_116opti_mat_mat_mulERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE: # @_ZN2rt12_GLOBAL__N_116opti_mat_mat_mulERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
.Lfunc_begin3:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception3
# %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	pushq	%r15
	.cfi_def_cfa_offset 24
	pushq	%r14
	.cfi_def_cfa_offset 32
	pushq	%r13
	.cfi_def_cfa_offset 40
	pushq	%r12
	.cfi_def_cfa_offset 48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	subq	$104, %rsp
	.cfi_def_cfa_offset 160
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	.cfi_offset %rbp, -16
	movq	%rdx, %rbp
	movq	%rsi, %r12
	movq	%rdi, %r14
	movq	120(%rsi), %rcx
	movq	128(%rsi), %r8
	movq	136(%rsi), %r9
	cmpq	%r9, %rcx
	jbe	.LBB9_5
# %bb.1:
	movq	%rcx, %rax
	shrq	$10, %rax
	cmpq	$8, %rax
	movl	$8, %edx
	cmovbq	%rax, %rdx
	cmpq	$2048, %rcx                     # imm = 0x800
	movl	$1, %ebx
	cmovaeq	%rdx, %rbx
	movq	%rcx, %rax
	xorl	%edx, %edx
	divq	%rbx
.LBB9_2:                                # =>This Inner Loop Header: Depth=1
	movq	%rax, %rsi
	movq	%rax, %rdx
	imulq	%rbx, %rdx
	incq	%rax
	cmpq	%rcx, %rdx
	jb	.LBB9_2
# %bb.3:
	cmpq	$2048, %rcx                     # imm = 0x800
	jb	.LBB9_10
.LBB9_4:                                # %.preheader.i
                                        # =>This Inner Loop Header: Depth=1
	movq	%rsi, %r13
	incq	%rsi
	testb	$7, %r13b
	jne	.LBB9_4
	jmp	.LBB9_9
.LBB9_5:
	movq	%r9, %rax
	shrq	$10, %rax
	cmpq	$8, %rax
	movl	$8, %edx
	cmovbq	%rax, %rdx
	cmpq	$2048, %r9                      # imm = 0x800
	movl	$1, %ebx
	cmovaeq	%rdx, %rbx
	movq	%r9, %rax
	xorl	%edx, %edx
	divq	%rbx
.LBB9_6:                                # =>This Inner Loop Header: Depth=1
	movq	%rax, %rsi
	movq	%rax, %rdx
	imulq	%rbx, %rdx
	incq	%rax
	cmpq	%r9, %rdx
	jb	.LBB9_6
# %bb.7:
	cmpq	$2048, %r9                      # imm = 0x800
	jb	.LBB9_10
.LBB9_8:                                # %.preheader.i79
                                        # =>This Inner Loop Header: Depth=1
	movq	%rsi, %r13
	incq	%rsi
	testb	$7, %r13b
	jne	.LBB9_8
.LBB9_9:                                # %_ZN2rt12_GLOBAL__N_114elemwhise_sizeEmRmS1_.exit
	cmpq	$1, %rbx
	ja	.LBB9_12
.LBB9_10:                               # %_ZN2rt12_GLOBAL__N_114elemwhise_sizeEmRmS1_.exit.thread
	movq	64(%r12), %rdi
	movq	72(%r12), %rsi
	movq	88(%r12), %rdx
	movq	%rbp, (%rsp)
	callq	_ZN2rt4Node14op_mat_mat_mulEPKfS2_PfmmmRKSt6vectorIPS0_SaIS5_EE
	movq	%rax, %rbx
	movq	%r14, %rdi
	movq	%rax, %rsi
	callq	_ZN2rt5Graph3addEPNS_4NodeE
.LBB9_11:
	movq	%rbx, %rax
	addq	$104, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%r12
	.cfi_def_cfa_offset 40
	popq	%r13
	.cfi_def_cfa_offset 32
	popq	%r14
	.cfi_def_cfa_offset 24
	popq	%r15
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	retq
.LBB9_12:
	.cfi_def_cfa_offset 160
	movq	%r14, 56(%rsp)                  # 8-byte Spill
	xorps	%xmm0, %xmm0
	movaps	%xmm0, 32(%rsp)
	movq	$0, 48(%rsp)
	decq	%rbx
	cmpq	%r8, %rcx
	movq	%r9, 72(%rsp)                   # 8-byte Spill
	movq	%r8, 80(%rsp)                   # 8-byte Spill
	movq	%rbx, 64(%rsp)                  # 8-byte Spill
	jbe	.LBB9_13
# %bb.19:                               # %.lr.ph108.preheader
	movq	%rcx, 88(%rsp)                  # 8-byte Spill
	movq	%r13, %rax
	imulq	%r9, %rax
	shlq	$2, %rax
	movq	%rax, 24(%rsp)                  # 8-byte Spill
	movq	%r13, %rax
	imulq	%r8, %rax
	shlq	$2, %rax
	movq	%rax, 16(%rsp)                  # 8-byte Spill
	xorl	%r15d, %r15d
	xorl	%r14d, %r14d
.LBB9_20:                               # %.lr.ph108
                                        # =>This Inner Loop Header: Depth=1
	movq	64(%r12), %rdi
	addq	%r15, %rdi
	movq	72(%r12), %rsi
	movq	88(%r12), %rdx
	addq	%r14, %rdx
.Ltmp30:
	movq	%rbp, (%rsp)
	movq	%r13, %rcx
	callq	_ZN2rt4Node14op_mat_mat_mulEPKfS2_PfmmmRKSt6vectorIPS0_SaIS5_EE
.Ltmp31:
# %bb.21:                               #   in Loop: Header=BB9_20 Depth=1
	movq	%rax, 8(%rsp)
.Ltmp32:
	leaq	32(%rsp), %rdi
	leaq	8(%rsp), %rsi
	callq	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_
.Ltmp33:
# %bb.22:                               # %_ZNSt6vectorIPN2rt4NodeESaIS2_EE9push_backEOS2_.exit
                                        #   in Loop: Header=BB9_20 Depth=1
	addq	24(%rsp), %r14                  # 8-byte Folded Reload
	addq	16(%rsp), %r15                  # 8-byte Folded Reload
	decq	%rbx
	movq	72(%rsp), %r9                   # 8-byte Reload
	movq	80(%rsp), %r8                   # 8-byte Reload
	jne	.LBB9_20
# %bb.23:                               # %._crit_edge109
	movq	64(%rsp), %rdx                  # 8-byte Reload
	imulq	%r13, %rdx
	movq	%rdx, %rdi
	imulq	%r8, %rdi
	shlq	$2, %rdi
	addq	64(%r12), %rdi
	movq	72(%r12), %rsi
	movq	88(%rsp), %rcx                  # 8-byte Reload
	subq	%rdx, %rcx
	imulq	%r9, %rdx
	shlq	$2, %rdx
	addq	88(%r12), %rdx
.Ltmp35:
	movq	%rbp, (%rsp)
	callq	_ZN2rt4Node14op_mat_mat_mulEPKfS2_PfmmmRKSt6vectorIPS0_SaIS5_EE
.Ltmp36:
# %bb.24:
	leaq	8(%rsp), %rsi
	movq	%rax, (%rsi)
.Ltmp37:
	leaq	32(%rsp), %rdi
	callq	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_
.Ltmp38:
	jmp	.LBB9_25
.LBB9_13:                               # %.lr.ph.preheader
	movq	%r13, %rax
	imulq	%r9, %rax
	shlq	$2, %rax
	movq	%rax, 24(%rsp)                  # 8-byte Spill
	leaq	(,%r13,4), %rax
	movq	%rax, 16(%rsp)                  # 8-byte Spill
	xorl	%r15d, %r15d
	xorl	%r14d, %r14d
	movq	%r12, 96(%rsp)                  # 8-byte Spill
.LBB9_14:                               # %.lr.ph
                                        # =>This Inner Loop Header: Depth=1
	movq	64(%r12), %rdi
	movq	72(%r12), %rsi
	addq	%r15, %rsi
	movq	88(%r12), %rdx
	addq	%r14, %rdx
.Ltmp20:
	movq	%rbp, %r12
	movq	%rbp, (%rsp)
	movq	%rcx, %rbp
	movq	%r13, %r9
	callq	_ZN2rt4Node14op_mat_mat_mulEPKfS2_PfmmmRKSt6vectorIPS0_SaIS5_EE
.Ltmp21:
# %bb.15:                               #   in Loop: Header=BB9_14 Depth=1
	movq	%rax, 8(%rsp)
.Ltmp22:
	leaq	32(%rsp), %rdi
	leaq	8(%rsp), %rsi
	callq	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_
.Ltmp23:
# %bb.16:                               # %_ZNSt6vectorIPN2rt4NodeESaIS2_EE9push_backEOS2_.exit84
                                        #   in Loop: Header=BB9_14 Depth=1
	addq	24(%rsp), %r14                  # 8-byte Folded Reload
	addq	16(%rsp), %r15                  # 8-byte Folded Reload
	decq	%rbx
	movq	80(%rsp), %r8                   # 8-byte Reload
	movq	%rbp, %rcx
	movq	%r12, %rbp
	movq	96(%rsp), %r12                  # 8-byte Reload
	jne	.LBB9_14
# %bb.17:                               # %._crit_edge
	movq	64(%r12), %rdi
	movq	64(%rsp), %rax                  # 8-byte Reload
	imulq	%r13, %rax
	leaq	(,%rax,4), %rsi
	addq	72(%r12), %rsi
	movq	%rax, %rdx
	movq	72(%rsp), %r9                   # 8-byte Reload
	imulq	%r9, %rdx
	shlq	$2, %rdx
	addq	88(%r12), %rdx
	subq	%rax, %r9
.Ltmp25:
	movq	%rbp, (%rsp)
	callq	_ZN2rt4Node14op_mat_mat_mulEPKfS2_PfmmmRKSt6vectorIPS0_SaIS5_EE
.Ltmp26:
# %bb.18:
	leaq	8(%rsp), %rsi
	movq	%rax, (%rsi)
.Ltmp27:
	leaq	32(%rsp), %rdi
	callq	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_
.Ltmp28:
.LBB9_25:                               # %_ZNSt6vectorIPN2rt4NodeESaIS2_EE9push_backEOS2_.exit83
	movq	56(%rsp), %r15                  # 8-byte Reload
	movq	32(%rsp), %rbx
	movq	40(%rsp), %r14
.LBB9_26:                               # %_ZNSt6vectorIPN2rt4NodeESaIS2_EE9push_backEOS2_.exit83
                                        # =>This Inner Loop Header: Depth=1
	cmpq	%r14, %rbx
	je	.LBB9_29
# %bb.27:                               # %.lr.ph114
                                        #   in Loop: Header=BB9_26 Depth=1
	movq	(%rbx), %rsi
.Ltmp40:
	movq	%r15, %rdi
	callq	_ZN2rt5Graph3addEPNS_4NodeE
.Ltmp41:
# %bb.28:                               #   in Loop: Header=BB9_26 Depth=1
	addq	$8, %rbx
	jmp	.LBB9_26
.LBB9_29:                               # %._crit_edge115
.Ltmp43:
	leaq	32(%rsp), %rdi
	callq	_ZN2rt4Node3nopERKSt6vectorIPS0_SaIS2_EE
.Ltmp44:
# %bb.30:
.Ltmp45:
	movq	%rax, %rbx
	movq	%r15, %rdi
	movq	%rax, %rsi
	callq	_ZN2rt5Graph3addEPNS_4NodeE
.Ltmp46:
# %bb.31:
	movq	32(%rsp), %rdi
	testq	%rdi, %rdi
	je	.LBB9_11
# %bb.32:
	callq	_ZdlPv
	jmp	.LBB9_11
.LBB9_35:
.Ltmp29:
	jmp	.LBB9_38
.LBB9_33:
.Ltmp39:
	jmp	.LBB9_38
.LBB9_37:
.Ltmp47:
	jmp	.LBB9_38
.LBB9_36:
.Ltmp42:
	jmp	.LBB9_38
.LBB9_34:
.Ltmp24:
	jmp	.LBB9_38
.LBB9_41:
.Ltmp34:
.LBB9_38:
	movq	%rax, %rbx
	movq	32(%rsp), %rdi
	testq	%rdi, %rdi
	je	.LBB9_40
# %bb.39:
	callq	_ZdlPv
.LBB9_40:                               # %_ZNSt6vectorIPN2rt4NodeESaIS2_EED2Ev.exit87
	movq	%rbx, %rdi
	callq	_Unwind_Resume@PLT
.Lfunc_end9:
	.size	_ZN2rt12_GLOBAL__N_116opti_mat_mat_mulERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, .Lfunc_end9-_ZN2rt12_GLOBAL__N_116opti_mat_mat_mulERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.cfi_endproc
	.section	.gcc_except_table,"a",@progbits
	.p2align	2, 0x0
GCC_except_table9:
.Lexception3:
	.byte	255                             # @LPStart Encoding = omit
	.byte	255                             # @TType Encoding = omit
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end3-.Lcst_begin3
.Lcst_begin3:
	.uleb128 .Lfunc_begin3-.Lfunc_begin3    # >> Call Site 1 <<
	.uleb128 .Ltmp30-.Lfunc_begin3          #   Call between .Lfunc_begin3 and .Ltmp30
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp30-.Lfunc_begin3          # >> Call Site 2 <<
	.uleb128 .Ltmp33-.Ltmp30                #   Call between .Ltmp30 and .Ltmp33
	.uleb128 .Ltmp34-.Lfunc_begin3          #     jumps to .Ltmp34
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp35-.Lfunc_begin3          # >> Call Site 3 <<
	.uleb128 .Ltmp38-.Ltmp35                #   Call between .Ltmp35 and .Ltmp38
	.uleb128 .Ltmp39-.Lfunc_begin3          #     jumps to .Ltmp39
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp20-.Lfunc_begin3          # >> Call Site 4 <<
	.uleb128 .Ltmp23-.Ltmp20                #   Call between .Ltmp20 and .Ltmp23
	.uleb128 .Ltmp24-.Lfunc_begin3          #     jumps to .Ltmp24
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp25-.Lfunc_begin3          # >> Call Site 5 <<
	.uleb128 .Ltmp28-.Ltmp25                #   Call between .Ltmp25 and .Ltmp28
	.uleb128 .Ltmp29-.Lfunc_begin3          #     jumps to .Ltmp29
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp40-.Lfunc_begin3          # >> Call Site 6 <<
	.uleb128 .Ltmp41-.Ltmp40                #   Call between .Ltmp40 and .Ltmp41
	.uleb128 .Ltmp42-.Lfunc_begin3          #     jumps to .Ltmp42
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp43-.Lfunc_begin3          # >> Call Site 7 <<
	.uleb128 .Ltmp46-.Ltmp43                #   Call between .Ltmp43 and .Ltmp46
	.uleb128 .Ltmp47-.Lfunc_begin3          #     jumps to .Ltmp47
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp46-.Lfunc_begin3          # >> Call Site 8 <<
	.uleb128 .Lfunc_end9-.Ltmp46            #   Call between .Ltmp46 and .Lfunc_end9
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end3:
	.p2align	2, 0x0
                                        # -- End function
	.text
	.type	_ZN2rt12_GLOBAL__N_118opti_mat_rvect_addERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE,@function # -- Begin function _ZN2rt12_GLOBAL__N_118opti_mat_rvect_addERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
_ZN2rt12_GLOBAL__N_118opti_mat_rvect_addERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE: # @_ZN2rt12_GLOBAL__N_118opti_mat_rvect_addERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
.Lfunc_begin4:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception4
# %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	pushq	%r15
	.cfi_def_cfa_offset 24
	pushq	%r14
	.cfi_def_cfa_offset 32
	pushq	%r13
	.cfi_def_cfa_offset 40
	pushq	%r12
	.cfi_def_cfa_offset 48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	subq	$72, %rsp
	.cfi_def_cfa_offset 128
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	.cfi_offset %rbp, -16
	movq	%rdx, 8(%rsp)                   # 8-byte Spill
	movq	%rsi, %r15
	movq	%rdi, %r14
	movq	120(%rsi), %rcx
	movq	%rcx, %rax
	shrq	$10, %rax
	cmpq	$8, %rax
	movl	$8, %edx
	cmovbq	%rax, %rdx
	cmpq	$2048, %rcx                     # imm = 0x800
	movl	$1, %r13d
	cmovaeq	%rdx, %r13
	movq	%rcx, %rax
	xorl	%edx, %edx
	divq	%r13
.LBB10_1:                               # =>This Inner Loop Header: Depth=1
	movq	%rax, %rdx
	movq	%rax, %rsi
	imulq	%r13, %rsi
	incq	%rax
	cmpq	%rcx, %rsi
	jb	.LBB10_1
# %bb.2:
	cmpq	$2048, %rcx                     # imm = 0x800
	jb	.LBB10_3
.LBB10_4:                               # %.preheader.i
                                        # =>This Inner Loop Header: Depth=1
	movq	%rdx, %r12
	incq	%rdx
	testb	$7, %r12b
	jne	.LBB10_4
	jmp	.LBB10_5
.LBB10_3:
	movq	%rdx, %r12
.LBB10_5:                               # %_ZN2rt12_GLOBAL__N_114elemwhise_sizeEmRmS1_.exit
	cmpq	$1, %r13
	ja	.LBB10_8
# %bb.6:
	movq	64(%r15), %rdi
	movq	72(%r15), %rsi
	movq	88(%r15), %rdx
	movq	128(%r15), %r8
	movq	8(%rsp), %r9                    # 8-byte Reload
	callq	_ZN2rt4Node16op_mat_rvect_addEPKfS2_PfmmRKSt6vectorIPS0_SaIS5_EE
	movq	%rax, %rbx
	movq	%r14, %rdi
	movq	%rax, %rsi
	callq	_ZN2rt5Graph3addEPNS_4NodeE
	jmp	.LBB10_7
.LBB10_8:                               # %.lr.ph
	movq	%r14, 64(%rsp)                  # 8-byte Spill
	movq	128(%r15), %rax
	xorps	%xmm0, %xmm0
	leaq	32(%rsp), %rcx
	movaps	%xmm0, (%rcx)
	movq	$0, 16(%rcx)
	decq	%r13
	movq	%r12, %rbp
	movq	%rax, 16(%rsp)                  # 8-byte Spill
	imulq	%rax, %rbp
	shlq	$2, %rbp
	xorl	%ebx, %ebx
	movq	%r13, %r14
.LBB10_9:                               # =>This Inner Loop Header: Depth=1
	movq	64(%r15), %rdi
	addq	%rbx, %rdi
	movq	72(%r15), %rsi
	movq	88(%r15), %rdx
	addq	%rbx, %rdx
.Ltmp48:
	movq	%r12, %rcx
	movq	16(%rsp), %r8                   # 8-byte Reload
	movq	8(%rsp), %r9                    # 8-byte Reload
	callq	_ZN2rt4Node16op_mat_rvect_addEPKfS2_PfmmRKSt6vectorIPS0_SaIS5_EE
.Ltmp49:
# %bb.10:                               #   in Loop: Header=BB10_9 Depth=1
	movq	%rax, 24(%rsp)
.Ltmp50:
	leaq	32(%rsp), %rdi
	leaq	24(%rsp), %rsi
	callq	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_
.Ltmp51:
# %bb.11:                               # %_ZNSt6vectorIPN2rt4NodeESaIS2_EE9push_backEOS2_.exit
                                        #   in Loop: Header=BB10_9 Depth=1
	addq	%rbp, %rbx
	decq	%r14
	jne	.LBB10_9
# %bb.12:                               # %._crit_edge
	movq	120(%r15), %rcx
	imulq	%r13, %r12
	movq	16(%rsp), %r8                   # 8-byte Reload
	movq	%r8, %rdx
	imulq	%r12, %rdx
	shlq	$2, %rdx
	movq	64(%r15), %rdi
	addq	%rdx, %rdi
	movq	72(%r15), %rsi
	addq	88(%r15), %rdx
	subq	%r12, %rcx
.Ltmp53:
	movq	8(%rsp), %r9                    # 8-byte Reload
	callq	_ZN2rt4Node16op_mat_rvect_addEPKfS2_PfmmRKSt6vectorIPS0_SaIS5_EE
.Ltmp54:
# %bb.13:
	leaq	24(%rsp), %rsi
	movq	%rax, (%rsi)
.Ltmp55:
	leaq	32(%rsp), %rdi
	callq	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_
.Ltmp56:
# %bb.14:                               # %_ZNSt6vectorIPN2rt4NodeESaIS2_EE9push_backEOS2_.exit43
	movq	32(%rsp), %rbx
	movq	40(%rsp), %r14
	cmpq	%r14, %rbx
	movq	64(%rsp), %r15                  # 8-byte Reload
	je	.LBB10_15
.LBB10_20:                              # %.lr.ph57
                                        # =>This Inner Loop Header: Depth=1
	movq	(%rbx), %rsi
.Ltmp58:
	movq	%r15, %rdi
	callq	_ZN2rt5Graph3addEPNS_4NodeE
.Ltmp59:
# %bb.21:                               #   in Loop: Header=BB10_20 Depth=1
	addq	$8, %rbx
	cmpq	%r14, %rbx
	jne	.LBB10_20
.LBB10_15:                              # %._crit_edge58
.Ltmp61:
	leaq	32(%rsp), %rdi
	callq	_ZN2rt4Node3nopERKSt6vectorIPS0_SaIS2_EE
.Ltmp62:
# %bb.16:
.Ltmp63:
	movq	%rax, %rbx
	movq	%r15, %rdi
	movq	%rax, %rsi
	callq	_ZN2rt5Graph3addEPNS_4NodeE
.Ltmp64:
# %bb.17:
	movq	32(%rsp), %rdi
	testq	%rdi, %rdi
	je	.LBB10_7
# %bb.18:
	callq	_ZdlPv
.LBB10_7:
	movq	%rbx, %rax
	addq	$72, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%r12
	.cfi_def_cfa_offset 40
	popq	%r13
	.cfi_def_cfa_offset 32
	popq	%r14
	.cfi_def_cfa_offset 24
	popq	%r15
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	retq
.LBB10_23:
	.cfi_def_cfa_offset 128
.Ltmp65:
	jmp	.LBB10_24
.LBB10_19:
.Ltmp57:
	jmp	.LBB10_24
.LBB10_22:
.Ltmp60:
	jmp	.LBB10_24
.LBB10_27:
.Ltmp52:
.LBB10_24:
	movq	%rax, %rbx
	movq	32(%rsp), %rdi
	testq	%rdi, %rdi
	je	.LBB10_26
# %bb.25:
	callq	_ZdlPv
.LBB10_26:                              # %_ZNSt6vectorIPN2rt4NodeESaIS2_EED2Ev.exit45
	movq	%rbx, %rdi
	callq	_Unwind_Resume@PLT
.Lfunc_end10:
	.size	_ZN2rt12_GLOBAL__N_118opti_mat_rvect_addERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, .Lfunc_end10-_ZN2rt12_GLOBAL__N_118opti_mat_rvect_addERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.cfi_endproc
	.section	.gcc_except_table,"a",@progbits
	.p2align	2, 0x0
GCC_except_table10:
.Lexception4:
	.byte	255                             # @LPStart Encoding = omit
	.byte	255                             # @TType Encoding = omit
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end4-.Lcst_begin4
.Lcst_begin4:
	.uleb128 .Lfunc_begin4-.Lfunc_begin4    # >> Call Site 1 <<
	.uleb128 .Ltmp48-.Lfunc_begin4          #   Call between .Lfunc_begin4 and .Ltmp48
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp48-.Lfunc_begin4          # >> Call Site 2 <<
	.uleb128 .Ltmp51-.Ltmp48                #   Call between .Ltmp48 and .Ltmp51
	.uleb128 .Ltmp52-.Lfunc_begin4          #     jumps to .Ltmp52
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp53-.Lfunc_begin4          # >> Call Site 3 <<
	.uleb128 .Ltmp56-.Ltmp53                #   Call between .Ltmp53 and .Ltmp56
	.uleb128 .Ltmp57-.Lfunc_begin4          #     jumps to .Ltmp57
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp58-.Lfunc_begin4          # >> Call Site 4 <<
	.uleb128 .Ltmp59-.Ltmp58                #   Call between .Ltmp58 and .Ltmp59
	.uleb128 .Ltmp60-.Lfunc_begin4          #     jumps to .Ltmp60
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp61-.Lfunc_begin4          # >> Call Site 5 <<
	.uleb128 .Ltmp64-.Ltmp61                #   Call between .Ltmp61 and .Ltmp64
	.uleb128 .Ltmp65-.Lfunc_begin4          #     jumps to .Ltmp65
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp64-.Lfunc_begin4          # >> Call Site 6 <<
	.uleb128 .Lfunc_end10-.Ltmp64           #   Call between .Ltmp64 and .Lfunc_end10
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end4:
	.p2align	2, 0x0
                                        # -- End function
	.text
	.type	_ZN2rt12_GLOBAL__N_112opti_sigmoidERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE,@function # -- Begin function _ZN2rt12_GLOBAL__N_112opti_sigmoidERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
_ZN2rt12_GLOBAL__N_112opti_sigmoidERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE: # @_ZN2rt12_GLOBAL__N_112opti_sigmoidERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
.Lfunc_begin5:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception5
# %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	pushq	%r15
	.cfi_def_cfa_offset 24
	pushq	%r14
	.cfi_def_cfa_offset 32
	pushq	%r13
	.cfi_def_cfa_offset 40
	pushq	%r12
	.cfi_def_cfa_offset 48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	subq	$88, %rsp
	.cfi_def_cfa_offset 144
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	.cfi_offset %rbp, -16
	movq	%rdx, 8(%rsp)                   # 8-byte Spill
	movq	%rdi, %r14
	movq	%rsi, 16(%rsp)                  # 8-byte Spill
	movq	120(%rsi), %rcx
	movq	%rcx, %rax
	shrq	$10, %rax
	cmpq	$8, %rax
	movl	$8, %edx
	cmovbq	%rax, %rdx
	cmpq	$2048, %rcx                     # imm = 0x800
	movl	$1, %ebp
	cmovaeq	%rdx, %rbp
	movq	%rcx, %rax
	xorl	%edx, %edx
	divq	%rbp
.LBB11_1:                               # =>This Inner Loop Header: Depth=1
	movq	%rax, %rdx
	movq	%rax, %rsi
	imulq	%rbp, %rsi
	incq	%rax
	cmpq	%rcx, %rsi
	jb	.LBB11_1
# %bb.2:
	cmpq	$2048, %rcx                     # imm = 0x800
	jb	.LBB11_3
.LBB11_4:                               # %.preheader.i
                                        # =>This Inner Loop Header: Depth=1
	movq	%rdx, %r12
	incq	%rdx
	testb	$7, %r12b
	jne	.LBB11_4
	jmp	.LBB11_5
.LBB11_3:
	movq	%rdx, %r12
.LBB11_5:                               # %_ZN2rt12_GLOBAL__N_114elemwhise_sizeEmRmS1_.exit
	movq	16(%rsp), %rax                  # 8-byte Reload
	movq	64(%rax), %r15
	movq	88(%rax), %rbx
	cmpq	$1, %rbp
	ja	.LBB11_8
# %bb.6:
	movq	%r15, %rdi
	movq	%rbx, %rsi
	movq	%rcx, %rdx
	movq	8(%rsp), %rcx                   # 8-byte Reload
	callq	_ZN2rt4Node10op_sigmoidEPKfPfmRKSt6vectorIPS0_SaIS5_EE
	movq	%rax, %rbx
	movq	%r14, %rdi
	movq	%rax, %rsi
	callq	_ZN2rt5Graph3addEPNS_4NodeE
	jmp	.LBB11_7
.LBB11_8:                               # %.lr.ph.preheader
	movq	%r14, 64(%rsp)                  # 8-byte Spill
	xorps	%xmm0, %xmm0
	leaq	32(%rsp), %rax
	movaps	%xmm0, (%rax)
	movq	$0, 16(%rax)
	decq	%rbp
	leaq	(,%r12,4), %r14
	movq	%r15, 72(%rsp)                  # 8-byte Spill
	movq	%rbx, 80(%rsp)                  # 8-byte Spill
	movq	%rbp, %r13
.LBB11_9:                               # %.lr.ph
                                        # =>This Inner Loop Header: Depth=1
.Ltmp66:
	movq	%r15, %rdi
	movq	%rbx, %rsi
	movq	%r12, %rdx
	movq	8(%rsp), %rcx                   # 8-byte Reload
	callq	_ZN2rt4Node10op_sigmoidEPKfPfmRKSt6vectorIPS0_SaIS5_EE
.Ltmp67:
# %bb.10:                               #   in Loop: Header=BB11_9 Depth=1
	movq	%rax, 24(%rsp)
.Ltmp68:
	leaq	32(%rsp), %rdi
	leaq	24(%rsp), %rsi
	callq	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_
.Ltmp69:
# %bb.11:                               # %_ZNSt6vectorIPN2rt4NodeESaIS2_EE9push_backEOS2_.exit
                                        #   in Loop: Header=BB11_9 Depth=1
	addq	%r14, %rbx
	addq	%r14, %r15
	decq	%r13
	jne	.LBB11_9
# %bb.12:                               # %._crit_edge
	movq	16(%rsp), %rax                  # 8-byte Reload
	movq	120(%rax), %rdx
	imulq	%rbp, %r12
	movq	72(%rsp), %rax                  # 8-byte Reload
	leaq	(%rax,%r12,4), %rdi
	movq	80(%rsp), %rax                  # 8-byte Reload
	leaq	(%rax,%r12,4), %rsi
	subq	%r12, %rdx
.Ltmp71:
	movq	8(%rsp), %rcx                   # 8-byte Reload
	callq	_ZN2rt4Node10op_sigmoidEPKfPfmRKSt6vectorIPS0_SaIS5_EE
.Ltmp72:
# %bb.13:
	leaq	24(%rsp), %rsi
	movq	%rax, (%rsi)
.Ltmp73:
	leaq	32(%rsp), %rdi
	callq	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_
.Ltmp74:
# %bb.14:                               # %_ZNSt6vectorIPN2rt4NodeESaIS2_EE9push_backEOS2_.exit34
	movq	32(%rsp), %rbx
	movq	40(%rsp), %r14
	cmpq	%r14, %rbx
	movq	64(%rsp), %r15                  # 8-byte Reload
	je	.LBB11_15
.LBB11_20:                              # %.lr.ph48
                                        # =>This Inner Loop Header: Depth=1
	movq	(%rbx), %rsi
.Ltmp76:
	movq	%r15, %rdi
	callq	_ZN2rt5Graph3addEPNS_4NodeE
.Ltmp77:
# %bb.21:                               #   in Loop: Header=BB11_20 Depth=1
	addq	$8, %rbx
	cmpq	%r14, %rbx
	jne	.LBB11_20
.LBB11_15:                              # %._crit_edge49
.Ltmp79:
	leaq	32(%rsp), %rdi
	callq	_ZN2rt4Node3nopERKSt6vectorIPS0_SaIS2_EE
.Ltmp80:
# %bb.16:
.Ltmp81:
	movq	%rax, %rbx
	movq	%r15, %rdi
	movq	%rax, %rsi
	callq	_ZN2rt5Graph3addEPNS_4NodeE
.Ltmp82:
# %bb.17:
	movq	32(%rsp), %rdi
	testq	%rdi, %rdi
	je	.LBB11_7
# %bb.18:
	callq	_ZdlPv
.LBB11_7:
	movq	%rbx, %rax
	addq	$88, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%r12
	.cfi_def_cfa_offset 40
	popq	%r13
	.cfi_def_cfa_offset 32
	popq	%r14
	.cfi_def_cfa_offset 24
	popq	%r15
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	retq
.LBB11_23:
	.cfi_def_cfa_offset 144
.Ltmp83:
	jmp	.LBB11_24
.LBB11_19:
.Ltmp75:
	jmp	.LBB11_24
.LBB11_22:
.Ltmp78:
	jmp	.LBB11_24
.LBB11_27:
.Ltmp70:
.LBB11_24:
	movq	%rax, %rbx
	movq	32(%rsp), %rdi
	testq	%rdi, %rdi
	je	.LBB11_26
# %bb.25:
	callq	_ZdlPv
.LBB11_26:                              # %_ZNSt6vectorIPN2rt4NodeESaIS2_EED2Ev.exit36
	movq	%rbx, %rdi
	callq	_Unwind_Resume@PLT
.Lfunc_end11:
	.size	_ZN2rt12_GLOBAL__N_112opti_sigmoidERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, .Lfunc_end11-_ZN2rt12_GLOBAL__N_112opti_sigmoidERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.cfi_endproc
	.section	.gcc_except_table,"a",@progbits
	.p2align	2, 0x0
GCC_except_table11:
.Lexception5:
	.byte	255                             # @LPStart Encoding = omit
	.byte	255                             # @TType Encoding = omit
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end5-.Lcst_begin5
.Lcst_begin5:
	.uleb128 .Lfunc_begin5-.Lfunc_begin5    # >> Call Site 1 <<
	.uleb128 .Ltmp66-.Lfunc_begin5          #   Call between .Lfunc_begin5 and .Ltmp66
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp66-.Lfunc_begin5          # >> Call Site 2 <<
	.uleb128 .Ltmp69-.Ltmp66                #   Call between .Ltmp66 and .Ltmp69
	.uleb128 .Ltmp70-.Lfunc_begin5          #     jumps to .Ltmp70
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp71-.Lfunc_begin5          # >> Call Site 3 <<
	.uleb128 .Ltmp74-.Ltmp71                #   Call between .Ltmp71 and .Ltmp74
	.uleb128 .Ltmp75-.Lfunc_begin5          #     jumps to .Ltmp75
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp76-.Lfunc_begin5          # >> Call Site 4 <<
	.uleb128 .Ltmp77-.Ltmp76                #   Call between .Ltmp76 and .Ltmp77
	.uleb128 .Ltmp78-.Lfunc_begin5          #     jumps to .Ltmp78
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp79-.Lfunc_begin5          # >> Call Site 5 <<
	.uleb128 .Ltmp82-.Ltmp79                #   Call between .Ltmp79 and .Ltmp82
	.uleb128 .Ltmp83-.Lfunc_begin5          #     jumps to .Ltmp83
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp82-.Lfunc_begin5          # >> Call Site 6 <<
	.uleb128 .Lfunc_end11-.Ltmp82           #   Call between .Ltmp82 and .Lfunc_end11
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end5:
	.p2align	2, 0x0
                                        # -- End function
	.text
	.type	_ZN2rt12_GLOBAL__N_18opti_mseERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE,@function # -- Begin function _ZN2rt12_GLOBAL__N_18opti_mseERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
_ZN2rt12_GLOBAL__N_18opti_mseERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE: # @_ZN2rt12_GLOBAL__N_18opti_mseERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.cfi_startproc
# %bb.0:
	pushq	%r14
	.cfi_def_cfa_offset 16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	pushq	%rax
	.cfi_def_cfa_offset 32
	.cfi_offset %rbx, -24
	.cfi_offset %r14, -16
	movq	%rdx, %r9
	movq	%rdi, %rbx
	movq	64(%rsi), %rdi
	movq	72(%rsi), %rax
	movq	88(%rsi), %rdx
	movq	120(%rsi), %rcx
	movq	128(%rsi), %r8
	movq	%rax, %rsi
	callq	_ZN2rt4Node6op_mseEPKfS2_PfmmRKSt6vectorIPS0_SaIS5_EE
	movq	%rax, %r14
	movq	%rbx, %rdi
	movq	%rax, %rsi
	callq	_ZN2rt5Graph3addEPNS_4NodeE
	movq	%r14, %rax
	addq	$8, %rsp
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	retq
.Lfunc_end12:
	.size	_ZN2rt12_GLOBAL__N_18opti_mseERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, .Lfunc_end12-_ZN2rt12_GLOBAL__N_18opti_mseERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.cfi_endproc
                                        # -- End function
	.type	_ZN2rt12_GLOBAL__N_112opti_softmaxERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE,@function # -- Begin function _ZN2rt12_GLOBAL__N_112opti_softmaxERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
_ZN2rt12_GLOBAL__N_112opti_softmaxERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE: # @_ZN2rt12_GLOBAL__N_112opti_softmaxERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
.Lfunc_begin6:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception6
# %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	pushq	%r15
	.cfi_def_cfa_offset 24
	pushq	%r14
	.cfi_def_cfa_offset 32
	pushq	%r13
	.cfi_def_cfa_offset 40
	pushq	%r12
	.cfi_def_cfa_offset 48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	subq	$72, %rsp
	.cfi_def_cfa_offset 128
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	.cfi_offset %rbp, -16
	movq	%rdx, 8(%rsp)                   # 8-byte Spill
	movq	%rsi, %r15
	movq	%rdi, %r14
	movq	120(%rsi), %r8
	movq	%r8, %rax
	shrq	$10, %rax
	cmpq	$8, %rax
	movl	$8, %ecx
	cmovbq	%rax, %rcx
	cmpq	$2048, %r8                      # imm = 0x800
	movl	$1, %r13d
	cmovaeq	%rcx, %r13
	movq	%r8, %rax
	xorl	%edx, %edx
	divq	%r13
.LBB13_1:                               # =>This Inner Loop Header: Depth=1
	movq	%rax, %rcx
	movq	%rax, %rdx
	imulq	%r13, %rdx
	incq	%rax
	cmpq	%r8, %rdx
	jb	.LBB13_1
# %bb.2:
	cmpq	$2048, %r8                      # imm = 0x800
	jb	.LBB13_3
.LBB13_4:                               # %.preheader.i
                                        # =>This Inner Loop Header: Depth=1
	movq	%rcx, %r12
	incq	%rcx
	testb	$7, %r12b
	jne	.LBB13_4
	jmp	.LBB13_5
.LBB13_3:
	movq	%rcx, %r12
.LBB13_5:                               # %_ZN2rt12_GLOBAL__N_114elemwhise_sizeEmRmS1_.exit
	cmpq	$1, %r13
	ja	.LBB13_8
# %bb.6:
	movq	64(%r15), %rdi
	movq	88(%r15), %rsi
	movq	128(%r15), %rcx
	movq	%r8, %rdx
	movq	8(%rsp), %r8                    # 8-byte Reload
	callq	_ZN2rt4Node10op_softmaxEPKfPfmmRKSt6vectorIPS0_SaIS5_EE
	movq	%rax, %rbx
	movq	%r14, %rdi
	movq	%rax, %rsi
	callq	_ZN2rt5Graph3addEPNS_4NodeE
	jmp	.LBB13_7
.LBB13_8:                               # %.lr.ph
	movq	%r14, 64(%rsp)                  # 8-byte Spill
	movq	128(%r15), %rax
	xorps	%xmm0, %xmm0
	leaq	32(%rsp), %rcx
	movaps	%xmm0, (%rcx)
	movq	$0, 16(%rcx)
	decq	%r13
	movq	%r12, %rbp
	movq	%rax, 16(%rsp)                  # 8-byte Spill
	imulq	%rax, %rbp
	shlq	$2, %rbp
	xorl	%ebx, %ebx
	movq	%r13, %r14
.LBB13_9:                               # =>This Inner Loop Header: Depth=1
	movq	64(%r15), %rdi
	addq	%rbx, %rdi
	movq	88(%r15), %rsi
	addq	%rbx, %rsi
.Ltmp84:
	movq	%r12, %rdx
	movq	16(%rsp), %rcx                  # 8-byte Reload
	movq	8(%rsp), %r8                    # 8-byte Reload
	callq	_ZN2rt4Node10op_softmaxEPKfPfmmRKSt6vectorIPS0_SaIS5_EE
.Ltmp85:
# %bb.10:                               #   in Loop: Header=BB13_9 Depth=1
	movq	%rax, 24(%rsp)
.Ltmp86:
	leaq	32(%rsp), %rdi
	leaq	24(%rsp), %rsi
	callq	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_
.Ltmp87:
# %bb.11:                               # %_ZNSt6vectorIPN2rt4NodeESaIS2_EE9push_backEOS2_.exit
                                        #   in Loop: Header=BB13_9 Depth=1
	addq	%rbp, %rbx
	decq	%r14
	jne	.LBB13_9
# %bb.12:                               # %._crit_edge
	movq	120(%r15), %rdx
	imulq	%r13, %r12
	movq	16(%rsp), %rcx                  # 8-byte Reload
	movq	%rcx, %rsi
	imulq	%r12, %rsi
	shlq	$2, %rsi
	movq	64(%r15), %rdi
	addq	%rsi, %rdi
	addq	88(%r15), %rsi
	subq	%r12, %rdx
.Ltmp89:
	movq	8(%rsp), %r8                    # 8-byte Reload
	callq	_ZN2rt4Node10op_softmaxEPKfPfmmRKSt6vectorIPS0_SaIS5_EE
.Ltmp90:
# %bb.13:
	leaq	24(%rsp), %rsi
	movq	%rax, (%rsi)
.Ltmp91:
	leaq	32(%rsp), %rdi
	callq	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_
.Ltmp92:
# %bb.14:                               # %_ZNSt6vectorIPN2rt4NodeESaIS2_EE9push_backEOS2_.exit40
	movq	32(%rsp), %rbx
	movq	40(%rsp), %r14
	cmpq	%r14, %rbx
	movq	64(%rsp), %r15                  # 8-byte Reload
	je	.LBB13_15
.LBB13_20:                              # %.lr.ph54
                                        # =>This Inner Loop Header: Depth=1
	movq	(%rbx), %rsi
.Ltmp94:
	movq	%r15, %rdi
	callq	_ZN2rt5Graph3addEPNS_4NodeE
.Ltmp95:
# %bb.21:                               #   in Loop: Header=BB13_20 Depth=1
	addq	$8, %rbx
	cmpq	%r14, %rbx
	jne	.LBB13_20
.LBB13_15:                              # %._crit_edge55
.Ltmp97:
	leaq	32(%rsp), %rdi
	callq	_ZN2rt4Node3nopERKSt6vectorIPS0_SaIS2_EE
.Ltmp98:
# %bb.16:
.Ltmp99:
	movq	%rax, %rbx
	movq	%r15, %rdi
	movq	%rax, %rsi
	callq	_ZN2rt5Graph3addEPNS_4NodeE
.Ltmp100:
# %bb.17:
	movq	32(%rsp), %rdi
	testq	%rdi, %rdi
	je	.LBB13_7
# %bb.18:
	callq	_ZdlPv
.LBB13_7:
	movq	%rbx, %rax
	addq	$72, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%r12
	.cfi_def_cfa_offset 40
	popq	%r13
	.cfi_def_cfa_offset 32
	popq	%r14
	.cfi_def_cfa_offset 24
	popq	%r15
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	retq
.LBB13_23:
	.cfi_def_cfa_offset 128
.Ltmp101:
	jmp	.LBB13_24
.LBB13_19:
.Ltmp93:
	jmp	.LBB13_24
.LBB13_22:
.Ltmp96:
	jmp	.LBB13_24
.LBB13_27:
.Ltmp88:
.LBB13_24:
	movq	%rax, %rbx
	movq	32(%rsp), %rdi
	testq	%rdi, %rdi
	je	.LBB13_26
# %bb.25:
	callq	_ZdlPv
.LBB13_26:                              # %_ZNSt6vectorIPN2rt4NodeESaIS2_EED2Ev.exit42
	movq	%rbx, %rdi
	callq	_Unwind_Resume@PLT
.Lfunc_end13:
	.size	_ZN2rt12_GLOBAL__N_112opti_softmaxERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, .Lfunc_end13-_ZN2rt12_GLOBAL__N_112opti_softmaxERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.cfi_endproc
	.section	.gcc_except_table,"a",@progbits
	.p2align	2, 0x0
GCC_except_table13:
.Lexception6:
	.byte	255                             # @LPStart Encoding = omit
	.byte	255                             # @TType Encoding = omit
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end6-.Lcst_begin6
.Lcst_begin6:
	.uleb128 .Lfunc_begin6-.Lfunc_begin6    # >> Call Site 1 <<
	.uleb128 .Ltmp84-.Lfunc_begin6          #   Call between .Lfunc_begin6 and .Ltmp84
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp84-.Lfunc_begin6          # >> Call Site 2 <<
	.uleb128 .Ltmp87-.Ltmp84                #   Call between .Ltmp84 and .Ltmp87
	.uleb128 .Ltmp88-.Lfunc_begin6          #     jumps to .Ltmp88
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp89-.Lfunc_begin6          # >> Call Site 3 <<
	.uleb128 .Ltmp92-.Ltmp89                #   Call between .Ltmp89 and .Ltmp92
	.uleb128 .Ltmp93-.Lfunc_begin6          #     jumps to .Ltmp93
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp94-.Lfunc_begin6          # >> Call Site 4 <<
	.uleb128 .Ltmp95-.Ltmp94                #   Call between .Ltmp94 and .Ltmp95
	.uleb128 .Ltmp96-.Lfunc_begin6          #     jumps to .Ltmp96
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp97-.Lfunc_begin6          # >> Call Site 5 <<
	.uleb128 .Ltmp100-.Ltmp97               #   Call between .Ltmp97 and .Ltmp100
	.uleb128 .Ltmp101-.Lfunc_begin6         #     jumps to .Ltmp101
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp100-.Lfunc_begin6         # >> Call Site 6 <<
	.uleb128 .Lfunc_end13-.Ltmp100          #   Call between .Ltmp100 and .Lfunc_end13
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end6:
	.p2align	2, 0x0
                                        # -- End function
	.text
	.type	_ZN2rt12_GLOBAL__N_116opti_log_softmaxERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE,@function # -- Begin function _ZN2rt12_GLOBAL__N_116opti_log_softmaxERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
_ZN2rt12_GLOBAL__N_116opti_log_softmaxERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE: # @_ZN2rt12_GLOBAL__N_116opti_log_softmaxERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
.Lfunc_begin7:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception7
# %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	pushq	%r15
	.cfi_def_cfa_offset 24
	pushq	%r14
	.cfi_def_cfa_offset 32
	pushq	%r13
	.cfi_def_cfa_offset 40
	pushq	%r12
	.cfi_def_cfa_offset 48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	subq	$72, %rsp
	.cfi_def_cfa_offset 128
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	.cfi_offset %rbp, -16
	movq	%rdx, 8(%rsp)                   # 8-byte Spill
	movq	%rsi, %r15
	movq	%rdi, %r14
	movq	120(%rsi), %r8
	movq	%r8, %rax
	shrq	$10, %rax
	cmpq	$8, %rax
	movl	$8, %ecx
	cmovbq	%rax, %rcx
	cmpq	$2048, %r8                      # imm = 0x800
	movl	$1, %r13d
	cmovaeq	%rcx, %r13
	movq	%r8, %rax
	xorl	%edx, %edx
	divq	%r13
.LBB14_1:                               # =>This Inner Loop Header: Depth=1
	movq	%rax, %rcx
	movq	%rax, %rdx
	imulq	%r13, %rdx
	incq	%rax
	cmpq	%r8, %rdx
	jb	.LBB14_1
# %bb.2:
	cmpq	$2048, %r8                      # imm = 0x800
	jb	.LBB14_3
.LBB14_4:                               # %.preheader.i
                                        # =>This Inner Loop Header: Depth=1
	movq	%rcx, %r12
	incq	%rcx
	testb	$7, %r12b
	jne	.LBB14_4
	jmp	.LBB14_5
.LBB14_3:
	movq	%rcx, %r12
.LBB14_5:                               # %_ZN2rt12_GLOBAL__N_114elemwhise_sizeEmRmS1_.exit
	cmpq	$1, %r13
	ja	.LBB14_8
# %bb.6:
	movq	64(%r15), %rdi
	movq	88(%r15), %rsi
	movq	128(%r15), %rcx
	movq	%r8, %rdx
	movq	8(%rsp), %r8                    # 8-byte Reload
	callq	_ZN2rt4Node14op_log_softmaxEPKfPfmmRKSt6vectorIPS0_SaIS5_EE
	movq	%rax, %rbx
	movq	%r14, %rdi
	movq	%rax, %rsi
	callq	_ZN2rt5Graph3addEPNS_4NodeE
	jmp	.LBB14_7
.LBB14_8:                               # %.lr.ph
	movq	%r14, 64(%rsp)                  # 8-byte Spill
	movq	128(%r15), %rax
	xorps	%xmm0, %xmm0
	leaq	32(%rsp), %rcx
	movaps	%xmm0, (%rcx)
	movq	$0, 16(%rcx)
	decq	%r13
	movq	%r12, %rbp
	movq	%rax, 16(%rsp)                  # 8-byte Spill
	imulq	%rax, %rbp
	shlq	$2, %rbp
	xorl	%ebx, %ebx
	movq	%r13, %r14
.LBB14_9:                               # =>This Inner Loop Header: Depth=1
	movq	64(%r15), %rdi
	addq	%rbx, %rdi
	movq	88(%r15), %rsi
	addq	%rbx, %rsi
.Ltmp102:
	movq	%r12, %rdx
	movq	16(%rsp), %rcx                  # 8-byte Reload
	movq	8(%rsp), %r8                    # 8-byte Reload
	callq	_ZN2rt4Node14op_log_softmaxEPKfPfmmRKSt6vectorIPS0_SaIS5_EE
.Ltmp103:
# %bb.10:                               #   in Loop: Header=BB14_9 Depth=1
	movq	%rax, 24(%rsp)
.Ltmp104:
	leaq	32(%rsp), %rdi
	leaq	24(%rsp), %rsi
	callq	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_
.Ltmp105:
# %bb.11:                               # %_ZNSt6vectorIPN2rt4NodeESaIS2_EE9push_backEOS2_.exit
                                        #   in Loop: Header=BB14_9 Depth=1
	addq	%rbp, %rbx
	decq	%r14
	jne	.LBB14_9
# %bb.12:                               # %._crit_edge
	movq	120(%r15), %rdx
	imulq	%r13, %r12
	movq	16(%rsp), %rcx                  # 8-byte Reload
	movq	%rcx, %rsi
	imulq	%r12, %rsi
	shlq	$2, %rsi
	movq	64(%r15), %rdi
	addq	%rsi, %rdi
	addq	88(%r15), %rsi
	subq	%r12, %rdx
.Ltmp107:
	movq	8(%rsp), %r8                    # 8-byte Reload
	callq	_ZN2rt4Node14op_log_softmaxEPKfPfmmRKSt6vectorIPS0_SaIS5_EE
.Ltmp108:
# %bb.13:
	leaq	24(%rsp), %rsi
	movq	%rax, (%rsi)
.Ltmp109:
	leaq	32(%rsp), %rdi
	callq	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_
.Ltmp110:
# %bb.14:                               # %_ZNSt6vectorIPN2rt4NodeESaIS2_EE9push_backEOS2_.exit40
	movq	32(%rsp), %rbx
	movq	40(%rsp), %r14
	cmpq	%r14, %rbx
	movq	64(%rsp), %r15                  # 8-byte Reload
	je	.LBB14_15
.LBB14_20:                              # %.lr.ph54
                                        # =>This Inner Loop Header: Depth=1
	movq	(%rbx), %rsi
.Ltmp112:
	movq	%r15, %rdi
	callq	_ZN2rt5Graph3addEPNS_4NodeE
.Ltmp113:
# %bb.21:                               #   in Loop: Header=BB14_20 Depth=1
	addq	$8, %rbx
	cmpq	%r14, %rbx
	jne	.LBB14_20
.LBB14_15:                              # %._crit_edge55
.Ltmp115:
	leaq	32(%rsp), %rdi
	callq	_ZN2rt4Node3nopERKSt6vectorIPS0_SaIS2_EE
.Ltmp116:
# %bb.16:
.Ltmp117:
	movq	%rax, %rbx
	movq	%r15, %rdi
	movq	%rax, %rsi
	callq	_ZN2rt5Graph3addEPNS_4NodeE
.Ltmp118:
# %bb.17:
	movq	32(%rsp), %rdi
	testq	%rdi, %rdi
	je	.LBB14_7
# %bb.18:
	callq	_ZdlPv
.LBB14_7:
	movq	%rbx, %rax
	addq	$72, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%r12
	.cfi_def_cfa_offset 40
	popq	%r13
	.cfi_def_cfa_offset 32
	popq	%r14
	.cfi_def_cfa_offset 24
	popq	%r15
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	retq
.LBB14_23:
	.cfi_def_cfa_offset 128
.Ltmp119:
	jmp	.LBB14_24
.LBB14_19:
.Ltmp111:
	jmp	.LBB14_24
.LBB14_22:
.Ltmp114:
	jmp	.LBB14_24
.LBB14_27:
.Ltmp106:
.LBB14_24:
	movq	%rax, %rbx
	movq	32(%rsp), %rdi
	testq	%rdi, %rdi
	je	.LBB14_26
# %bb.25:
	callq	_ZdlPv
.LBB14_26:                              # %_ZNSt6vectorIPN2rt4NodeESaIS2_EED2Ev.exit42
	movq	%rbx, %rdi
	callq	_Unwind_Resume@PLT
.Lfunc_end14:
	.size	_ZN2rt12_GLOBAL__N_116opti_log_softmaxERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, .Lfunc_end14-_ZN2rt12_GLOBAL__N_116opti_log_softmaxERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.cfi_endproc
	.section	.gcc_except_table,"a",@progbits
	.p2align	2, 0x0
GCC_except_table14:
.Lexception7:
	.byte	255                             # @LPStart Encoding = omit
	.byte	255                             # @TType Encoding = omit
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end7-.Lcst_begin7
.Lcst_begin7:
	.uleb128 .Lfunc_begin7-.Lfunc_begin7    # >> Call Site 1 <<
	.uleb128 .Ltmp102-.Lfunc_begin7         #   Call between .Lfunc_begin7 and .Ltmp102
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp102-.Lfunc_begin7         # >> Call Site 2 <<
	.uleb128 .Ltmp105-.Ltmp102              #   Call between .Ltmp102 and .Ltmp105
	.uleb128 .Ltmp106-.Lfunc_begin7         #     jumps to .Ltmp106
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp107-.Lfunc_begin7         # >> Call Site 3 <<
	.uleb128 .Ltmp110-.Ltmp107              #   Call between .Ltmp107 and .Ltmp110
	.uleb128 .Ltmp111-.Lfunc_begin7         #     jumps to .Ltmp111
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp112-.Lfunc_begin7         # >> Call Site 4 <<
	.uleb128 .Ltmp113-.Ltmp112              #   Call between .Ltmp112 and .Ltmp113
	.uleb128 .Ltmp114-.Lfunc_begin7         #     jumps to .Ltmp114
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp115-.Lfunc_begin7         # >> Call Site 5 <<
	.uleb128 .Ltmp118-.Ltmp115              #   Call between .Ltmp115 and .Ltmp118
	.uleb128 .Ltmp119-.Lfunc_begin7         #     jumps to .Ltmp119
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp118-.Lfunc_begin7         # >> Call Site 6 <<
	.uleb128 .Lfunc_end14-.Ltmp118          #   Call between .Ltmp118 and .Lfunc_end14
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end7:
	.p2align	2, 0x0
                                        # -- End function
	.text
	.type	_ZN2rt12_GLOBAL__N_126opti_softmax_cross_entropyERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE,@function # -- Begin function _ZN2rt12_GLOBAL__N_126opti_softmax_cross_entropyERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
_ZN2rt12_GLOBAL__N_126opti_softmax_cross_entropyERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE: # @_ZN2rt12_GLOBAL__N_126opti_softmax_cross_entropyERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.cfi_startproc
# %bb.0:
	pushq	%r14
	.cfi_def_cfa_offset 16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	pushq	%rax
	.cfi_def_cfa_offset 32
	.cfi_offset %rbx, -24
	.cfi_offset %r14, -16
	movq	%rdx, %r9
	movq	%rdi, %rbx
	movq	64(%rsi), %rdi
	movq	72(%rsi), %rax
	movq	88(%rsi), %rdx
	movq	120(%rsi), %rcx
	movq	128(%rsi), %r8
	movq	%rax, %rsi
	callq	_ZN2rt4Node24op_softmax_cross_entropyEPKfS2_PfmmRKSt6vectorIPS0_SaIS5_EE
	movq	%rax, %r14
	movq	%rbx, %rdi
	movq	%rax, %rsi
	callq	_ZN2rt5Graph3addEPNS_4NodeE
	movq	%r14, %rax
	addq	$8, %rsp
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	retq
.Lfunc_end15:
	.size	_ZN2rt12_GLOBAL__N_126opti_softmax_cross_entropyERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, .Lfunc_end15-_ZN2rt12_GLOBAL__N_126opti_softmax_cross_entropyERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.cfi_endproc
                                        # -- End function
	.type	_ZN2rt12_GLOBAL__N_111opti_conv2dERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE,@function # -- Begin function _ZN2rt12_GLOBAL__N_111opti_conv2dERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
_ZN2rt12_GLOBAL__N_111opti_conv2dERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE: # @_ZN2rt12_GLOBAL__N_111opti_conv2dERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.cfi_startproc
# %bb.0:
	pushq	%r14
	.cfi_def_cfa_offset 16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	pushq	%rax
	.cfi_def_cfa_offset 32
	.cfi_offset %rbx, -24
	.cfi_offset %r14, -16
	movq	%rdx, %rax
	movq	%rsi, %r10
	movq	%rdi, %rbx
	movq	64(%rsi), %rdi
	movq	72(%rsi), %rsi
	leaq	144(%r10), %rdx
	movl	208(%r10), %ecx
	movl	212(%r10), %r8d
	movq	88(%r10), %r9
	leaq	160(%r10), %r11
	addq	$176, %r10
	subq	$8, %rsp
	.cfi_adjust_cfa_offset 8
	pushq	%rax
	.cfi_adjust_cfa_offset 8
	pushq	%r10
	.cfi_adjust_cfa_offset 8
	pushq	%r11
	.cfi_adjust_cfa_offset 8
	callq	_ZN2rt4Node9op_conv2dEPKfS2_PKiiiPfS4_S4_RKSt6vectorIPS0_SaIS7_EE
	addq	$32, %rsp
	.cfi_adjust_cfa_offset -32
	movq	%rax, %r14
	movq	%rbx, %rdi
	movq	%rax, %rsi
	callq	_ZN2rt5Graph3addEPNS_4NodeE
	movq	%r14, %rax
	addq	$8, %rsp
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	retq
.Lfunc_end16:
	.size	_ZN2rt12_GLOBAL__N_111opti_conv2dERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, .Lfunc_end16-_ZN2rt12_GLOBAL__N_111opti_conv2dERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.cfi_endproc
                                        # -- End function
	.type	_ZN2rt12_GLOBAL__N_19opti_reluERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE,@function # -- Begin function _ZN2rt12_GLOBAL__N_19opti_reluERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
_ZN2rt12_GLOBAL__N_19opti_reluERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE: # @_ZN2rt12_GLOBAL__N_19opti_reluERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
.Lfunc_begin8:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception8
# %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	pushq	%r15
	.cfi_def_cfa_offset 24
	pushq	%r14
	.cfi_def_cfa_offset 32
	pushq	%r13
	.cfi_def_cfa_offset 40
	pushq	%r12
	.cfi_def_cfa_offset 48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	subq	$88, %rsp
	.cfi_def_cfa_offset 144
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	.cfi_offset %rbp, -16
	movq	%rdx, 8(%rsp)                   # 8-byte Spill
	movq	%rdi, %r14
	movq	%rsi, 16(%rsp)                  # 8-byte Spill
	movq	120(%rsi), %rcx
	movq	%rcx, %rax
	shrq	$10, %rax
	cmpq	$8, %rax
	movl	$8, %edx
	cmovbq	%rax, %rdx
	cmpq	$2048, %rcx                     # imm = 0x800
	movl	$1, %ebp
	cmovaeq	%rdx, %rbp
	movq	%rcx, %rax
	xorl	%edx, %edx
	divq	%rbp
.LBB17_1:                               # =>This Inner Loop Header: Depth=1
	movq	%rax, %rdx
	movq	%rax, %rsi
	imulq	%rbp, %rsi
	incq	%rax
	cmpq	%rcx, %rsi
	jb	.LBB17_1
# %bb.2:
	cmpq	$2048, %rcx                     # imm = 0x800
	jb	.LBB17_3
.LBB17_4:                               # %.preheader.i
                                        # =>This Inner Loop Header: Depth=1
	movq	%rdx, %r12
	incq	%rdx
	testb	$7, %r12b
	jne	.LBB17_4
	jmp	.LBB17_5
.LBB17_3:
	movq	%rdx, %r12
.LBB17_5:                               # %_ZN2rt12_GLOBAL__N_114elemwhise_sizeEmRmS1_.exit
	movq	16(%rsp), %rax                  # 8-byte Reload
	movq	64(%rax), %r15
	movq	88(%rax), %rbx
	cmpq	$1, %rbp
	ja	.LBB17_8
# %bb.6:
	movq	%r15, %rdi
	movq	%rbx, %rsi
	movq	%rcx, %rdx
	movq	8(%rsp), %rcx                   # 8-byte Reload
	callq	_ZN2rt4Node7op_reluEPKfPfmRKSt6vectorIPS0_SaIS5_EE
	movq	%rax, %rbx
	movq	%r14, %rdi
	movq	%rax, %rsi
	callq	_ZN2rt5Graph3addEPNS_4NodeE
	jmp	.LBB17_7
.LBB17_8:                               # %.lr.ph.preheader
	movq	%r14, 64(%rsp)                  # 8-byte Spill
	xorps	%xmm0, %xmm0
	leaq	32(%rsp), %rax
	movaps	%xmm0, (%rax)
	movq	$0, 16(%rax)
	decq	%rbp
	leaq	(,%r12,4), %r14
	movq	%r15, 72(%rsp)                  # 8-byte Spill
	movq	%rbx, 80(%rsp)                  # 8-byte Spill
	movq	%rbp, %r13
.LBB17_9:                               # %.lr.ph
                                        # =>This Inner Loop Header: Depth=1
.Ltmp120:
	movq	%r15, %rdi
	movq	%rbx, %rsi
	movq	%r12, %rdx
	movq	8(%rsp), %rcx                   # 8-byte Reload
	callq	_ZN2rt4Node7op_reluEPKfPfmRKSt6vectorIPS0_SaIS5_EE
.Ltmp121:
# %bb.10:                               #   in Loop: Header=BB17_9 Depth=1
	movq	%rax, 24(%rsp)
.Ltmp122:
	leaq	32(%rsp), %rdi
	leaq	24(%rsp), %rsi
	callq	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_
.Ltmp123:
# %bb.11:                               # %_ZNSt6vectorIPN2rt4NodeESaIS2_EE9push_backEOS2_.exit
                                        #   in Loop: Header=BB17_9 Depth=1
	addq	%r14, %rbx
	addq	%r14, %r15
	decq	%r13
	jne	.LBB17_9
# %bb.12:                               # %._crit_edge
	movq	16(%rsp), %rax                  # 8-byte Reload
	movq	120(%rax), %rdx
	imulq	%rbp, %r12
	movq	72(%rsp), %rax                  # 8-byte Reload
	leaq	(%rax,%r12,4), %rdi
	movq	80(%rsp), %rax                  # 8-byte Reload
	leaq	(%rax,%r12,4), %rsi
	subq	%r12, %rdx
.Ltmp125:
	movq	8(%rsp), %rcx                   # 8-byte Reload
	callq	_ZN2rt4Node7op_reluEPKfPfmRKSt6vectorIPS0_SaIS5_EE
.Ltmp126:
# %bb.13:
	leaq	24(%rsp), %rsi
	movq	%rax, (%rsi)
.Ltmp127:
	leaq	32(%rsp), %rdi
	callq	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_
.Ltmp128:
# %bb.14:                               # %_ZNSt6vectorIPN2rt4NodeESaIS2_EE9push_backEOS2_.exit34
	movq	32(%rsp), %rbx
	movq	40(%rsp), %r14
	cmpq	%r14, %rbx
	movq	64(%rsp), %r15                  # 8-byte Reload
	je	.LBB17_15
.LBB17_20:                              # %.lr.ph48
                                        # =>This Inner Loop Header: Depth=1
	movq	(%rbx), %rsi
.Ltmp130:
	movq	%r15, %rdi
	callq	_ZN2rt5Graph3addEPNS_4NodeE
.Ltmp131:
# %bb.21:                               #   in Loop: Header=BB17_20 Depth=1
	addq	$8, %rbx
	cmpq	%r14, %rbx
	jne	.LBB17_20
.LBB17_15:                              # %._crit_edge49
.Ltmp133:
	leaq	32(%rsp), %rdi
	callq	_ZN2rt4Node3nopERKSt6vectorIPS0_SaIS2_EE
.Ltmp134:
# %bb.16:
.Ltmp135:
	movq	%rax, %rbx
	movq	%r15, %rdi
	movq	%rax, %rsi
	callq	_ZN2rt5Graph3addEPNS_4NodeE
.Ltmp136:
# %bb.17:
	movq	32(%rsp), %rdi
	testq	%rdi, %rdi
	je	.LBB17_7
# %bb.18:
	callq	_ZdlPv
.LBB17_7:
	movq	%rbx, %rax
	addq	$88, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%r12
	.cfi_def_cfa_offset 40
	popq	%r13
	.cfi_def_cfa_offset 32
	popq	%r14
	.cfi_def_cfa_offset 24
	popq	%r15
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	retq
.LBB17_23:
	.cfi_def_cfa_offset 144
.Ltmp137:
	jmp	.LBB17_24
.LBB17_19:
.Ltmp129:
	jmp	.LBB17_24
.LBB17_22:
.Ltmp132:
	jmp	.LBB17_24
.LBB17_27:
.Ltmp124:
.LBB17_24:
	movq	%rax, %rbx
	movq	32(%rsp), %rdi
	testq	%rdi, %rdi
	je	.LBB17_26
# %bb.25:
	callq	_ZdlPv
.LBB17_26:                              # %_ZNSt6vectorIPN2rt4NodeESaIS2_EED2Ev.exit36
	movq	%rbx, %rdi
	callq	_Unwind_Resume@PLT
.Lfunc_end17:
	.size	_ZN2rt12_GLOBAL__N_19opti_reluERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, .Lfunc_end17-_ZN2rt12_GLOBAL__N_19opti_reluERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.cfi_endproc
	.section	.gcc_except_table,"a",@progbits
	.p2align	2, 0x0
GCC_except_table17:
.Lexception8:
	.byte	255                             # @LPStart Encoding = omit
	.byte	255                             # @TType Encoding = omit
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end8-.Lcst_begin8
.Lcst_begin8:
	.uleb128 .Lfunc_begin8-.Lfunc_begin8    # >> Call Site 1 <<
	.uleb128 .Ltmp120-.Lfunc_begin8         #   Call between .Lfunc_begin8 and .Ltmp120
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp120-.Lfunc_begin8         # >> Call Site 2 <<
	.uleb128 .Ltmp123-.Ltmp120              #   Call between .Ltmp120 and .Ltmp123
	.uleb128 .Ltmp124-.Lfunc_begin8         #     jumps to .Ltmp124
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp125-.Lfunc_begin8         # >> Call Site 3 <<
	.uleb128 .Ltmp128-.Ltmp125              #   Call between .Ltmp125 and .Ltmp128
	.uleb128 .Ltmp129-.Lfunc_begin8         #     jumps to .Ltmp129
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp130-.Lfunc_begin8         # >> Call Site 4 <<
	.uleb128 .Ltmp131-.Ltmp130              #   Call between .Ltmp130 and .Ltmp131
	.uleb128 .Ltmp132-.Lfunc_begin8         #     jumps to .Ltmp132
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp133-.Lfunc_begin8         # >> Call Site 5 <<
	.uleb128 .Ltmp136-.Ltmp133              #   Call between .Ltmp133 and .Ltmp136
	.uleb128 .Ltmp137-.Lfunc_begin8         #     jumps to .Ltmp137
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp136-.Lfunc_begin8         # >> Call Site 6 <<
	.uleb128 .Lfunc_end17-.Ltmp136          #   Call between .Ltmp136 and .Lfunc_end17
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end8:
	.p2align	2, 0x0
                                        # -- End function
	.text
	.type	_ZN2rt12_GLOBAL__N_115opti_relu_leakyERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE,@function # -- Begin function _ZN2rt12_GLOBAL__N_115opti_relu_leakyERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
_ZN2rt12_GLOBAL__N_115opti_relu_leakyERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE: # @_ZN2rt12_GLOBAL__N_115opti_relu_leakyERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
.Lfunc_begin9:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception9
# %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	pushq	%r15
	.cfi_def_cfa_offset 24
	pushq	%r14
	.cfi_def_cfa_offset 32
	pushq	%r13
	.cfi_def_cfa_offset 40
	pushq	%r12
	.cfi_def_cfa_offset 48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	subq	$72, %rsp
	.cfi_def_cfa_offset 128
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	.cfi_offset %rbp, -16
	movq	%rdx, (%rsp)                    # 8-byte Spill
	movq	%rsi, %r8
	movq	%rdi, %r14
	movq	120(%rsi), %rcx
	movq	%rcx, %rax
	shrq	$10, %rax
	cmpq	$8, %rax
	movl	$8, %edx
	cmovbq	%rax, %rdx
	cmpq	$2048, %rcx                     # imm = 0x800
	movl	$1, %r13d
	cmovaeq	%rdx, %r13
	movq	%rcx, %rax
	xorl	%edx, %edx
	divq	%r13
.LBB18_1:                               # =>This Inner Loop Header: Depth=1
	movq	%rax, %rdx
	movq	%rax, %rsi
	imulq	%r13, %rsi
	incq	%rax
	cmpq	%rcx, %rsi
	jb	.LBB18_1
# %bb.2:
	cmpq	$2048, %rcx                     # imm = 0x800
	jb	.LBB18_3
.LBB18_4:                               # %.preheader.i
                                        # =>This Inner Loop Header: Depth=1
	movq	%rdx, %r12
	incq	%rdx
	testb	$7, %r12b
	jne	.LBB18_4
	jmp	.LBB18_5
.LBB18_3:
	movq	%rdx, %r12
.LBB18_5:                               # %_ZN2rt12_GLOBAL__N_114elemwhise_sizeEmRmS1_.exit
	movq	64(%r8), %rbx
	movq	88(%r8), %rsi
	cmpq	$1, %r13
	ja	.LBB18_8
# %bb.6:
	movss	216(%r8), %xmm0                 # xmm0 = mem[0],zero,zero,zero
	movq	%rbx, %rdi
	movq	%rcx, %rdx
	movq	(%rsp), %rcx                    # 8-byte Reload
	callq	_ZN2rt4Node13op_relu_leakyEPKfPfmfRKSt6vectorIPS0_SaIS5_EE
	movq	%rax, %rbx
	movq	%r14, %rdi
	movq	%rax, %rsi
	callq	_ZN2rt5Graph3addEPNS_4NodeE
	jmp	.LBB18_7
.LBB18_8:                               # %.lr.ph
	movq	%r14, 40(%rsp)                  # 8-byte Spill
	xorps	%xmm0, %xmm0
	leaq	16(%rsp), %rax
	movaps	%xmm0, (%rax)
	movq	$0, 16(%rax)
	decq	%r13
	leaq	(,%r12,4), %rbp
	movq	%rbx, 48(%rsp)                  # 8-byte Spill
	movq	%rsi, 56(%rsp)                  # 8-byte Spill
	movq	%rsi, %r14
	movq	%r13, 64(%rsp)                  # 8-byte Spill
.LBB18_9:                               # =>This Inner Loop Header: Depth=1
	movq	%r8, %r15
	movss	216(%r8), %xmm0                 # xmm0 = mem[0],zero,zero,zero
.Ltmp138:
	movq	%rbx, %rdi
	movq	%r14, %rsi
	movq	%r12, %rdx
	movq	(%rsp), %rcx                    # 8-byte Reload
	callq	_ZN2rt4Node13op_relu_leakyEPKfPfmfRKSt6vectorIPS0_SaIS5_EE
.Ltmp139:
# %bb.10:                               #   in Loop: Header=BB18_9 Depth=1
	movq	%rax, 8(%rsp)
.Ltmp140:
	leaq	16(%rsp), %rdi
	leaq	8(%rsp), %rsi
	callq	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_
.Ltmp141:
# %bb.11:                               # %_ZNSt6vectorIPN2rt4NodeESaIS2_EE9push_backEOS2_.exit
                                        #   in Loop: Header=BB18_9 Depth=1
	addq	%rbp, %r14
	addq	%rbp, %rbx
	decq	%r13
	movq	%r15, %r8
	jne	.LBB18_9
# %bb.12:                               # %._crit_edge
	movq	120(%r8), %rdx
	imulq	64(%rsp), %r12                  # 8-byte Folded Reload
	movq	48(%rsp), %rax                  # 8-byte Reload
	leaq	(%rax,%r12,4), %rdi
	movq	56(%rsp), %rax                  # 8-byte Reload
	leaq	(%rax,%r12,4), %rsi
	subq	%r12, %rdx
	movss	216(%r8), %xmm0                 # xmm0 = mem[0],zero,zero,zero
.Ltmp143:
	movq	(%rsp), %rcx                    # 8-byte Reload
	callq	_ZN2rt4Node13op_relu_leakyEPKfPfmfRKSt6vectorIPS0_SaIS5_EE
.Ltmp144:
# %bb.13:
	leaq	8(%rsp), %rsi
	movq	%rax, (%rsi)
.Ltmp145:
	leaq	16(%rsp), %rdi
	callq	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_
.Ltmp146:
# %bb.14:                               # %_ZNSt6vectorIPN2rt4NodeESaIS2_EE9push_backEOS2_.exit37
	movq	16(%rsp), %rbx
	movq	24(%rsp), %r14
	cmpq	%r14, %rbx
	movq	40(%rsp), %r15                  # 8-byte Reload
	je	.LBB18_15
.LBB18_20:                              # %.lr.ph51
                                        # =>This Inner Loop Header: Depth=1
	movq	(%rbx), %rsi
.Ltmp148:
	movq	%r15, %rdi
	callq	_ZN2rt5Graph3addEPNS_4NodeE
.Ltmp149:
# %bb.21:                               #   in Loop: Header=BB18_20 Depth=1
	addq	$8, %rbx
	cmpq	%r14, %rbx
	jne	.LBB18_20
.LBB18_15:                              # %._crit_edge52
.Ltmp151:
	leaq	16(%rsp), %rdi
	callq	_ZN2rt4Node3nopERKSt6vectorIPS0_SaIS2_EE
.Ltmp152:
# %bb.16:
.Ltmp153:
	movq	%rax, %rbx
	movq	%r15, %rdi
	movq	%rax, %rsi
	callq	_ZN2rt5Graph3addEPNS_4NodeE
.Ltmp154:
# %bb.17:
	movq	16(%rsp), %rdi
	testq	%rdi, %rdi
	je	.LBB18_7
# %bb.18:
	callq	_ZdlPv
.LBB18_7:
	movq	%rbx, %rax
	addq	$72, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%r12
	.cfi_def_cfa_offset 40
	popq	%r13
	.cfi_def_cfa_offset 32
	popq	%r14
	.cfi_def_cfa_offset 24
	popq	%r15
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	retq
.LBB18_23:
	.cfi_def_cfa_offset 128
.Ltmp155:
	jmp	.LBB18_24
.LBB18_19:
.Ltmp147:
	jmp	.LBB18_24
.LBB18_22:
.Ltmp150:
	jmp	.LBB18_24
.LBB18_27:
.Ltmp142:
.LBB18_24:
	movq	%rax, %rbx
	movq	16(%rsp), %rdi
	testq	%rdi, %rdi
	je	.LBB18_26
# %bb.25:
	callq	_ZdlPv
.LBB18_26:                              # %_ZNSt6vectorIPN2rt4NodeESaIS2_EED2Ev.exit39
	movq	%rbx, %rdi
	callq	_Unwind_Resume@PLT
.Lfunc_end18:
	.size	_ZN2rt12_GLOBAL__N_115opti_relu_leakyERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, .Lfunc_end18-_ZN2rt12_GLOBAL__N_115opti_relu_leakyERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.cfi_endproc
	.section	.gcc_except_table,"a",@progbits
	.p2align	2, 0x0
GCC_except_table18:
.Lexception9:
	.byte	255                             # @LPStart Encoding = omit
	.byte	255                             # @TType Encoding = omit
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end9-.Lcst_begin9
.Lcst_begin9:
	.uleb128 .Lfunc_begin9-.Lfunc_begin9    # >> Call Site 1 <<
	.uleb128 .Ltmp138-.Lfunc_begin9         #   Call between .Lfunc_begin9 and .Ltmp138
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp138-.Lfunc_begin9         # >> Call Site 2 <<
	.uleb128 .Ltmp141-.Ltmp138              #   Call between .Ltmp138 and .Ltmp141
	.uleb128 .Ltmp142-.Lfunc_begin9         #     jumps to .Ltmp142
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp143-.Lfunc_begin9         # >> Call Site 3 <<
	.uleb128 .Ltmp146-.Ltmp143              #   Call between .Ltmp143 and .Ltmp146
	.uleb128 .Ltmp147-.Lfunc_begin9         #     jumps to .Ltmp147
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp148-.Lfunc_begin9         # >> Call Site 4 <<
	.uleb128 .Ltmp149-.Ltmp148              #   Call between .Ltmp148 and .Ltmp149
	.uleb128 .Ltmp150-.Lfunc_begin9         #     jumps to .Ltmp150
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp151-.Lfunc_begin9         # >> Call Site 5 <<
	.uleb128 .Ltmp154-.Ltmp151              #   Call between .Ltmp151 and .Ltmp154
	.uleb128 .Ltmp155-.Lfunc_begin9         #     jumps to .Ltmp155
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp154-.Lfunc_begin9         # >> Call Site 6 <<
	.uleb128 .Lfunc_end18-.Ltmp154          #   Call between .Ltmp154 and .Lfunc_end18
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end9:
	.p2align	2, 0x0
                                        # -- End function
	.text
	.type	_ZN2rt12_GLOBAL__N_19opti_tanhERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE,@function # -- Begin function _ZN2rt12_GLOBAL__N_19opti_tanhERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
_ZN2rt12_GLOBAL__N_19opti_tanhERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE: # @_ZN2rt12_GLOBAL__N_19opti_tanhERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
.Lfunc_begin10:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception10
# %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	pushq	%r15
	.cfi_def_cfa_offset 24
	pushq	%r14
	.cfi_def_cfa_offset 32
	pushq	%r13
	.cfi_def_cfa_offset 40
	pushq	%r12
	.cfi_def_cfa_offset 48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	subq	$88, %rsp
	.cfi_def_cfa_offset 144
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	.cfi_offset %rbp, -16
	movq	%rdx, 8(%rsp)                   # 8-byte Spill
	movq	%rdi, %r14
	movq	%rsi, 16(%rsp)                  # 8-byte Spill
	movq	120(%rsi), %rcx
	movq	%rcx, %rax
	shrq	$10, %rax
	cmpq	$8, %rax
	movl	$8, %edx
	cmovbq	%rax, %rdx
	cmpq	$2048, %rcx                     # imm = 0x800
	movl	$1, %ebp
	cmovaeq	%rdx, %rbp
	movq	%rcx, %rax
	xorl	%edx, %edx
	divq	%rbp
.LBB19_1:                               # =>This Inner Loop Header: Depth=1
	movq	%rax, %rdx
	movq	%rax, %rsi
	imulq	%rbp, %rsi
	incq	%rax
	cmpq	%rcx, %rsi
	jb	.LBB19_1
# %bb.2:
	cmpq	$2048, %rcx                     # imm = 0x800
	jb	.LBB19_3
.LBB19_4:                               # %.preheader.i
                                        # =>This Inner Loop Header: Depth=1
	movq	%rdx, %r12
	incq	%rdx
	testb	$7, %r12b
	jne	.LBB19_4
	jmp	.LBB19_5
.LBB19_3:
	movq	%rdx, %r12
.LBB19_5:                               # %_ZN2rt12_GLOBAL__N_114elemwhise_sizeEmRmS1_.exit
	movq	16(%rsp), %rax                  # 8-byte Reload
	movq	64(%rax), %r15
	movq	88(%rax), %rbx
	cmpq	$1, %rbp
	ja	.LBB19_8
# %bb.6:
	movq	%r15, %rdi
	movq	%rbx, %rsi
	movq	%rcx, %rdx
	movq	8(%rsp), %rcx                   # 8-byte Reload
	callq	_ZN2rt4Node7op_tanhEPKfPfmRKSt6vectorIPS0_SaIS5_EE
	movq	%rax, %rbx
	movq	%r14, %rdi
	movq	%rax, %rsi
	callq	_ZN2rt5Graph3addEPNS_4NodeE
	jmp	.LBB19_7
.LBB19_8:                               # %.lr.ph.preheader
	movq	%r14, 64(%rsp)                  # 8-byte Spill
	xorps	%xmm0, %xmm0
	leaq	32(%rsp), %rax
	movaps	%xmm0, (%rax)
	movq	$0, 16(%rax)
	decq	%rbp
	leaq	(,%r12,4), %r14
	movq	%r15, 72(%rsp)                  # 8-byte Spill
	movq	%rbx, 80(%rsp)                  # 8-byte Spill
	movq	%rbp, %r13
.LBB19_9:                               # %.lr.ph
                                        # =>This Inner Loop Header: Depth=1
.Ltmp156:
	movq	%r15, %rdi
	movq	%rbx, %rsi
	movq	%r12, %rdx
	movq	8(%rsp), %rcx                   # 8-byte Reload
	callq	_ZN2rt4Node7op_tanhEPKfPfmRKSt6vectorIPS0_SaIS5_EE
.Ltmp157:
# %bb.10:                               #   in Loop: Header=BB19_9 Depth=1
	movq	%rax, 24(%rsp)
.Ltmp158:
	leaq	32(%rsp), %rdi
	leaq	24(%rsp), %rsi
	callq	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_
.Ltmp159:
# %bb.11:                               # %_ZNSt6vectorIPN2rt4NodeESaIS2_EE9push_backEOS2_.exit
                                        #   in Loop: Header=BB19_9 Depth=1
	addq	%r14, %rbx
	addq	%r14, %r15
	decq	%r13
	jne	.LBB19_9
# %bb.12:                               # %._crit_edge
	movq	16(%rsp), %rax                  # 8-byte Reload
	movq	120(%rax), %rdx
	imulq	%rbp, %r12
	movq	72(%rsp), %rax                  # 8-byte Reload
	leaq	(%rax,%r12,4), %rdi
	movq	80(%rsp), %rax                  # 8-byte Reload
	leaq	(%rax,%r12,4), %rsi
	subq	%r12, %rdx
.Ltmp161:
	movq	8(%rsp), %rcx                   # 8-byte Reload
	callq	_ZN2rt4Node7op_tanhEPKfPfmRKSt6vectorIPS0_SaIS5_EE
.Ltmp162:
# %bb.13:
	leaq	24(%rsp), %rsi
	movq	%rax, (%rsi)
.Ltmp163:
	leaq	32(%rsp), %rdi
	callq	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_
.Ltmp164:
# %bb.14:                               # %_ZNSt6vectorIPN2rt4NodeESaIS2_EE9push_backEOS2_.exit34
	movq	32(%rsp), %rbx
	movq	40(%rsp), %r14
	cmpq	%r14, %rbx
	movq	64(%rsp), %r15                  # 8-byte Reload
	je	.LBB19_15
.LBB19_20:                              # %.lr.ph48
                                        # =>This Inner Loop Header: Depth=1
	movq	(%rbx), %rsi
.Ltmp166:
	movq	%r15, %rdi
	callq	_ZN2rt5Graph3addEPNS_4NodeE
.Ltmp167:
# %bb.21:                               #   in Loop: Header=BB19_20 Depth=1
	addq	$8, %rbx
	cmpq	%r14, %rbx
	jne	.LBB19_20
.LBB19_15:                              # %._crit_edge49
.Ltmp169:
	leaq	32(%rsp), %rdi
	callq	_ZN2rt4Node3nopERKSt6vectorIPS0_SaIS2_EE
.Ltmp170:
# %bb.16:
.Ltmp171:
	movq	%rax, %rbx
	movq	%r15, %rdi
	movq	%rax, %rsi
	callq	_ZN2rt5Graph3addEPNS_4NodeE
.Ltmp172:
# %bb.17:
	movq	32(%rsp), %rdi
	testq	%rdi, %rdi
	je	.LBB19_7
# %bb.18:
	callq	_ZdlPv
.LBB19_7:
	movq	%rbx, %rax
	addq	$88, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%r12
	.cfi_def_cfa_offset 40
	popq	%r13
	.cfi_def_cfa_offset 32
	popq	%r14
	.cfi_def_cfa_offset 24
	popq	%r15
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	retq
.LBB19_23:
	.cfi_def_cfa_offset 144
.Ltmp173:
	jmp	.LBB19_24
.LBB19_19:
.Ltmp165:
	jmp	.LBB19_24
.LBB19_22:
.Ltmp168:
	jmp	.LBB19_24
.LBB19_27:
.Ltmp160:
.LBB19_24:
	movq	%rax, %rbx
	movq	32(%rsp), %rdi
	testq	%rdi, %rdi
	je	.LBB19_26
# %bb.25:
	callq	_ZdlPv
.LBB19_26:                              # %_ZNSt6vectorIPN2rt4NodeESaIS2_EED2Ev.exit36
	movq	%rbx, %rdi
	callq	_Unwind_Resume@PLT
.Lfunc_end19:
	.size	_ZN2rt12_GLOBAL__N_19opti_tanhERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, .Lfunc_end19-_ZN2rt12_GLOBAL__N_19opti_tanhERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.cfi_endproc
	.section	.gcc_except_table,"a",@progbits
	.p2align	2, 0x0
GCC_except_table19:
.Lexception10:
	.byte	255                             # @LPStart Encoding = omit
	.byte	255                             # @TType Encoding = omit
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end10-.Lcst_begin10
.Lcst_begin10:
	.uleb128 .Lfunc_begin10-.Lfunc_begin10  # >> Call Site 1 <<
	.uleb128 .Ltmp156-.Lfunc_begin10        #   Call between .Lfunc_begin10 and .Ltmp156
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp156-.Lfunc_begin10        # >> Call Site 2 <<
	.uleb128 .Ltmp159-.Ltmp156              #   Call between .Ltmp156 and .Ltmp159
	.uleb128 .Ltmp160-.Lfunc_begin10        #     jumps to .Ltmp160
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp161-.Lfunc_begin10        # >> Call Site 3 <<
	.uleb128 .Ltmp164-.Ltmp161              #   Call between .Ltmp161 and .Ltmp164
	.uleb128 .Ltmp165-.Lfunc_begin10        #     jumps to .Ltmp165
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp166-.Lfunc_begin10        # >> Call Site 4 <<
	.uleb128 .Ltmp167-.Ltmp166              #   Call between .Ltmp166 and .Ltmp167
	.uleb128 .Ltmp168-.Lfunc_begin10        #     jumps to .Ltmp168
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp169-.Lfunc_begin10        # >> Call Site 5 <<
	.uleb128 .Ltmp172-.Ltmp169              #   Call between .Ltmp169 and .Ltmp172
	.uleb128 .Ltmp173-.Lfunc_begin10        #     jumps to .Ltmp173
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp172-.Lfunc_begin10        # >> Call Site 6 <<
	.uleb128 .Lfunc_end19-.Ltmp172          #   Call between .Ltmp172 and .Lfunc_end19
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end10:
	.p2align	2, 0x0
                                        # -- End function
	.text
	.type	_ZN2rt12_GLOBAL__N_113opti_mse_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE,@function # -- Begin function _ZN2rt12_GLOBAL__N_113opti_mse_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
_ZN2rt12_GLOBAL__N_113opti_mse_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE: # @_ZN2rt12_GLOBAL__N_113opti_mse_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
.Lfunc_begin11:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception11
# %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	pushq	%r15
	.cfi_def_cfa_offset 24
	pushq	%r14
	.cfi_def_cfa_offset 32
	pushq	%r13
	.cfi_def_cfa_offset 40
	pushq	%r12
	.cfi_def_cfa_offset 48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	subq	$56, %rsp
	.cfi_def_cfa_offset 112
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	.cfi_offset %rbp, -16
	movq	%rdx, (%rsp)                    # 8-byte Spill
	movq	%rsi, %r15
	movq	%rdi, %rbx
	movq	120(%rsi), %rcx
	movq	%rcx, %rax
	shrq	$10, %rax
	cmpq	$8, %rax
	movl	$8, %edx
	cmovbq	%rax, %rdx
	cmpq	$2048, %rcx                     # imm = 0x800
	movl	$1, %ebp
	cmovaeq	%rdx, %rbp
	movq	%rcx, %rax
	xorl	%edx, %edx
	divq	%rbp
.LBB20_1:                               # =>This Inner Loop Header: Depth=1
	movq	%rax, %rdx
	movq	%rax, %rsi
	imulq	%rbp, %rsi
	incq	%rax
	cmpq	%rcx, %rsi
	jb	.LBB20_1
# %bb.2:
	cmpq	$2048, %rcx                     # imm = 0x800
	jb	.LBB20_3
.LBB20_4:                               # %.preheader.i
                                        # =>This Inner Loop Header: Depth=1
	movq	%rdx, %r12
	incq	%rdx
	testb	$7, %r12b
	jne	.LBB20_4
	jmp	.LBB20_5
.LBB20_3:
	movq	%rdx, %r12
.LBB20_5:                               # %_ZN2rt12_GLOBAL__N_114elemwhise_sizeEmRmS1_.exit
	cmpq	$1, %rbp
	ja	.LBB20_8
# %bb.6:
	movq	64(%r15), %rdi
	movq	72(%r15), %rsi
	movq	88(%r15), %rdx
	movq	(%rsp), %r8                     # 8-byte Reload
	callq	_ZN2rt4Node11op_mse_gradEPKfS2_PfmRKSt6vectorIPS0_SaIS5_EE
	movq	%rax, %r14
	movq	%rbx, %rdi
	movq	%rax, %rsi
	callq	_ZN2rt5Graph3addEPNS_4NodeE
	jmp	.LBB20_7
.LBB20_8:                               # %.lr.ph
	movq	%rbx, 48(%rsp)                  # 8-byte Spill
	xorps	%xmm0, %xmm0
	leaq	16(%rsp), %rax
	movaps	%xmm0, (%rax)
	movq	$0, 16(%rax)
	decq	%rbp
	leaq	(,%r12,4), %r14
	xorl	%r13d, %r13d
	movq	%rbp, %rbx
.LBB20_9:                               # =>This Inner Loop Header: Depth=1
	movq	64(%r15), %rdi
	addq	%r13, %rdi
	movq	72(%r15), %rsi
	addq	%r13, %rsi
	movq	88(%r15), %rdx
	addq	%r13, %rdx
.Ltmp174:
	movq	%r12, %rcx
	movq	(%rsp), %r8                     # 8-byte Reload
	callq	_ZN2rt4Node11op_mse_gradEPKfS2_PfmRKSt6vectorIPS0_SaIS5_EE
.Ltmp175:
# %bb.10:                               #   in Loop: Header=BB20_9 Depth=1
	movq	%rax, 8(%rsp)
.Ltmp176:
	leaq	16(%rsp), %rdi
	leaq	8(%rsp), %rsi
	callq	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_
.Ltmp177:
# %bb.11:                               # %_ZNSt6vectorIPN2rt4NodeESaIS2_EE9push_backEOS2_.exit
                                        #   in Loop: Header=BB20_9 Depth=1
	addq	%r14, %r13
	decq	%rbx
	jne	.LBB20_9
# %bb.12:                               # %._crit_edge
	movq	120(%r15), %rcx
	imulq	%rbp, %r12
	leaq	(,%r12,4), %rdx
	movq	64(%r15), %rdi
	addq	%rdx, %rdi
	movq	72(%r15), %rsi
	addq	%rdx, %rsi
	addq	88(%r15), %rdx
	subq	%r12, %rcx
.Ltmp179:
	movq	(%rsp), %r8                     # 8-byte Reload
	callq	_ZN2rt4Node11op_mse_gradEPKfS2_PfmRKSt6vectorIPS0_SaIS5_EE
.Ltmp180:
# %bb.13:
	leaq	8(%rsp), %rsi
	movq	%rax, (%rsi)
.Ltmp181:
	leaq	16(%rsp), %rdi
	callq	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_
.Ltmp182:
# %bb.14:                               # %_ZNSt6vectorIPN2rt4NodeESaIS2_EE9push_backEOS2_.exit36
	movq	16(%rsp), %rbx
	movq	24(%rsp), %r14
	cmpq	%r14, %rbx
	movq	48(%rsp), %r15                  # 8-byte Reload
	je	.LBB20_15
.LBB20_20:                              # %.lr.ph50
                                        # =>This Inner Loop Header: Depth=1
	movq	(%rbx), %rsi
.Ltmp184:
	movq	%r15, %rdi
	callq	_ZN2rt5Graph3addEPNS_4NodeE
.Ltmp185:
# %bb.21:                               #   in Loop: Header=BB20_20 Depth=1
	addq	$8, %rbx
	cmpq	%r14, %rbx
	jne	.LBB20_20
.LBB20_15:                              # %._crit_edge51
.Ltmp187:
	leaq	16(%rsp), %rdi
	callq	_ZN2rt4Node3nopERKSt6vectorIPS0_SaIS2_EE
.Ltmp188:
# %bb.16:
.Ltmp189:
	movq	%rax, %r14
	movq	%r15, %rdi
	movq	%rax, %rsi
	callq	_ZN2rt5Graph3addEPNS_4NodeE
.Ltmp190:
# %bb.17:
	movq	16(%rsp), %rdi
	testq	%rdi, %rdi
	je	.LBB20_7
# %bb.18:
	callq	_ZdlPv
.LBB20_7:
	movq	%r14, %rax
	addq	$56, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%r12
	.cfi_def_cfa_offset 40
	popq	%r13
	.cfi_def_cfa_offset 32
	popq	%r14
	.cfi_def_cfa_offset 24
	popq	%r15
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	retq
.LBB20_23:
	.cfi_def_cfa_offset 112
.Ltmp191:
	jmp	.LBB20_24
.LBB20_19:
.Ltmp183:
	jmp	.LBB20_24
.LBB20_22:
.Ltmp186:
	jmp	.LBB20_24
.LBB20_27:
.Ltmp178:
.LBB20_24:
	movq	%rax, %rbx
	movq	16(%rsp), %rdi
	testq	%rdi, %rdi
	je	.LBB20_26
# %bb.25:
	callq	_ZdlPv
.LBB20_26:                              # %_ZNSt6vectorIPN2rt4NodeESaIS2_EED2Ev.exit38
	movq	%rbx, %rdi
	callq	_Unwind_Resume@PLT
.Lfunc_end20:
	.size	_ZN2rt12_GLOBAL__N_113opti_mse_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, .Lfunc_end20-_ZN2rt12_GLOBAL__N_113opti_mse_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.cfi_endproc
	.section	.gcc_except_table,"a",@progbits
	.p2align	2, 0x0
GCC_except_table20:
.Lexception11:
	.byte	255                             # @LPStart Encoding = omit
	.byte	255                             # @TType Encoding = omit
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end11-.Lcst_begin11
.Lcst_begin11:
	.uleb128 .Lfunc_begin11-.Lfunc_begin11  # >> Call Site 1 <<
	.uleb128 .Ltmp174-.Lfunc_begin11        #   Call between .Lfunc_begin11 and .Ltmp174
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp174-.Lfunc_begin11        # >> Call Site 2 <<
	.uleb128 .Ltmp177-.Ltmp174              #   Call between .Ltmp174 and .Ltmp177
	.uleb128 .Ltmp178-.Lfunc_begin11        #     jumps to .Ltmp178
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp179-.Lfunc_begin11        # >> Call Site 3 <<
	.uleb128 .Ltmp182-.Ltmp179              #   Call between .Ltmp179 and .Ltmp182
	.uleb128 .Ltmp183-.Lfunc_begin11        #     jumps to .Ltmp183
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp184-.Lfunc_begin11        # >> Call Site 4 <<
	.uleb128 .Ltmp185-.Ltmp184              #   Call between .Ltmp184 and .Ltmp185
	.uleb128 .Ltmp186-.Lfunc_begin11        #     jumps to .Ltmp186
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp187-.Lfunc_begin11        # >> Call Site 5 <<
	.uleb128 .Ltmp190-.Ltmp187              #   Call between .Ltmp187 and .Ltmp190
	.uleb128 .Ltmp191-.Lfunc_begin11        #     jumps to .Ltmp191
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp190-.Lfunc_begin11        # >> Call Site 6 <<
	.uleb128 .Lfunc_end20-.Ltmp190          #   Call between .Ltmp190 and .Lfunc_end20
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end11:
	.p2align	2, 0x0
                                        # -- End function
	.text
	.type	_ZN2rt12_GLOBAL__N_117opti_sigmoid_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE,@function # -- Begin function _ZN2rt12_GLOBAL__N_117opti_sigmoid_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
_ZN2rt12_GLOBAL__N_117opti_sigmoid_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE: # @_ZN2rt12_GLOBAL__N_117opti_sigmoid_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
.Lfunc_begin12:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception12
# %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	pushq	%r15
	.cfi_def_cfa_offset 24
	pushq	%r14
	.cfi_def_cfa_offset 32
	pushq	%r13
	.cfi_def_cfa_offset 40
	pushq	%r12
	.cfi_def_cfa_offset 48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	subq	$56, %rsp
	.cfi_def_cfa_offset 112
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	.cfi_offset %rbp, -16
	movq	%rdx, (%rsp)                    # 8-byte Spill
	movq	%rsi, %r15
	movq	%rdi, %rbx
	movq	120(%rsi), %rcx
	movq	%rcx, %rax
	shrq	$10, %rax
	cmpq	$8, %rax
	movl	$8, %edx
	cmovbq	%rax, %rdx
	cmpq	$2048, %rcx                     # imm = 0x800
	movl	$1, %ebp
	cmovaeq	%rdx, %rbp
	movq	%rcx, %rax
	xorl	%edx, %edx
	divq	%rbp
.LBB21_1:                               # =>This Inner Loop Header: Depth=1
	movq	%rax, %rdx
	movq	%rax, %rsi
	imulq	%rbp, %rsi
	incq	%rax
	cmpq	%rcx, %rsi
	jb	.LBB21_1
# %bb.2:
	cmpq	$2048, %rcx                     # imm = 0x800
	jb	.LBB21_3
.LBB21_4:                               # %.preheader.i
                                        # =>This Inner Loop Header: Depth=1
	movq	%rdx, %r12
	incq	%rdx
	testb	$7, %r12b
	jne	.LBB21_4
	jmp	.LBB21_5
.LBB21_3:
	movq	%rdx, %r12
.LBB21_5:                               # %_ZN2rt12_GLOBAL__N_114elemwhise_sizeEmRmS1_.exit
	cmpq	$1, %rbp
	ja	.LBB21_8
# %bb.6:
	movq	64(%r15), %rdi
	movq	72(%r15), %rsi
	movq	88(%r15), %rdx
	movq	(%rsp), %r8                     # 8-byte Reload
	callq	_ZN2rt4Node15op_sigmoid_gradEPKfS2_PfmRKSt6vectorIPS0_SaIS5_EE
	movq	%rax, %r14
	movq	%rbx, %rdi
	movq	%rax, %rsi
	callq	_ZN2rt5Graph3addEPNS_4NodeE
	jmp	.LBB21_7
.LBB21_8:                               # %.lr.ph
	movq	%rbx, 48(%rsp)                  # 8-byte Spill
	xorps	%xmm0, %xmm0
	leaq	16(%rsp), %rax
	movaps	%xmm0, (%rax)
	movq	$0, 16(%rax)
	decq	%rbp
	leaq	(,%r12,4), %r14
	xorl	%r13d, %r13d
	movq	%rbp, %rbx
.LBB21_9:                               # =>This Inner Loop Header: Depth=1
	movq	64(%r15), %rdi
	addq	%r13, %rdi
	movq	72(%r15), %rsi
	addq	%r13, %rsi
	movq	88(%r15), %rdx
	addq	%r13, %rdx
.Ltmp192:
	movq	%r12, %rcx
	movq	(%rsp), %r8                     # 8-byte Reload
	callq	_ZN2rt4Node15op_sigmoid_gradEPKfS2_PfmRKSt6vectorIPS0_SaIS5_EE
.Ltmp193:
# %bb.10:                               #   in Loop: Header=BB21_9 Depth=1
	movq	%rax, 8(%rsp)
.Ltmp194:
	leaq	16(%rsp), %rdi
	leaq	8(%rsp), %rsi
	callq	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_
.Ltmp195:
# %bb.11:                               # %_ZNSt6vectorIPN2rt4NodeESaIS2_EE9push_backEOS2_.exit
                                        #   in Loop: Header=BB21_9 Depth=1
	addq	%r14, %r13
	decq	%rbx
	jne	.LBB21_9
# %bb.12:                               # %._crit_edge
	movq	120(%r15), %rcx
	imulq	%rbp, %r12
	leaq	(,%r12,4), %rdx
	movq	64(%r15), %rdi
	addq	%rdx, %rdi
	movq	72(%r15), %rsi
	addq	%rdx, %rsi
	addq	88(%r15), %rdx
	subq	%r12, %rcx
.Ltmp197:
	movq	(%rsp), %r8                     # 8-byte Reload
	callq	_ZN2rt4Node15op_sigmoid_gradEPKfS2_PfmRKSt6vectorIPS0_SaIS5_EE
.Ltmp198:
# %bb.13:
	leaq	8(%rsp), %rsi
	movq	%rax, (%rsi)
.Ltmp199:
	leaq	16(%rsp), %rdi
	callq	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_
.Ltmp200:
# %bb.14:                               # %_ZNSt6vectorIPN2rt4NodeESaIS2_EE9push_backEOS2_.exit36
	movq	16(%rsp), %rbx
	movq	24(%rsp), %r14
	cmpq	%r14, %rbx
	movq	48(%rsp), %r15                  # 8-byte Reload
	je	.LBB21_15
.LBB21_20:                              # %.lr.ph50
                                        # =>This Inner Loop Header: Depth=1
	movq	(%rbx), %rsi
.Ltmp202:
	movq	%r15, %rdi
	callq	_ZN2rt5Graph3addEPNS_4NodeE
.Ltmp203:
# %bb.21:                               #   in Loop: Header=BB21_20 Depth=1
	addq	$8, %rbx
	cmpq	%r14, %rbx
	jne	.LBB21_20
.LBB21_15:                              # %._crit_edge51
.Ltmp205:
	leaq	16(%rsp), %rdi
	callq	_ZN2rt4Node3nopERKSt6vectorIPS0_SaIS2_EE
.Ltmp206:
# %bb.16:
.Ltmp207:
	movq	%rax, %r14
	movq	%r15, %rdi
	movq	%rax, %rsi
	callq	_ZN2rt5Graph3addEPNS_4NodeE
.Ltmp208:
# %bb.17:
	movq	16(%rsp), %rdi
	testq	%rdi, %rdi
	je	.LBB21_7
# %bb.18:
	callq	_ZdlPv
.LBB21_7:
	movq	%r14, %rax
	addq	$56, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%r12
	.cfi_def_cfa_offset 40
	popq	%r13
	.cfi_def_cfa_offset 32
	popq	%r14
	.cfi_def_cfa_offset 24
	popq	%r15
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	retq
.LBB21_23:
	.cfi_def_cfa_offset 112
.Ltmp209:
	jmp	.LBB21_24
.LBB21_19:
.Ltmp201:
	jmp	.LBB21_24
.LBB21_22:
.Ltmp204:
	jmp	.LBB21_24
.LBB21_27:
.Ltmp196:
.LBB21_24:
	movq	%rax, %rbx
	movq	16(%rsp), %rdi
	testq	%rdi, %rdi
	je	.LBB21_26
# %bb.25:
	callq	_ZdlPv
.LBB21_26:                              # %_ZNSt6vectorIPN2rt4NodeESaIS2_EED2Ev.exit38
	movq	%rbx, %rdi
	callq	_Unwind_Resume@PLT
.Lfunc_end21:
	.size	_ZN2rt12_GLOBAL__N_117opti_sigmoid_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, .Lfunc_end21-_ZN2rt12_GLOBAL__N_117opti_sigmoid_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.cfi_endproc
	.section	.gcc_except_table,"a",@progbits
	.p2align	2, 0x0
GCC_except_table21:
.Lexception12:
	.byte	255                             # @LPStart Encoding = omit
	.byte	255                             # @TType Encoding = omit
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end12-.Lcst_begin12
.Lcst_begin12:
	.uleb128 .Lfunc_begin12-.Lfunc_begin12  # >> Call Site 1 <<
	.uleb128 .Ltmp192-.Lfunc_begin12        #   Call between .Lfunc_begin12 and .Ltmp192
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp192-.Lfunc_begin12        # >> Call Site 2 <<
	.uleb128 .Ltmp195-.Ltmp192              #   Call between .Ltmp192 and .Ltmp195
	.uleb128 .Ltmp196-.Lfunc_begin12        #     jumps to .Ltmp196
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp197-.Lfunc_begin12        # >> Call Site 3 <<
	.uleb128 .Ltmp200-.Ltmp197              #   Call between .Ltmp197 and .Ltmp200
	.uleb128 .Ltmp201-.Lfunc_begin12        #     jumps to .Ltmp201
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp202-.Lfunc_begin12        # >> Call Site 4 <<
	.uleb128 .Ltmp203-.Ltmp202              #   Call between .Ltmp202 and .Ltmp203
	.uleb128 .Ltmp204-.Lfunc_begin12        #     jumps to .Ltmp204
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp205-.Lfunc_begin12        # >> Call Site 5 <<
	.uleb128 .Ltmp208-.Ltmp205              #   Call between .Ltmp205 and .Ltmp208
	.uleb128 .Ltmp209-.Lfunc_begin12        #     jumps to .Ltmp209
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp208-.Lfunc_begin12        # >> Call Site 6 <<
	.uleb128 .Lfunc_end21-.Ltmp208          #   Call between .Ltmp208 and .Lfunc_end21
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end12:
	.p2align	2, 0x0
                                        # -- End function
	.text
	.type	_ZN2rt12_GLOBAL__N_116opti_mat_mul_addERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE,@function # -- Begin function _ZN2rt12_GLOBAL__N_116opti_mat_mul_addERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
_ZN2rt12_GLOBAL__N_116opti_mat_mul_addERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE: # @_ZN2rt12_GLOBAL__N_116opti_mat_mul_addERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.cfi_startproc
# %bb.0:
	pushq	%r14
	.cfi_def_cfa_offset 16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	pushq	%rax
	.cfi_def_cfa_offset 32
	.cfi_offset %rbx, -24
	.cfi_offset %r14, -16
	movq	%rdx, %rax
	movq	%rsi, %r10
	movq	%rdi, %rbx
	movq	64(%rsi), %rdi
	movq	72(%rsi), %rsi
	movq	80(%r10), %rdx
	movq	88(%r10), %rcx
	movq	120(%r10), %r8
	movq	128(%r10), %r9
	pushq	%rax
	.cfi_adjust_cfa_offset 8
	pushq	136(%r10)
	.cfi_adjust_cfa_offset 8
	callq	_ZN2rt4Node14op_mat_mul_addEPKfS2_S2_PfmmmRKSt6vectorIPS0_SaIS5_EE
	addq	$16, %rsp
	.cfi_adjust_cfa_offset -16
	movq	%rax, %r14
	movq	%rbx, %rdi
	movq	%rax, %rsi
	callq	_ZN2rt5Graph3addEPNS_4NodeE
	movq	%r14, %rax
	addq	$8, %rsp
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	retq
.Lfunc_end22:
	.size	_ZN2rt12_GLOBAL__N_116opti_mat_mul_addERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, .Lfunc_end22-_ZN2rt12_GLOBAL__N_116opti_mat_mul_addERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.cfi_endproc
                                        # -- End function
	.type	_ZN2rt12_GLOBAL__N_117opti_tmat_mat_mulERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE,@function # -- Begin function _ZN2rt12_GLOBAL__N_117opti_tmat_mat_mulERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
_ZN2rt12_GLOBAL__N_117opti_tmat_mat_mulERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE: # @_ZN2rt12_GLOBAL__N_117opti_tmat_mat_mulERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.cfi_startproc
# %bb.0:
	pushq	%r14
	.cfi_def_cfa_offset 16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	pushq	%rax
	.cfi_def_cfa_offset 32
	.cfi_offset %rbx, -24
	.cfi_offset %r14, -16
	movq	%rdi, %rbx
	movq	64(%rsi), %rdi
	movq	72(%rsi), %rax
	movq	88(%rsi), %r10
	movq	120(%rsi), %rcx
	movq	128(%rsi), %r8
	movq	136(%rsi), %r9
	movq	%rdx, (%rsp)
	movq	%rax, %rsi
	movq	%r10, %rdx
	callq	_ZN2rt4Node15op_tmat_mat_mulEPKfS2_PfmmmRKSt6vectorIPS0_SaIS5_EE
	movq	%rax, %r14
	movq	%rbx, %rdi
	movq	%rax, %rsi
	callq	_ZN2rt5Graph3addEPNS_4NodeE
	movq	%r14, %rax
	addq	$8, %rsp
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	retq
.Lfunc_end23:
	.size	_ZN2rt12_GLOBAL__N_117opti_tmat_mat_mulERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, .Lfunc_end23-_ZN2rt12_GLOBAL__N_117opti_tmat_mat_mulERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.cfi_endproc
                                        # -- End function
	.type	_ZN2rt12_GLOBAL__N_117opti_mat_tmat_mulERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE,@function # -- Begin function _ZN2rt12_GLOBAL__N_117opti_mat_tmat_mulERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
_ZN2rt12_GLOBAL__N_117opti_mat_tmat_mulERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE: # @_ZN2rt12_GLOBAL__N_117opti_mat_tmat_mulERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.cfi_startproc
# %bb.0:
	pushq	%r14
	.cfi_def_cfa_offset 16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	pushq	%rax
	.cfi_def_cfa_offset 32
	.cfi_offset %rbx, -24
	.cfi_offset %r14, -16
	movq	%rdi, %rbx
	movq	64(%rsi), %rdi
	movq	72(%rsi), %rax
	movq	88(%rsi), %r10
	movq	120(%rsi), %rcx
	movq	128(%rsi), %r8
	movq	136(%rsi), %r9
	movq	%rdx, (%rsp)
	movq	%rax, %rsi
	movq	%r10, %rdx
	callq	_ZN2rt4Node15op_mat_tmat_mulEPKfS2_PfmmmRKSt6vectorIPS0_SaIS5_EE
	movq	%rax, %r14
	movq	%rbx, %rdi
	movq	%rax, %rsi
	callq	_ZN2rt5Graph3addEPNS_4NodeE
	movq	%r14, %rax
	addq	$8, %rsp
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	retq
.Lfunc_end24:
	.size	_ZN2rt12_GLOBAL__N_117opti_mat_tmat_mulERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, .Lfunc_end24-_ZN2rt12_GLOBAL__N_117opti_mat_tmat_mulERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.cfi_endproc
                                        # -- End function
	.type	_ZN2rt12_GLOBAL__N_117opti_mat_sum_rowsERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE,@function # -- Begin function _ZN2rt12_GLOBAL__N_117opti_mat_sum_rowsERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
_ZN2rt12_GLOBAL__N_117opti_mat_sum_rowsERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE: # @_ZN2rt12_GLOBAL__N_117opti_mat_sum_rowsERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.cfi_startproc
# %bb.0:
	pushq	%r14
	.cfi_def_cfa_offset 16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	pushq	%rax
	.cfi_def_cfa_offset 32
	.cfi_offset %rbx, -24
	.cfi_offset %r14, -16
	movq	%rdx, %r8
	movq	%rdi, %rbx
	movq	64(%rsi), %rdi
	movq	88(%rsi), %rax
	movq	120(%rsi), %rdx
	movq	128(%rsi), %rcx
	movq	%rax, %rsi
	callq	_ZN2rt4Node15op_mat_sum_rowsEPKfPfmmRKSt6vectorIPS0_SaIS5_EE
	movq	%rax, %r14
	movq	%rbx, %rdi
	movq	%rax, %rsi
	callq	_ZN2rt5Graph3addEPNS_4NodeE
	movq	%r14, %rax
	addq	$8, %rsp
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	retq
.Lfunc_end25:
	.size	_ZN2rt12_GLOBAL__N_117opti_mat_sum_rowsERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, .Lfunc_end25-_ZN2rt12_GLOBAL__N_117opti_mat_sum_rowsERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.cfi_endproc
                                        # -- End function
	.type	_ZN2rt12_GLOBAL__N_117opti_mat_sum_colsERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE,@function # -- Begin function _ZN2rt12_GLOBAL__N_117opti_mat_sum_colsERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
_ZN2rt12_GLOBAL__N_117opti_mat_sum_colsERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE: # @_ZN2rt12_GLOBAL__N_117opti_mat_sum_colsERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.cfi_startproc
# %bb.0:
	pushq	%r14
	.cfi_def_cfa_offset 16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	pushq	%rax
	.cfi_def_cfa_offset 32
	.cfi_offset %rbx, -24
	.cfi_offset %r14, -16
	movq	%rdx, %r8
	movq	%rdi, %rbx
	movq	64(%rsi), %rdi
	movq	88(%rsi), %rax
	movq	120(%rsi), %rdx
	movq	128(%rsi), %rcx
	movq	%rax, %rsi
	callq	_ZN2rt4Node15op_mat_sum_colsEPKfPfmmRKSt6vectorIPS0_SaIS5_EE
	movq	%rax, %r14
	movq	%rbx, %rdi
	movq	%rax, %rsi
	callq	_ZN2rt5Graph3addEPNS_4NodeE
	movq	%r14, %rax
	addq	$8, %rsp
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	retq
.Lfunc_end26:
	.size	_ZN2rt12_GLOBAL__N_117opti_mat_sum_colsERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, .Lfunc_end26-_ZN2rt12_GLOBAL__N_117opti_mat_sum_colsERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.cfi_endproc
                                        # -- End function
	.type	_ZN2rt12_GLOBAL__N_131opti_softmax_cross_entropy_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE,@function # -- Begin function _ZN2rt12_GLOBAL__N_131opti_softmax_cross_entropy_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
_ZN2rt12_GLOBAL__N_131opti_softmax_cross_entropy_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE: # @_ZN2rt12_GLOBAL__N_131opti_softmax_cross_entropy_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.cfi_startproc
# %bb.0:
	pushq	%r14
	.cfi_def_cfa_offset 16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	pushq	%rax
	.cfi_def_cfa_offset 32
	.cfi_offset %rbx, -24
	.cfi_offset %r14, -16
	movq	%rdx, %r9
	movq	%rdi, %rbx
	movq	64(%rsi), %rdi
	movq	72(%rsi), %rax
	movq	88(%rsi), %rdx
	movq	120(%rsi), %rcx
	movq	128(%rsi), %r8
	movq	%rax, %rsi
	callq	_ZN2rt4Node29op_softmax_cross_entropy_gradEPKfS2_PfmmRKSt6vectorIPS0_SaIS5_EE
	movq	%rax, %r14
	movq	%rbx, %rdi
	movq	%rax, %rsi
	callq	_ZN2rt5Graph3addEPNS_4NodeE
	movq	%r14, %rax
	addq	$8, %rsp
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	retq
.Lfunc_end27:
	.size	_ZN2rt12_GLOBAL__N_131opti_softmax_cross_entropy_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, .Lfunc_end27-_ZN2rt12_GLOBAL__N_131opti_softmax_cross_entropy_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.cfi_endproc
                                        # -- End function
	.type	_ZN2rt12_GLOBAL__N_114opti_relu_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE,@function # -- Begin function _ZN2rt12_GLOBAL__N_114opti_relu_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
_ZN2rt12_GLOBAL__N_114opti_relu_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE: # @_ZN2rt12_GLOBAL__N_114opti_relu_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
.Lfunc_begin13:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception13
# %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	pushq	%r15
	.cfi_def_cfa_offset 24
	pushq	%r14
	.cfi_def_cfa_offset 32
	pushq	%r13
	.cfi_def_cfa_offset 40
	pushq	%r12
	.cfi_def_cfa_offset 48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	subq	$56, %rsp
	.cfi_def_cfa_offset 112
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	.cfi_offset %rbp, -16
	movq	%rdx, (%rsp)                    # 8-byte Spill
	movq	%rsi, %r15
	movq	%rdi, %rbx
	movq	120(%rsi), %rcx
	movq	%rcx, %rax
	shrq	$10, %rax
	cmpq	$8, %rax
	movl	$8, %edx
	cmovbq	%rax, %rdx
	cmpq	$2048, %rcx                     # imm = 0x800
	movl	$1, %ebp
	cmovaeq	%rdx, %rbp
	movq	%rcx, %rax
	xorl	%edx, %edx
	divq	%rbp
.LBB28_1:                               # =>This Inner Loop Header: Depth=1
	movq	%rax, %rdx
	movq	%rax, %rsi
	imulq	%rbp, %rsi
	incq	%rax
	cmpq	%rcx, %rsi
	jb	.LBB28_1
# %bb.2:
	cmpq	$2048, %rcx                     # imm = 0x800
	jb	.LBB28_3
.LBB28_4:                               # %.preheader.i
                                        # =>This Inner Loop Header: Depth=1
	movq	%rdx, %r12
	incq	%rdx
	testb	$7, %r12b
	jne	.LBB28_4
	jmp	.LBB28_5
.LBB28_3:
	movq	%rdx, %r12
.LBB28_5:                               # %_ZN2rt12_GLOBAL__N_114elemwhise_sizeEmRmS1_.exit
	cmpq	$1, %rbp
	ja	.LBB28_8
# %bb.6:
	movq	64(%r15), %rdi
	movq	72(%r15), %rsi
	movq	88(%r15), %rdx
	movq	(%rsp), %r8                     # 8-byte Reload
	callq	_ZN2rt4Node12op_relu_gradEPKfS2_PfmRKSt6vectorIPS0_SaIS5_EE
	movq	%rax, %r14
	movq	%rbx, %rdi
	movq	%rax, %rsi
	callq	_ZN2rt5Graph3addEPNS_4NodeE
	jmp	.LBB28_7
.LBB28_8:                               # %.lr.ph
	movq	%rbx, 48(%rsp)                  # 8-byte Spill
	xorps	%xmm0, %xmm0
	leaq	16(%rsp), %rax
	movaps	%xmm0, (%rax)
	movq	$0, 16(%rax)
	decq	%rbp
	leaq	(,%r12,4), %r14
	xorl	%r13d, %r13d
	movq	%rbp, %rbx
.LBB28_9:                               # =>This Inner Loop Header: Depth=1
	movq	64(%r15), %rdi
	addq	%r13, %rdi
	movq	72(%r15), %rsi
	addq	%r13, %rsi
	movq	88(%r15), %rdx
	addq	%r13, %rdx
.Ltmp210:
	movq	%r12, %rcx
	movq	(%rsp), %r8                     # 8-byte Reload
	callq	_ZN2rt4Node12op_relu_gradEPKfS2_PfmRKSt6vectorIPS0_SaIS5_EE
.Ltmp211:
# %bb.10:                               #   in Loop: Header=BB28_9 Depth=1
	movq	%rax, 8(%rsp)
.Ltmp212:
	leaq	16(%rsp), %rdi
	leaq	8(%rsp), %rsi
	callq	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_
.Ltmp213:
# %bb.11:                               # %_ZNSt6vectorIPN2rt4NodeESaIS2_EE9push_backEOS2_.exit
                                        #   in Loop: Header=BB28_9 Depth=1
	addq	%r14, %r13
	decq	%rbx
	jne	.LBB28_9
# %bb.12:                               # %._crit_edge
	movq	120(%r15), %rcx
	imulq	%rbp, %r12
	leaq	(,%r12,4), %rdx
	movq	64(%r15), %rdi
	addq	%rdx, %rdi
	movq	72(%r15), %rsi
	addq	%rdx, %rsi
	addq	88(%r15), %rdx
	subq	%r12, %rcx
.Ltmp215:
	movq	(%rsp), %r8                     # 8-byte Reload
	callq	_ZN2rt4Node12op_relu_gradEPKfS2_PfmRKSt6vectorIPS0_SaIS5_EE
.Ltmp216:
# %bb.13:
	leaq	8(%rsp), %rsi
	movq	%rax, (%rsi)
.Ltmp217:
	leaq	16(%rsp), %rdi
	callq	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_
.Ltmp218:
# %bb.14:                               # %_ZNSt6vectorIPN2rt4NodeESaIS2_EE9push_backEOS2_.exit36
	movq	16(%rsp), %rbx
	movq	24(%rsp), %r14
	cmpq	%r14, %rbx
	movq	48(%rsp), %r15                  # 8-byte Reload
	je	.LBB28_15
.LBB28_20:                              # %.lr.ph50
                                        # =>This Inner Loop Header: Depth=1
	movq	(%rbx), %rsi
.Ltmp220:
	movq	%r15, %rdi
	callq	_ZN2rt5Graph3addEPNS_4NodeE
.Ltmp221:
# %bb.21:                               #   in Loop: Header=BB28_20 Depth=1
	addq	$8, %rbx
	cmpq	%r14, %rbx
	jne	.LBB28_20
.LBB28_15:                              # %._crit_edge51
.Ltmp223:
	leaq	16(%rsp), %rdi
	callq	_ZN2rt4Node3nopERKSt6vectorIPS0_SaIS2_EE
.Ltmp224:
# %bb.16:
.Ltmp225:
	movq	%rax, %r14
	movq	%r15, %rdi
	movq	%rax, %rsi
	callq	_ZN2rt5Graph3addEPNS_4NodeE
.Ltmp226:
# %bb.17:
	movq	16(%rsp), %rdi
	testq	%rdi, %rdi
	je	.LBB28_7
# %bb.18:
	callq	_ZdlPv
.LBB28_7:
	movq	%r14, %rax
	addq	$56, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%r12
	.cfi_def_cfa_offset 40
	popq	%r13
	.cfi_def_cfa_offset 32
	popq	%r14
	.cfi_def_cfa_offset 24
	popq	%r15
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	retq
.LBB28_23:
	.cfi_def_cfa_offset 112
.Ltmp227:
	jmp	.LBB28_24
.LBB28_19:
.Ltmp219:
	jmp	.LBB28_24
.LBB28_22:
.Ltmp222:
	jmp	.LBB28_24
.LBB28_27:
.Ltmp214:
.LBB28_24:
	movq	%rax, %rbx
	movq	16(%rsp), %rdi
	testq	%rdi, %rdi
	je	.LBB28_26
# %bb.25:
	callq	_ZdlPv
.LBB28_26:                              # %_ZNSt6vectorIPN2rt4NodeESaIS2_EED2Ev.exit38
	movq	%rbx, %rdi
	callq	_Unwind_Resume@PLT
.Lfunc_end28:
	.size	_ZN2rt12_GLOBAL__N_114opti_relu_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, .Lfunc_end28-_ZN2rt12_GLOBAL__N_114opti_relu_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.cfi_endproc
	.section	.gcc_except_table,"a",@progbits
	.p2align	2, 0x0
GCC_except_table28:
.Lexception13:
	.byte	255                             # @LPStart Encoding = omit
	.byte	255                             # @TType Encoding = omit
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end13-.Lcst_begin13
.Lcst_begin13:
	.uleb128 .Lfunc_begin13-.Lfunc_begin13  # >> Call Site 1 <<
	.uleb128 .Ltmp210-.Lfunc_begin13        #   Call between .Lfunc_begin13 and .Ltmp210
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp210-.Lfunc_begin13        # >> Call Site 2 <<
	.uleb128 .Ltmp213-.Ltmp210              #   Call between .Ltmp210 and .Ltmp213
	.uleb128 .Ltmp214-.Lfunc_begin13        #     jumps to .Ltmp214
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp215-.Lfunc_begin13        # >> Call Site 3 <<
	.uleb128 .Ltmp218-.Ltmp215              #   Call between .Ltmp215 and .Ltmp218
	.uleb128 .Ltmp219-.Lfunc_begin13        #     jumps to .Ltmp219
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp220-.Lfunc_begin13        # >> Call Site 4 <<
	.uleb128 .Ltmp221-.Ltmp220              #   Call between .Ltmp220 and .Ltmp221
	.uleb128 .Ltmp222-.Lfunc_begin13        #     jumps to .Ltmp222
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp223-.Lfunc_begin13        # >> Call Site 5 <<
	.uleb128 .Ltmp226-.Ltmp223              #   Call between .Ltmp223 and .Ltmp226
	.uleb128 .Ltmp227-.Lfunc_begin13        #     jumps to .Ltmp227
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp226-.Lfunc_begin13        # >> Call Site 6 <<
	.uleb128 .Lfunc_end28-.Ltmp226          #   Call between .Ltmp226 and .Lfunc_end28
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end13:
	.p2align	2, 0x0
                                        # -- End function
	.text
	.type	_ZN2rt12_GLOBAL__N_120opti_conv2d_bias_addERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE,@function # -- Begin function _ZN2rt12_GLOBAL__N_120opti_conv2d_bias_addERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
_ZN2rt12_GLOBAL__N_120opti_conv2d_bias_addERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE: # @_ZN2rt12_GLOBAL__N_120opti_conv2d_bias_addERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.cfi_startproc
# %bb.0:
	pushq	%r14
	.cfi_def_cfa_offset 16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	pushq	%rax
	.cfi_def_cfa_offset 32
	.cfi_offset %rbx, -24
	.cfi_offset %r14, -16
	movq	%rdx, %r8
	movq	%rdi, %rbx
	movq	64(%rsi), %rdi
	movq	72(%rsi), %rax
	movq	88(%rsi), %rdx
	leaq	160(%rsi), %rcx
	movq	%rax, %rsi
	callq	_ZN2rt4Node18op_conv2d_bias_addEPKfS2_PfPKiRKSt6vectorIPS0_SaIS7_EE
	movq	%rax, %r14
	movq	%rbx, %rdi
	movq	%rax, %rsi
	callq	_ZN2rt5Graph3addEPNS_4NodeE
	movq	%r14, %rax
	addq	$8, %rsp
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	retq
.Lfunc_end29:
	.size	_ZN2rt12_GLOBAL__N_120opti_conv2d_bias_addERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, .Lfunc_end29-_ZN2rt12_GLOBAL__N_120opti_conv2d_bias_addERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.cfi_endproc
                                        # -- End function
	.type	_ZN2rt12_GLOBAL__N_111opti_updateERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE,@function # -- Begin function _ZN2rt12_GLOBAL__N_111opti_updateERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
_ZN2rt12_GLOBAL__N_111opti_updateERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE: # @_ZN2rt12_GLOBAL__N_111opti_updateERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
.Lfunc_begin14:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception14
# %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	pushq	%r15
	.cfi_def_cfa_offset 24
	pushq	%r14
	.cfi_def_cfa_offset 32
	pushq	%r13
	.cfi_def_cfa_offset 40
	pushq	%r12
	.cfi_def_cfa_offset 48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	subq	$56, %rsp
	.cfi_def_cfa_offset 112
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	.cfi_offset %rbp, -16
	movq	%rdx, (%rsp)                    # 8-byte Spill
	movq	%rsi, %r15
	movq	%rdi, %rbx
	movq	120(%rsi), %rcx
	movq	%rcx, %rax
	shrq	$10, %rax
	cmpq	$8, %rax
	movl	$8, %edx
	cmovbq	%rax, %rdx
	cmpq	$2048, %rcx                     # imm = 0x800
	movl	$1, %ebp
	cmovaeq	%rdx, %rbp
	movq	%rcx, %rax
	xorl	%edx, %edx
	divq	%rbp
.LBB30_1:                               # =>This Inner Loop Header: Depth=1
	movq	%rax, %rdx
	movq	%rax, %rsi
	imulq	%rbp, %rsi
	incq	%rax
	cmpq	%rcx, %rsi
	jb	.LBB30_1
# %bb.2:
	cmpq	$2048, %rcx                     # imm = 0x800
	jb	.LBB30_3
.LBB30_4:                               # %.preheader.i
                                        # =>This Inner Loop Header: Depth=1
	movq	%rdx, %r12
	incq	%rdx
	testb	$7, %r12b
	jne	.LBB30_4
	jmp	.LBB30_5
.LBB30_3:
	movq	%rdx, %r12
.LBB30_5:                               # %_ZN2rt12_GLOBAL__N_114elemwhise_sizeEmRmS1_.exit
	cmpq	$1, %rbp
	ja	.LBB30_8
# %bb.6:
	movq	88(%r15), %rdi
	movq	64(%r15), %rsi
	movq	72(%r15), %rdx
	movq	(%rsp), %r8                     # 8-byte Reload
	callq	_ZN2rt4Node9op_updateEPfPKfS3_mRKSt6vectorIPS0_SaIS5_EE
	movq	%rax, %r14
	movq	%rbx, %rdi
	movq	%rax, %rsi
	callq	_ZN2rt5Graph3addEPNS_4NodeE
	jmp	.LBB30_7
.LBB30_8:                               # %.lr.ph
	movq	%rbx, 48(%rsp)                  # 8-byte Spill
	xorps	%xmm0, %xmm0
	leaq	16(%rsp), %rax
	movaps	%xmm0, (%rax)
	movq	$0, 16(%rax)
	decq	%rbp
	leaq	(,%r12,4), %r14
	xorl	%r13d, %r13d
	movq	%rbp, %rbx
.LBB30_9:                               # =>This Inner Loop Header: Depth=1
	movq	88(%r15), %rdi
	addq	%r13, %rdi
	movq	64(%r15), %rsi
	addq	%r13, %rsi
	movq	72(%r15), %rdx
.Ltmp228:
	movq	%r12, %rcx
	movq	(%rsp), %r8                     # 8-byte Reload
	callq	_ZN2rt4Node9op_updateEPfPKfS3_mRKSt6vectorIPS0_SaIS5_EE
.Ltmp229:
# %bb.10:                               #   in Loop: Header=BB30_9 Depth=1
	movq	%rax, 8(%rsp)
.Ltmp230:
	leaq	16(%rsp), %rdi
	leaq	8(%rsp), %rsi
	callq	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_
.Ltmp231:
# %bb.11:                               # %_ZNSt6vectorIPN2rt4NodeESaIS2_EE9push_backEOS2_.exit
                                        #   in Loop: Header=BB30_9 Depth=1
	addq	%r14, %r13
	decq	%rbx
	jne	.LBB30_9
# %bb.12:                               # %._crit_edge
	movq	120(%r15), %rcx
	imulq	%rbp, %r12
	leaq	(,%r12,4), %rsi
	movq	88(%r15), %rdi
	addq	%rsi, %rdi
	addq	64(%r15), %rsi
	movq	72(%r15), %rdx
	subq	%r12, %rcx
.Ltmp233:
	movq	(%rsp), %r8                     # 8-byte Reload
	callq	_ZN2rt4Node9op_updateEPfPKfS3_mRKSt6vectorIPS0_SaIS5_EE
.Ltmp234:
# %bb.13:
	leaq	8(%rsp), %rsi
	movq	%rax, (%rsi)
.Ltmp235:
	leaq	16(%rsp), %rdi
	callq	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_
.Ltmp236:
# %bb.14:                               # %_ZNSt6vectorIPN2rt4NodeESaIS2_EE9push_backEOS2_.exit35
	movq	16(%rsp), %rbx
	movq	24(%rsp), %r14
	cmpq	%r14, %rbx
	movq	48(%rsp), %r15                  # 8-byte Reload
	je	.LBB30_15
.LBB30_20:                              # %.lr.ph49
                                        # =>This Inner Loop Header: Depth=1
	movq	(%rbx), %rsi
.Ltmp238:
	movq	%r15, %rdi
	callq	_ZN2rt5Graph3addEPNS_4NodeE
.Ltmp239:
# %bb.21:                               #   in Loop: Header=BB30_20 Depth=1
	addq	$8, %rbx
	cmpq	%r14, %rbx
	jne	.LBB30_20
.LBB30_15:                              # %._crit_edge50
.Ltmp241:
	leaq	16(%rsp), %rdi
	callq	_ZN2rt4Node3nopERKSt6vectorIPS0_SaIS2_EE
.Ltmp242:
# %bb.16:
.Ltmp243:
	movq	%rax, %r14
	movq	%r15, %rdi
	movq	%rax, %rsi
	callq	_ZN2rt5Graph3addEPNS_4NodeE
.Ltmp244:
# %bb.17:
	movq	16(%rsp), %rdi
	testq	%rdi, %rdi
	je	.LBB30_7
# %bb.18:
	callq	_ZdlPv
.LBB30_7:
	movq	%r14, %rax
	addq	$56, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%r12
	.cfi_def_cfa_offset 40
	popq	%r13
	.cfi_def_cfa_offset 32
	popq	%r14
	.cfi_def_cfa_offset 24
	popq	%r15
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	retq
.LBB30_23:
	.cfi_def_cfa_offset 112
.Ltmp245:
	jmp	.LBB30_24
.LBB30_19:
.Ltmp237:
	jmp	.LBB30_24
.LBB30_22:
.Ltmp240:
	jmp	.LBB30_24
.LBB30_27:
.Ltmp232:
.LBB30_24:
	movq	%rax, %rbx
	movq	16(%rsp), %rdi
	testq	%rdi, %rdi
	je	.LBB30_26
# %bb.25:
	callq	_ZdlPv
.LBB30_26:                              # %_ZNSt6vectorIPN2rt4NodeESaIS2_EED2Ev.exit37
	movq	%rbx, %rdi
	callq	_Unwind_Resume@PLT
.Lfunc_end30:
	.size	_ZN2rt12_GLOBAL__N_111opti_updateERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, .Lfunc_end30-_ZN2rt12_GLOBAL__N_111opti_updateERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.cfi_endproc
	.section	.gcc_except_table,"a",@progbits
	.p2align	2, 0x0
GCC_except_table30:
.Lexception14:
	.byte	255                             # @LPStart Encoding = omit
	.byte	255                             # @TType Encoding = omit
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end14-.Lcst_begin14
.Lcst_begin14:
	.uleb128 .Lfunc_begin14-.Lfunc_begin14  # >> Call Site 1 <<
	.uleb128 .Ltmp228-.Lfunc_begin14        #   Call between .Lfunc_begin14 and .Ltmp228
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp228-.Lfunc_begin14        # >> Call Site 2 <<
	.uleb128 .Ltmp231-.Ltmp228              #   Call between .Ltmp228 and .Ltmp231
	.uleb128 .Ltmp232-.Lfunc_begin14        #     jumps to .Ltmp232
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp233-.Lfunc_begin14        # >> Call Site 3 <<
	.uleb128 .Ltmp236-.Ltmp233              #   Call between .Ltmp233 and .Ltmp236
	.uleb128 .Ltmp237-.Lfunc_begin14        #     jumps to .Ltmp237
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp238-.Lfunc_begin14        # >> Call Site 4 <<
	.uleb128 .Ltmp239-.Ltmp238              #   Call between .Ltmp238 and .Ltmp239
	.uleb128 .Ltmp240-.Lfunc_begin14        #     jumps to .Ltmp240
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp241-.Lfunc_begin14        # >> Call Site 5 <<
	.uleb128 .Ltmp244-.Ltmp241              #   Call between .Ltmp241 and .Ltmp244
	.uleb128 .Ltmp245-.Lfunc_begin14        #     jumps to .Ltmp245
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp244-.Lfunc_begin14        # >> Call Site 6 <<
	.uleb128 .Lfunc_end30-.Ltmp244          #   Call between .Ltmp244 and .Lfunc_end30
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end14:
	.p2align	2, 0x0
                                        # -- End function
	.text
	.type	_ZN2rt12_GLOBAL__N_126opti_sigmoid_cross_entropyERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE,@function # -- Begin function _ZN2rt12_GLOBAL__N_126opti_sigmoid_cross_entropyERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
_ZN2rt12_GLOBAL__N_126opti_sigmoid_cross_entropyERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE: # @_ZN2rt12_GLOBAL__N_126opti_sigmoid_cross_entropyERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.cfi_startproc
# %bb.0:
	pushq	%r14
	.cfi_def_cfa_offset 16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	pushq	%rax
	.cfi_def_cfa_offset 32
	.cfi_offset %rbx, -24
	.cfi_offset %r14, -16
	movq	%rdx, %r8
	movq	%rdi, %rbx
	movq	64(%rsi), %rdi
	movq	72(%rsi), %rax
	movq	88(%rsi), %rdx
	movq	120(%rsi), %rcx
	movq	%rax, %rsi
	callq	_ZN2rt4Node24op_sigmoid_cross_entropyEPKfS2_PfmRKSt6vectorIPS0_SaIS5_EE
	movq	%rax, %r14
	movq	%rbx, %rdi
	movq	%rax, %rsi
	callq	_ZN2rt5Graph3addEPNS_4NodeE
	movq	%r14, %rax
	addq	$8, %rsp
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	retq
.Lfunc_end31:
	.size	_ZN2rt12_GLOBAL__N_126opti_sigmoid_cross_entropyERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, .Lfunc_end31-_ZN2rt12_GLOBAL__N_126opti_sigmoid_cross_entropyERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.cfi_endproc
                                        # -- End function
	.type	_ZN2rt12_GLOBAL__N_131opti_sigmoid_cross_entropy_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE,@function # -- Begin function _ZN2rt12_GLOBAL__N_131opti_sigmoid_cross_entropy_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
_ZN2rt12_GLOBAL__N_131opti_sigmoid_cross_entropy_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE: # @_ZN2rt12_GLOBAL__N_131opti_sigmoid_cross_entropy_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
.Lfunc_begin15:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception15
# %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	pushq	%r15
	.cfi_def_cfa_offset 24
	pushq	%r14
	.cfi_def_cfa_offset 32
	pushq	%r13
	.cfi_def_cfa_offset 40
	pushq	%r12
	.cfi_def_cfa_offset 48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	subq	$56, %rsp
	.cfi_def_cfa_offset 112
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	.cfi_offset %rbp, -16
	movq	%rdx, (%rsp)                    # 8-byte Spill
	movq	%rsi, %r15
	movq	%rdi, %rbx
	movq	120(%rsi), %rcx
	movq	%rcx, %rax
	shrq	$10, %rax
	cmpq	$8, %rax
	movl	$8, %edx
	cmovbq	%rax, %rdx
	cmpq	$2048, %rcx                     # imm = 0x800
	movl	$1, %ebp
	cmovaeq	%rdx, %rbp
	movq	%rcx, %rax
	xorl	%edx, %edx
	divq	%rbp
.LBB32_1:                               # =>This Inner Loop Header: Depth=1
	movq	%rax, %rdx
	movq	%rax, %rsi
	imulq	%rbp, %rsi
	incq	%rax
	cmpq	%rcx, %rsi
	jb	.LBB32_1
# %bb.2:
	cmpq	$2048, %rcx                     # imm = 0x800
	jb	.LBB32_3
.LBB32_4:                               # %.preheader.i
                                        # =>This Inner Loop Header: Depth=1
	movq	%rdx, %r12
	incq	%rdx
	testb	$7, %r12b
	jne	.LBB32_4
	jmp	.LBB32_5
.LBB32_3:
	movq	%rdx, %r12
.LBB32_5:                               # %_ZN2rt12_GLOBAL__N_114elemwhise_sizeEmRmS1_.exit
	cmpq	$1, %rbp
	ja	.LBB32_8
# %bb.6:
	movq	64(%r15), %rdi
	movq	72(%r15), %rsi
	movq	88(%r15), %rdx
	movq	(%rsp), %r8                     # 8-byte Reload
	callq	_ZN2rt4Node29op_sigmoid_cross_entropy_gradEPKfS2_PfmRKSt6vectorIPS0_SaIS5_EE
	movq	%rax, %r14
	movq	%rbx, %rdi
	movq	%rax, %rsi
	callq	_ZN2rt5Graph3addEPNS_4NodeE
	jmp	.LBB32_7
.LBB32_8:                               # %.lr.ph
	movq	%rbx, 48(%rsp)                  # 8-byte Spill
	xorps	%xmm0, %xmm0
	leaq	16(%rsp), %rax
	movaps	%xmm0, (%rax)
	movq	$0, 16(%rax)
	decq	%rbp
	leaq	(,%r12,4), %r14
	xorl	%r13d, %r13d
	movq	%rbp, %rbx
.LBB32_9:                               # =>This Inner Loop Header: Depth=1
	movq	64(%r15), %rdi
	addq	%r13, %rdi
	movq	72(%r15), %rsi
	addq	%r13, %rsi
	movq	88(%r15), %rdx
	addq	%r13, %rdx
.Ltmp246:
	movq	%r12, %rcx
	movq	(%rsp), %r8                     # 8-byte Reload
	callq	_ZN2rt4Node29op_sigmoid_cross_entropy_gradEPKfS2_PfmRKSt6vectorIPS0_SaIS5_EE
.Ltmp247:
# %bb.10:                               #   in Loop: Header=BB32_9 Depth=1
	movq	%rax, 8(%rsp)
.Ltmp248:
	leaq	16(%rsp), %rdi
	leaq	8(%rsp), %rsi
	callq	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_
.Ltmp249:
# %bb.11:                               # %_ZNSt6vectorIPN2rt4NodeESaIS2_EE9push_backEOS2_.exit
                                        #   in Loop: Header=BB32_9 Depth=1
	addq	%r14, %r13
	decq	%rbx
	jne	.LBB32_9
# %bb.12:                               # %._crit_edge
	movq	120(%r15), %rcx
	imulq	%rbp, %r12
	leaq	(,%r12,4), %rdx
	movq	64(%r15), %rdi
	addq	%rdx, %rdi
	movq	72(%r15), %rsi
	addq	%rdx, %rsi
	addq	88(%r15), %rdx
	subq	%r12, %rcx
.Ltmp251:
	movq	(%rsp), %r8                     # 8-byte Reload
	callq	_ZN2rt4Node29op_sigmoid_cross_entropy_gradEPKfS2_PfmRKSt6vectorIPS0_SaIS5_EE
.Ltmp252:
# %bb.13:
	leaq	8(%rsp), %rsi
	movq	%rax, (%rsi)
.Ltmp253:
	leaq	16(%rsp), %rdi
	callq	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_
.Ltmp254:
# %bb.14:                               # %_ZNSt6vectorIPN2rt4NodeESaIS2_EE9push_backEOS2_.exit36
	movq	16(%rsp), %rbx
	movq	24(%rsp), %r14
	cmpq	%r14, %rbx
	movq	48(%rsp), %r15                  # 8-byte Reload
	je	.LBB32_15
.LBB32_20:                              # %.lr.ph50
                                        # =>This Inner Loop Header: Depth=1
	movq	(%rbx), %rsi
.Ltmp256:
	movq	%r15, %rdi
	callq	_ZN2rt5Graph3addEPNS_4NodeE
.Ltmp257:
# %bb.21:                               #   in Loop: Header=BB32_20 Depth=1
	addq	$8, %rbx
	cmpq	%r14, %rbx
	jne	.LBB32_20
.LBB32_15:                              # %._crit_edge51
.Ltmp259:
	leaq	16(%rsp), %rdi
	callq	_ZN2rt4Node3nopERKSt6vectorIPS0_SaIS2_EE
.Ltmp260:
# %bb.16:
.Ltmp261:
	movq	%rax, %r14
	movq	%r15, %rdi
	movq	%rax, %rsi
	callq	_ZN2rt5Graph3addEPNS_4NodeE
.Ltmp262:
# %bb.17:
	movq	16(%rsp), %rdi
	testq	%rdi, %rdi
	je	.LBB32_7
# %bb.18:
	callq	_ZdlPv
.LBB32_7:
	movq	%r14, %rax
	addq	$56, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%r12
	.cfi_def_cfa_offset 40
	popq	%r13
	.cfi_def_cfa_offset 32
	popq	%r14
	.cfi_def_cfa_offset 24
	popq	%r15
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	retq
.LBB32_23:
	.cfi_def_cfa_offset 112
.Ltmp263:
	jmp	.LBB32_24
.LBB32_19:
.Ltmp255:
	jmp	.LBB32_24
.LBB32_22:
.Ltmp258:
	jmp	.LBB32_24
.LBB32_27:
.Ltmp250:
.LBB32_24:
	movq	%rax, %rbx
	movq	16(%rsp), %rdi
	testq	%rdi, %rdi
	je	.LBB32_26
# %bb.25:
	callq	_ZdlPv
.LBB32_26:                              # %_ZNSt6vectorIPN2rt4NodeESaIS2_EED2Ev.exit38
	movq	%rbx, %rdi
	callq	_Unwind_Resume@PLT
.Lfunc_end32:
	.size	_ZN2rt12_GLOBAL__N_131opti_sigmoid_cross_entropy_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, .Lfunc_end32-_ZN2rt12_GLOBAL__N_131opti_sigmoid_cross_entropy_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.cfi_endproc
	.section	.gcc_except_table,"a",@progbits
	.p2align	2, 0x0
GCC_except_table32:
.Lexception15:
	.byte	255                             # @LPStart Encoding = omit
	.byte	255                             # @TType Encoding = omit
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end15-.Lcst_begin15
.Lcst_begin15:
	.uleb128 .Lfunc_begin15-.Lfunc_begin15  # >> Call Site 1 <<
	.uleb128 .Ltmp246-.Lfunc_begin15        #   Call between .Lfunc_begin15 and .Ltmp246
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp246-.Lfunc_begin15        # >> Call Site 2 <<
	.uleb128 .Ltmp249-.Ltmp246              #   Call between .Ltmp246 and .Ltmp249
	.uleb128 .Ltmp250-.Lfunc_begin15        #     jumps to .Ltmp250
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp251-.Lfunc_begin15        # >> Call Site 3 <<
	.uleb128 .Ltmp254-.Ltmp251              #   Call between .Ltmp251 and .Ltmp254
	.uleb128 .Ltmp255-.Lfunc_begin15        #     jumps to .Ltmp255
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp256-.Lfunc_begin15        # >> Call Site 4 <<
	.uleb128 .Ltmp257-.Ltmp256              #   Call between .Ltmp256 and .Ltmp257
	.uleb128 .Ltmp258-.Lfunc_begin15        #     jumps to .Ltmp258
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp259-.Lfunc_begin15        # >> Call Site 5 <<
	.uleb128 .Ltmp262-.Ltmp259              #   Call between .Ltmp259 and .Ltmp262
	.uleb128 .Ltmp263-.Lfunc_begin15        #     jumps to .Ltmp263
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp262-.Lfunc_begin15        # >> Call Site 6 <<
	.uleb128 .Lfunc_end32-.Ltmp262          #   Call between .Ltmp262 and .Lfunc_end32
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end15:
	.p2align	2, 0x0
                                        # -- End function
	.text
	.type	_ZN2rt12_GLOBAL__N_122opti_conv2d_input_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE,@function # -- Begin function _ZN2rt12_GLOBAL__N_122opti_conv2d_input_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
_ZN2rt12_GLOBAL__N_122opti_conv2d_input_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE: # @_ZN2rt12_GLOBAL__N_122opti_conv2d_input_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.cfi_startproc
# %bb.0:
	pushq	%r14
	.cfi_def_cfa_offset 16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	subq	$24, %rsp
	.cfi_def_cfa_offset 48
	.cfi_offset %rbx, -24
	.cfi_offset %r14, -16
	movq	%rdx, %rax
	movq	%rdi, %rbx
	leaq	12(%rsp), %r11
	movl	$0, (%r11)
	movl	152(%rsi), %ecx
	movl	%ecx, 4(%r11)
	movl	156(%rsi), %ecx
	movl	%ecx, 8(%r11)
	movq	64(%rsi), %rdi
	movq	72(%rsi), %r10
	leaq	144(%rsi), %rdx
	movq	88(%rsi), %rcx
	leaq	160(%rsi), %r8
	leaq	176(%rsi), %r9
	movq	%r10, %rsi
	pushq	%rax
	.cfi_adjust_cfa_offset 8
	pushq	%r11
	.cfi_adjust_cfa_offset 8
	callq	_ZN2rt4Node20op_conv2d_input_gradEPKfS2_PKiPfS4_S4_S4_RKSt6vectorIPS0_SaIS7_EE
	addq	$16, %rsp
	.cfi_adjust_cfa_offset -16
	movq	%rax, %r14
	movq	%rbx, %rdi
	movq	%rax, %rsi
	callq	_ZN2rt5Graph3addEPNS_4NodeE
	movq	%r14, %rax
	addq	$24, %rsp
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	retq
.Lfunc_end33:
	.size	_ZN2rt12_GLOBAL__N_122opti_conv2d_input_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, .Lfunc_end33-_ZN2rt12_GLOBAL__N_122opti_conv2d_input_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.cfi_endproc
                                        # -- End function
	.type	_ZN2rt12_GLOBAL__N_123opti_conv2d_kernel_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE,@function # -- Begin function _ZN2rt12_GLOBAL__N_123opti_conv2d_kernel_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
_ZN2rt12_GLOBAL__N_123opti_conv2d_kernel_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE: # @_ZN2rt12_GLOBAL__N_123opti_conv2d_kernel_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.cfi_startproc
# %bb.0:
	pushq	%r14
	.cfi_def_cfa_offset 16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	pushq	%rax
	.cfi_def_cfa_offset 32
	.cfi_offset %rbx, -24
	.cfi_offset %r14, -16
	movq	%rdx, %rax
	movq	%rsi, %r10
	movq	%rdi, %rbx
	movq	64(%rsi), %rdi
	movq	72(%rsi), %rsi
	leaq	144(%r10), %rdx
	movq	88(%r10), %rcx
	leaq	160(%r10), %r8
	leaq	176(%r10), %r9
	addq	$152, %r10
	pushq	%rax
	.cfi_adjust_cfa_offset 8
	pushq	%r10
	.cfi_adjust_cfa_offset 8
	callq	_ZN2rt4Node21op_conv2d_kernel_gradEPKfS2_PKiPfS4_S4_S4_RKSt6vectorIPS0_SaIS7_EE
	addq	$16, %rsp
	.cfi_adjust_cfa_offset -16
	movq	%rax, %r14
	movq	%rbx, %rdi
	movq	%rax, %rsi
	callq	_ZN2rt5Graph3addEPNS_4NodeE
	movq	%r14, %rax
	addq	$8, %rsp
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	retq
.Lfunc_end34:
	.size	_ZN2rt12_GLOBAL__N_123opti_conv2d_kernel_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, .Lfunc_end34-_ZN2rt12_GLOBAL__N_123opti_conv2d_kernel_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.cfi_endproc
                                        # -- End function
	.type	_ZN2rt12_GLOBAL__N_115opti_argmax_accERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE,@function # -- Begin function _ZN2rt12_GLOBAL__N_115opti_argmax_accERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
_ZN2rt12_GLOBAL__N_115opti_argmax_accERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE: # @_ZN2rt12_GLOBAL__N_115opti_argmax_accERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.cfi_startproc
# %bb.0:
	pushq	%r14
	.cfi_def_cfa_offset 16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	pushq	%rax
	.cfi_def_cfa_offset 32
	.cfi_offset %rbx, -24
	.cfi_offset %r14, -16
	movq	%rdx, %r9
	movq	%rdi, %rbx
	movq	64(%rsi), %rdi
	movq	72(%rsi), %rax
	movq	88(%rsi), %rdx
	movq	120(%rsi), %rcx
	movq	128(%rsi), %r8
	movq	%rax, %rsi
	callq	_ZN2rt4Node13op_argmax_accEPKfS2_PfmmRKSt6vectorIPS0_SaIS5_EE
	movq	%rax, %r14
	movq	%rbx, %rdi
	movq	%rax, %rsi
	callq	_ZN2rt5Graph3addEPNS_4NodeE
	movq	%r14, %rax
	addq	$8, %rsp
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	retq
.Lfunc_end35:
	.size	_ZN2rt12_GLOBAL__N_115opti_argmax_accERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, .Lfunc_end35-_ZN2rt12_GLOBAL__N_115opti_argmax_accERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.cfi_endproc
                                        # -- End function
	.type	_ZN2rt12_GLOBAL__N_118opti_moment_updateERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE,@function # -- Begin function _ZN2rt12_GLOBAL__N_118opti_moment_updateERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
_ZN2rt12_GLOBAL__N_118opti_moment_updateERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE: # @_ZN2rt12_GLOBAL__N_118opti_moment_updateERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
.Lfunc_begin16:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception16
# %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	pushq	%r15
	.cfi_def_cfa_offset 24
	pushq	%r14
	.cfi_def_cfa_offset 32
	pushq	%r13
	.cfi_def_cfa_offset 40
	pushq	%r12
	.cfi_def_cfa_offset 48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	subq	$56, %rsp
	.cfi_def_cfa_offset 112
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	.cfi_offset %rbp, -16
	movq	%rdx, (%rsp)                    # 8-byte Spill
	movq	%rsi, %r15
	movq	%rdi, %rbx
	movq	120(%rsi), %rcx
	movq	%rcx, %rax
	shrq	$10, %rax
	cmpq	$8, %rax
	movl	$8, %edx
	cmovbq	%rax, %rdx
	cmpq	$2048, %rcx                     # imm = 0x800
	movl	$1, %ebp
	cmovaeq	%rdx, %rbp
	movq	%rcx, %rax
	xorl	%edx, %edx
	divq	%rbp
.LBB36_1:                               # =>This Inner Loop Header: Depth=1
	movq	%rax, %rdx
	movq	%rax, %rsi
	imulq	%rbp, %rsi
	incq	%rax
	cmpq	%rcx, %rsi
	jb	.LBB36_1
# %bb.2:
	cmpq	$2048, %rcx                     # imm = 0x800
	jb	.LBB36_3
.LBB36_4:                               # %.preheader.i
                                        # =>This Inner Loop Header: Depth=1
	movq	%rdx, %r12
	incq	%rdx
	testb	$7, %r12b
	jne	.LBB36_4
	jmp	.LBB36_5
.LBB36_3:
	movq	%rdx, %r12
.LBB36_5:                               # %_ZN2rt12_GLOBAL__N_114elemwhise_sizeEmRmS1_.exit
	cmpq	$1, %rbp
	ja	.LBB36_8
# %bb.6:
	movq	64(%r15), %rsi
	movq	88(%r15), %rdi
	movss	104(%r15), %xmm0                # xmm0 = mem[0],zero,zero,zero
	movss	108(%r15), %xmm1                # xmm1 = mem[0],zero,zero,zero
	movq	%rcx, %rdx
	movq	(%rsp), %rcx                    # 8-byte Reload
	callq	_ZN2rt4Node16op_moment_updateEPfPKfffmRKSt6vectorIPS0_SaIS5_EE
	movq	%rax, %r14
	movq	%rbx, %rdi
	movq	%rax, %rsi
	callq	_ZN2rt5Graph3addEPNS_4NodeE
	jmp	.LBB36_7
.LBB36_8:                               # %.lr.ph
	movq	%rbx, 48(%rsp)                  # 8-byte Spill
	xorps	%xmm0, %xmm0
	leaq	16(%rsp), %rax
	movaps	%xmm0, (%rax)
	movq	$0, 16(%rax)
	decq	%rbp
	leaq	(,%r12,4), %r14
	xorl	%r13d, %r13d
	movq	%rbp, %rbx
.LBB36_9:                               # =>This Inner Loop Header: Depth=1
	movq	88(%r15), %rdi
	addq	%r13, %rdi
	movq	64(%r15), %rsi
	addq	%r13, %rsi
	movss	104(%r15), %xmm0                # xmm0 = mem[0],zero,zero,zero
	movss	108(%r15), %xmm1                # xmm1 = mem[0],zero,zero,zero
.Ltmp264:
	movq	%r12, %rdx
	movq	(%rsp), %rcx                    # 8-byte Reload
	callq	_ZN2rt4Node16op_moment_updateEPfPKfffmRKSt6vectorIPS0_SaIS5_EE
.Ltmp265:
# %bb.10:                               #   in Loop: Header=BB36_9 Depth=1
	movq	%rax, 8(%rsp)
.Ltmp266:
	leaq	16(%rsp), %rdi
	leaq	8(%rsp), %rsi
	callq	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_
.Ltmp267:
# %bb.11:                               # %_ZNSt6vectorIPN2rt4NodeESaIS2_EE9push_backEOS2_.exit
                                        #   in Loop: Header=BB36_9 Depth=1
	addq	%r14, %r13
	decq	%rbx
	jne	.LBB36_9
# %bb.12:                               # %._crit_edge
	imulq	%rbp, %r12
	leaq	(,%r12,4), %rsi
	movq	88(%r15), %rdi
	addq	%rsi, %rdi
	addq	64(%r15), %rsi
	movq	120(%r15), %rdx
	movss	104(%r15), %xmm0                # xmm0 = mem[0],zero,zero,zero
	movss	108(%r15), %xmm1                # xmm1 = mem[0],zero,zero,zero
	subq	%r12, %rdx
.Ltmp269:
	movq	(%rsp), %rcx                    # 8-byte Reload
	callq	_ZN2rt4Node16op_moment_updateEPfPKfffmRKSt6vectorIPS0_SaIS5_EE
.Ltmp270:
# %bb.13:
	leaq	8(%rsp), %rsi
	movq	%rax, (%rsi)
.Ltmp271:
	leaq	16(%rsp), %rdi
	callq	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_
.Ltmp272:
# %bb.14:                               # %_ZNSt6vectorIPN2rt4NodeESaIS2_EE9push_backEOS2_.exit38
	movq	16(%rsp), %rbx
	movq	24(%rsp), %r14
	cmpq	%r14, %rbx
	movq	48(%rsp), %r15                  # 8-byte Reload
	je	.LBB36_15
.LBB36_20:                              # %.lr.ph52
                                        # =>This Inner Loop Header: Depth=1
	movq	(%rbx), %rsi
.Ltmp274:
	movq	%r15, %rdi
	callq	_ZN2rt5Graph3addEPNS_4NodeE
.Ltmp275:
# %bb.21:                               #   in Loop: Header=BB36_20 Depth=1
	addq	$8, %rbx
	cmpq	%r14, %rbx
	jne	.LBB36_20
.LBB36_15:                              # %._crit_edge53
.Ltmp277:
	leaq	16(%rsp), %rdi
	callq	_ZN2rt4Node3nopERKSt6vectorIPS0_SaIS2_EE
.Ltmp278:
# %bb.16:
.Ltmp279:
	movq	%rax, %r14
	movq	%r15, %rdi
	movq	%rax, %rsi
	callq	_ZN2rt5Graph3addEPNS_4NodeE
.Ltmp280:
# %bb.17:
	movq	16(%rsp), %rdi
	testq	%rdi, %rdi
	je	.LBB36_7
# %bb.18:
	callq	_ZdlPv
.LBB36_7:
	movq	%r14, %rax
	addq	$56, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%r12
	.cfi_def_cfa_offset 40
	popq	%r13
	.cfi_def_cfa_offset 32
	popq	%r14
	.cfi_def_cfa_offset 24
	popq	%r15
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	retq
.LBB36_23:
	.cfi_def_cfa_offset 112
.Ltmp281:
	jmp	.LBB36_24
.LBB36_19:
.Ltmp273:
	jmp	.LBB36_24
.LBB36_22:
.Ltmp276:
	jmp	.LBB36_24
.LBB36_27:
.Ltmp268:
.LBB36_24:
	movq	%rax, %rbx
	movq	16(%rsp), %rdi
	testq	%rdi, %rdi
	je	.LBB36_26
# %bb.25:
	callq	_ZdlPv
.LBB36_26:                              # %_ZNSt6vectorIPN2rt4NodeESaIS2_EED2Ev.exit40
	movq	%rbx, %rdi
	callq	_Unwind_Resume@PLT
.Lfunc_end36:
	.size	_ZN2rt12_GLOBAL__N_118opti_moment_updateERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, .Lfunc_end36-_ZN2rt12_GLOBAL__N_118opti_moment_updateERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.cfi_endproc
	.section	.gcc_except_table,"a",@progbits
	.p2align	2, 0x0
GCC_except_table36:
.Lexception16:
	.byte	255                             # @LPStart Encoding = omit
	.byte	255                             # @TType Encoding = omit
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end16-.Lcst_begin16
.Lcst_begin16:
	.uleb128 .Lfunc_begin16-.Lfunc_begin16  # >> Call Site 1 <<
	.uleb128 .Ltmp264-.Lfunc_begin16        #   Call between .Lfunc_begin16 and .Ltmp264
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp264-.Lfunc_begin16        # >> Call Site 2 <<
	.uleb128 .Ltmp267-.Ltmp264              #   Call between .Ltmp264 and .Ltmp267
	.uleb128 .Ltmp268-.Lfunc_begin16        #     jumps to .Ltmp268
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp269-.Lfunc_begin16        # >> Call Site 3 <<
	.uleb128 .Ltmp272-.Ltmp269              #   Call between .Ltmp269 and .Ltmp272
	.uleb128 .Ltmp273-.Lfunc_begin16        #     jumps to .Ltmp273
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp274-.Lfunc_begin16        # >> Call Site 4 <<
	.uleb128 .Ltmp275-.Ltmp274              #   Call between .Ltmp274 and .Ltmp275
	.uleb128 .Ltmp276-.Lfunc_begin16        #     jumps to .Ltmp276
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp277-.Lfunc_begin16        # >> Call Site 5 <<
	.uleb128 .Ltmp280-.Ltmp277              #   Call between .Ltmp277 and .Ltmp280
	.uleb128 .Ltmp281-.Lfunc_begin16        #     jumps to .Ltmp281
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp280-.Lfunc_begin16        # >> Call Site 6 <<
	.uleb128 .Lfunc_end36-.Ltmp280          #   Call between .Ltmp280 and .Lfunc_end36
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end16:
	.p2align	2, 0x0
                                        # -- End function
	.text
	.type	_ZN2rt12_GLOBAL__N_119opti_moment_update2ERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE,@function # -- Begin function _ZN2rt12_GLOBAL__N_119opti_moment_update2ERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
_ZN2rt12_GLOBAL__N_119opti_moment_update2ERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE: # @_ZN2rt12_GLOBAL__N_119opti_moment_update2ERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
.Lfunc_begin17:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception17
# %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	pushq	%r15
	.cfi_def_cfa_offset 24
	pushq	%r14
	.cfi_def_cfa_offset 32
	pushq	%r13
	.cfi_def_cfa_offset 40
	pushq	%r12
	.cfi_def_cfa_offset 48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	subq	$56, %rsp
	.cfi_def_cfa_offset 112
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	.cfi_offset %rbp, -16
	movq	%rdx, (%rsp)                    # 8-byte Spill
	movq	%rsi, %r15
	movq	%rdi, %rbx
	movq	120(%rsi), %rcx
	movq	%rcx, %rax
	shrq	$10, %rax
	cmpq	$8, %rax
	movl	$8, %edx
	cmovbq	%rax, %rdx
	cmpq	$2048, %rcx                     # imm = 0x800
	movl	$1, %ebp
	cmovaeq	%rdx, %rbp
	movq	%rcx, %rax
	xorl	%edx, %edx
	divq	%rbp
.LBB37_1:                               # =>This Inner Loop Header: Depth=1
	movq	%rax, %rdx
	movq	%rax, %rsi
	imulq	%rbp, %rsi
	incq	%rax
	cmpq	%rcx, %rsi
	jb	.LBB37_1
# %bb.2:
	cmpq	$2048, %rcx                     # imm = 0x800
	jb	.LBB37_3
.LBB37_4:                               # %.preheader.i
                                        # =>This Inner Loop Header: Depth=1
	movq	%rdx, %r12
	incq	%rdx
	testb	$7, %r12b
	jne	.LBB37_4
	jmp	.LBB37_5
.LBB37_3:
	movq	%rdx, %r12
.LBB37_5:                               # %_ZN2rt12_GLOBAL__N_114elemwhise_sizeEmRmS1_.exit
	cmpq	$1, %rbp
	ja	.LBB37_8
# %bb.6:
	movq	64(%r15), %rsi
	movq	88(%r15), %rdi
	movss	104(%r15), %xmm0                # xmm0 = mem[0],zero,zero,zero
	movss	108(%r15), %xmm1                # xmm1 = mem[0],zero,zero,zero
	movq	%rcx, %rdx
	movq	(%rsp), %rcx                    # 8-byte Reload
	callq	_ZN2rt4Node17op_moment_update2EPfPKfffmRKSt6vectorIPS0_SaIS5_EE
	movq	%rax, %r14
	movq	%rbx, %rdi
	movq	%rax, %rsi
	callq	_ZN2rt5Graph3addEPNS_4NodeE
	jmp	.LBB37_7
.LBB37_8:                               # %.lr.ph
	movq	%rbx, 48(%rsp)                  # 8-byte Spill
	xorps	%xmm0, %xmm0
	leaq	16(%rsp), %rax
	movaps	%xmm0, (%rax)
	movq	$0, 16(%rax)
	decq	%rbp
	leaq	(,%r12,4), %r14
	xorl	%r13d, %r13d
	movq	%rbp, %rbx
.LBB37_9:                               # =>This Inner Loop Header: Depth=1
	movq	88(%r15), %rdi
	addq	%r13, %rdi
	movq	64(%r15), %rsi
	addq	%r13, %rsi
	movss	104(%r15), %xmm0                # xmm0 = mem[0],zero,zero,zero
	movss	108(%r15), %xmm1                # xmm1 = mem[0],zero,zero,zero
.Ltmp282:
	movq	%r12, %rdx
	movq	(%rsp), %rcx                    # 8-byte Reload
	callq	_ZN2rt4Node17op_moment_update2EPfPKfffmRKSt6vectorIPS0_SaIS5_EE
.Ltmp283:
# %bb.10:                               #   in Loop: Header=BB37_9 Depth=1
	movq	%rax, 8(%rsp)
.Ltmp284:
	leaq	16(%rsp), %rdi
	leaq	8(%rsp), %rsi
	callq	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_
.Ltmp285:
# %bb.11:                               # %_ZNSt6vectorIPN2rt4NodeESaIS2_EE9push_backEOS2_.exit
                                        #   in Loop: Header=BB37_9 Depth=1
	addq	%r14, %r13
	decq	%rbx
	jne	.LBB37_9
# %bb.12:                               # %._crit_edge
	imulq	%rbp, %r12
	leaq	(,%r12,4), %rsi
	movq	88(%r15), %rdi
	addq	%rsi, %rdi
	addq	64(%r15), %rsi
	movq	120(%r15), %rdx
	movss	104(%r15), %xmm0                # xmm0 = mem[0],zero,zero,zero
	movss	108(%r15), %xmm1                # xmm1 = mem[0],zero,zero,zero
	subq	%r12, %rdx
.Ltmp287:
	movq	(%rsp), %rcx                    # 8-byte Reload
	callq	_ZN2rt4Node17op_moment_update2EPfPKfffmRKSt6vectorIPS0_SaIS5_EE
.Ltmp288:
# %bb.13:
	leaq	8(%rsp), %rsi
	movq	%rax, (%rsi)
.Ltmp289:
	leaq	16(%rsp), %rdi
	callq	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_
.Ltmp290:
# %bb.14:                               # %_ZNSt6vectorIPN2rt4NodeESaIS2_EE9push_backEOS2_.exit38
	movq	16(%rsp), %rbx
	movq	24(%rsp), %r14
	cmpq	%r14, %rbx
	movq	48(%rsp), %r15                  # 8-byte Reload
	je	.LBB37_15
.LBB37_20:                              # %.lr.ph52
                                        # =>This Inner Loop Header: Depth=1
	movq	(%rbx), %rsi
.Ltmp292:
	movq	%r15, %rdi
	callq	_ZN2rt5Graph3addEPNS_4NodeE
.Ltmp293:
# %bb.21:                               #   in Loop: Header=BB37_20 Depth=1
	addq	$8, %rbx
	cmpq	%r14, %rbx
	jne	.LBB37_20
.LBB37_15:                              # %._crit_edge53
.Ltmp295:
	leaq	16(%rsp), %rdi
	callq	_ZN2rt4Node3nopERKSt6vectorIPS0_SaIS2_EE
.Ltmp296:
# %bb.16:
.Ltmp297:
	movq	%rax, %r14
	movq	%r15, %rdi
	movq	%rax, %rsi
	callq	_ZN2rt5Graph3addEPNS_4NodeE
.Ltmp298:
# %bb.17:
	movq	16(%rsp), %rdi
	testq	%rdi, %rdi
	je	.LBB37_7
# %bb.18:
	callq	_ZdlPv
.LBB37_7:
	movq	%r14, %rax
	addq	$56, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%r12
	.cfi_def_cfa_offset 40
	popq	%r13
	.cfi_def_cfa_offset 32
	popq	%r14
	.cfi_def_cfa_offset 24
	popq	%r15
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	retq
.LBB37_23:
	.cfi_def_cfa_offset 112
.Ltmp299:
	jmp	.LBB37_24
.LBB37_19:
.Ltmp291:
	jmp	.LBB37_24
.LBB37_22:
.Ltmp294:
	jmp	.LBB37_24
.LBB37_27:
.Ltmp286:
.LBB37_24:
	movq	%rax, %rbx
	movq	16(%rsp), %rdi
	testq	%rdi, %rdi
	je	.LBB37_26
# %bb.25:
	callq	_ZdlPv
.LBB37_26:                              # %_ZNSt6vectorIPN2rt4NodeESaIS2_EED2Ev.exit40
	movq	%rbx, %rdi
	callq	_Unwind_Resume@PLT
.Lfunc_end37:
	.size	_ZN2rt12_GLOBAL__N_119opti_moment_update2ERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, .Lfunc_end37-_ZN2rt12_GLOBAL__N_119opti_moment_update2ERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.cfi_endproc
	.section	.gcc_except_table,"a",@progbits
	.p2align	2, 0x0
GCC_except_table37:
.Lexception17:
	.byte	255                             # @LPStart Encoding = omit
	.byte	255                             # @TType Encoding = omit
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end17-.Lcst_begin17
.Lcst_begin17:
	.uleb128 .Lfunc_begin17-.Lfunc_begin17  # >> Call Site 1 <<
	.uleb128 .Ltmp282-.Lfunc_begin17        #   Call between .Lfunc_begin17 and .Ltmp282
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp282-.Lfunc_begin17        # >> Call Site 2 <<
	.uleb128 .Ltmp285-.Ltmp282              #   Call between .Ltmp282 and .Ltmp285
	.uleb128 .Ltmp286-.Lfunc_begin17        #     jumps to .Ltmp286
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp287-.Lfunc_begin17        # >> Call Site 3 <<
	.uleb128 .Ltmp290-.Ltmp287              #   Call between .Ltmp287 and .Ltmp290
	.uleb128 .Ltmp291-.Lfunc_begin17        #     jumps to .Ltmp291
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp292-.Lfunc_begin17        # >> Call Site 4 <<
	.uleb128 .Ltmp293-.Ltmp292              #   Call between .Ltmp292 and .Ltmp293
	.uleb128 .Ltmp294-.Lfunc_begin17        #     jumps to .Ltmp294
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp295-.Lfunc_begin17        # >> Call Site 5 <<
	.uleb128 .Ltmp298-.Ltmp295              #   Call between .Ltmp295 and .Ltmp298
	.uleb128 .Ltmp299-.Lfunc_begin17        #     jumps to .Ltmp299
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp298-.Lfunc_begin17        # >> Call Site 6 <<
	.uleb128 .Lfunc_end37-.Ltmp298          #   Call between .Ltmp298 and .Lfunc_end37
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end17:
	.p2align	2, 0x0
                                        # -- End function
	.text
	.type	_ZN2rt12_GLOBAL__N_116opti_adam_updateERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE,@function # -- Begin function _ZN2rt12_GLOBAL__N_116opti_adam_updateERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
_ZN2rt12_GLOBAL__N_116opti_adam_updateERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE: # @_ZN2rt12_GLOBAL__N_116opti_adam_updateERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
.Lfunc_begin18:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception18
# %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	pushq	%r15
	.cfi_def_cfa_offset 24
	pushq	%r14
	.cfi_def_cfa_offset 32
	pushq	%r13
	.cfi_def_cfa_offset 40
	pushq	%r12
	.cfi_def_cfa_offset 48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	subq	$56, %rsp
	.cfi_def_cfa_offset 112
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	.cfi_offset %rbp, -16
	movq	%rdx, (%rsp)                    # 8-byte Spill
	movq	%rsi, %r15
	movq	%rdi, %rbx
	movq	120(%rsi), %r8
	movq	%r8, %rax
	shrq	$10, %rax
	cmpq	$8, %rax
	movl	$8, %ecx
	cmovbq	%rax, %rcx
	cmpq	$2048, %r8                      # imm = 0x800
	movl	$1, %ebp
	cmovaeq	%rcx, %rbp
	movq	%r8, %rax
	xorl	%edx, %edx
	divq	%rbp
.LBB38_1:                               # =>This Inner Loop Header: Depth=1
	movq	%rax, %rcx
	movq	%rax, %rdx
	imulq	%rbp, %rdx
	incq	%rax
	cmpq	%r8, %rdx
	jb	.LBB38_1
# %bb.2:
	cmpq	$2048, %r8                      # imm = 0x800
	jb	.LBB38_3
.LBB38_4:                               # %.preheader.i
                                        # =>This Inner Loop Header: Depth=1
	movq	%rcx, %r12
	incq	%rcx
	testb	$7, %r12b
	jne	.LBB38_4
	jmp	.LBB38_5
.LBB38_3:
	movq	%rcx, %r12
.LBB38_5:                               # %_ZN2rt12_GLOBAL__N_114elemwhise_sizeEmRmS1_.exit
	cmpq	$1, %rbp
	ja	.LBB38_8
# %bb.6:
	movq	88(%r15), %rdi
	movq	96(%r15), %rsi
	movq	64(%r15), %rdx
	movq	72(%r15), %rcx
	movss	104(%r15), %xmm0                # xmm0 = mem[0],zero,zero,zero
	movss	108(%r15), %xmm1                # xmm1 = mem[0],zero,zero,zero
	movss	112(%r15), %xmm2                # xmm2 = mem[0],zero,zero,zero
	movss	116(%r15), %xmm3                # xmm3 = mem[0],zero,zero,zero
	movq	(%rsp), %r9                     # 8-byte Reload
	callq	_ZN2rt4Node14op_adam_updateEPfS1_PKfS3_ffffmRKSt6vectorIPS0_SaIS5_EE
	movq	%rax, %r14
	movq	%rbx, %rdi
	movq	%rax, %rsi
	callq	_ZN2rt5Graph3addEPNS_4NodeE
	jmp	.LBB38_7
.LBB38_8:                               # %.lr.ph
	movq	%rbx, 48(%rsp)                  # 8-byte Spill
	xorps	%xmm0, %xmm0
	leaq	16(%rsp), %rax
	movaps	%xmm0, (%rax)
	movq	$0, 16(%rax)
	decq	%rbp
	leaq	(,%r12,4), %r14
	xorl	%r13d, %r13d
	movq	%rbp, %rbx
.LBB38_9:                               # =>This Inner Loop Header: Depth=1
	movq	88(%r15), %rdi
	addq	%r13, %rdi
	movq	96(%r15), %rsi
	addq	%r13, %rsi
	movq	64(%r15), %rdx
	addq	%r13, %rdx
	movq	72(%r15), %rcx
	addq	%r13, %rcx
	movss	104(%r15), %xmm0                # xmm0 = mem[0],zero,zero,zero
	movss	108(%r15), %xmm1                # xmm1 = mem[0],zero,zero,zero
	movss	112(%r15), %xmm2                # xmm2 = mem[0],zero,zero,zero
	movss	116(%r15), %xmm3                # xmm3 = mem[0],zero,zero,zero
.Ltmp300:
	movq	%r12, %r8
	movq	(%rsp), %r9                     # 8-byte Reload
	callq	_ZN2rt4Node14op_adam_updateEPfS1_PKfS3_ffffmRKSt6vectorIPS0_SaIS5_EE
.Ltmp301:
# %bb.10:                               #   in Loop: Header=BB38_9 Depth=1
	movq	%rax, 8(%rsp)
.Ltmp302:
	leaq	16(%rsp), %rdi
	leaq	8(%rsp), %rsi
	callq	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_
.Ltmp303:
# %bb.11:                               # %_ZNSt6vectorIPN2rt4NodeESaIS2_EE9push_backEOS2_.exit
                                        #   in Loop: Header=BB38_9 Depth=1
	addq	%r14, %r13
	decq	%rbx
	jne	.LBB38_9
# %bb.12:                               # %._crit_edge
	movq	120(%r15), %r8
	imulq	%rbp, %r12
	leaq	(,%r12,4), %rcx
	movq	88(%r15), %rdi
	addq	%rcx, %rdi
	movq	96(%r15), %rsi
	addq	%rcx, %rsi
	movq	64(%r15), %rdx
	addq	%rcx, %rdx
	addq	72(%r15), %rcx
	movss	104(%r15), %xmm0                # xmm0 = mem[0],zero,zero,zero
	movss	108(%r15), %xmm1                # xmm1 = mem[0],zero,zero,zero
	movss	112(%r15), %xmm2                # xmm2 = mem[0],zero,zero,zero
	movss	116(%r15), %xmm3                # xmm3 = mem[0],zero,zero,zero
	subq	%r12, %r8
.Ltmp305:
	movq	(%rsp), %r9                     # 8-byte Reload
	callq	_ZN2rt4Node14op_adam_updateEPfS1_PKfS3_ffffmRKSt6vectorIPS0_SaIS5_EE
.Ltmp306:
# %bb.13:
	leaq	8(%rsp), %rsi
	movq	%rax, (%rsi)
.Ltmp307:
	leaq	16(%rsp), %rdi
	callq	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_
.Ltmp308:
# %bb.14:                               # %_ZNSt6vectorIPN2rt4NodeESaIS2_EE9push_backEOS2_.exit52
	movq	16(%rsp), %rbx
	movq	24(%rsp), %r14
	cmpq	%r14, %rbx
	movq	48(%rsp), %r15                  # 8-byte Reload
	je	.LBB38_15
.LBB38_20:                              # %.lr.ph66
                                        # =>This Inner Loop Header: Depth=1
	movq	(%rbx), %rsi
.Ltmp310:
	movq	%r15, %rdi
	callq	_ZN2rt5Graph3addEPNS_4NodeE
.Ltmp311:
# %bb.21:                               #   in Loop: Header=BB38_20 Depth=1
	addq	$8, %rbx
	cmpq	%r14, %rbx
	jne	.LBB38_20
.LBB38_15:                              # %._crit_edge67
.Ltmp313:
	leaq	16(%rsp), %rdi
	callq	_ZN2rt4Node3nopERKSt6vectorIPS0_SaIS2_EE
.Ltmp314:
# %bb.16:
.Ltmp315:
	movq	%rax, %r14
	movq	%r15, %rdi
	movq	%rax, %rsi
	callq	_ZN2rt5Graph3addEPNS_4NodeE
.Ltmp316:
# %bb.17:
	movq	16(%rsp), %rdi
	testq	%rdi, %rdi
	je	.LBB38_7
# %bb.18:
	callq	_ZdlPv
.LBB38_7:
	movq	%r14, %rax
	addq	$56, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%r12
	.cfi_def_cfa_offset 40
	popq	%r13
	.cfi_def_cfa_offset 32
	popq	%r14
	.cfi_def_cfa_offset 24
	popq	%r15
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	retq
.LBB38_23:
	.cfi_def_cfa_offset 112
.Ltmp317:
	jmp	.LBB38_24
.LBB38_19:
.Ltmp309:
	jmp	.LBB38_24
.LBB38_22:
.Ltmp312:
	jmp	.LBB38_24
.LBB38_27:
.Ltmp304:
.LBB38_24:
	movq	%rax, %rbx
	movq	16(%rsp), %rdi
	testq	%rdi, %rdi
	je	.LBB38_26
# %bb.25:
	callq	_ZdlPv
.LBB38_26:                              # %_ZNSt6vectorIPN2rt4NodeESaIS2_EED2Ev.exit54
	movq	%rbx, %rdi
	callq	_Unwind_Resume@PLT
.Lfunc_end38:
	.size	_ZN2rt12_GLOBAL__N_116opti_adam_updateERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, .Lfunc_end38-_ZN2rt12_GLOBAL__N_116opti_adam_updateERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.cfi_endproc
	.section	.gcc_except_table,"a",@progbits
	.p2align	2, 0x0
GCC_except_table38:
.Lexception18:
	.byte	255                             # @LPStart Encoding = omit
	.byte	255                             # @TType Encoding = omit
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end18-.Lcst_begin18
.Lcst_begin18:
	.uleb128 .Lfunc_begin18-.Lfunc_begin18  # >> Call Site 1 <<
	.uleb128 .Ltmp300-.Lfunc_begin18        #   Call between .Lfunc_begin18 and .Ltmp300
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp300-.Lfunc_begin18        # >> Call Site 2 <<
	.uleb128 .Ltmp303-.Ltmp300              #   Call between .Ltmp300 and .Ltmp303
	.uleb128 .Ltmp304-.Lfunc_begin18        #     jumps to .Ltmp304
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp305-.Lfunc_begin18        # >> Call Site 3 <<
	.uleb128 .Ltmp308-.Ltmp305              #   Call between .Ltmp305 and .Ltmp308
	.uleb128 .Ltmp309-.Lfunc_begin18        #     jumps to .Ltmp309
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp310-.Lfunc_begin18        # >> Call Site 4 <<
	.uleb128 .Ltmp311-.Ltmp310              #   Call between .Ltmp310 and .Ltmp311
	.uleb128 .Ltmp312-.Lfunc_begin18        #     jumps to .Ltmp312
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp313-.Lfunc_begin18        # >> Call Site 5 <<
	.uleb128 .Ltmp316-.Ltmp313              #   Call between .Ltmp313 and .Ltmp316
	.uleb128 .Ltmp317-.Lfunc_begin18        #     jumps to .Ltmp317
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp316-.Lfunc_begin18        # >> Call Site 6 <<
	.uleb128 .Lfunc_end38-.Ltmp316          #   Call between .Ltmp316 and .Lfunc_end38
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end18:
	.p2align	2, 0x0
                                        # -- End function
	.text
	.type	_ZN2rt12_GLOBAL__N_120opti_leaky_relu_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE,@function # -- Begin function _ZN2rt12_GLOBAL__N_120opti_leaky_relu_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
_ZN2rt12_GLOBAL__N_120opti_leaky_relu_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE: # @_ZN2rt12_GLOBAL__N_120opti_leaky_relu_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
.Lfunc_begin19:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception19
# %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	pushq	%r15
	.cfi_def_cfa_offset 24
	pushq	%r14
	.cfi_def_cfa_offset 32
	pushq	%r13
	.cfi_def_cfa_offset 40
	pushq	%r12
	.cfi_def_cfa_offset 48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	subq	$56, %rsp
	.cfi_def_cfa_offset 112
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	.cfi_offset %rbp, -16
	movq	%rdx, (%rsp)                    # 8-byte Spill
	movq	%rsi, %r15
	movq	%rdi, %r13
	movq	120(%rsi), %rcx
	movq	%rcx, %rax
	shrq	$10, %rax
	cmpq	$8, %rax
	movl	$8, %edx
	cmovbq	%rax, %rdx
	cmpq	$2048, %rcx                     # imm = 0x800
	movl	$1, %ebx
	cmovaeq	%rdx, %rbx
	movq	%rcx, %rax
	xorl	%edx, %edx
	divq	%rbx
.LBB39_1:                               # =>This Inner Loop Header: Depth=1
	movq	%rax, %rdx
	movq	%rax, %rsi
	imulq	%rbx, %rsi
	incq	%rax
	cmpq	%rcx, %rsi
	jb	.LBB39_1
# %bb.2:
	cmpq	$2048, %rcx                     # imm = 0x800
	jb	.LBB39_3
.LBB39_4:                               # %.preheader.i
                                        # =>This Inner Loop Header: Depth=1
	movq	%rdx, %r12
	incq	%rdx
	testb	$7, %r12b
	jne	.LBB39_4
	jmp	.LBB39_5
.LBB39_3:
	movq	%rdx, %r12
.LBB39_5:                               # %_ZN2rt12_GLOBAL__N_114elemwhise_sizeEmRmS1_.exit
	cmpq	$1, %rbx
	ja	.LBB39_8
# %bb.6:
	movq	64(%r15), %rdi
	movq	72(%r15), %rsi
	movq	88(%r15), %rdx
	movss	104(%r15), %xmm0                # xmm0 = mem[0],zero,zero,zero
	movq	(%rsp), %r8                     # 8-byte Reload
	callq	_ZN2rt4Node18op_leaky_relu_gradEPKfS2_PffmRKSt6vectorIPS0_SaIS5_EE
	movq	%rax, %r14
	movq	%r13, %rdi
	movq	%rax, %rsi
	callq	_ZN2rt5Graph3addEPNS_4NodeE
	jmp	.LBB39_7
.LBB39_8:                               # %.lr.ph
	movq	%r13, 40(%rsp)                  # 8-byte Spill
	xorps	%xmm0, %xmm0
	leaq	16(%rsp), %rax
	movaps	%xmm0, (%rax)
	movq	$0, 16(%rax)
	leaq	-1(%rbx), %r13
	shlq	$2, %rbx
	xorl	%r14d, %r14d
	leaq	8(%rsp), %rbp
	movq	%r13, 48(%rsp)                  # 8-byte Spill
.LBB39_9:                               # =>This Inner Loop Header: Depth=1
	movq	64(%r15), %rdi
	addq	%r14, %rdi
	movq	72(%r15), %rsi
	addq	%r14, %rsi
	movq	88(%r15), %rdx
	addq	%r14, %rdx
	movss	104(%r15), %xmm0                # xmm0 = mem[0],zero,zero,zero
.Ltmp318:
	movq	%r12, %rcx
	movq	(%rsp), %r8                     # 8-byte Reload
	callq	_ZN2rt4Node18op_leaky_relu_gradEPKfS2_PffmRKSt6vectorIPS0_SaIS5_EE
.Ltmp319:
# %bb.10:                               #   in Loop: Header=BB39_9 Depth=1
	movq	%rax, 8(%rsp)
.Ltmp320:
	leaq	16(%rsp), %rdi
	movq	%rbp, %rsi
	callq	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_
.Ltmp321:
# %bb.11:                               # %_ZNSt6vectorIPN2rt4NodeESaIS2_EE9push_backEOS2_.exit
                                        #   in Loop: Header=BB39_9 Depth=1
	addq	%rbx, %r14
	decq	%r13
	jne	.LBB39_9
# %bb.12:                               # %._crit_edge
	movq	120(%r15), %rcx
	imulq	48(%rsp), %r12                  # 8-byte Folded Reload
	leaq	(,%r12,4), %rdx
	movq	64(%r15), %rdi
	addq	%rdx, %rdi
	movq	72(%r15), %rsi
	addq	%rdx, %rsi
	addq	88(%r15), %rdx
	movss	104(%r15), %xmm0                # xmm0 = mem[0],zero,zero,zero
	subq	%r12, %rcx
.Ltmp323:
	movq	(%rsp), %r8                     # 8-byte Reload
	callq	_ZN2rt4Node18op_leaky_relu_gradEPKfS2_PffmRKSt6vectorIPS0_SaIS5_EE
.Ltmp324:
# %bb.13:
	leaq	8(%rsp), %rsi
	movq	%rax, (%rsi)
.Ltmp325:
	leaq	16(%rsp), %rdi
	callq	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_
.Ltmp326:
# %bb.14:                               # %_ZNSt6vectorIPN2rt4NodeESaIS2_EE9push_backEOS2_.exit39
	movq	16(%rsp), %rbx
	movq	24(%rsp), %r14
	cmpq	%r14, %rbx
	movq	40(%rsp), %r15                  # 8-byte Reload
	je	.LBB39_15
.LBB39_20:                              # %.lr.ph54
                                        # =>This Inner Loop Header: Depth=1
	movq	(%rbx), %rsi
.Ltmp328:
	movq	%r15, %rdi
	callq	_ZN2rt5Graph3addEPNS_4NodeE
.Ltmp329:
# %bb.21:                               #   in Loop: Header=BB39_20 Depth=1
	addq	$8, %rbx
	cmpq	%r14, %rbx
	jne	.LBB39_20
.LBB39_15:                              # %._crit_edge55
.Ltmp331:
	leaq	16(%rsp), %rdi
	callq	_ZN2rt4Node3nopERKSt6vectorIPS0_SaIS2_EE
.Ltmp332:
# %bb.16:
.Ltmp333:
	movq	%rax, %r14
	movq	%r15, %rdi
	movq	%rax, %rsi
	callq	_ZN2rt5Graph3addEPNS_4NodeE
.Ltmp334:
# %bb.17:
	movq	16(%rsp), %rdi
	testq	%rdi, %rdi
	je	.LBB39_7
# %bb.18:
	callq	_ZdlPv
.LBB39_7:
	movq	%r14, %rax
	addq	$56, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%r12
	.cfi_def_cfa_offset 40
	popq	%r13
	.cfi_def_cfa_offset 32
	popq	%r14
	.cfi_def_cfa_offset 24
	popq	%r15
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	retq
.LBB39_23:
	.cfi_def_cfa_offset 112
.Ltmp335:
	jmp	.LBB39_24
.LBB39_19:
.Ltmp327:
	jmp	.LBB39_24
.LBB39_22:
.Ltmp330:
	jmp	.LBB39_24
.LBB39_27:
.Ltmp322:
.LBB39_24:
	movq	%rax, %rbx
	movq	16(%rsp), %rdi
	testq	%rdi, %rdi
	je	.LBB39_26
# %bb.25:
	callq	_ZdlPv
.LBB39_26:                              # %_ZNSt6vectorIPN2rt4NodeESaIS2_EED2Ev.exit41
	movq	%rbx, %rdi
	callq	_Unwind_Resume@PLT
.Lfunc_end39:
	.size	_ZN2rt12_GLOBAL__N_120opti_leaky_relu_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, .Lfunc_end39-_ZN2rt12_GLOBAL__N_120opti_leaky_relu_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.cfi_endproc
	.section	.gcc_except_table,"a",@progbits
	.p2align	2, 0x0
GCC_except_table39:
.Lexception19:
	.byte	255                             # @LPStart Encoding = omit
	.byte	255                             # @TType Encoding = omit
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end19-.Lcst_begin19
.Lcst_begin19:
	.uleb128 .Lfunc_begin19-.Lfunc_begin19  # >> Call Site 1 <<
	.uleb128 .Ltmp318-.Lfunc_begin19        #   Call between .Lfunc_begin19 and .Ltmp318
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp318-.Lfunc_begin19        # >> Call Site 2 <<
	.uleb128 .Ltmp321-.Ltmp318              #   Call between .Ltmp318 and .Ltmp321
	.uleb128 .Ltmp322-.Lfunc_begin19        #     jumps to .Ltmp322
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp323-.Lfunc_begin19        # >> Call Site 3 <<
	.uleb128 .Ltmp326-.Ltmp323              #   Call between .Ltmp323 and .Ltmp326
	.uleb128 .Ltmp327-.Lfunc_begin19        #     jumps to .Ltmp327
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp328-.Lfunc_begin19        # >> Call Site 4 <<
	.uleb128 .Ltmp329-.Ltmp328              #   Call between .Ltmp328 and .Ltmp329
	.uleb128 .Ltmp330-.Lfunc_begin19        #     jumps to .Ltmp330
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp331-.Lfunc_begin19        # >> Call Site 5 <<
	.uleb128 .Ltmp334-.Ltmp331              #   Call between .Ltmp331 and .Ltmp334
	.uleb128 .Ltmp335-.Lfunc_begin19        #     jumps to .Ltmp335
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp334-.Lfunc_begin19        # >> Call Site 6 <<
	.uleb128 .Lfunc_end39-.Ltmp334          #   Call between .Ltmp334 and .Lfunc_end39
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end19:
	.p2align	2, 0x0
                                        # -- End function
	.text
	.type	_ZN2rt12_GLOBAL__N_125opti_conv2d_bias_add_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE,@function # -- Begin function _ZN2rt12_GLOBAL__N_125opti_conv2d_bias_add_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
_ZN2rt12_GLOBAL__N_125opti_conv2d_bias_add_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE: # @_ZN2rt12_GLOBAL__N_125opti_conv2d_bias_add_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.cfi_startproc
# %bb.0:
	pushq	%r14
	.cfi_def_cfa_offset 16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	pushq	%rax
	.cfi_def_cfa_offset 32
	.cfi_offset %rbx, -24
	.cfi_offset %r14, -16
	movq	%rdx, %rcx
	movq	%rdi, %rbx
	leaq	160(%rsi), %rax
	movq	64(%rsi), %rdi
	movq	88(%rsi), %rdx
	movq	%rax, %rsi
	callq	_ZN2rt4Node23op_conv2d_bias_add_gradEPKfPKiPfRKSt6vectorIPS0_SaIS7_EE
	movq	%rax, %r14
	movq	%rbx, %rdi
	movq	%rax, %rsi
	callq	_ZN2rt5Graph3addEPNS_4NodeE
	movq	%r14, %rax
	addq	$8, %rsp
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	retq
.Lfunc_end40:
	.size	_ZN2rt12_GLOBAL__N_125opti_conv2d_bias_add_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, .Lfunc_end40-_ZN2rt12_GLOBAL__N_125opti_conv2d_bias_add_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.cfi_endproc
                                        # -- End function
	.type	_ZN2rt12_GLOBAL__N_114opti_tanh_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE,@function # -- Begin function _ZN2rt12_GLOBAL__N_114opti_tanh_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
_ZN2rt12_GLOBAL__N_114opti_tanh_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE: # @_ZN2rt12_GLOBAL__N_114opti_tanh_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
.Lfunc_begin20:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception20
# %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	pushq	%r15
	.cfi_def_cfa_offset 24
	pushq	%r14
	.cfi_def_cfa_offset 32
	pushq	%r13
	.cfi_def_cfa_offset 40
	pushq	%r12
	.cfi_def_cfa_offset 48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	subq	$56, %rsp
	.cfi_def_cfa_offset 112
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	.cfi_offset %rbp, -16
	movq	%rdx, (%rsp)                    # 8-byte Spill
	movq	%rsi, %r15
	movq	%rdi, %r13
	movq	120(%rsi), %rcx
	movq	%rcx, %rax
	shrq	$10, %rax
	cmpq	$8, %rax
	movl	$8, %edx
	cmovbq	%rax, %rdx
	cmpq	$2048, %rcx                     # imm = 0x800
	movl	$1, %ebx
	cmovaeq	%rdx, %rbx
	movq	%rcx, %rax
	xorl	%edx, %edx
	divq	%rbx
.LBB41_1:                               # =>This Inner Loop Header: Depth=1
	movq	%rax, %rdx
	movq	%rax, %rsi
	imulq	%rbx, %rsi
	incq	%rax
	cmpq	%rcx, %rsi
	jb	.LBB41_1
# %bb.2:
	cmpq	$2048, %rcx                     # imm = 0x800
	jb	.LBB41_3
.LBB41_4:                               # %.preheader.i
                                        # =>This Inner Loop Header: Depth=1
	movq	%rdx, %r12
	incq	%rdx
	testb	$7, %r12b
	jne	.LBB41_4
	jmp	.LBB41_5
.LBB41_3:
	movq	%rdx, %r12
.LBB41_5:                               # %_ZN2rt12_GLOBAL__N_114elemwhise_sizeEmRmS1_.exit
	cmpq	$1, %rbx
	ja	.LBB41_8
# %bb.6:
	movq	64(%r15), %rdi
	movq	72(%r15), %rsi
	movq	88(%r15), %rdx
	movq	(%rsp), %r8                     # 8-byte Reload
	callq	_ZN2rt4Node12op_tanh_gradEPKfS2_PfmRKSt6vectorIPS0_SaIS5_EE
	movq	%rax, %r14
	movq	%r13, %rdi
	movq	%rax, %rsi
	callq	_ZN2rt5Graph3addEPNS_4NodeE
	jmp	.LBB41_7
.LBB41_8:                               # %.lr.ph
	movq	%r13, 40(%rsp)                  # 8-byte Spill
	xorps	%xmm0, %xmm0
	leaq	16(%rsp), %rax
	movaps	%xmm0, (%rax)
	movq	$0, 16(%rax)
	leaq	-1(%rbx), %r13
	shlq	$2, %rbx
	xorl	%r14d, %r14d
	leaq	8(%rsp), %rbp
	movq	%r13, 48(%rsp)                  # 8-byte Spill
.LBB41_9:                               # =>This Inner Loop Header: Depth=1
	movq	64(%r15), %rdi
	addq	%r14, %rdi
	movq	72(%r15), %rsi
	addq	%r14, %rsi
	movq	88(%r15), %rdx
	addq	%r14, %rdx
.Ltmp336:
	movq	%r12, %rcx
	movq	(%rsp), %r8                     # 8-byte Reload
	callq	_ZN2rt4Node12op_tanh_gradEPKfS2_PfmRKSt6vectorIPS0_SaIS5_EE
.Ltmp337:
# %bb.10:                               #   in Loop: Header=BB41_9 Depth=1
	movq	%rax, 8(%rsp)
.Ltmp338:
	leaq	16(%rsp), %rdi
	movq	%rbp, %rsi
	callq	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_
.Ltmp339:
# %bb.11:                               # %_ZNSt6vectorIPN2rt4NodeESaIS2_EE9push_backEOS2_.exit
                                        #   in Loop: Header=BB41_9 Depth=1
	addq	%rbx, %r14
	decq	%r13
	jne	.LBB41_9
# %bb.12:                               # %._crit_edge
	movq	120(%r15), %rcx
	imulq	48(%rsp), %r12                  # 8-byte Folded Reload
	leaq	(,%r12,4), %rdx
	movq	64(%r15), %rdi
	addq	%rdx, %rdi
	movq	72(%r15), %rsi
	addq	%rdx, %rsi
	addq	88(%r15), %rdx
	subq	%r12, %rcx
.Ltmp341:
	movq	(%rsp), %r8                     # 8-byte Reload
	callq	_ZN2rt4Node12op_tanh_gradEPKfS2_PfmRKSt6vectorIPS0_SaIS5_EE
.Ltmp342:
# %bb.13:
	leaq	8(%rsp), %rsi
	movq	%rax, (%rsi)
.Ltmp343:
	leaq	16(%rsp), %rdi
	callq	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_
.Ltmp344:
# %bb.14:                               # %_ZNSt6vectorIPN2rt4NodeESaIS2_EE9push_backEOS2_.exit36
	movq	16(%rsp), %rbx
	movq	24(%rsp), %r14
	cmpq	%r14, %rbx
	movq	40(%rsp), %r15                  # 8-byte Reload
	je	.LBB41_15
.LBB41_20:                              # %.lr.ph51
                                        # =>This Inner Loop Header: Depth=1
	movq	(%rbx), %rsi
.Ltmp346:
	movq	%r15, %rdi
	callq	_ZN2rt5Graph3addEPNS_4NodeE
.Ltmp347:
# %bb.21:                               #   in Loop: Header=BB41_20 Depth=1
	addq	$8, %rbx
	cmpq	%r14, %rbx
	jne	.LBB41_20
.LBB41_15:                              # %._crit_edge52
.Ltmp349:
	leaq	16(%rsp), %rdi
	callq	_ZN2rt4Node3nopERKSt6vectorIPS0_SaIS2_EE
.Ltmp350:
# %bb.16:
.Ltmp351:
	movq	%rax, %r14
	movq	%r15, %rdi
	movq	%rax, %rsi
	callq	_ZN2rt5Graph3addEPNS_4NodeE
.Ltmp352:
# %bb.17:
	movq	16(%rsp), %rdi
	testq	%rdi, %rdi
	je	.LBB41_7
# %bb.18:
	callq	_ZdlPv
.LBB41_7:
	movq	%r14, %rax
	addq	$56, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%r12
	.cfi_def_cfa_offset 40
	popq	%r13
	.cfi_def_cfa_offset 32
	popq	%r14
	.cfi_def_cfa_offset 24
	popq	%r15
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	retq
.LBB41_23:
	.cfi_def_cfa_offset 112
.Ltmp353:
	jmp	.LBB41_24
.LBB41_19:
.Ltmp345:
	jmp	.LBB41_24
.LBB41_22:
.Ltmp348:
	jmp	.LBB41_24
.LBB41_27:
.Ltmp340:
.LBB41_24:
	movq	%rax, %rbx
	movq	16(%rsp), %rdi
	testq	%rdi, %rdi
	je	.LBB41_26
# %bb.25:
	callq	_ZdlPv
.LBB41_26:                              # %_ZNSt6vectorIPN2rt4NodeESaIS2_EED2Ev.exit38
	movq	%rbx, %rdi
	callq	_Unwind_Resume@PLT
.Lfunc_end41:
	.size	_ZN2rt12_GLOBAL__N_114opti_tanh_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, .Lfunc_end41-_ZN2rt12_GLOBAL__N_114opti_tanh_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.cfi_endproc
	.section	.gcc_except_table,"a",@progbits
	.p2align	2, 0x0
GCC_except_table41:
.Lexception20:
	.byte	255                             # @LPStart Encoding = omit
	.byte	255                             # @TType Encoding = omit
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end20-.Lcst_begin20
.Lcst_begin20:
	.uleb128 .Lfunc_begin20-.Lfunc_begin20  # >> Call Site 1 <<
	.uleb128 .Ltmp336-.Lfunc_begin20        #   Call between .Lfunc_begin20 and .Ltmp336
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp336-.Lfunc_begin20        # >> Call Site 2 <<
	.uleb128 .Ltmp339-.Ltmp336              #   Call between .Ltmp336 and .Ltmp339
	.uleb128 .Ltmp340-.Lfunc_begin20        #     jumps to .Ltmp340
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp341-.Lfunc_begin20        # >> Call Site 3 <<
	.uleb128 .Ltmp344-.Ltmp341              #   Call between .Ltmp341 and .Ltmp344
	.uleb128 .Ltmp345-.Lfunc_begin20        #     jumps to .Ltmp345
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp346-.Lfunc_begin20        # >> Call Site 4 <<
	.uleb128 .Ltmp347-.Ltmp346              #   Call between .Ltmp346 and .Ltmp347
	.uleb128 .Ltmp348-.Lfunc_begin20        #     jumps to .Ltmp348
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp349-.Lfunc_begin20        # >> Call Site 5 <<
	.uleb128 .Ltmp352-.Ltmp349              #   Call between .Ltmp349 and .Ltmp352
	.uleb128 .Ltmp353-.Lfunc_begin20        #     jumps to .Ltmp353
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp352-.Lfunc_begin20        # >> Call Site 6 <<
	.uleb128 .Lfunc_end41-.Ltmp352          #   Call between .Ltmp352 and .Lfunc_end41
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end20:
	.p2align	2, 0x0
                                        # -- End function
	.text
	.type	_ZN2rt12_GLOBAL__N_121opti_conv2d_transposeERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE,@function # -- Begin function _ZN2rt12_GLOBAL__N_121opti_conv2d_transposeERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
_ZN2rt12_GLOBAL__N_121opti_conv2d_transposeERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE: # @_ZN2rt12_GLOBAL__N_121opti_conv2d_transposeERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.cfi_startproc
# %bb.0:
	pushq	%r14
	.cfi_def_cfa_offset 16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	pushq	%rax
	.cfi_def_cfa_offset 32
	.cfi_offset %rbx, -24
	.cfi_offset %r14, -16
	movq	%rdx, %rax
	movq	%rsi, %r10
	movq	%rdi, %rbx
	movq	64(%rsi), %rdi
	movq	72(%rsi), %rsi
	leaq	160(%r10), %rdx
	leaq	144(%r10), %rcx
	movq	88(%r10), %r8
	leaq	176(%r10), %r9
	addq	$192, %r10
	pushq	%rax
	.cfi_adjust_cfa_offset 8
	pushq	%r10
	.cfi_adjust_cfa_offset 8
	callq	_ZN2rt4Node19op_conv2d_transposeEPKfS2_PKiS4_PfS4_S4_RKSt6vectorIPS0_SaIS7_EE
	addq	$16, %rsp
	.cfi_adjust_cfa_offset -16
	movq	%rax, %r14
	movq	%rbx, %rdi
	movq	%rax, %rsi
	callq	_ZN2rt5Graph3addEPNS_4NodeE
	movq	%r14, %rax
	addq	$8, %rsp
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	retq
.Lfunc_end42:
	.size	_ZN2rt12_GLOBAL__N_121opti_conv2d_transposeERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, .Lfunc_end42-_ZN2rt12_GLOBAL__N_121opti_conv2d_transposeERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.cfi_endproc
                                        # -- End function
	.type	_ZN2rt12_GLOBAL__N_132opti_conv2d_transpose_input_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE,@function # -- Begin function _ZN2rt12_GLOBAL__N_132opti_conv2d_transpose_input_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
_ZN2rt12_GLOBAL__N_132opti_conv2d_transpose_input_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE: # @_ZN2rt12_GLOBAL__N_132opti_conv2d_transpose_input_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.cfi_startproc
# %bb.0:
	pushq	%r14
	.cfi_def_cfa_offset 16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	pushq	%rax
	.cfi_def_cfa_offset 32
	.cfi_offset %rbx, -24
	.cfi_offset %r14, -16
	movq	%rdx, %rax
	movq	%rsi, %r10
	movq	%rdi, %rbx
	movq	64(%rsi), %rdi
	movq	72(%rsi), %rsi
	leaq	144(%r10), %rdx
	movq	88(%r10), %rcx
	leaq	160(%r10), %r8
	leaq	176(%r10), %r9
	addq	$152, %r10
	pushq	%rax
	.cfi_adjust_cfa_offset 8
	pushq	%r10
	.cfi_adjust_cfa_offset 8
	callq	_ZN2rt4Node30op_conv2d_transpose_input_gradEPKfS2_PKiPfS4_S4_S4_RKSt6vectorIPS0_SaIS7_EE
	addq	$16, %rsp
	.cfi_adjust_cfa_offset -16
	movq	%rax, %r14
	movq	%rbx, %rdi
	movq	%rax, %rsi
	callq	_ZN2rt5Graph3addEPNS_4NodeE
	movq	%r14, %rax
	addq	$8, %rsp
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	retq
.Lfunc_end43:
	.size	_ZN2rt12_GLOBAL__N_132opti_conv2d_transpose_input_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, .Lfunc_end43-_ZN2rt12_GLOBAL__N_132opti_conv2d_transpose_input_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.cfi_endproc
                                        # -- End function
	.type	_ZN2rt12_GLOBAL__N_133opti_conv2d_transpose_kernel_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE,@function # -- Begin function _ZN2rt12_GLOBAL__N_133opti_conv2d_transpose_kernel_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
_ZN2rt12_GLOBAL__N_133opti_conv2d_transpose_kernel_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE: # @_ZN2rt12_GLOBAL__N_133opti_conv2d_transpose_kernel_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.cfi_startproc
# %bb.0:
	pushq	%r14
	.cfi_def_cfa_offset 16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	pushq	%rax
	.cfi_def_cfa_offset 32
	.cfi_offset %rbx, -24
	.cfi_offset %r14, -16
	movq	%rdx, %rax
	movq	%rsi, %r10
	movq	%rdi, %rbx
	movq	64(%rsi), %rdi
	movq	72(%rsi), %rsi
	leaq	144(%r10), %rdx
	movq	88(%r10), %rcx
	leaq	160(%r10), %r8
	leaq	176(%r10), %r9
	addq	$192, %r10
	pushq	%rax
	.cfi_adjust_cfa_offset 8
	pushq	%r10
	.cfi_adjust_cfa_offset 8
	callq	_ZN2rt4Node31op_conv2d_transpose_kernel_gradEPKfS2_PKiPfS4_S4_S4_RKSt6vectorIPS0_SaIS7_EE
	addq	$16, %rsp
	.cfi_adjust_cfa_offset -16
	movq	%rax, %r14
	movq	%rbx, %rdi
	movq	%rax, %rsi
	callq	_ZN2rt5Graph3addEPNS_4NodeE
	movq	%r14, %rax
	addq	$8, %rsp
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	retq
.Lfunc_end44:
	.size	_ZN2rt12_GLOBAL__N_133opti_conv2d_transpose_kernel_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, .Lfunc_end44-_ZN2rt12_GLOBAL__N_133opti_conv2d_transpose_kernel_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.cfi_endproc
                                        # -- End function
	.type	_ZN2rt12_GLOBAL__N_18opti_addERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE,@function # -- Begin function _ZN2rt12_GLOBAL__N_18opti_addERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
_ZN2rt12_GLOBAL__N_18opti_addERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE: # @_ZN2rt12_GLOBAL__N_18opti_addERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
.Lfunc_begin21:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception21
# %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	pushq	%r15
	.cfi_def_cfa_offset 24
	pushq	%r14
	.cfi_def_cfa_offset 32
	pushq	%r13
	.cfi_def_cfa_offset 40
	pushq	%r12
	.cfi_def_cfa_offset 48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	subq	$104, %rsp
	.cfi_def_cfa_offset 160
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	.cfi_offset %rbp, -16
	movq	%rdx, 8(%rsp)                   # 8-byte Spill
	movq	%rdi, %r14
	movq	%rsi, 16(%rsp)                  # 8-byte Spill
	movq	120(%rsi), %rcx
	movq	%rcx, %rax
	shrq	$10, %rax
	cmpq	$8, %rax
	movl	$8, %edx
	cmovbq	%rax, %rdx
	cmpq	$2048, %rcx                     # imm = 0x800
	movl	$1, %r13d
	cmovaeq	%rdx, %r13
	movq	%rcx, %rax
	xorl	%edx, %edx
	divq	%r13
.LBB45_1:                               # =>This Inner Loop Header: Depth=1
	movq	%rax, %rdx
	movq	%rax, %rsi
	imulq	%r13, %rsi
	incq	%rax
	cmpq	%rcx, %rsi
	jb	.LBB45_1
# %bb.2:
	cmpq	$2048, %rcx                     # imm = 0x800
	jb	.LBB45_3
.LBB45_4:                               # %.preheader.i
                                        # =>This Inner Loop Header: Depth=1
	movq	%rdx, %r12
	incq	%rdx
	testb	$7, %r12b
	jne	.LBB45_4
	jmp	.LBB45_5
.LBB45_3:
	movq	%rdx, %r12
.LBB45_5:                               # %_ZN2rt12_GLOBAL__N_114elemwhise_sizeEmRmS1_.exit
	movq	16(%rsp), %rax                  # 8-byte Reload
	movq	64(%rax), %r15
	movq	72(%rax), %rbx
	movq	88(%rax), %rbp
	cmpq	$1, %r13
	ja	.LBB45_8
# %bb.6:
	movq	%r15, %rdi
	movq	%rbx, %rsi
	movq	%rbp, %rdx
	movq	8(%rsp), %r8                    # 8-byte Reload
	callq	_ZN2rt4Node6op_addEPKfS2_PfmRKSt6vectorIPS0_SaIS5_EE
	movq	%rax, %rbx
	movq	%r14, %rdi
	movq	%rax, %rsi
	callq	_ZN2rt5Graph3addEPNS_4NodeE
	jmp	.LBB45_7
.LBB45_8:                               # %.lr.ph.preheader
	movq	%r14, 64(%rsp)                  # 8-byte Spill
	xorps	%xmm0, %xmm0
	leaq	32(%rsp), %rax
	movaps	%xmm0, (%rax)
	movq	$0, 16(%rax)
	decq	%r13
	leaq	(,%r12,4), %r14
	movq	%r15, 72(%rsp)                  # 8-byte Spill
	movq	%rbx, 80(%rsp)                  # 8-byte Spill
	movq	%rbp, 88(%rsp)                  # 8-byte Spill
	movq	%r13, 96(%rsp)                  # 8-byte Spill
.LBB45_9:                               # %.lr.ph
                                        # =>This Inner Loop Header: Depth=1
.Ltmp354:
	movq	%r15, %rdi
	movq	%rbx, %rsi
	movq	%rbp, %rdx
	movq	%r12, %rcx
	movq	8(%rsp), %r8                    # 8-byte Reload
	callq	_ZN2rt4Node6op_addEPKfS2_PfmRKSt6vectorIPS0_SaIS5_EE
.Ltmp355:
# %bb.10:                               #   in Loop: Header=BB45_9 Depth=1
	movq	%rax, 24(%rsp)
.Ltmp356:
	leaq	32(%rsp), %rdi
	leaq	24(%rsp), %rsi
	callq	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_
.Ltmp357:
# %bb.11:                               # %_ZNSt6vectorIPN2rt4NodeESaIS2_EE9push_backEOS2_.exit
                                        #   in Loop: Header=BB45_9 Depth=1
	addq	%r14, %rbp
	addq	%r14, %rbx
	addq	%r14, %r15
	decq	%r13
	jne	.LBB45_9
# %bb.12:                               # %._crit_edge
	movq	16(%rsp), %rax                  # 8-byte Reload
	movq	120(%rax), %rcx
	imulq	96(%rsp), %r12                  # 8-byte Folded Reload
	movq	72(%rsp), %rax                  # 8-byte Reload
	leaq	(%rax,%r12,4), %rdi
	movq	80(%rsp), %rax                  # 8-byte Reload
	leaq	(%rax,%r12,4), %rsi
	movq	88(%rsp), %rax                  # 8-byte Reload
	leaq	(%rax,%r12,4), %rdx
	subq	%r12, %rcx
.Ltmp359:
	movq	8(%rsp), %r8                    # 8-byte Reload
	callq	_ZN2rt4Node6op_addEPKfS2_PfmRKSt6vectorIPS0_SaIS5_EE
.Ltmp360:
# %bb.13:
	leaq	24(%rsp), %rsi
	movq	%rax, (%rsi)
.Ltmp361:
	leaq	32(%rsp), %rdi
	callq	_ZNSt6vectorIPN2rt4NodeESaIS2_EE12emplace_backIJS2_EEERS2_DpOT_
.Ltmp362:
# %bb.14:                               # %_ZNSt6vectorIPN2rt4NodeESaIS2_EE9push_backEOS2_.exit39
	movq	32(%rsp), %rbx
	movq	40(%rsp), %r14
	cmpq	%r14, %rbx
	movq	64(%rsp), %r15                  # 8-byte Reload
	je	.LBB45_15
.LBB45_20:                              # %.lr.ph53
                                        # =>This Inner Loop Header: Depth=1
	movq	(%rbx), %rsi
.Ltmp364:
	movq	%r15, %rdi
	callq	_ZN2rt5Graph3addEPNS_4NodeE
.Ltmp365:
# %bb.21:                               #   in Loop: Header=BB45_20 Depth=1
	addq	$8, %rbx
	cmpq	%r14, %rbx
	jne	.LBB45_20
.LBB45_15:                              # %._crit_edge54
.Ltmp367:
	leaq	32(%rsp), %rdi
	callq	_ZN2rt4Node3nopERKSt6vectorIPS0_SaIS2_EE
.Ltmp368:
# %bb.16:
.Ltmp369:
	movq	%rax, %rbx
	movq	%r15, %rdi
	movq	%rax, %rsi
	callq	_ZN2rt5Graph3addEPNS_4NodeE
.Ltmp370:
# %bb.17:
	movq	32(%rsp), %rdi
	testq	%rdi, %rdi
	je	.LBB45_7
# %bb.18:
	callq	_ZdlPv
.LBB45_7:
	movq	%rbx, %rax
	addq	$104, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%r12
	.cfi_def_cfa_offset 40
	popq	%r13
	.cfi_def_cfa_offset 32
	popq	%r14
	.cfi_def_cfa_offset 24
	popq	%r15
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	retq
.LBB45_23:
	.cfi_def_cfa_offset 160
.Ltmp371:
	jmp	.LBB45_24
.LBB45_19:
.Ltmp363:
	jmp	.LBB45_24
.LBB45_22:
.Ltmp366:
	jmp	.LBB45_24
.LBB45_27:
.Ltmp358:
.LBB45_24:
	movq	%rax, %rbx
	movq	32(%rsp), %rdi
	testq	%rdi, %rdi
	je	.LBB45_26
# %bb.25:
	callq	_ZdlPv
.LBB45_26:                              # %_ZNSt6vectorIPN2rt4NodeESaIS2_EED2Ev.exit41
	movq	%rbx, %rdi
	callq	_Unwind_Resume@PLT
.Lfunc_end45:
	.size	_ZN2rt12_GLOBAL__N_18opti_addERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE, .Lfunc_end45-_ZN2rt12_GLOBAL__N_18opti_addERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.cfi_endproc
	.section	.gcc_except_table,"a",@progbits
	.p2align	2, 0x0
GCC_except_table45:
.Lexception21:
	.byte	255                             # @LPStart Encoding = omit
	.byte	255                             # @TType Encoding = omit
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end21-.Lcst_begin21
.Lcst_begin21:
	.uleb128 .Lfunc_begin21-.Lfunc_begin21  # >> Call Site 1 <<
	.uleb128 .Ltmp354-.Lfunc_begin21        #   Call between .Lfunc_begin21 and .Ltmp354
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp354-.Lfunc_begin21        # >> Call Site 2 <<
	.uleb128 .Ltmp357-.Ltmp354              #   Call between .Ltmp354 and .Ltmp357
	.uleb128 .Ltmp358-.Lfunc_begin21        #     jumps to .Ltmp358
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp359-.Lfunc_begin21        # >> Call Site 3 <<
	.uleb128 .Ltmp362-.Ltmp359              #   Call between .Ltmp359 and .Ltmp362
	.uleb128 .Ltmp363-.Lfunc_begin21        #     jumps to .Ltmp363
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp364-.Lfunc_begin21        # >> Call Site 4 <<
	.uleb128 .Ltmp365-.Ltmp364              #   Call between .Ltmp364 and .Ltmp365
	.uleb128 .Ltmp366-.Lfunc_begin21        #     jumps to .Ltmp366
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp367-.Lfunc_begin21        # >> Call Site 5 <<
	.uleb128 .Ltmp370-.Ltmp367              #   Call between .Ltmp367 and .Ltmp370
	.uleb128 .Ltmp371-.Lfunc_begin21        #     jumps to .Ltmp371
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp370-.Lfunc_begin21        # >> Call Site 6 <<
	.uleb128 .Lfunc_end45-.Ltmp370          #   Call between .Ltmp370 and .Lfunc_end45
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end21:
	.p2align	2, 0x0
                                        # -- End function
	.section	.text._ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE22_M_emplace_hint_uniqueIJRKSt21piecewise_construct_tSt5tupleIJRS4_EESG_IJEEEEESt17_Rb_tree_iteratorIS5_ESt23_Rb_tree_const_iteratorIS5_EDpOT_,"axG",@progbits,_ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE22_M_emplace_hint_uniqueIJRKSt21piecewise_construct_tSt5tupleIJRS4_EESG_IJEEEEESt17_Rb_tree_iteratorIS5_ESt23_Rb_tree_const_iteratorIS5_EDpOT_,comdat
	.weak	_ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE22_M_emplace_hint_uniqueIJRKSt21piecewise_construct_tSt5tupleIJRS4_EESG_IJEEEEESt17_Rb_tree_iteratorIS5_ESt23_Rb_tree_const_iteratorIS5_EDpOT_ # -- Begin function _ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE22_M_emplace_hint_uniqueIJRKSt21piecewise_construct_tSt5tupleIJRS4_EESG_IJEEEEESt17_Rb_tree_iteratorIS5_ESt23_Rb_tree_const_iteratorIS5_EDpOT_
	.p2align	1, 0x90
	.type	_ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE22_M_emplace_hint_uniqueIJRKSt21piecewise_construct_tSt5tupleIJRS4_EESG_IJEEEEESt17_Rb_tree_iteratorIS5_ESt23_Rb_tree_const_iteratorIS5_EDpOT_,@function
_ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE22_M_emplace_hint_uniqueIJRKSt21piecewise_construct_tSt5tupleIJRS4_EESG_IJEEEEESt17_Rb_tree_iteratorIS5_ESt23_Rb_tree_const_iteratorIS5_EDpOT_: # @_ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE22_M_emplace_hint_uniqueIJRKSt21piecewise_construct_tSt5tupleIJRS4_EESG_IJEEEEESt17_Rb_tree_iteratorIS5_ESt23_Rb_tree_const_iteratorIS5_EDpOT_
.Lfunc_begin22:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception22
# %bb.0:
	pushq	%r15
	.cfi_def_cfa_offset 16
	pushq	%r14
	.cfi_def_cfa_offset 24
	pushq	%r12
	.cfi_def_cfa_offset 32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	pushq	%rax
	.cfi_def_cfa_offset 48
	.cfi_offset %rbx, -40
	.cfi_offset %r12, -32
	.cfi_offset %r14, -24
	.cfi_offset %r15, -16
	movq	%rcx, %r15
	movq	%rsi, %r12
	movq	%rdi, %r14
	movl	$48, %edi
	callq	_Znwm
	movq	%rax, %rbx
	leaq	32(%rax), %rdx
	movq	(%r15), %rax
	movq	(%rax), %rax
	movq	%rax, 32(%rbx)
	movq	$0, 40(%rbx)
.Ltmp372:
	movq	%r14, %rdi
	movq	%r12, %rsi
	callq	_ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE29_M_get_insert_hint_unique_posESt23_Rb_tree_const_iteratorIS5_ERS4_
.Ltmp373:
# %bb.1:
	movq	%rax, %r15
	testq	%rdx, %rdx
	je	.LBB46_5
# %bb.2:
.Ltmp374:
	movq	%r14, %rdi
	movq	%r15, %rsi
	movq	%rbx, %rcx
	callq	_ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE14_M_insert_nodeEPSt18_Rb_tree_node_baseSD_PSt13_Rb_tree_nodeIS5_E
.Ltmp375:
# %bb.3:
	movq	%rax, %r15
	jmp	.LBB46_6
.LBB46_5:                               # %_ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE10_Auto_node9_M_insertES3_IPSt18_Rb_tree_node_baseSE_E.exit
	movq	%rbx, %rdi
	callq	_ZdlPv
.LBB46_6:                               # %_ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE10_Auto_nodeD2Ev.exit9
	movq	%r15, %rax
	addq	$8, %rsp
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	retq
.LBB46_4:                               # %_ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE10_Auto_nodeD2Ev.exit
	.cfi_def_cfa_offset 48
.Ltmp376:
	movq	%rax, %r14
	movq	%rbx, %rdi
	callq	_ZdlPv
	movq	%r14, %rdi
	callq	_Unwind_Resume@PLT
.Lfunc_end46:
	.size	_ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE22_M_emplace_hint_uniqueIJRKSt21piecewise_construct_tSt5tupleIJRS4_EESG_IJEEEEESt17_Rb_tree_iteratorIS5_ESt23_Rb_tree_const_iteratorIS5_EDpOT_, .Lfunc_end46-_ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE22_M_emplace_hint_uniqueIJRKSt21piecewise_construct_tSt5tupleIJRS4_EESG_IJEEEEESt17_Rb_tree_iteratorIS5_ESt23_Rb_tree_const_iteratorIS5_EDpOT_
	.cfi_endproc
	.section	.gcc_except_table._ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE22_M_emplace_hint_uniqueIJRKSt21piecewise_construct_tSt5tupleIJRS4_EESG_IJEEEEESt17_Rb_tree_iteratorIS5_ESt23_Rb_tree_const_iteratorIS5_EDpOT_,"aG",@progbits,_ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE22_M_emplace_hint_uniqueIJRKSt21piecewise_construct_tSt5tupleIJRS4_EESG_IJEEEEESt17_Rb_tree_iteratorIS5_ESt23_Rb_tree_const_iteratorIS5_EDpOT_,comdat
	.p2align	2, 0x0
GCC_except_table46:
.Lexception22:
	.byte	255                             # @LPStart Encoding = omit
	.byte	255                             # @TType Encoding = omit
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end22-.Lcst_begin22
.Lcst_begin22:
	.uleb128 .Lfunc_begin22-.Lfunc_begin22  # >> Call Site 1 <<
	.uleb128 .Ltmp372-.Lfunc_begin22        #   Call between .Lfunc_begin22 and .Ltmp372
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp372-.Lfunc_begin22        # >> Call Site 2 <<
	.uleb128 .Ltmp375-.Ltmp372              #   Call between .Ltmp372 and .Ltmp375
	.uleb128 .Ltmp376-.Lfunc_begin22        #     jumps to .Ltmp376
	.byte	0                               #   On action: cleanup
	.uleb128 .Ltmp375-.Lfunc_begin22        # >> Call Site 3 <<
	.uleb128 .Lfunc_end46-.Ltmp375          #   Call between .Ltmp375 and .Lfunc_end46
	.byte	0                               #     has no landing pad
	.byte	0                               #   On action: cleanup
.Lcst_end22:
	.p2align	2, 0x0
                                        # -- End function
	.section	.text._ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE29_M_get_insert_hint_unique_posESt23_Rb_tree_const_iteratorIS5_ERS4_,"axG",@progbits,_ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE29_M_get_insert_hint_unique_posESt23_Rb_tree_const_iteratorIS5_ERS4_,comdat
	.weak	_ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE29_M_get_insert_hint_unique_posESt23_Rb_tree_const_iteratorIS5_ERS4_ # -- Begin function _ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE29_M_get_insert_hint_unique_posESt23_Rb_tree_const_iteratorIS5_ERS4_
	.p2align	1, 0x90
	.type	_ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE29_M_get_insert_hint_unique_posESt23_Rb_tree_const_iteratorIS5_ERS4_,@function
_ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE29_M_get_insert_hint_unique_posESt23_Rb_tree_const_iteratorIS5_ERS4_: # @_ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE29_M_get_insert_hint_unique_posESt23_Rb_tree_const_iteratorIS5_ERS4_
	.cfi_startproc
# %bb.0:
	pushq	%r15
	.cfi_def_cfa_offset 16
	pushq	%r14
	.cfi_def_cfa_offset 24
	pushq	%r12
	.cfi_def_cfa_offset 32
	pushq	%rbx
	.cfi_def_cfa_offset 40
	pushq	%rax
	.cfi_def_cfa_offset 48
	.cfi_offset %rbx, -40
	.cfi_offset %r12, -32
	.cfi_offset %r14, -24
	.cfi_offset %r15, -16
	movq	%rdx, %r14
	movq	%rdi, %r15
	leaq	8(%rdi), %rax
	cmpq	%rsi, %rax
	je	.LBB47_1
# %bb.4:
	movq	%rsi, %rbx
	movq	(%r14), %r12
	movq	32(%rsi), %rax
	cmpq	%rax, %r12
	jae	.LBB47_9
# %bb.5:
	cmpq	%rbx, 24(%r15)
	je	.LBB47_6
# %bb.7:
	movq	%rbx, %rdi
	callq	_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base
	cmpq	%r12, 32(%rax)
	jae	.LBB47_14
# %bb.8:
	movq	%rax, %rcx
	movq	24(%rax), %rax
	testq	%rax, %rax
	cmovneq	%rbx, %rax
	cmoveq	%rcx, %rbx
	jmp	.LBB47_15
.LBB47_1:
	cmpq	$0, 40(%r15)
	je	.LBB47_14
# %bb.2:
	movq	32(%r15), %rbx
	movq	32(%rbx), %rax
	cmpq	(%r14), %rax
	jae	.LBB47_14
	jmp	.LBB47_3
.LBB47_9:
	jbe	.LBB47_10
# %bb.11:
	cmpq	%rbx, 32(%r15)
	je	.LBB47_3
# %bb.12:
	movq	%rbx, %rdi
	callq	_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base
	cmpq	32(%rax), %r12
	jae	.LBB47_14
# %bb.13:
	movq	%rax, %rcx
	movq	24(%rbx), %rax
	testq	%rax, %rax
	cmovneq	%rcx, %rax
	cmovneq	%rcx, %rbx
	jmp	.LBB47_15
.LBB47_14:
	movq	%r15, %rdi
	movq	%r14, %rsi
	callq	_ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE24_M_get_insert_unique_posERS4_
	movq	%rdx, %rbx
	jmp	.LBB47_15
.LBB47_3:
	xorl	%eax, %eax
	jmp	.LBB47_15
.LBB47_10:
	movq	%rbx, %rax
	xorl	%ebx, %ebx
	jmp	.LBB47_15
.LBB47_6:
	movq	%rbx, %rax
.LBB47_15:
	movq	%rbx, %rdx
	addq	$8, %rsp
	.cfi_def_cfa_offset 40
	popq	%rbx
	.cfi_def_cfa_offset 32
	popq	%r12
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	retq
.Lfunc_end47:
	.size	_ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE29_M_get_insert_hint_unique_posESt23_Rb_tree_const_iteratorIS5_ERS4_, .Lfunc_end47-_ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE29_M_get_insert_hint_unique_posESt23_Rb_tree_const_iteratorIS5_ERS4_
	.cfi_endproc
                                        # -- End function
	.section	.text._ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE24_M_get_insert_unique_posERS4_,"axG",@progbits,_ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE24_M_get_insert_unique_posERS4_,comdat
	.weak	_ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE24_M_get_insert_unique_posERS4_ # -- Begin function _ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE24_M_get_insert_unique_posERS4_
	.p2align	1, 0x90
	.type	_ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE24_M_get_insert_unique_posERS4_,@function
_ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE24_M_get_insert_unique_posERS4_: # @_ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE24_M_get_insert_unique_posERS4_
	.cfi_startproc
# %bb.0:
	pushq	%r14
	.cfi_def_cfa_offset 16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	pushq	%rax
	.cfi_def_cfa_offset 32
	.cfi_offset %rbx, -24
	.cfi_offset %r14, -16
	movq	%rsi, %r14
	movq	16(%rdi), %rax
	testq	%rax, %rax
	je	.LBB48_1
# %bb.2:                                # %.lr.ph
	movq	(%r14), %rcx
.LBB48_3:                               # =>This Inner Loop Header: Depth=1
	movq	%rax, %rbx
	movq	32(%rax), %rdx
	xorl	%eax, %eax
	cmpq	%rdx, %rcx
	setae	%al
	movq	16(%rbx,%rax,8), %rax
	testq	%rax, %rax
	jne	.LBB48_3
# %bb.4:                                # %._crit_edge
	movq	%rbx, %rax
	cmpq	%rdx, %rcx
	jb	.LBB48_5
	jmp	.LBB48_8
.LBB48_1:
	leaq	8(%rdi), %rbx
.LBB48_5:                               # %._crit_edge.thread
	cmpq	24(%rdi), %rbx
	je	.LBB48_6
# %bb.7:
	movq	%rbx, %rdi
	callq	_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base
.LBB48_8:
	movq	32(%rax), %rcx
	xorl	%edx, %edx
	cmpq	(%r14), %rcx
	cmovbq	%rdx, %rax
	cmovaeq	%rdx, %rbx
	jmp	.LBB48_9
.LBB48_6:
	xorl	%eax, %eax
.LBB48_9:
	movq	%rbx, %rdx
	addq	$8, %rsp
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	retq
.Lfunc_end48:
	.size	_ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE24_M_get_insert_unique_posERS4_, .Lfunc_end48-_ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE24_M_get_insert_unique_posERS4_
	.cfi_endproc
                                        # -- End function
	.section	.text._ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE14_M_insert_nodeEPSt18_Rb_tree_node_baseSD_PSt13_Rb_tree_nodeIS5_E,"axG",@progbits,_ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE14_M_insert_nodeEPSt18_Rb_tree_node_baseSD_PSt13_Rb_tree_nodeIS5_E,comdat
	.weak	_ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE14_M_insert_nodeEPSt18_Rb_tree_node_baseSD_PSt13_Rb_tree_nodeIS5_E # -- Begin function _ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE14_M_insert_nodeEPSt18_Rb_tree_node_baseSD_PSt13_Rb_tree_nodeIS5_E
	.p2align	1, 0x90
	.type	_ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE14_M_insert_nodeEPSt18_Rb_tree_node_baseSD_PSt13_Rb_tree_nodeIS5_E,@function
_ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE14_M_insert_nodeEPSt18_Rb_tree_node_baseSD_PSt13_Rb_tree_nodeIS5_E: # @_ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE14_M_insert_nodeEPSt18_Rb_tree_node_baseSD_PSt13_Rb_tree_nodeIS5_E
	.cfi_startproc
# %bb.0:
	pushq	%r14
	.cfi_def_cfa_offset 16
	pushq	%rbx
	.cfi_def_cfa_offset 24
	pushq	%rax
	.cfi_def_cfa_offset 32
	.cfi_offset %rbx, -24
	.cfi_offset %r14, -16
	movq	%rcx, %rbx
	movq	%rdi, %r14
	leaq	8(%rdi), %rcx
	movb	$1, %al
	testq	%rsi, %rsi
	jne	.LBB49_3
# %bb.1:
	cmpq	%rdx, %rcx
	je	.LBB49_3
# %bb.2:
	movq	32(%rbx), %rax
	cmpq	32(%rdx), %rax
	setb	%al
.LBB49_3:
	movzbl	%al, %edi
	movq	%rbx, %rsi
	callq	_ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS_
	incq	40(%r14)
	movq	%rbx, %rax
	addq	$8, %rsp
	.cfi_def_cfa_offset 24
	popq	%rbx
	.cfi_def_cfa_offset 16
	popq	%r14
	.cfi_def_cfa_offset 8
	retq
.Lfunc_end49:
	.size	_ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE14_M_insert_nodeEPSt18_Rb_tree_node_baseSD_PSt13_Rb_tree_nodeIS5_E, .Lfunc_end49-_ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE14_M_insert_nodeEPSt18_Rb_tree_node_baseSD_PSt13_Rb_tree_nodeIS5_E
	.cfi_endproc
                                        # -- End function
	.section	.text._ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE5clearEv,"axG",@progbits,_ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE5clearEv,comdat
	.weak	_ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE5clearEv # -- Begin function _ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE5clearEv
	.p2align	1, 0x90
	.type	_ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE5clearEv,@function
_ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE5clearEv: # @_ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE5clearEv
.Lfunc_begin23:
	.cfi_startproc
	.cfi_personality 3, __gxx_personality_v0
	.cfi_lsda 3, .Lexception23
# %bb.0:
	pushq	%rbx
	.cfi_def_cfa_offset 16
	.cfi_offset %rbx, -16
	movq	%rdi, %rbx
	movq	16(%rdi), %rsi
.Ltmp377:
	callq	_ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE8_M_eraseEPSt13_Rb_tree_nodeIS5_E
.Ltmp378:
# %bb.1:
	leaq	8(%rbx), %rax
	xorl	%ecx, %ecx
	movq	%rcx, 16(%rbx)
	movq	%rax, 24(%rbx)
	movq	%rax, 32(%rbx)
	movq	%rcx, 40(%rbx)
	popq	%rbx
	.cfi_def_cfa_offset 8
	retq
.LBB50_2:
	.cfi_def_cfa_offset 16
.Ltmp379:
	movq	%rax, %rdi
	callq	__clang_call_terminate
.Lfunc_end50:
	.size	_ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE5clearEv, .Lfunc_end50-_ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE5clearEv
	.cfi_endproc
	.section	.gcc_except_table._ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE5clearEv,"aG",@progbits,_ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE5clearEv,comdat
	.p2align	2, 0x0
GCC_except_table50:
.Lexception23:
	.byte	255                             # @LPStart Encoding = omit
	.byte	3                               # @TType Encoding = udata4
	.uleb128 .Lttbase0-.Lttbaseref0
.Lttbaseref0:
	.byte	1                               # Call site Encoding = uleb128
	.uleb128 .Lcst_end23-.Lcst_begin23
.Lcst_begin23:
	.uleb128 .Ltmp377-.Lfunc_begin23        # >> Call Site 1 <<
	.uleb128 .Ltmp378-.Ltmp377              #   Call between .Ltmp377 and .Ltmp378
	.uleb128 .Ltmp379-.Lfunc_begin23        #     jumps to .Ltmp379
	.byte	1                               #   On action: 1
.Lcst_end23:
	.byte	1                               # >> Action Record 1 <<
                                        #   Catch TypeInfo 1
	.byte	0                               #   No further actions
	.p2align	2, 0x0
                                        # >> Catch TypeInfos <<
	.long	0                               # TypeInfo 1
.Lttbase0:
	.p2align	2, 0x0
                                        # -- End function
	.section	.text._ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE8_M_eraseEPSt13_Rb_tree_nodeIS5_E,"axG",@progbits,_ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE8_M_eraseEPSt13_Rb_tree_nodeIS5_E,comdat
	.weak	_ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE8_M_eraseEPSt13_Rb_tree_nodeIS5_E # -- Begin function _ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE8_M_eraseEPSt13_Rb_tree_nodeIS5_E
	.p2align	1, 0x90
	.type	_ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE8_M_eraseEPSt13_Rb_tree_nodeIS5_E,@function
_ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE8_M_eraseEPSt13_Rb_tree_nodeIS5_E: # @_ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE8_M_eraseEPSt13_Rb_tree_nodeIS5_E
	.cfi_startproc
# %bb.0:
	testq	%rsi, %rsi
	je	.LBB51_4
# %bb.1:                                # %.lr.ph.preheader
	pushq	%r15
	.cfi_def_cfa_offset 16
	pushq	%r14
	.cfi_def_cfa_offset 24
	pushq	%rbx
	.cfi_def_cfa_offset 32
	.cfi_offset %rbx, -32
	.cfi_offset %r14, -24
	.cfi_offset %r15, -16
	movq	%rsi, %r14
	movq	%rdi, %rbx
.LBB51_2:                               # %.lr.ph
                                        # =>This Inner Loop Header: Depth=1
	movq	24(%r14), %rsi
	movq	%rbx, %rdi
	callq	_ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE8_M_eraseEPSt13_Rb_tree_nodeIS5_E
	movq	16(%r14), %r15
	movq	%r14, %rdi
	callq	_ZdlPv
	movq	%r15, %r14
	testq	%r15, %r15
	jne	.LBB51_2
# %bb.3:
	popq	%rbx
	.cfi_def_cfa_offset 24
	popq	%r14
	.cfi_def_cfa_offset 16
	popq	%r15
	.cfi_def_cfa_offset 8
	.cfi_restore %rbx
	.cfi_restore %r14
	.cfi_restore %r15
.LBB51_4:                               # %._crit_edge
	retq
.Lfunc_end51:
	.size	_ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE8_M_eraseEPSt13_Rb_tree_nodeIS5_E, .Lfunc_end51-_ZNSt8_Rb_treeIPN2rt4NodeESt4pairIKS2_S2_ESt10_Select1stIS5_ESt4lessIS2_ESaIS5_EE8_M_eraseEPSt13_Rb_tree_nodeIS5_E
	.cfi_endproc
                                        # -- End function
	.section	.text._ZNSt6vectorIPN2rt4NodeESaIS2_EE17_M_realloc_insertIJRKS2_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S4_EEDpOT_,"axG",@progbits,_ZNSt6vectorIPN2rt4NodeESaIS2_EE17_M_realloc_insertIJRKS2_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S4_EEDpOT_,comdat
	.weak	_ZNSt6vectorIPN2rt4NodeESaIS2_EE17_M_realloc_insertIJRKS2_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S4_EEDpOT_ # -- Begin function _ZNSt6vectorIPN2rt4NodeESaIS2_EE17_M_realloc_insertIJRKS2_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S4_EEDpOT_
	.p2align	1, 0x90
	.type	_ZNSt6vectorIPN2rt4NodeESaIS2_EE17_M_realloc_insertIJRKS2_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S4_EEDpOT_,@function
_ZNSt6vectorIPN2rt4NodeESaIS2_EE17_M_realloc_insertIJRKS2_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S4_EEDpOT_: # @_ZNSt6vectorIPN2rt4NodeESaIS2_EE17_M_realloc_insertIJRKS2_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S4_EEDpOT_
	.cfi_startproc
# %bb.0:
	pushq	%rbp
	.cfi_def_cfa_offset 16
	pushq	%r15
	.cfi_def_cfa_offset 24
	pushq	%r14
	.cfi_def_cfa_offset 32
	pushq	%r13
	.cfi_def_cfa_offset 40
	pushq	%r12
	.cfi_def_cfa_offset 48
	pushq	%rbx
	.cfi_def_cfa_offset 56
	subq	$24, %rsp
	.cfi_def_cfa_offset 80
	.cfi_offset %rbx, -56
	.cfi_offset %r12, -48
	.cfi_offset %r13, -40
	.cfi_offset %r14, -32
	.cfi_offset %r15, -24
	.cfi_offset %rbp, -16
	movq	%rdx, (%rsp)                    # 8-byte Spill
	movq	%rsi, %r12
	movq	%rdi, %rbx
	movl	$1, %esi
	movl	$.L.str, %edx
	callq	_ZNKSt6vectorIPN2rt4NodeESaIS2_EE12_M_check_lenEmPKc
	movq	(%rbx), %r13
	movq	8(%rbx), %r15
	movq	%r12, 8(%rsp)                   # 8-byte Spill
	subq	%r13, %r12
	movq	%r12, %r14
	sarq	$3, %r14
	testq	%rax, %rax
	movq	%rax, 16(%rsp)                  # 8-byte Spill
	je	.LBB52_1
# %bb.2:
	movq	%rbx, %rdi
	movq	%rax, %rsi
	xorl	%edx, %edx
	callq	_ZNSt15__new_allocatorIPN2rt4NodeEE8allocateEmPKv
	movq	%rax, %rbp
	jmp	.LBB52_3
.LBB52_1:
	xorl	%ebp, %ebp
.LBB52_3:                               # %_ZNSt12_Vector_baseIPN2rt4NodeESaIS2_EE11_M_allocateEm.exit
	movq	(%rsp), %rax                    # 8-byte Reload
	movq	(%rax), %rax
	movq	%rax, (%rbp,%r14,8)
	testq	%r12, %r12
	jle	.LBB52_5
# %bb.4:
	movq	%rbp, %rdi
	movq	%r13, %rsi
	movq	%r12, %rdx
	callq	memmove@PLT
.LBB52_5:                               # %_ZNSt6vectorIPN2rt4NodeESaIS2_EE11_S_relocateEPS2_S5_S5_RS3_.exit
	addq	%rbp, %r12
	addq	$8, %r12
	movq	8(%rsp), %rsi                   # 8-byte Reload
	subq	%rsi, %r15
	testq	%r15, %r15
	jle	.LBB52_7
# %bb.6:
	movq	%r12, %rdi
	movq	%r15, %rdx
	callq	memmove@PLT
.LBB52_7:                               # %_ZNSt6vectorIPN2rt4NodeESaIS2_EE11_S_relocateEPS2_S5_S5_RS3_.exit16
	testq	%r13, %r13
	je	.LBB52_9
# %bb.8:
	movq	%r13, %rdi
	callq	_ZdlPv
.LBB52_9:                               # %_ZNSt12_Vector_baseIPN2rt4NodeESaIS2_EE13_M_deallocateEPS2_m.exit
	addq	%r15, %r12
	movq	%rbp, (%rbx)
	movq	%r12, 8(%rbx)
	movq	16(%rsp), %rax                  # 8-byte Reload
	leaq	(,%rax,8), %rax
	addq	%rbp, %rax
	movq	%rax, 16(%rbx)
	addq	$24, %rsp
	.cfi_def_cfa_offset 56
	popq	%rbx
	.cfi_def_cfa_offset 48
	popq	%r12
	.cfi_def_cfa_offset 40
	popq	%r13
	.cfi_def_cfa_offset 32
	popq	%r14
	.cfi_def_cfa_offset 24
	popq	%r15
	.cfi_def_cfa_offset 16
	popq	%rbp
	.cfi_def_cfa_offset 8
	retq
.Lfunc_end52:
	.size	_ZNSt6vectorIPN2rt4NodeESaIS2_EE17_M_realloc_insertIJRKS2_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S4_EEDpOT_, .Lfunc_end52-_ZNSt6vectorIPN2rt4NodeESaIS2_EE17_M_realloc_insertIJRKS2_EEEvN9__gnu_cxx17__normal_iteratorIPS2_S4_EEDpOT_
	.cfi_endproc
                                        # -- End function
	.type	.L.str,@object                  # @.str
	.section	.rodata.str1.1,"aMS",@progbits,1
.L.str:
	.asciz	"vector::_M_realloc_insert"
	.size	.L.str, 26

	.type	_ZN2rt12_GLOBAL__N_110optis_listE,@object # @_ZN2rt12_GLOBAL__N_110optis_listE
	.section	.rodata,"a",@progbits
	.p2align	4, 0x0
_ZN2rt12_GLOBAL__N_110optis_listE:
	.quad	_ZN2rt12_GLOBAL__N_116opti_mat_mat_mulERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.quad	_ZN2rt12_GLOBAL__N_118opti_mat_rvect_addERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.quad	_ZN2rt12_GLOBAL__N_112opti_sigmoidERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.quad	_ZN2rt12_GLOBAL__N_18opti_mseERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.quad	_ZN2rt12_GLOBAL__N_112opti_softmaxERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.quad	_ZN2rt12_GLOBAL__N_116opti_log_softmaxERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.quad	_ZN2rt12_GLOBAL__N_126opti_softmax_cross_entropyERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.quad	_ZN2rt12_GLOBAL__N_111opti_conv2dERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.quad	_ZN2rt12_GLOBAL__N_19opti_reluERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.quad	_ZN2rt12_GLOBAL__N_115opti_relu_leakyERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.quad	_ZN2rt12_GLOBAL__N_19opti_tanhERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.quad	_ZN2rt12_GLOBAL__N_113opti_mse_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.quad	_ZN2rt12_GLOBAL__N_117opti_sigmoid_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.quad	_ZN2rt12_GLOBAL__N_116opti_mat_mul_addERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.quad	_ZN2rt12_GLOBAL__N_117opti_tmat_mat_mulERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.quad	_ZN2rt12_GLOBAL__N_117opti_mat_tmat_mulERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.quad	_ZN2rt12_GLOBAL__N_117opti_mat_sum_rowsERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.quad	_ZN2rt12_GLOBAL__N_117opti_mat_sum_colsERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.quad	_ZN2rt12_GLOBAL__N_131opti_softmax_cross_entropy_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.quad	_ZN2rt12_GLOBAL__N_114opti_relu_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.quad	_ZN2rt12_GLOBAL__N_120opti_conv2d_bias_addERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.quad	_ZN2rt12_GLOBAL__N_111opti_updateERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.quad	_ZN2rt12_GLOBAL__N_126opti_sigmoid_cross_entropyERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.quad	_ZN2rt12_GLOBAL__N_131opti_sigmoid_cross_entropy_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.quad	_ZN2rt12_GLOBAL__N_122opti_conv2d_input_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.quad	_ZN2rt12_GLOBAL__N_123opti_conv2d_kernel_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.quad	_ZN2rt12_GLOBAL__N_115opti_argmax_accERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.quad	_ZN2rt12_GLOBAL__N_118opti_moment_updateERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.quad	_ZN2rt12_GLOBAL__N_119opti_moment_update2ERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.quad	_ZN2rt12_GLOBAL__N_116opti_adam_updateERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.quad	_ZN2rt12_GLOBAL__N_120opti_leaky_relu_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.quad	_ZN2rt12_GLOBAL__N_125opti_conv2d_bias_add_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.quad	_ZN2rt12_GLOBAL__N_114opti_tanh_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.quad	_ZN2rt12_GLOBAL__N_121opti_conv2d_transposeERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.quad	_ZN2rt12_GLOBAL__N_132opti_conv2d_transpose_input_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.quad	_ZN2rt12_GLOBAL__N_133opti_conv2d_transpose_kernel_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.quad	_ZN2rt12_GLOBAL__N_18opti_addERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.zero	216
	.size	_ZN2rt12_GLOBAL__N_110optis_listE, 512

	.type	_ZSt19piecewise_construct,@object # @_ZSt19piecewise_construct
	.section	.rodata._ZSt19piecewise_construct,"aG",@progbits,_ZSt19piecewise_construct,comdat
	.weak	_ZSt19piecewise_construct
_ZSt19piecewise_construct:
	.zero	1
	.size	_ZSt19piecewise_construct, 1

	.type	__hip_cuid_,@object             # @__hip_cuid_
	.bss
	.globl	__hip_cuid_
__hip_cuid_:
	.byte	0                               # 0x0
	.size	__hip_cuid_, 1

	.ident	"AMD clang version 18.0.0git (https://github.com/RadeonOpenCompute/llvm-project roc-6.3.2 25012 e5bf7e55c91490b07c49d8960fa7983d864936c4)"
	.section	".note.GNU-stack","",@progbits
	.addrsig
	.addrsig_sym __gxx_personality_v0
	.addrsig_sym _ZN2rt12_GLOBAL__N_116opti_mat_mat_mulERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.addrsig_sym _ZN2rt12_GLOBAL__N_118opti_mat_rvect_addERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.addrsig_sym _ZN2rt12_GLOBAL__N_112opti_sigmoidERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.addrsig_sym _ZN2rt12_GLOBAL__N_18opti_mseERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.addrsig_sym _ZN2rt12_GLOBAL__N_112opti_softmaxERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.addrsig_sym _ZN2rt12_GLOBAL__N_116opti_log_softmaxERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.addrsig_sym _ZN2rt12_GLOBAL__N_126opti_softmax_cross_entropyERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.addrsig_sym _ZN2rt12_GLOBAL__N_111opti_conv2dERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.addrsig_sym _ZN2rt12_GLOBAL__N_19opti_reluERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.addrsig_sym _ZN2rt12_GLOBAL__N_115opti_relu_leakyERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.addrsig_sym _ZN2rt12_GLOBAL__N_19opti_tanhERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.addrsig_sym _ZN2rt12_GLOBAL__N_113opti_mse_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.addrsig_sym _ZN2rt12_GLOBAL__N_117opti_sigmoid_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.addrsig_sym _ZN2rt12_GLOBAL__N_116opti_mat_mul_addERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.addrsig_sym _ZN2rt12_GLOBAL__N_117opti_tmat_mat_mulERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.addrsig_sym _ZN2rt12_GLOBAL__N_117opti_mat_tmat_mulERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.addrsig_sym _ZN2rt12_GLOBAL__N_117opti_mat_sum_rowsERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.addrsig_sym _ZN2rt12_GLOBAL__N_117opti_mat_sum_colsERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.addrsig_sym _ZN2rt12_GLOBAL__N_131opti_softmax_cross_entropy_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.addrsig_sym _ZN2rt12_GLOBAL__N_114opti_relu_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.addrsig_sym _ZN2rt12_GLOBAL__N_120opti_conv2d_bias_addERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.addrsig_sym _ZN2rt12_GLOBAL__N_111opti_updateERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.addrsig_sym _ZN2rt12_GLOBAL__N_126opti_sigmoid_cross_entropyERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.addrsig_sym _ZN2rt12_GLOBAL__N_131opti_sigmoid_cross_entropy_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.addrsig_sym _ZN2rt12_GLOBAL__N_122opti_conv2d_input_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.addrsig_sym _ZN2rt12_GLOBAL__N_123opti_conv2d_kernel_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.addrsig_sym _ZN2rt12_GLOBAL__N_115opti_argmax_accERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.addrsig_sym _ZN2rt12_GLOBAL__N_118opti_moment_updateERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.addrsig_sym _ZN2rt12_GLOBAL__N_119opti_moment_update2ERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.addrsig_sym _ZN2rt12_GLOBAL__N_116opti_adam_updateERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.addrsig_sym _ZN2rt12_GLOBAL__N_120opti_leaky_relu_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.addrsig_sym _ZN2rt12_GLOBAL__N_125opti_conv2d_bias_add_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.addrsig_sym _ZN2rt12_GLOBAL__N_114opti_tanh_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.addrsig_sym _ZN2rt12_GLOBAL__N_121opti_conv2d_transposeERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.addrsig_sym _ZN2rt12_GLOBAL__N_132opti_conv2d_transpose_input_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.addrsig_sym _ZN2rt12_GLOBAL__N_133opti_conv2d_transpose_kernel_gradERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.addrsig_sym _ZN2rt12_GLOBAL__N_18opti_addERNS_5GraphEPNS_4NodeERKSt6vectorIS4_SaIS4_EE
	.addrsig_sym _Unwind_Resume
	.addrsig_sym _ZSt19piecewise_construct
	.addrsig_sym __hip_cuid_

	.text
	.p2alignl 7, 3214868480
	.fill 96, 4, 3214868480
	.type	__hip_cuid_,@object             ; @__hip_cuid_
	.section	.bss,"aw",@nobits
	.globl	__hip_cuid_
__hip_cuid_:
	.byte	0                               ; 0x0
	.size	__hip_cuid_, 1

	.ident	"AMD clang version 18.0.0git (https://github.com/RadeonOpenCompute/llvm-project roc-6.3.2 25012 e5bf7e55c91490b07c49d8960fa7983d864936c4)"
	.section	".note.GNU-stack","",@progbits
	.addrsig
	.addrsig_sym __hip_cuid_
	.amdgcn_target "amdgcn-amd-amdhsa--gfx1100"
	.amdgpu_metadata
---
amdhsa.kernels:  []
amdhsa.target:   amdgcn-amd-amdhsa--gfx1100
amdhsa.version:
  - 1
  - 2
...

	.end_amdgpu_metadata
