You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tvm.apache.org by tq...@apache.org on 2022/09/18 04:50:35 UTC

[tvm-site] branch asf-site updated: deploying docs (apache/tvm@b2c5addbb4e92aa770f0cd0847eabb43400ac9d2)

This is an automated email from the ASF dual-hosted git repository.

tqchen pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/tvm-site.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new b8dcd9ff7 deploying docs (apache/tvm@b2c5addbb4e92aa770f0cd0847eabb43400ac9d2)
b8dcd9ff7 is described below

commit b8dcd9ff7bea5358c2b54d5d958dc6762df47175
Author: tvm-bot <95...@users.noreply.github.com>
AuthorDate: Sun Sep 18 04:50:28 2022 +0000

    deploying docs (apache/tvm@b2c5addbb4e92aa770f0cd0847eabb43400ac9d2)
---
 .../how_to/compile_models/from_darknet.rst.txt     |    2 +-
 .../how_to/compile_models/from_keras.rst.txt       |    2 +-
 .../how_to/compile_models/from_mxnet.rst.txt       |    2 +-
 .../how_to/compile_models/from_oneflow.rst.txt     |    2 +-
 .../how_to/compile_models/from_pytorch.rst.txt     |    2 +-
 .../how_to/compile_models/from_tensorflow.rst.txt  |    2 +-
 .../compile_models/sg_execution_times.rst.txt      |   22 +-
 .../deploy_models/deploy_model_on_android.rst.txt  |    2 +-
 .../deploy_object_detection_pytorch.rst.txt        |    4 +-
 .../deploy_models/deploy_prequantized.rst.txt      |    6 +-
 .../deploy_prequantized_tflite.rst.txt             |    4 +-
 .../how_to/deploy_models/deploy_quantized.rst.txt  |    2 +-
 .../deploy_models/deploy_ssd_gluoncv.rst.txt       |    4 +-
 .../deploy_models/sg_execution_times.rst.txt       |   18 +-
 .../extend_tvm/bring_your_own_datatypes.rst.txt    |    2 +-
 .../how_to/extend_tvm/sg_execution_times.rst.txt   |    8 +-
 .../how_to/extend_tvm/use_pass_instrument.rst.txt  |   16 +-
 .../optimize_operators/opt_conv_cuda.rst.txt       |    2 +-
 .../optimize_operators/opt_conv_tensorcore.rst.txt |    2 +-
 .../how_to/optimize_operators/opt_gemm.rst.txt     |   16 +-
 .../optimize_operators/sg_execution_times.rst.txt  |    8 +-
 .../sg_execution_times.rst.txt                     |   14 +-
 .../tune_conv2d_layer_cuda.rst.txt                 |  924 ++-
 .../tune_network_cuda.rst.txt                      |    2 +-
 .../tune_network_x86.rst.txt                       |    4 +-
 .../tune_sparse_x86.rst.txt                        |  111 +-
 .../tune_with_autotvm/sg_execution_times.rst.txt   |    6 +-
 .../tune_with_autotvm/tune_conv2d_cuda.rst.txt     |   26 +-
 .../work_with_microtvm/micro_autotune.rst.txt      |   14 +-
 .../how_to/work_with_microtvm/micro_train.rst.txt  |   16 +-
 .../work_with_microtvm/sg_execution_times.rst.txt  |   10 +-
 .../work_with_relay/sg_execution_times.rst.txt     |    8 +-
 .../how_to/work_with_schedules/intrin_math.rst.txt |    2 +-
 .../work_with_schedules/sg_execution_times.rst.txt |   12 +-
 .../how_to/work_with_schedules/tensorize.rst.txt   |    2 +-
 .../tutorials/autotvm/sg_execution_times.rst.txt   |    4 +-
 .../frontend/deploy_classification.rst.txt         |    2 +-
 .../tutorials/frontend/deploy_detection.rst.txt    |    2 +-
 .../tutorials/frontend/sg_execution_times.rst.txt  |    6 +-
 .../tutorials/optimize/sg_execution_times.rst.txt  |    4 +-
 .../topic/vta/tutorials/sg_execution_times.rst.txt |    6 +-
 .../tutorial/auto_scheduler_matmul_x86.rst.txt     |    4 +-
 docs/_sources/tutorial/autotvm_matmul_x86.rst.txt  |   20 +-
 docs/_sources/tutorial/autotvm_relay_x86.rst.txt   |   58 +-
 .../tutorial/cross_compilation_and_rpc.rst.txt     |    2 +-
 docs/_sources/tutorial/intro_topi.rst.txt          |    2 +-
 docs/_sources/tutorial/sg_execution_times.rst.txt  |   24 +-
 .../tutorial/tensor_expr_get_started.rst.txt       |   43 +-
 docs/commit_hash                                   |    2 +-
 docs/how_to/compile_models/from_darknet.html       |    2 +-
 docs/how_to/compile_models/from_keras.html         |    2 +-
 docs/how_to/compile_models/from_mxnet.html         |    2 +-
 docs/how_to/compile_models/from_oneflow.html       |   16 +-
 docs/how_to/compile_models/from_pytorch.html       |    6 +-
 docs/how_to/compile_models/from_tensorflow.html    |    2 +-
 docs/how_to/compile_models/sg_execution_times.html |   22 +-
 .../deploy_models/deploy_model_on_android.html     |    2 +-
 .../deploy_object_detection_pytorch.html           |  108 +-
 docs/how_to/deploy_models/deploy_prequantized.html |   12 +-
 .../deploy_models/deploy_prequantized_tflite.html  |    4 +-
 docs/how_to/deploy_models/deploy_quantized.html    |    2 +-
 docs/how_to/deploy_models/deploy_ssd_gluoncv.html  |   38 +-
 docs/how_to/deploy_models/sg_execution_times.html  |   18 +-
 .../extend_tvm/bring_your_own_datatypes.html       |    2 +-
 docs/how_to/extend_tvm/sg_execution_times.html     |    8 +-
 docs/how_to/extend_tvm/use_pass_instrument.html    |   16 +-
 docs/how_to/optimize_operators/opt_conv_cuda.html  |    2 +-
 .../optimize_operators/opt_conv_tensorcore.html    |    2 +-
 docs/how_to/optimize_operators/opt_gemm.html       |   16 +-
 .../optimize_operators/sg_execution_times.html     |    8 +-
 .../sg_execution_times.html                        |   14 +-
 .../tune_conv2d_layer_cuda.html                    |  920 ++-
 .../tune_with_autoscheduler/tune_network_cuda.html |    2 +-
 .../tune_with_autoscheduler/tune_network_x86.html  |    4 +-
 .../tune_with_autoscheduler/tune_sparse_x86.html   |  111 +-
 .../tune_with_autotvm/sg_execution_times.html      |    6 +-
 .../how_to/tune_with_autotvm/tune_conv2d_cuda.html |   26 +-
 docs/how_to/work_with_microtvm/micro_autotune.html |   14 +-
 docs/how_to/work_with_microtvm/micro_train.html    |   16 +-
 .../work_with_microtvm/sg_execution_times.html     |   10 +-
 .../how_to/work_with_relay/sg_execution_times.html |    8 +-
 docs/how_to/work_with_schedules/intrin_math.html   |    2 +-
 .../work_with_schedules/sg_execution_times.html    |   12 +-
 docs/how_to/work_with_schedules/tensorize.html     |    2 +-
 docs/reference/api/doxygen/annotated.html          |   29 +-
 docs/reference/api/doxygen/classes.html            |  485 +-
 ...asstvm_1_1runtime_1_1ObjectRef__coll__graph.svg |   12 +-
 .../classtvm_1_1runtime_1_1Object__coll__graph.svg |    8 +-
 ...1_1script_1_1ir__builder_1_1IRBuilderFrame.html |    2 +-
 ...cript_1_1ir__builder_1_1IRBuilderFrameNode.html |    4 +-
 ..._builder_1_1IRBuilderFrameNode__coll__graph.svg |   16 +-
 ...ilder_1_1IRBuilderFrameNode__inherit__graph.svg |  288 +-
 ...1ir__builder_1_1IRBuilderFrame__coll__graph.svg |   20 +-
 ...__builder_1_1IRBuilderFrame__inherit__graph.svg |  246 +-
 ...1ir__builder_1_1tir_1_1AssertFrame-members.html |  107 +
 ...ript_1_1ir__builder_1_1tir_1_1AssertFrame.html} |   94 +-
 ...t_1_1ir__builder_1_1tir_1_1AssertFrameNode.html |    2 +-
 ..._builder_1_1tir_1_1AssertFrame__coll__graph.svg |  140 +
 ...ilder_1_1tir_1_1AssertFrame__inherit__graph.svg |  110 +
 ...uilder_1_1tir_1_1LaunchThreadFrame-members.html |  107 +
 ..._1ir__builder_1_1tir_1_1LaunchThreadFrame.html} |   94 +-
 ...er_1_1tir_1_1LaunchThreadFrameNode-members.html |  124 +
 ...__builder_1_1tir_1_1LaunchThreadFrameNode.html} |  115 +-
 ..._1tir_1_1LaunchThreadFrameNode__coll__graph.svg |  344 ++
 ...ir_1_1LaunchThreadFrameNode__inherit__graph.svg |  127 +
 ...er_1_1tir_1_1LaunchThreadFrame__coll__graph.svg |  140 +
 ...1_1tir_1_1LaunchThreadFrame__inherit__graph.svg |  110 +
 ..._1_1ir__builder_1_1tir_1_1LetFrame-members.html |  107 +
 ...1script_1_1ir__builder_1_1tir_1_1LetFrame.html} |   94 +-
 ...ir__builder_1_1tir_1_1LetFrameNode-members.html |  123 +
 ...ipt_1_1ir__builder_1_1tir_1_1LetFrameNode.html} |   96 +-
 ...builder_1_1tir_1_1LetFrameNode__coll__graph.svg |  307 +
 ...lder_1_1tir_1_1LetFrameNode__inherit__graph.svg |  126 +
 ...ir__builder_1_1tir_1_1LetFrame__coll__graph.svg |  140 +
 ..._builder_1_1tir_1_1LetFrame__inherit__graph.svg |  110 +
 ...ir__builder_1_1tir_1_1RealizeFrame-members.html |  107 +
 ...ipt_1_1ir__builder_1_1tir_1_1RealizeFrame.html} |   94 +-
 ...builder_1_1tir_1_1RealizeFrameNode-members.html |  124 +
 ...1_1ir__builder_1_1tir_1_1RealizeFrameNode.html} |  115 +-
 ...der_1_1tir_1_1RealizeFrameNode__coll__graph.svg |  345 ++
 ..._1_1tir_1_1RealizeFrameNode__inherit__graph.svg |  127 +
 ...builder_1_1tir_1_1RealizeFrame__coll__graph.svg |  140 +
 ...lder_1_1tir_1_1RealizeFrame__inherit__graph.svg |  110 +
 ..._1script_1_1ir__builder_1_1tir_1_1TIRFrame.html |    2 +-
 ...ript_1_1ir__builder_1_1tir_1_1TIRFrameNode.html |    2 +-
 ...builder_1_1tir_1_1TIRFrameNode__coll__graph.svg |   48 +-
 ...lder_1_1tir_1_1TIRFrameNode__inherit__graph.svg |  262 +-
 ...ir__builder_1_1tir_1_1TIRFrame__coll__graph.svg |   28 +-
 ..._builder_1_1tir_1_1TIRFrame__inherit__graph.svg |  224 +-
 docs/reference/api/doxygen/functions__.html        |    3 +
 docs/reference/api/doxygen/functions_a.html        |    5 +-
 docs/reference/api/doxygen/functions_b.html        |    5 +-
 docs/reference/api/doxygen/functions_c.html        |    9 +-
 docs/reference/api/doxygen/functions_e.html        |    4 +
 docs/reference/api/doxygen/functions_func_e.html   |    3 +
 docs/reference/api/doxygen/functions_func_m.html   |    2 +-
 docs/reference/api/doxygen/functions_func_r.html   |    2 +-
 docs/reference/api/doxygen/functions_func_s.html   |    4 +-
 docs/reference/api/doxygen/functions_func_t.html   |   11 +-
 docs/reference/api/doxygen/functions_func_u.html   |    2 +-
 docs/reference/api/doxygen/functions_func_v.html   |   41 +-
 docs/reference/api/doxygen/functions_i.html        |   11 +-
 docs/reference/api/doxygen/functions_s.html        |    7 +-
 docs/reference/api/doxygen/functions_t.html        |   15 +-
 docs/reference/api/doxygen/functions_v.html        |   45 +-
 docs/reference/api/doxygen/functions_vars.html     |    3 +
 docs/reference/api/doxygen/functions_vars_a.html   |    1 +
 docs/reference/api/doxygen/functions_vars_b.html   |    3 +
 docs/reference/api/doxygen/functions_vars_c.html   |    1 +
 docs/reference/api/doxygen/functions_vars_e.html   |    1 +
 docs/reference/api/doxygen/functions_vars_i.html   |    3 +
 docs/reference/api/doxygen/functions_vars_s.html   |    1 +
 docs/reference/api/doxygen/functions_vars_v.html   |    2 +
 docs/reference/api/doxygen/hierarchy.html          |   29 +-
 docs/reference/api/doxygen/inherit_graph_11.svg    |   16 +-
 docs/reference/api/doxygen/inherit_graph_117.svg   | 6310 ++++++++++----------
 docs/reference/api/doxygen/inherit_graph_126.svg   | 2388 ++++----
 docs/reference/api/doxygen/inherit_graph_208.svg   |   16 +-
 docs/reference/api/doxygen/inherit_graph_209.svg   |   16 +-
 docs/reference/api/doxygen/inherit_graph_41.svg    |   16 +-
 docs/reference/api/doxygen/inherit_graph_45.svg    |    8 +-
 docs/reference/api/doxygen/inherit_graph_99.svg    |    8 +-
 docs/reference/api/doxygen/inherits.html           |    2 +-
 .../api/doxygen/ir__builder_2tir_2frame_8h.html    |   21 +
 .../doxygen/ir__builder_2tir_2frame_8h_source.html |   23 +-
 docs/reference/api/doxygen/namespacemembers.html   |    3 +
 docs/reference/api/doxygen/namespacemembers_e.html |    9 +-
 .../api/doxygen/namespacemembers_func.html         |    3 +
 .../api/doxygen/namespacemembers_func_e.html       |    7 +-
 .../api/doxygen/namespacemembers_func_l.html       |   18 +-
 .../api/doxygen/namespacemembers_func_r.html       |    5 +-
 docs/reference/api/doxygen/namespacemembers_l.html |   20 +-
 docs/reference/api/doxygen/namespacemembers_r.html |    7 +-
 ...mespacetvm_1_1script_1_1ir__builder_1_1tir.html |  222 +
 .../api/doxygen/relay_2expr_8h_source.html         |    4 +-
 docs/reference/api/doxygen/search/all_1.js         |    2 +-
 docs/reference/api/doxygen/search/all_11.js        |    2 +-
 docs/reference/api/doxygen/search/all_13.js        |   12 +-
 docs/reference/api/doxygen/search/all_14.js        |   18 +-
 docs/reference/api/doxygen/search/all_15.js        |   12 +-
 docs/reference/api/doxygen/search/all_16.js        |    2 +-
 docs/reference/api/doxygen/search/all_17.js        |   10 +-
 docs/reference/api/doxygen/search/all_18.js        |    4 +-
 docs/reference/api/doxygen/search/all_2.js         |    5 +-
 docs/reference/api/doxygen/search/all_3.js         |    1 +
 docs/reference/api/doxygen/search/all_4.js         |    2 +-
 docs/reference/api/doxygen/search/all_6.js         |    5 +-
 docs/reference/api/doxygen/search/all_7.js         |    2 +-
 docs/reference/api/doxygen/search/all_9.js         |    2 +-
 docs/reference/api/doxygen/search/all_a.js         |    3 +-
 docs/reference/api/doxygen/search/all_d.js         |    7 +-
 docs/reference/api/doxygen/search/all_e.js         |    4 +-
 docs/reference/api/doxygen/search/classes_0.js     |    1 +
 docs/reference/api/doxygen/search/classes_10.js    |    6 +-
 docs/reference/api/doxygen/search/classes_13.js    |    4 +-
 docs/reference/api/doxygen/search/classes_5.js     |    2 +-
 docs/reference/api/doxygen/search/classes_7.js     |    2 +-
 docs/reference/api/doxygen/search/classes_8.js     |    2 +-
 docs/reference/api/doxygen/search/classes_9.js     |    4 +
 docs/reference/api/doxygen/search/classes_f.js     |    4 +-
 docs/reference/api/doxygen/search/functions_1.js   |    2 +-
 docs/reference/api/doxygen/search/functions_10.js  |    2 +-
 docs/reference/api/doxygen/search/functions_12.js  |    6 +-
 docs/reference/api/doxygen/search/functions_13.js  |    6 +-
 docs/reference/api/doxygen/search/functions_14.js  |    6 +-
 docs/reference/api/doxygen/search/functions_15.js  |    2 +-
 docs/reference/api/doxygen/search/functions_16.js  |    4 +-
 docs/reference/api/doxygen/search/functions_17.js  |    2 +-
 docs/reference/api/doxygen/search/functions_5.js   |    3 +-
 docs/reference/api/doxygen/search/functions_c.js   |    3 +-
 docs/reference/api/doxygen/search/functions_d.js   |    4 +-
 docs/reference/api/doxygen/search/variables_0.js   |    2 +-
 docs/reference/api/doxygen/search/variables_1.js   |    2 +-
 docs/reference/api/doxygen/search/variables_11.js  |    2 +-
 docs/reference/api/doxygen/search/variables_14.js  |    4 +-
 docs/reference/api/doxygen/search/variables_2.js   |    1 +
 docs/reference/api/doxygen/search/variables_3.js   |    2 +-
 docs/reference/api/doxygen/search/variables_5.js   |    2 +-
 docs/reference/api/doxygen/search/variables_9.js   |    1 +
 .../reference/api/doxygen/tir_2expr_8h_source.html |    3 +-
 docs/reference/api/doxygen/tir_2ir_8h.html         |   15 +
 docs/reference/api/doxygen/tir_2ir_8h_source.html  |   50 +-
 .../api/doxygen/type__relation_8h_source.html      |    3 +-
 docs/reference/api/python/auto_scheduler.html      |    4 +-
 .../api/typedoc/classes/bytestreamreader.html      |   12 +-
 .../api/typedoc/classes/cachedcallstack.html       |   34 +-
 docs/reference/api/typedoc/classes/dldatatype.html |   12 +-
 docs/reference/api/typedoc/classes/dldevice.html   |   10 +-
 .../reference/api/typedoc/classes/environment.html |   12 +-
 docs/reference/api/typedoc/classes/ffilibrary.html |   20 +-
 .../api/typedoc/classes/graphexecutor.html         |   16 +-
 docs/reference/api/typedoc/classes/instance.html   |   40 +-
 docs/reference/api/typedoc/classes/memory.html     |   34 +-
 docs/reference/api/typedoc/classes/module.html     |   10 +-
 docs/reference/api/typedoc/classes/ndarray.html    |   22 +-
 .../api/typedoc/classes/packedfunccell.html        |    6 +-
 docs/reference/api/typedoc/classes/rpcserver.html  |   14 +-
 docs/reference/api/typedoc/classes/scalar.html     |    6 +-
 .../api/typedoc/classes/webgpucontext.html         |   12 +-
 docs/reference/api/typedoc/enums/argtypecode.html  |   30 +-
 .../api/typedoc/enums/aynccallbackcode.html        |    4 +-
 .../api/typedoc/enums/dldatatypecode.html          |    8 +-
 .../api/typedoc/enums/rpcserverstate.html          |   12 +-
 docs/reference/api/typedoc/enums/sizeof.html       |   18 +-
 docs/reference/api/typedoc/index.html              |  112 +-
 .../api/typedoc/interfaces/disposable.html         |    2 +-
 .../api/typedoc/interfaces/functioninfo.html       |    6 +-
 .../api/typedoc/interfaces/libraryprovider.html    |    4 +-
 docs/searchindex.js                                |    2 +-
 .../vta/tutorials/autotvm/sg_execution_times.html  |    4 +-
 .../tutorials/frontend/deploy_classification.html  |    2 +-
 .../vta/tutorials/frontend/deploy_detection.html   |    2 +-
 .../vta/tutorials/frontend/sg_execution_times.html |    6 +-
 .../vta/tutorials/optimize/sg_execution_times.html |    4 +-
 docs/topic/vta/tutorials/sg_execution_times.html   |    6 +-
 docs/tutorial/auto_scheduler_matmul_x86.html       |    4 +-
 docs/tutorial/autotvm_matmul_x86.html              |   20 +-
 docs/tutorial/autotvm_relay_x86.html               |  262 +-
 docs/tutorial/cross_compilation_and_rpc.html       |    2 +-
 docs/tutorial/intro_topi.html                      |    2 +-
 docs/tutorial/sg_execution_times.html              |   26 +-
 docs/tutorial/tensor_expr_get_started.html         |   39 +-
 262 files changed, 12276 insertions(+), 6595 deletions(-)

diff --git a/docs/_sources/how_to/compile_models/from_darknet.rst.txt b/docs/_sources/how_to/compile_models/from_darknet.rst.txt
index c39c75d92..e4ffd723e 100644
--- a/docs/_sources/how_to/compile_models/from_darknet.rst.txt
+++ b/docs/_sources/how_to/compile_models/from_darknet.rst.txt
@@ -315,7 +315,7 @@ The process is no different from other examples.
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 1 minutes  2.517 seconds)
+   **Total running time of the script:** ( 1 minutes  4.550 seconds)
 
 
 .. _sphx_glr_download_how_to_compile_models_from_darknet.py:
diff --git a/docs/_sources/how_to/compile_models/from_keras.rst.txt b/docs/_sources/how_to/compile_models/from_keras.rst.txt
index dfae28c81..8d86fe496 100644
--- a/docs/_sources/how_to/compile_models/from_keras.rst.txt
+++ b/docs/_sources/how_to/compile_models/from_keras.rst.txt
@@ -228,7 +228,7 @@ Look up prediction top 1 index in 1000 class synset.
  .. code-block:: none
 
     Relay top-1 id: 285, class name: Egyptian cat
-
    1/1 [==============================] - ETA: 0s
    1/1 [==============================] - 1s 944ms/step
+
    1/1 [==============================] - ETA: 0s
    1/1 [==============================] - 1s 973ms/step
     Keras top-1 id: 285, class name: Egyptian cat
 
 
diff --git a/docs/_sources/how_to/compile_models/from_mxnet.rst.txt b/docs/_sources/how_to/compile_models/from_mxnet.rst.txt
index 735db6d06..9dd68bca4 100644
--- a/docs/_sources/how_to/compile_models/from_mxnet.rst.txt
+++ b/docs/_sources/how_to/compile_models/from_mxnet.rst.txt
@@ -115,7 +115,7 @@ In this section, we download a pretrained imagenet model and classify an image.
 
  .. code-block:: none
 
-    Downloading /workspace/.mxnet/models/resnet18_v1-a0666292.zip39ec02e6-41be-48c7-a945-adff4340d27e from https://apache-mxnet.s3-accelerate.dualstack.amazonaws.com/gluon/models/resnet18_v1-a0666292.zip...
+    Downloading /workspace/.mxnet/models/resnet18_v1-a0666292.zip6cba18eb-0d4a-42c0-8d89-6f1081c61b5c from https://apache-mxnet.s3-accelerate.dualstack.amazonaws.com/gluon/models/resnet18_v1-a0666292.zip...
     x (1, 3, 224, 224)
 
 
diff --git a/docs/_sources/how_to/compile_models/from_oneflow.rst.txt b/docs/_sources/how_to/compile_models/from_oneflow.rst.txt
index 945c76d22..43b0bafd6 100644
--- a/docs/_sources/how_to/compile_models/from_oneflow.rst.txt
+++ b/docs/_sources/how_to/compile_models/from_oneflow.rst.txt
@@ -116,7 +116,7 @@ Load a pretrained OneFlow model and save model
  .. code-block:: none
 
     Downloading: "https://oneflow-public.oss-cn-beijing.aliyuncs.com/model_zoo/flowvision/classification/ResNet/resnet18.zip" to /workspace/.oneflow/flowvision_cache/resnet18.zip
-
      0%|          | 0.00/41.5M [00:00<?, ?B/s]
     15%|#5        | 6.33M/41.5M [00:00<00:00, 57.6MB/s]
     29%|##8       | 11.8M/41.5M [00:00<00:00, 46.9MB/s]
     39%|###9      | 16.4M/41.5M [00:00<00:00, 34.6MB/s]
     58%|#####7    | 24.0M/41.5M [00:00<00:00, 40.7MB/s]
     77%|#######7  | 32.0M/41.5M [00:00<00:00, 46.7MB/s]
     92%|#########2| 38.3M/41.5M [00:00<00:00, 51.4MB/s]
    100%|##########| 41.5M/41.5M [00:00<00:00, 46.8MB/s]
+
      0%|          | 0.00/41.5M [00:00<?, ?B/s]
      9%|9         | 3.84M/41.5M [00:00<00:01, 38.7MB/s]
     19%|#9        | 7.99M/41.5M [00:00<00:00, 37.3MB/s]
     35%|###4      | 14.3M/41.5M [00:00<00:00, 35.7MB/s]
     43%|####2     | 17.8M/41.5M [00:00<00:00, 35.2MB/s]
     56%|#####6    | 23.3M/41.5M [00:00<00:00, 41.6MB/s]
     66%|######5   | 27.4M/41.5M [00:00<00:00, 31.7MB/s]
     77%|#######7  | 32.0M/41.5M [00:00<00:00, 32.7MB/s]
     95%|#########4| 39.3M/41.5M [00:01<00:00, 43.2MB/s]
    100%|##########| 41.5M/41.5M [00:01<00:00, 36.3MB/s]
 
 
 
diff --git a/docs/_sources/how_to/compile_models/from_pytorch.rst.txt b/docs/_sources/how_to/compile_models/from_pytorch.rst.txt
index 43d8cf8d7..0f9bb630f 100644
--- a/docs/_sources/how_to/compile_models/from_pytorch.rst.txt
+++ b/docs/_sources/how_to/compile_models/from_pytorch.rst.txt
@@ -94,7 +94,7 @@ Load a pretrained PyTorch model
  .. code-block:: none
 
     Downloading: "https://download.pytorch.org/models/resnet18-f37072fd.pth" to /workspace/.cache/torch/hub/checkpoints/resnet18-f37072fd.pth
-
      0%|          | 0.00/44.7M [00:00<?, ?B/s]
     39%|###9      | 17.5M/44.7M [00:00<00:00, 184MB/s]
     96%|#########5| 42.7M/44.7M [00:00<00:00, 231MB/s]
    100%|##########| 44.7M/44.7M [00:00<00:00, 225MB/s]
+
      0%|          | 0.00/44.7M [00:00<?, ?B/s]
     38%|###7      | 16.8M/44.7M [00:00<00:00, 177MB/s]
     75%|#######5  | 33.7M/44.7M [00:00<00:00, 176MB/s]
    100%|##########| 44.7M/44.7M [00:00<00:00, 180MB/s]
 
 
 
diff --git a/docs/_sources/how_to/compile_models/from_tensorflow.rst.txt b/docs/_sources/how_to/compile_models/from_tensorflow.rst.txt
index ce7b7016d..b861a14c8 100644
--- a/docs/_sources/how_to/compile_models/from_tensorflow.rst.txt
+++ b/docs/_sources/how_to/compile_models/from_tensorflow.rst.txt
@@ -416,7 +416,7 @@ Run the corresponding model on tensorflow
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 1 minutes  5.680 seconds)
+   **Total running time of the script:** ( 1 minutes  4.951 seconds)
 
 
 .. _sphx_glr_download_how_to_compile_models_from_tensorflow.py:
diff --git a/docs/_sources/how_to/compile_models/sg_execution_times.rst.txt b/docs/_sources/how_to/compile_models/sg_execution_times.rst.txt
index d80f82617..a2e51e8eb 100644
--- a/docs/_sources/how_to/compile_models/sg_execution_times.rst.txt
+++ b/docs/_sources/how_to/compile_models/sg_execution_times.rst.txt
@@ -5,26 +5,26 @@
 
 Computation times
 =================
-**05:10.888** total execution time for **how_to_compile_models** files:
+**05:10.671** total execution time for **how_to_compile_models** files:
 
 +-----------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_compile_models_from_tensorflow.py` (``from_tensorflow.py``) | 01:05.680 | 0.0 MB |
+| :ref:`sphx_glr_how_to_compile_models_from_tensorflow.py` (``from_tensorflow.py``) | 01:04.951 | 0.0 MB |
 +-----------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_compile_models_from_darknet.py` (``from_darknet.py``)       | 01:02.517 | 0.0 MB |
+| :ref:`sphx_glr_how_to_compile_models_from_darknet.py` (``from_darknet.py``)       | 01:04.550 | 0.0 MB |
 +-----------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_compile_models_from_paddle.py` (``from_paddle.py``)         | 00:41.659 | 0.0 MB |
+| :ref:`sphx_glr_how_to_compile_models_from_paddle.py` (``from_paddle.py``)         | 00:39.439 | 0.0 MB |
 +-----------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_compile_models_from_oneflow.py` (``from_oneflow.py``)       | 00:28.570 | 0.0 MB |
+| :ref:`sphx_glr_how_to_compile_models_from_oneflow.py` (``from_oneflow.py``)       | 00:28.942 | 0.0 MB |
 +-----------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_compile_models_from_mxnet.py` (``from_mxnet.py``)           | 00:26.838 | 0.0 MB |
+| :ref:`sphx_glr_how_to_compile_models_from_mxnet.py` (``from_mxnet.py``)           | 00:26.535 | 0.0 MB |
 +-----------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_compile_models_from_tflite.py` (``from_tflite.py``)         | 00:24.374 | 0.0 MB |
+| :ref:`sphx_glr_how_to_compile_models_from_tflite.py` (``from_tflite.py``)         | 00:24.778 | 0.0 MB |
 +-----------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_compile_models_from_coreml.py` (``from_coreml.py``)         | 00:22.254 | 0.0 MB |
+| :ref:`sphx_glr_how_to_compile_models_from_coreml.py` (``from_coreml.py``)         | 00:22.378 | 0.0 MB |
 +-----------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_compile_models_from_pytorch.py` (``from_pytorch.py``)       | 00:20.097 | 0.0 MB |
+| :ref:`sphx_glr_how_to_compile_models_from_pytorch.py` (``from_pytorch.py``)       | 00:19.784 | 0.0 MB |
 +-----------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_compile_models_from_keras.py` (``from_keras.py``)           | 00:16.604 | 0.0 MB |
+| :ref:`sphx_glr_how_to_compile_models_from_keras.py` (``from_keras.py``)           | 00:16.859 | 0.0 MB |
 +-----------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_compile_models_from_onnx.py` (``from_onnx.py``)             | 00:02.295 | 0.0 MB |
+| :ref:`sphx_glr_how_to_compile_models_from_onnx.py` (``from_onnx.py``)             | 00:02.457 | 0.0 MB |
 +-----------------------------------------------------------------------------------+-----------+--------+
diff --git a/docs/_sources/how_to/deploy_models/deploy_model_on_android.rst.txt b/docs/_sources/how_to/deploy_models/deploy_model_on_android.rst.txt
index 8850e08bc..905d18af9 100644
--- a/docs/_sources/how_to/deploy_models/deploy_model_on_android.rst.txt
+++ b/docs/_sources/how_to/deploy_models/deploy_model_on_android.rst.txt
@@ -434,7 +434,7 @@ Execute on TVM
     Evaluate inference time cost...
     Execution time summary:
      mean (ms)   median (ms)    max (ms)     min (ms)     std (ms)  
-      15.9128      15.8602      16.3475      15.8089       0.1520   
+      15.8597      15.8454      15.9869      15.7845       0.0679   
                
 
 
diff --git a/docs/_sources/how_to/deploy_models/deploy_object_detection_pytorch.rst.txt b/docs/_sources/how_to/deploy_models/deploy_object_detection_pytorch.rst.txt
index 47aa73826..40c3fe741 100644
--- a/docs/_sources/how_to/deploy_models/deploy_object_detection_pytorch.rst.txt
+++ b/docs/_sources/how_to/deploy_models/deploy_object_detection_pytorch.rst.txt
@@ -123,7 +123,7 @@ Load pre-trained maskrcnn from torchvision and do tracing
  .. code-block:: none
 
     Downloading: "https://download.pytorch.org/models/maskrcnn_resnet50_fpn_coco-bf2d0c1e.pth" to /workspace/.cache/torch/hub/checkpoints/maskrcnn_resnet50_fpn_coco-bf2d0c1e.pth
-
      0%|          | 0.00/170M [00:00<?, ?B/s]
     10%|#         | 17.1M/170M [00:00<00:00, 180MB/s]
     24%|##4       | 41.2M/170M [00:00<00:00, 223MB/s]
     38%|###7      | 64.1M/170M [00:00<00:00, 230MB/s]
     51%|#####     | 86.0M/170M [00:00<00:00, 207MB/s]
     62%|######2   | 106M/170M [00:00<00:00, 203MB/s] 
     75%|#######4  | 127M/170M [00:00<00:00, 207MB/s]
     86%|########6 | 147M/170M [00:00<00:00, 143MB/s]
     96%|#########5| 163M/170M [00:01<00:00, 136MB/s]
    100%|##########| 170M/170M [00:01<00:00, 167MB/s]
+
      0%|          | 0.00/170M [00:00<?, ?B/s]
      1%|          | 1.01M/170M [00:00<00:16, 10.4MB/s]
      1%|1         | 2.12M/170M [00:00<00:17, 10.3MB/s]
      2%|2         | 3.56M/170M [00:00<00:14, 12.2MB/s]
      3%|3         | 5.35M/170M [00:00<00:11, 14.7MB/s]
      4%|4         | 7.44M/170M [00:00<00:09, 17.2MB/s]
      5%|5         | 9.09M/170M [00:00<00:10, 16.6MB/s]
      6%|6         | 10.9M/170M [00:00<00:09, 17.1MB/s]
      7%|7         | 12.5M/170M [00:00<00:11, 14.7MB/s]
      8%|8         | 14.0M/170M [00:00<00:11, 14.5MB/s]
      9%|9         | 15.6M/170M [00:01<00:11, 14.5MB/s]
     10%|#         | 17.4M/170M [00:01<00:10, 15.6MB/s]
     11%|#1        | 19.1M/170M [00:01<00:09, 16.3MB/s]
     12%|#2        | 20.9M/170M [00:01<00:09, 16.6MB/s]
     13%|#3        | 22.5M/170M [00:01<00:09, 15.5MB/s]
     14%|#4        | 24.0M/170M [00:01<00:10, 15.1MB/s]
     15%|#4        | 25.5M/170M [00:01<00:10, 15.1MB/s]
     16%|#5        | 26.9M/170M [00:01<00:11, 13.1MB/
 s]
     17%|#6        | 28.6M/170M [00:02<00:10, 14.2MB/s]
     18%|#7        | 30.1M/170M [00:02<00:10, 14.5MB/s]
     19%|#8        | 31.6M/170M [00:02<00:09, 14.9MB/s]
     20%|#9        | 33.4M/170M [00:02<00:09, 15.9MB/s]
     21%|##        | 35.4M/170M [00:02<00:08, 17.3MB/s]
     22%|##1       | 37.0M/170M [00:02<00:08, 16.5MB/s]
     23%|##2       | 38.7M/170M [00:02<00:08, 16.6MB/s]
     24%|##3       | 40.3M/170M [00:02<00:08, 16.6MB/s]
     25%|##4       | 41.9M/170M [00:02<00:08, 16.2MB/s]
     26%|##5       | 43.5M/170M [00:02<00:09, 14.4MB/s]
     27%|##6       | 45.6M/170M [00:03<00:07, 16.4MB/s]
     28%|##7       | 47.4M/170M [00:03<00:07, 17.0MB/s]
     29%|##8       | 49.0M/170M [00:03<00:07, 16.2MB/s]
     30%|##9       | 50.6M/170M [00:03<00:08, 15.5MB/s]
     31%|###       | 52.1M/170M [00:03<00:08, 14.8MB/s]
     32%|###1      | 53.6M/170M [00:03<00:08, 14.6MB/s]
     32%|###2      | 55.0M/170M [00:03<00:08, 14.6MB/s]
     33%|###3      | 56.4M/170M [00:03<00:
 08, 14.5MB/s]
     34%|###4      | 57.8M/170M [00:03<00:08, 14.7MB/s]
     35%|###4      | 59.3M/170M [00:04<00:07, 14.9MB/s]
     36%|###5      | 60.7M/170M [00:04<00:07, 14.7MB/s]
     37%|###6      | 62.6M/170M [00:04<00:06, 16.1MB/s]
     38%|###7      | 64.4M/170M [00:04<00:06, 17.0MB/s]
     39%|###9      | 66.4M/170M [00:04<00:06, 17.7MB/s]
     40%|####      | 68.1M/170M [00:04<00:06, 15.3MB/s]
     41%|####1     | 70.1M/170M [00:04<00:06, 16.6MB/s]
     42%|####2     | 71.7M/170M [00:04<00:06, 14.9MB/s]
     43%|####3     | 73.2M/170M [00:05<00:07, 14.2MB/s]
     44%|####3     | 74.6M/170M [00:05<00:07, 14.0MB/s]
     45%|####4     | 76.2M/170M [00:05<00:06, 14.3MB/s]
     46%|####5     | 77.9M/170M [00:05<00:06, 15.4MB/s]
     47%|####6     | 79.4M/170M [00:05<00:06, 14.3MB/s]
     48%|####7     | 80.8M/170M [00:05<00:06, 13.5MB/s]
     48%|####8     | 82.1M/170M [00:05<00:06, 13.4MB/s]
     49%|####9     | 83.7M/170M [00:05<00:06, 14.0MB/s]
     50%|#####     | 85.3M/170M
  [00:05<00:05, 14.9MB/s]
     51%|#####1    | 86.8M/170M [00:06<00:07, 12.1MB/s]
     52%|#####2    | 89.1M/170M [00:06<00:05, 15.2MB/s]
     54%|#####4    | 92.1M/170M [00:06<00:04, 19.3MB/s]
     55%|#####5    | 94.1M/170M [00:06<00:04, 18.5MB/s]
     56%|#####6    | 95.9M/170M [00:06<00:04, 18.6MB/s]
     58%|#####7    | 98.4M/170M [00:06<00:03, 20.6MB/s]
     59%|#####9    | 100M/170M [00:06<00:03, 20.6MB/s] 
     60%|######    | 102M/170M [00:06<00:03, 18.5MB/s]
     61%|######1   | 104M/170M [00:07<00:04, 16.6MB/s]
     62%|######2   | 106M/170M [00:07<00:03, 17.0MB/s]
     63%|######3   | 108M/170M [00:07<00:04, 14.9MB/s]
     64%|######4   | 110M/170M [00:07<00:04, 15.0MB/s]
     65%|######5   | 111M/170M [00:07<00:04, 14.0MB/s]
     66%|######6   | 112M/170M [00:07<00:04, 13.7MB/s]
     67%|######7   | 114M/170M [00:07<00:03, 15.4MB/s]
     69%|######8   | 117M/170M [00:07<00:02, 18.7MB/s]
     70%|#######   | 119M/170M [00:07<00:02, 18.8MB/s]
     71%|#######1  | 121M/170M
  [00:08<00:03, 15.3MB/s]
     72%|#######2  | 123M/170M [00:08<00:03, 16.4MB/s]
     73%|#######3  | 124M/170M [00:08<00:03, 15.5MB/s]
     74%|#######4  | 126M/170M [00:08<00:03, 14.9MB/s]
     75%|#######5  | 127M/170M [00:08<00:03, 14.4MB/s]
     76%|#######5  | 129M/170M [00:08<00:02, 14.9MB/s]
     77%|#######7  | 131M/170M [00:08<00:02, 16.4MB/s]
     78%|#######8  | 133M/170M [00:08<00:02, 16.5MB/s]
     79%|#######9  | 134M/170M [00:09<00:02, 16.7MB/s]
     81%|########  | 137M/170M [00:09<00:01, 19.4MB/s]
     82%|########1 | 139M/170M [00:09<00:01, 16.9MB/s]
     83%|########2 | 140M/170M [00:09<00:02, 15.3MB/s]
     84%|########3 | 142M/170M [00:09<00:01, 16.2MB/s]
     85%|########4 | 144M/170M [00:09<00:01, 14.1MB/s]
     86%|########5 | 145M/170M [00:09<00:01, 14.6MB/s]
     87%|########6 | 147M/170M [00:09<00:01, 15.0MB/s]
     88%|########7 | 149M/170M [00:09<00:01, 16.5MB/s]
     89%|########8 | 151M/170M [00:10<00:01, 16.3MB/s]
     90%|########9 | 152M/170M [00:10
 <00:01, 16.3MB/s]
     91%|######### | 154M/170M [00:10<00:01, 15.0MB/s]
     91%|#########1| 155M/170M [00:10<00:01, 14.4MB/s]
     92%|#########2| 157M/170M [00:10<00:00, 14.5MB/s]
     94%|#########3| 159M/170M [00:10<00:00, 16.9MB/s]
     96%|#########5| 162M/170M [00:10<00:00, 22.1MB/s]
     98%|#########7| 166M/170M [00:10<00:00, 25.5MB/s]
     99%|#########9| 168M/170M [00:10<00:00, 23.0MB/s]
    100%|##########| 170M/170M [00:11<00:00, 16.0MB/s]
     /usr/local/lib/python3.7/dist-packages/torch/nn/functional.py:3878: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor).
       for i in range(dim)
     /usr/local/lib/python3.7/dist-packages/torchvision/models/detection/anchor_utils.py:127: UserWarning: __floordiv__ is deprecated, and its behavior will change in a future version of pytorch. It currently rounds toward 0 (like the 'trunc' function NOT 'floor'). This results in incorrect rounding for negative values. To keep the current behavior, use torch.div(a, b, rounding_mode='trunc'), or for actual floor division, use torch.div(a, b, rounding_mode='floor').
@@ -288,7 +288,7 @@ Get boxes with score larger than 0.9
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 3 minutes  1.380 seconds)
+   **Total running time of the script:** ( 3 minutes  12.187 seconds)
 
 
 .. _sphx_glr_download_how_to_deploy_models_deploy_object_detection_pytorch.py:
diff --git a/docs/_sources/how_to/deploy_models/deploy_prequantized.rst.txt b/docs/_sources/how_to/deploy_models/deploy_prequantized.rst.txt
index cc2e9f23b..ccacaf37a 100644
--- a/docs/_sources/how_to/deploy_models/deploy_prequantized.rst.txt
+++ b/docs/_sources/how_to/deploy_models/deploy_prequantized.rst.txt
@@ -232,7 +232,7 @@ training. Other models require a full post training calibration.
  .. code-block:: none
 
     Downloading: "https://download.pytorch.org/models/mobilenet_v2-b0353104.pth" to /workspace/.cache/torch/hub/checkpoints/mobilenet_v2-b0353104.pth
-
      0%|          | 0.00/13.6M [00:00<?, ?B/s]
    100%|##########| 13.6M/13.6M [00:00<00:00, 167MB/s]
+
      0%|          | 0.00/13.6M [00:00<?, ?B/s]
     15%|#4        | 2.03M/13.6M [00:00<00:00, 21.3MB/s]
     32%|###2      | 4.38M/13.6M [00:00<00:00, 23.0MB/s]
     50%|####9     | 6.75M/13.6M [00:00<00:00, 23.5MB/s]
     66%|######6   | 9.00M/13.6M [00:00<00:00, 22.5MB/s]
     82%|########2 | 11.2M/13.6M [00:00<00:00, 20.1MB/s]
     97%|#########6| 13.1M/13.6M [00:00<00:00, 18.6MB/s]
    100%|##########| 13.6M/13.6M [00:00<00:00, 19.8MB/s]
 
 
 
@@ -405,7 +405,7 @@ Here we give an example of how to measure performance of TVM compiled models.
 
     Execution time summary:
      mean (ms)   median (ms)    max (ms)     min (ms)     std (ms)  
-      90.3867      90.2498      93.4431      90.1197       0.4264   
+      90.2393      90.1157      95.5348      90.0241       0.6210   
                
 
 
@@ -454,7 +454,7 @@ TODO
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 1 minutes  10.155 seconds)
+   **Total running time of the script:** ( 1 minutes  10.264 seconds)
 
 
 .. _sphx_glr_download_how_to_deploy_models_deploy_prequantized.py:
diff --git a/docs/_sources/how_to/deploy_models/deploy_prequantized_tflite.rst.txt b/docs/_sources/how_to/deploy_models/deploy_prequantized_tflite.rst.txt
index f7ab7fe93..6f4990cfc 100644
--- a/docs/_sources/how_to/deploy_models/deploy_prequantized_tflite.rst.txt
+++ b/docs/_sources/how_to/deploy_models/deploy_prequantized_tflite.rst.txt
@@ -432,7 +432,7 @@ Here we give an example of how to measure performance of TVM compiled models.
 
     Execution time summary:
      mean (ms)   median (ms)    max (ms)     min (ms)     std (ms)  
-      120.5983     120.5436     126.8637     119.7613      0.7099   
+      119.7209     119.6574     122.8400     118.9301      0.4546   
                
 
 
@@ -469,7 +469,7 @@ Here we give an example of how to measure performance of TVM compiled models.
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 1 minutes  59.137 seconds)
+   **Total running time of the script:** ( 1 minutes  53.267 seconds)
 
 
 .. _sphx_glr_download_how_to_deploy_models_deploy_prequantized_tflite.py:
diff --git a/docs/_sources/how_to/deploy_models/deploy_quantized.rst.txt b/docs/_sources/how_to/deploy_models/deploy_quantized.rst.txt
index d5207279f..4635521c2 100644
--- a/docs/_sources/how_to/deploy_models/deploy_quantized.rst.txt
+++ b/docs/_sources/how_to/deploy_models/deploy_quantized.rst.txt
@@ -253,7 +253,7 @@ We create a Relay VM to build and execute the model.
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 1 minutes  25.983 seconds)
+   **Total running time of the script:** ( 1 minutes  25.388 seconds)
 
 
 .. _sphx_glr_download_how_to_deploy_models_deploy_quantized.py:
diff --git a/docs/_sources/how_to/deploy_models/deploy_ssd_gluoncv.rst.txt b/docs/_sources/how_to/deploy_models/deploy_ssd_gluoncv.rst.txt
index 551edc802..91eee90c2 100644
--- a/docs/_sources/how_to/deploy_models/deploy_ssd_gluoncv.rst.txt
+++ b/docs/_sources/how_to/deploy_models/deploy_ssd_gluoncv.rst.txt
@@ -158,7 +158,7 @@ Convert and compile model for CPU.
             data: None
       input_sym_arg_type = in_param.infer_type()[0]
     Downloading /workspace/.mxnet/models/ssd_512_resnet50_v1_voc-9c8b225a.zip from https://apache-mxnet.s3-accelerate.dualstack.amazonaws.com/gluon/models/ssd_512_resnet50_v1_voc-9c8b225a.zip...
-
      0%|          | 0/132723 [00:00<?, ?KB/s]
      4%|4         | 5353/132723 [00:00<00:02, 53523.67KB/s]
     10%|9         | 12611/132723 [00:00<00:01, 64730.59KB/s]
     15%|#5        | 19921/132723 [00:00<00:01, 68547.32KB/s]
     21%|##        | 27210/132723 [00:00<00:01, 70259.69KB/s]
     26%|##6       | 34625/132723 [00:00<00:01, 71659.85KB/s]
     32%|###1      | 41882/132723 [00:00<00:01, 71967.79KB/s]
     37%|###7      | 49273/132723 [00:00<00:01, 72597.41KB/s]
     43%|####2     | 56617/132723 [00:00<00:01, 72749.98KB/s]
     49%|####8     | 64418/132723 [00:00<00:00, 74389.75KB/s]
     54%|#####4    | 72048/132723 [00:01<00:00, 74976.43KB/s]
     60%|#####9    | 79621/132723 [00:01<00:00, 75205.69KB/s]
     66%|######5   | 87306/132723 [00:01<00:00, 75703.74KB/s]
     72%|#######1  | 94924/132723 [00:01<00:00, 75846.02KB/s]
     77%|#######7  | 102572/132723 [00:01<00:00, 76036.12KB/s]
     83%|########3 | 110176/132723 [00:01<00:00, 75934.84KB/s]
     89%|########8
  | 117770/132723 [00:01<00:00, 75665.09KB/s]
     94%|#########4| 125360/132723 [00:01<00:00, 75732.71KB/s]
    100%|##########| 132723/132723 [00:01<00:00, 73777.85KB/s]
+
      0%|          | 0/132723 [00:00<?, ?KB/s]
      4%|4         | 5553/132723 [00:00<00:02, 55517.74KB/s]
     10%|9         | 13020/132723 [00:00<00:01, 66777.73KB/s]
     15%|#5        | 20334/132723 [00:00<00:01, 69680.29KB/s]
     21%|##        | 27828/132723 [00:00<00:01, 71755.02KB/s]
     26%|##6       | 35154/132723 [00:00<00:01, 72295.17KB/s]
     32%|###1      | 42426/132723 [00:00<00:01, 72437.86KB/s]
     38%|###7      | 49808/132723 [00:00<00:01, 72887.04KB/s]
     43%|####3     | 57272/132723 [00:00<00:01, 73442.47KB/s]
     49%|####8     | 64617/132723 [00:00<00:00, 73353.44KB/s]
     54%|#####4    | 72135/132723 [00:01<00:00, 73915.11KB/s]
     60%|######    | 79681/132723 [00:01<00:00, 74384.93KB/s]
     66%|######5   | 87182/132723 [00:01<00:00, 74571.55KB/s]
     71%|#######1  | 94640/132723 [00:01<00:00, 74551.42KB/s]
     77%|#######6  | 102109/132723 [00:01<00:00, 74588.34KB/s]
     83%|########2 | 109568/132723 [00:01<00:00, 74190.19KB/s]
     88%|########8
  | 117382/132723 [00:01<00:00, 75371.55KB/s]
     94%|#########4| 124920/132723 [00:01<00:00, 67241.97KB/s]
    100%|##########| 132723/132723 [00:01<00:00, 72049.98KB/s]
 
 
 
@@ -234,7 +234,7 @@ Display result
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 2 minutes  42.086 seconds)
+   **Total running time of the script:** ( 2 minutes  39.240 seconds)
 
 
 .. _sphx_glr_download_how_to_deploy_models_deploy_ssd_gluoncv.py:
diff --git a/docs/_sources/how_to/deploy_models/sg_execution_times.rst.txt b/docs/_sources/how_to/deploy_models/sg_execution_times.rst.txt
index 3e7cd13cd..51d0b0468 100644
--- a/docs/_sources/how_to/deploy_models/sg_execution_times.rst.txt
+++ b/docs/_sources/how_to/deploy_models/sg_execution_times.rst.txt
@@ -5,24 +5,24 @@
 
 Computation times
 =================
-**11:35.188** total execution time for **how_to_deploy_models** files:
+**11:35.674** total execution time for **how_to_deploy_models** files:
 
 +------------------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_deploy_models_deploy_object_detection_pytorch.py` (``deploy_object_detection_pytorch.py``) | 03:01.380 | 0.0 MB |
+| :ref:`sphx_glr_how_to_deploy_models_deploy_object_detection_pytorch.py` (``deploy_object_detection_pytorch.py``) | 03:12.187 | 0.0 MB |
 +------------------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_deploy_models_deploy_ssd_gluoncv.py` (``deploy_ssd_gluoncv.py``)                           | 02:42.086 | 0.0 MB |
+| :ref:`sphx_glr_how_to_deploy_models_deploy_ssd_gluoncv.py` (``deploy_ssd_gluoncv.py``)                           | 02:39.240 | 0.0 MB |
 +------------------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_deploy_models_deploy_prequantized_tflite.py` (``deploy_prequantized_tflite.py``)           | 01:59.137 | 0.0 MB |
+| :ref:`sphx_glr_how_to_deploy_models_deploy_prequantized_tflite.py` (``deploy_prequantized_tflite.py``)           | 01:53.267 | 0.0 MB |
 +------------------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_deploy_models_deploy_quantized.py` (``deploy_quantized.py``)                               | 01:25.983 | 0.0 MB |
+| :ref:`sphx_glr_how_to_deploy_models_deploy_quantized.py` (``deploy_quantized.py``)                               | 01:25.388 | 0.0 MB |
 +------------------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_deploy_models_deploy_prequantized.py` (``deploy_prequantized.py``)                         | 01:10.155 | 0.0 MB |
+| :ref:`sphx_glr_how_to_deploy_models_deploy_prequantized.py` (``deploy_prequantized.py``)                         | 01:10.264 | 0.0 MB |
 +------------------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_deploy_models_deploy_model_on_android.py` (``deploy_model_on_android.py``)                 | 00:30.785 | 0.0 MB |
+| :ref:`sphx_glr_how_to_deploy_models_deploy_model_on_android.py` (``deploy_model_on_android.py``)                 | 00:30.579 | 0.0 MB |
 +------------------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_deploy_models_deploy_model_on_nano.py` (``deploy_model_on_nano.py``)                       | 00:23.099 | 0.0 MB |
+| :ref:`sphx_glr_how_to_deploy_models_deploy_model_on_nano.py` (``deploy_model_on_nano.py``)                       | 00:22.541 | 0.0 MB |
 +------------------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_deploy_models_deploy_model_on_rasp.py` (``deploy_model_on_rasp.py``)                       | 00:22.557 | 0.0 MB |
+| :ref:`sphx_glr_how_to_deploy_models_deploy_model_on_rasp.py` (``deploy_model_on_rasp.py``)                       | 00:22.202 | 0.0 MB |
 +------------------------------------------------------------------------------------------------------------------+-----------+--------+
 | :ref:`sphx_glr_how_to_deploy_models_deploy_sparse.py` (``deploy_sparse.py``)                                     | 00:00.007 | 0.0 MB |
 +------------------------------------------------------------------------------------------------------------------+-----------+--------+
diff --git a/docs/_sources/how_to/extend_tvm/bring_your_own_datatypes.rst.txt b/docs/_sources/how_to/extend_tvm/bring_your_own_datatypes.rst.txt
index 97327b2e7..f68e3acdd 100644
--- a/docs/_sources/how_to/extend_tvm/bring_your_own_datatypes.rst.txt
+++ b/docs/_sources/how_to/extend_tvm/bring_your_own_datatypes.rst.txt
@@ -472,7 +472,7 @@ First let us define two helper functions to get the mobilenet model and a cat im
 
  .. code-block:: none
 
-    Downloading /workspace/.mxnet/models/mobilenet0.25-9f83e440.zipba92d1a1-30a7-48f4-8d7c-ddf7a7d2a0ac from https://apache-mxnet.s3-accelerate.dualstack.amazonaws.com/gluon/models/mobilenet0.25-9f83e440.zip...
+    Downloading /workspace/.mxnet/models/mobilenet0.25-9f83e440.zip83c365a1-e407-4e81-ae2b-2e03ffc28fbf from https://apache-mxnet.s3-accelerate.dualstack.amazonaws.com/gluon/models/mobilenet0.25-9f83e440.zip...
 
 
 
diff --git a/docs/_sources/how_to/extend_tvm/sg_execution_times.rst.txt b/docs/_sources/how_to/extend_tvm/sg_execution_times.rst.txt
index 2f0ade24d..1c16d266e 100644
--- a/docs/_sources/how_to/extend_tvm/sg_execution_times.rst.txt
+++ b/docs/_sources/how_to/extend_tvm/sg_execution_times.rst.txt
@@ -5,14 +5,14 @@
 
 Computation times
 =================
-**00:41.338** total execution time for **how_to_extend_tvm** files:
+**00:41.855** total execution time for **how_to_extend_tvm** files:
 
 +-------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_extend_tvm_bring_your_own_datatypes.py` (``bring_your_own_datatypes.py``) | 00:38.141 | 0.0 MB |
+| :ref:`sphx_glr_how_to_extend_tvm_bring_your_own_datatypes.py` (``bring_your_own_datatypes.py``) | 00:38.670 | 0.0 MB |
 +-------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_extend_tvm_use_pass_instrument.py` (``use_pass_instrument.py``)           | 00:02.237 | 0.0 MB |
+| :ref:`sphx_glr_how_to_extend_tvm_use_pass_instrument.py` (``use_pass_instrument.py``)           | 00:02.231 | 0.0 MB |
 +-------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_extend_tvm_use_pass_infra.py` (``use_pass_infra.py``)                     | 00:00.952 | 0.0 MB |
+| :ref:`sphx_glr_how_to_extend_tvm_use_pass_infra.py` (``use_pass_infra.py``)                     | 00:00.947 | 0.0 MB |
 +-------------------------------------------------------------------------------------------------+-----------+--------+
 | :ref:`sphx_glr_how_to_extend_tvm_low_level_custom_pass.py` (``low_level_custom_pass.py``)       | 00:00.007 | 0.0 MB |
 +-------------------------------------------------------------------------------------------------+-----------+--------+
diff --git a/docs/_sources/how_to/extend_tvm/use_pass_instrument.rst.txt b/docs/_sources/how_to/extend_tvm/use_pass_instrument.rst.txt
index 301162ad8..0820cb355 100644
--- a/docs/_sources/how_to/extend_tvm/use_pass_instrument.rst.txt
+++ b/docs/_sources/how_to/extend_tvm/use_pass_instrument.rst.txt
@@ -216,10 +216,10 @@ profile the execution time of each passes.
  .. code-block:: none
 
     Printing results of timing profile...
-    InferType: 7037us [7037us] (44.26%; 44.26%)
-    FoldScaleAxis: 8863us [6us] (55.74%; 55.74%)
-            FoldConstant: 8857us [1774us] (55.70%; 99.93%)
-                    InferType: 7083us [7083us] (44.55%; 79.97%)
+    InferType: 6704us [6704us] (45.87%; 45.87%)
+    FoldScaleAxis: 7911us [5us] (54.13%; 54.13%)
+            FoldConstant: 7905us [1653us] (54.09%; 99.93%)
+                    InferType: 6252us [6252us] (42.78%; 79.09%)
 
 
 
@@ -258,10 +258,10 @@ Refer to following sections and :py:func:`tvm.instrument.pass_instrument` for th
  .. code-block:: none
 
     Printing results of timing profile...
-    InferType: 6509us [6509us] (44.45%; 44.45%)
-    FoldScaleAxis: 8135us [6us] (55.55%; 55.55%)
-            FoldConstant: 8130us [1725us] (55.51%; 99.93%)
-                    InferType: 6405us [6405us] (43.74%; 78.78%)
+    InferType: 6309us [6309us] (44.48%; 44.48%)
+    FoldScaleAxis: 7874us [5us] (55.52%; 55.52%)
+            FoldConstant: 7868us [1657us] (55.48%; 99.93%)
+                    InferType: 6211us [6211us] (43.79%; 78.93%)
 
 
 
diff --git a/docs/_sources/how_to/optimize_operators/opt_conv_cuda.rst.txt b/docs/_sources/how_to/optimize_operators/opt_conv_cuda.rst.txt
index 7ab7fe96f..e68d8accf 100644
--- a/docs/_sources/how_to/optimize_operators/opt_conv_cuda.rst.txt
+++ b/docs/_sources/how_to/optimize_operators/opt_conv_cuda.rst.txt
@@ -340,7 +340,7 @@ latency of convolution.
 
  .. code-block:: none
 
-    Convolution: 34.301079 ms
+    Convolution: 46.199459 ms
 
 
 
diff --git a/docs/_sources/how_to/optimize_operators/opt_conv_tensorcore.rst.txt b/docs/_sources/how_to/optimize_operators/opt_conv_tensorcore.rst.txt
index bb91f00de..461bcae89 100644
--- a/docs/_sources/how_to/optimize_operators/opt_conv_tensorcore.rst.txt
+++ b/docs/_sources/how_to/optimize_operators/opt_conv_tensorcore.rst.txt
@@ -671,7 +671,7 @@ be able to run on our build server
 
  .. code-block:: none
 
-    conv2d with tensor core: 9.281595 ms
+    conv2d with tensor core: 6.900343 ms
 
 
 
diff --git a/docs/_sources/how_to/optimize_operators/opt_gemm.rst.txt b/docs/_sources/how_to/optimize_operators/opt_gemm.rst.txt
index 051737f69..e5df80391 100644
--- a/docs/_sources/how_to/optimize_operators/opt_gemm.rst.txt
+++ b/docs/_sources/how_to/optimize_operators/opt_gemm.rst.txt
@@ -143,8 +143,8 @@ Then we write a baseline implementation, the simplest way to write a matrix mult
 
  .. code-block:: none
 
-    Numpy running time: 0.019026
-    Baseline: 3.262334
+    Numpy running time: 0.019388
+    Baseline: 3.498071
 
 
 
@@ -239,7 +239,7 @@ fill 32 * 32 * sizeof(float) which is 4KB in the cache whose total size is 32KB
 
  .. code-block:: none
 
-    Opt1: 0.311867
+    Opt1: 0.315137
 
 
 
@@ -342,7 +342,7 @@ In this tutorial, we chose to vectorize the inner loop row data since it is cach
 
  .. code-block:: none
 
-    Opt2: 0.343041
+    Opt2: 0.343121
 
 
 
@@ -438,7 +438,7 @@ the access pattern for A matrix is more cache friendly.
 
  .. code-block:: none
 
-    Opt3: 0.118091
+    Opt3: 0.118553
 
 
 
@@ -563,7 +563,7 @@ flattening.
 
  .. code-block:: none
 
-    Opt4: 0.110221
+    Opt4: 0.109896
 
 
 
@@ -685,7 +685,7 @@ write to C when all the block results are ready.
 
  .. code-block:: none
 
-    Opt5: 0.110821
+    Opt5: 0.111095
 
 
 
@@ -810,7 +810,7 @@ Furthermore, we can also utilize multi-core processors to do the thread-level pa
 
  .. code-block:: none
 
-    Opt6: 0.146781
+    Opt6: 0.147013
 
 
 
diff --git a/docs/_sources/how_to/optimize_operators/sg_execution_times.rst.txt b/docs/_sources/how_to/optimize_operators/sg_execution_times.rst.txt
index 2724262e8..567c292af 100644
--- a/docs/_sources/how_to/optimize_operators/sg_execution_times.rst.txt
+++ b/docs/_sources/how_to/optimize_operators/sg_execution_times.rst.txt
@@ -5,12 +5,12 @@
 
 Computation times
 =================
-**00:34.362** total execution time for **how_to_optimize_operators** files:
+**00:35.181** total execution time for **how_to_optimize_operators** files:
 
 +-----------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_optimize_operators_opt_gemm.py` (``opt_gemm.py``)                       | 00:32.072 | 0.0 MB |
+| :ref:`sphx_glr_how_to_optimize_operators_opt_gemm.py` (``opt_gemm.py``)                       | 00:32.871 | 0.0 MB |
 +-----------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_optimize_operators_opt_conv_tensorcore.py` (``opt_conv_tensorcore.py``) | 00:01.269 | 0.0 MB |
+| :ref:`sphx_glr_how_to_optimize_operators_opt_conv_tensorcore.py` (``opt_conv_tensorcore.py``) | 00:01.235 | 0.0 MB |
 +-----------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_optimize_operators_opt_conv_cuda.py` (``opt_conv_cuda.py``)             | 00:01.022 | 0.0 MB |
+| :ref:`sphx_glr_how_to_optimize_operators_opt_conv_cuda.py` (``opt_conv_cuda.py``)             | 00:01.075 | 0.0 MB |
 +-----------------------------------------------------------------------------------------------+-----------+--------+
diff --git a/docs/_sources/how_to/tune_with_autoscheduler/sg_execution_times.rst.txt b/docs/_sources/how_to/tune_with_autoscheduler/sg_execution_times.rst.txt
index 123274feb..c7674389a 100644
--- a/docs/_sources/how_to/tune_with_autoscheduler/sg_execution_times.rst.txt
+++ b/docs/_sources/how_to/tune_with_autoscheduler/sg_execution_times.rst.txt
@@ -5,18 +5,18 @@
 
 Computation times
 =================
-**06:24.775** total execution time for **how_to_tune_with_autoscheduler** files:
+**06:43.066** total execution time for **how_to_tune_with_autoscheduler** files:
 
 +----------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_conv2d_layer_cuda.py` (``tune_conv2d_layer_cuda.py``) | 03:27.246 | 0.0 MB |
+| :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_conv2d_layer_cuda.py` (``tune_conv2d_layer_cuda.py``) | 03:43.102 | 0.0 MB |
 +----------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_network_x86.py` (``tune_network_x86.py``)             | 01:23.476 | 0.0 MB |
+| :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_network_x86.py` (``tune_network_x86.py``)             | 01:23.690 | 0.0 MB |
 +----------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_network_cuda.py` (``tune_network_cuda.py``)           | 00:57.130 | 0.0 MB |
+| :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_network_cuda.py` (``tune_network_cuda.py``)           | 00:57.011 | 0.0 MB |
 +----------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_sparse_x86.py` (``tune_sparse_x86.py``)               | 00:18.857 | 0.0 MB |
+| :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_sparse_x86.py` (``tune_sparse_x86.py``)               | 00:21.464 | 0.0 MB |
 +----------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_network_mali.py` (``tune_network_mali.py``)           | 00:09.242 | 0.0 MB |
+| :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_network_mali.py` (``tune_network_mali.py``)           | 00:09.005 | 0.0 MB |
 +----------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_network_arm.py` (``tune_network_arm.py``)             | 00:08.825 | 0.0 MB |
+| :ref:`sphx_glr_how_to_tune_with_autoscheduler_tune_network_arm.py` (``tune_network_arm.py``)             | 00:08.795 | 0.0 MB |
 +----------------------------------------------------------------------------------------------------------+-----------+--------+
diff --git a/docs/_sources/how_to/tune_with_autoscheduler/tune_conv2d_layer_cuda.rst.txt b/docs/_sources/how_to/tune_with_autoscheduler/tune_conv2d_layer_cuda.rst.txt
index 3e3d5c87d..2b2055e9d 100644
--- a/docs/_sources/how_to/tune_with_autoscheduler/tune_conv2d_layer_cuda.rst.txt
+++ b/docs/_sources/how_to/tune_with_autoscheduler/tune_conv2d_layer_cuda.rst.txt
@@ -206,6 +206,13 @@ file and apply it.
 
 
 
+.. rst-class:: sphx-glr-script-out
+
+ .. code-block:: none
+
+    .T
+
+
 
 
 
@@ -240,57 +247,428 @@ cooperative fetching, unrolling and operator fusion.
                  compute: Buffer(compute_2: Pointer(float32), float32, [25088], [])}
       buffer_map = {data_1: data, kernel_1: kernel, bias_1: bias, compute_1: compute}
       preflattened_buffer_map = {data_1: data_3: Buffer(data_2, float32, [1, 512, 7, 7], []), kernel_1: kernel_3: Buffer(kernel_2, float32, [512, 512, 3, 3], []), bias_1: bias_3: Buffer(bias_2, float32, [1, 512, 1, 1], []), compute_1: compute_3: Buffer(compute_2, float32, [1, 512, 7, 7], [])} {
-      attr [IterVar(blockIdx.x: int32, (nullptr), "ThreadIndex", "blockIdx.x")] "thread_extent" = 16;
-      allocate(conv2d_nchw: Pointer(local float32), float32, [8]), storage_scope = local;
-      allocate(pad_temp.shared: Pointer(shared float32), float32, [252]), storage_scope = shared;
-      allocate(kernel.shared: Pointer(shared float32), float32, [384]), storage_scope = shared;
-      attr [IterVar(threadIdx.x: int32, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 196 {
-        conv2d_nchw_1: Buffer(conv2d_nchw, float32, [8], [], scope="local", align=32)[0] = 0f32
+      attr [IterVar(blockIdx.x: int32, (nullptr), "ThreadIndex", "blockIdx.x")] "thread_extent" = 128;
+      allocate(conv2d_nchw: Pointer(local float32), float32, [14]), storage_scope = local;
+      allocate(pad_temp.shared: Pointer(shared float32), float32, [504]), storage_scope = shared;
+      allocate(kernel.shared: Pointer(shared float32), float32, [96]), storage_scope = shared;
+      attr [IterVar(threadIdx.x: int32, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 14 {
+        conv2d_nchw_1: Buffer(conv2d_nchw, float32, [49], [], scope="local", align=16)[0] = 0f32
+        conv2d_nchw_1[7] = 0f32
         conv2d_nchw_1[1] = 0f32
+        conv2d_nchw_1[8] = 0f32
         conv2d_nchw_1[2] = 0f32
+        conv2d_nchw_1[9] = 0f32
         conv2d_nchw_1[3] = 0f32
+        conv2d_nchw_1[10] = 0f32
         conv2d_nchw_1[4] = 0f32
+        conv2d_nchw_1[11] = 0f32
         conv2d_nchw_1[5] = 0f32
+        conv2d_nchw_1[12] = 0f32
         conv2d_nchw_1[6] = 0f32
-        conv2d_nchw_1[7] = 0f32
-        for (rc.outer.outer: int32, 0, 128) {
+        conv2d_nchw_1[13] = 0f32
+        for (rc.outer.outer: int32, 0, 64) {
           for (ry.outer.outer: int32, 0, 3) {
-            attr [IterVar(threadIdx.x_1: int32, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 196;
-            pad_temp.shared_1: Buffer(pad_temp.shared, float32, [252], [], scope="shared")[threadIdx.x_1] = @tir.if_then_else(((((1 <= (floordiv(floormod(threadIdx.x_1, 63), 9) + ry.outer.outer)) && ((floordiv(floormod(threadIdx.x_1, 63), 9) + ry.outer.outer) < 8)) && (1 <= floormod(threadIdx.x_1, 9))) && (floormod(threadIdx.x_1, 9) < 8)), data[(((((rc.outer.outer*196) + (floordiv(threadIdx.x_1, 9)*7)) + (ry.outer.outer*7)) + floormod(threadIdx.x_1, 9)) - 8)], 0f32, dtype=float32)
-            attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 196;
-            if @tir.likely((threadIdx.x_1 < 56), dtype=bool) {
-              pad_temp.shared_1[(threadIdx.x_1 + 196)] = @tir.if_then_else(((((1 <= (floordiv(floormod((threadIdx.x_1 + 7), 63), 9) + ry.outer.outer)) && ((floordiv(floormod((threadIdx.x_1 + 7), 63), 9) + ry.outer.outer) < 8)) && (1 <= floormod((threadIdx.x_1 + 7), 9))) && (floormod((threadIdx.x_1 + 7), 9) < 8)), data[(((((rc.outer.outer*196) + (floordiv((threadIdx.x_1 + 196), 9)*7)) + (ry.outer.outer*7)) + floormod((threadIdx.x_1 + 7), 9)) - 8)], 0f32, dtype=float32)
-            }
-            attr [IterVar(threadIdx.x_2: int32, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 196;
-            kernel.shared_1: Buffer(kernel.shared, float32, [384], [], scope="shared")[threadIdx.x_2] = kernel[((((((blockIdx.x*147456) + (floordiv(threadIdx.x_2, 12)*4608)) + (rc.outer.outer*36)) + (floordiv(floormod(threadIdx.x_2, 12), 3)*9)) + (ry.outer.outer*3)) + floormod(threadIdx.x_2, 3))]
-            attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 196;
-            if @tir.likely((threadIdx.x_2 < 188), dtype=bool) {
-              kernel.shared_1[(threadIdx.x_2 + 196)] = kernel[((((((blockIdx.x*147456) + (floordiv((threadIdx.x_2 + 196), 12)*4608)) + (rc.outer.outer*36)) + (floordiv(floormod((threadIdx.x_2 + 4), 12), 3)*9)) + (ry.outer.outer*3)) + floormod((threadIdx.x_2 + 1), 3))]
-            }
-            for (rc.outer.inner: int32, 0, 2) {
-              for (rx.outer.inner: int32, 0, 3) {
-                conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[((((rc.outer.inner*126) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + rx.outer.inner) + floormod(threadIdx.x, 7))]*kernel.shared_1[(((floordiv(threadIdx.x, 49)*96) + (rc.outer.inner*6)) + rx.outer.inner)]))
-                conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[((((rc.outer.inner*126) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + rx.outer.inner) + floormod(threadIdx.x, 7))]*kernel.shared_1[((((floordiv(threadIdx.x, 49)*96) + (rc.outer.inner*6)) + rx.outer.inner) + 12)]))
-                conv2d_nchw_1[2] = (conv2d_nchw_1[2] + (pad_temp.shared_1[((((rc.outer.inner*126) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + rx.outer.inner) + floormod(threadIdx.x, 7))]*kernel.shared_1[((((floordiv(threadIdx.x, 49)*96) + (rc.outer.inner*6)) + rx.outer.inner) + 24)]))
-                conv2d_nchw_1[3] = (conv2d_nchw_1[3] + (pad_temp.shared_1[((((rc.outer.inner*126) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + rx.outer.inner) + floormod(threadIdx.x, 7))]*kernel.shared_1[((((floordiv(threadIdx.x, 49)*96) + (rc.outer.inner*6)) + rx.outer.inner) + 36)]))
-                conv2d_nchw_1[4] = (conv2d_nchw_1[4] + (pad_temp.shared_1[((((rc.outer.inner*126) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + rx.outer.inner) + floormod(threadIdx.x, 7))]*kernel.shared_1[((((floordiv(threadIdx.x, 49)*96) + (rc.outer.inner*6)) + rx.outer.inner) + 48)]))
-                conv2d_nchw_1[5] = (conv2d_nchw_1[5] + (pad_temp.shared_1[((((rc.outer.inner*126) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + rx.outer.inner) + floormod(threadIdx.x, 7))]*kernel.shared_1[((((floordiv(threadIdx.x, 49)*96) + (rc.outer.inner*6)) + rx.outer.inner) + 60)]))
-                conv2d_nchw_1[6] = (conv2d_nchw_1[6] + (pad_temp.shared_1[((((rc.outer.inner*126) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + rx.outer.inner) + floormod(threadIdx.x, 7))]*kernel.shared_1[((((floordiv(threadIdx.x, 49)*96) + (rc.outer.inner*6)) + rx.outer.inner) + 72)]))
-                conv2d_nchw_1[7] = (conv2d_nchw_1[7] + (pad_temp.shared_1[((((rc.outer.inner*126) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + rx.outer.inner) + floormod(threadIdx.x, 7))]*kernel.shared_1[((((floordiv(threadIdx.x, 49)*96) + (rc.outer.inner*6)) + rx.outer.inner) + 84)]))
-                conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[(((((rc.outer.inner*126) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + rx.outer.inner) + floormod(threadIdx.x, 7)) + 63)]*kernel.shared_1[((((floordiv(threadIdx.x, 49)*96) + (rc.outer.inner*6)) + rx.outer.inner) + 3)]))
-                conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[(((((rc.outer.inner*126) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + rx.outer.inner) + floormod(threadIdx.x, 7)) + 63)]*kernel.shared_1[((((floordiv(threadIdx.x, 49)*96) + (rc.outer.inner*6)) + rx.outer.inner) + 15)]))
-                conv2d_nchw_1[2] = (conv2d_nchw_1[2] + (pad_temp.shared_1[(((((rc.outer.inner*126) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + rx.outer.inner) + floormod(threadIdx.x, 7)) + 63)]*kernel.shared_1[((((floordiv(threadIdx.x, 49)*96) + (rc.outer.inner*6)) + rx.outer.inner) + 27)]))
-                conv2d_nchw_1[3] = (conv2d_nchw_1[3] + (pad_temp.shared_1[(((((rc.outer.inner*126) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + rx.outer.inner) + floormod(threadIdx.x, 7)) + 63)]*kernel.shared_1[((((floordiv(threadIdx.x, 49)*96) + (rc.outer.inner*6)) + rx.outer.inner) + 39)]))
-                conv2d_nchw_1[4] = (conv2d_nchw_1[4] + (pad_temp.shared_1[(((((rc.outer.inner*126) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + rx.outer.inner) + floormod(threadIdx.x, 7)) + 63)]*kernel.shared_1[((((floordiv(threadIdx.x, 49)*96) + (rc.outer.inner*6)) + rx.outer.inner) + 51)]))
-                conv2d_nchw_1[5] = (conv2d_nchw_1[5] + (pad_temp.shared_1[(((((rc.outer.inner*126) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + rx.outer.inner) + floormod(threadIdx.x, 7)) + 63)]*kernel.shared_1[((((floordiv(threadIdx.x, 49)*96) + (rc.outer.inner*6)) + rx.outer.inner) + 63)]))
-                conv2d_nchw_1[6] = (conv2d_nchw_1[6] + (pad_temp.shared_1[(((((rc.outer.inner*126) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + rx.outer.inner) + floormod(threadIdx.x, 7)) + 63)]*kernel.shared_1[((((floordiv(threadIdx.x, 49)*96) + (rc.outer.inner*6)) + rx.outer.inner) + 75)]))
-                conv2d_nchw_1[7] = (conv2d_nchw_1[7] + (pad_temp.shared_1[(((((rc.outer.inner*126) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + rx.outer.inner) + floormod(threadIdx.x, 7)) + 63)]*kernel.shared_1[((((floordiv(threadIdx.x, 49)*96) + (rc.outer.inner*6)) + rx.outer.inner) + 87)]))
+            let cse_var_2: int32 = (rc.outer.outer*72)
+            let cse_var_1: int32 = (ry.outer.outer*3)
+             {
+              attr [IterVar(threadIdx.x_1: int32, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 14 {
+                pad_temp.shared_1: Buffer(pad_temp.shared, float32, [504], [], scope="shared")[(threadIdx.x_1*18)] = 0f32
+                pad_temp.shared_1[((threadIdx.x_1*18) + 1)] = @tir.if_then_else(((1 <= (ry.outer.outer + floormod((threadIdx.x_1*2), 7))) && ((ry.outer.outer + floormod((threadIdx.x_1*2), 7)) < 8)), data[((((rc.outer.outer*392) + (threadIdx.x_1*14)) + (ry.outer.outer*7)) - 7)], 0f32, dtype=float32)
+                pad_temp.shared_1[((threadIdx.x_1*18) + 2)] = @tir.if_then_else(((1 <= (ry.outer.outer + floormod((threadIdx.x_1*2), 7))) && ((ry.outer.outer + floormod((threadIdx.x_1*2), 7)) < 8)), data[((((rc.outer.outer*392) + (threadIdx.x_1*14)) + (ry.outer.outer*7)) - 6)], 0f32, dtype=float32)
+                pad_temp.shared_1[((threadIdx.x_1*18) + 3)] = @tir.if_then_else(((1 <= (ry.outer.outer + floormod((threadIdx.x_1*2), 7))) && ((ry.outer.outer + floormod((threadIdx.x_1*2), 7)) < 8)), data[((((rc.outer.outer*392) + (threadIdx.x_1*14)) + (ry.outer.outer*7)) - 5)], 0f32, dtype=float32)
+                pad_temp.shared_1[((threadIdx.x_1*18) + 4)] = @tir.if_then_else(((1 <= (ry.outer.outer + floormod((threadIdx.x_1*2), 7))) && ((ry.outer.outer + floormod((threadIdx.x_1*2), 7)) < 8)), data[((((rc.outer.outer*392) + (threadIdx.x_1*14)) + (ry.outer.outer*7)) - 4)], 0f32, dtype=float32)
+                pad_temp.shared_1[((threadIdx.x_1*18) + 5)] = @tir.if_then_else(((1 <= (ry.outer.outer + floormod((threadIdx.x_1*2), 7))) && ((ry.outer.outer + floormod((threadIdx.x_1*2), 7)) < 8)), data[((((rc.outer.outer*392) + (threadIdx.x_1*14)) + (ry.outer.outer*7)) - 3)], 0f32, dtype=float32)
+                pad_temp.shared_1[((threadIdx.x_1*18) + 6)] = @tir.if_then_else(((1 <= (ry.outer.outer + floormod((threadIdx.x_1*2), 7))) && ((ry.outer.outer + floormod((threadIdx.x_1*2), 7)) < 8)), data[((((rc.outer.outer*392) + (threadIdx.x_1*14)) + (ry.outer.outer*7)) - 2)], 0f32, dtype=float32)
+                pad_temp.shared_1[((threadIdx.x_1*18) + 7)] = @tir.if_then_else(((1 <= (ry.outer.outer + floormod((threadIdx.x_1*2), 7))) && ((ry.outer.outer + floormod((threadIdx.x_1*2), 7)) < 8)), data[((((rc.outer.outer*392) + (threadIdx.x_1*14)) + (ry.outer.outer*7)) - 1)], 0f32, dtype=float32)
+                pad_temp.shared_1[((threadIdx.x_1*18) + 8)] = 0f32
+                pad_temp.shared_1[((threadIdx.x_1*18) + 9)] = 0f32
+                pad_temp.shared_1[((threadIdx.x_1*18) + 10)] = @tir.if_then_else(((1 <= (ry.outer.outer + floormod(((threadIdx.x_1*2) + 1), 7))) && ((ry.outer.outer + floormod(((threadIdx.x_1*2) + 1), 7)) < 8)), data[(((rc.outer.outer*392) + (threadIdx.x_1*14)) + (ry.outer.outer*7))], 0f32, dtype=float32)
+                pad_temp.shared_1[((threadIdx.x_1*18) + 11)] = @tir.if_then_else(((1 <= (ry.outer.outer + floormod(((threadIdx.x_1*2) + 1), 7))) && ((ry.outer.outer + floormod(((threadIdx.x_1*2) + 1), 7)) < 8)), data[((((rc.outer.outer*392) + (threadIdx.x_1*14)) + (ry.outer.outer*7)) + 1)], 0f32, dtype=float32)
+                pad_temp.shared_1[((threadIdx.x_1*18) + 12)] = @tir.if_then_else(((1 <= (ry.outer.outer + floormod(((threadIdx.x_1*2) + 1), 7))) && ((ry.outer.outer + floormod(((threadIdx.x_1*2) + 1), 7)) < 8)), data[((((rc.outer.outer*392) + (threadIdx.x_1*14)) + (ry.outer.outer*7)) + 2)], 0f32, dtype=float32)
+                pad_temp.shared_1[((threadIdx.x_1*18) + 13)] = @tir.if_then_else(((1 <= (ry.outer.outer + floormod(((threadIdx.x_1*2) + 1), 7))) && ((ry.outer.outer + floormod(((threadIdx.x_1*2) + 1), 7)) < 8)), data[((((rc.outer.outer*392) + (threadIdx.x_1*14)) + (ry.outer.outer*7)) + 3)], 0f32, dtype=float32)
+                pad_temp.shared_1[((threadIdx.x_1*18) + 14)] = @tir.if_then_else(((1 <= (ry.outer.outer + floormod(((threadIdx.x_1*2) + 1), 7))) && ((ry.outer.outer + floormod(((threadIdx.x_1*2) + 1), 7)) < 8)), data[((((rc.outer.outer*392) + (threadIdx.x_1*14)) + (ry.outer.outer*7)) + 4)], 0f32, dtype=float32)
+                pad_temp.shared_1[((threadIdx.x_1*18) + 15)] = @tir.if_then_else(((1 <= (ry.outer.outer + floormod(((threadIdx.x_1*2) + 1), 7))) && ((ry.outer.outer + floormod(((threadIdx.x_1*2) + 1), 7)) < 8)), data[((((rc.outer.outer*392) + (threadIdx.x_1*14)) + (ry.outer.outer*7)) + 5)], 0f32, dtype=float32)
+                pad_temp.shared_1[((threadIdx.x_1*18) + 16)] = @tir.if_then_else(((1 <= (ry.outer.outer + floormod(((threadIdx.x_1*2) + 1), 7))) && ((ry.outer.outer + floormod(((threadIdx.x_1*2) + 1), 7)) < 8)), data[((((rc.outer.outer*392) + (threadIdx.x_1*14)) + (ry.outer.outer*7)) + 6)], 0f32, dtype=float32)
+                pad_temp.shared_1[((threadIdx.x_1*18) + 17)] = 0f32
+              }
+              attr [IterVar(threadIdx.x_1, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 14 {
+                pad_temp.shared_1[((threadIdx.x_1*18) + 252)] = 0f32
+                pad_temp.shared_1[((threadIdx.x_1*18) + 253)] = @tir.if_then_else(((1 <= (ry.outer.outer + floormod((threadIdx.x_1*2), 7))) && ((ry.outer.outer + floormod((threadIdx.x_1*2), 7)) < 8)), data[((((rc.outer.outer*392) + (threadIdx.x_1*14)) + (ry.outer.outer*7)) + 189)], 0f32, dtype=float32)
+                pad_temp.shared_1[((threadIdx.x_1*18) + 254)] = @tir.if_then_else(((1 <= (ry.outer.outer + floormod((threadIdx.x_1*2), 7))) && ((ry.outer.outer + floormod((threadIdx.x_1*2), 7)) < 8)), data[((((rc.outer.outer*392) + (threadIdx.x_1*14)) + (ry.outer.outer*7)) + 190)], 0f32, dtype=float32)
+                pad_temp.shared_1[((threadIdx.x_1*18) + 255)] = @tir.if_then_else(((1 <= (ry.outer.outer + floormod((threadIdx.x_1*2), 7))) && ((ry.outer.outer + floormod((threadIdx.x_1*2), 7)) < 8)), data[((((rc.outer.outer*392) + (threadIdx.x_1*14)) + (ry.outer.outer*7)) + 191)], 0f32, dtype=float32)
+                pad_temp.shared_1[((threadIdx.x_1*18) + 256)] = @tir.if_then_else(((1 <= (ry.outer.outer + floormod((threadIdx.x_1*2), 7))) && ((ry.outer.outer + floormod((threadIdx.x_1*2), 7)) < 8)), data[((((rc.outer.outer*392) + (threadIdx.x_1*14)) + (ry.outer.outer*7)) + 192)], 0f32, dtype=float32)
+                pad_temp.shared_1[((threadIdx.x_1*18) + 257)] = @tir.if_then_else(((1 <= (ry.outer.outer + floormod((threadIdx.x_1*2), 7))) && ((ry.outer.outer + floormod((threadIdx.x_1*2), 7)) < 8)), data[((((rc.outer.outer*392) + (threadIdx.x_1*14)) + (ry.outer.outer*7)) + 193)], 0f32, dtype=float32)
+                pad_temp.shared_1[((threadIdx.x_1*18) + 258)] = @tir.if_then_else(((1 <= (ry.outer.outer + floormod((threadIdx.x_1*2), 7))) && ((ry.outer.outer + floormod((threadIdx.x_1*2), 7)) < 8)), data[((((rc.outer.outer*392) + (threadIdx.x_1*14)) + (ry.outer.outer*7)) + 194)], 0f32, dtype=float32)
+                pad_temp.shared_1[((threadIdx.x_1*18) + 259)] = @tir.if_then_else(((1 <= (ry.outer.outer + floormod((threadIdx.x_1*2), 7))) && ((ry.outer.outer + floormod((threadIdx.x_1*2), 7)) < 8)), data[((((rc.outer.outer*392) + (threadIdx.x_1*14)) + (ry.outer.outer*7)) + 195)], 0f32, dtype=float32)
+                pad_temp.shared_1[((threadIdx.x_1*18) + 260)] = 0f32
+                pad_temp.shared_1[((threadIdx.x_1*18) + 261)] = 0f32
+                pad_temp.shared_1[((threadIdx.x_1*18) + 262)] = @tir.if_then_else(((1 <= (ry.outer.outer + floormod(((threadIdx.x_1*2) + 1), 7))) && ((ry.outer.outer + floormod(((threadIdx.x_1*2) + 1), 7)) < 8)), data[((((rc.outer.outer*392) + (threadIdx.x_1*14)) + (ry.outer.outer*7)) + 196)], 0f32, dtype=float32)
+                pad_temp.shared_1[((threadIdx.x_1*18) + 263)] = @tir.if_then_else(((1 <= (ry.outer.outer + floormod(((threadIdx.x_1*2) + 1), 7))) && ((ry.outer.outer + floormod(((threadIdx.x_1*2) + 1), 7)) < 8)), data[((((rc.outer.outer*392) + (threadIdx.x_1*14)) + (ry.outer.outer*7)) + 197)], 0f32, dtype=float32)
+                pad_temp.shared_1[((threadIdx.x_1*18) + 264)] = @tir.if_then_else(((1 <= (ry.outer.outer + floormod(((threadIdx.x_1*2) + 1), 7))) && ((ry.outer.outer + floormod(((threadIdx.x_1*2) + 1), 7)) < 8)), data[((((rc.outer.outer*392) + (threadIdx.x_1*14)) + (ry.outer.outer*7)) + 198)], 0f32, dtype=float32)
+                pad_temp.shared_1[((threadIdx.x_1*18) + 265)] = @tir.if_then_else(((1 <= (ry.outer.outer + floormod(((threadIdx.x_1*2) + 1), 7))) && ((ry.outer.outer + floormod(((threadIdx.x_1*2) + 1), 7)) < 8)), data[((((rc.outer.outer*392) + (threadIdx.x_1*14)) + (ry.outer.outer*7)) + 199)], 0f32, dtype=float32)
+                pad_temp.shared_1[((threadIdx.x_1*18) + 266)] = @tir.if_then_else(((1 <= (ry.outer.outer + floormod(((threadIdx.x_1*2) + 1), 7))) && ((ry.outer.outer + floormod(((threadIdx.x_1*2) + 1), 7)) < 8)), data[((((rc.outer.outer*392) + (threadIdx.x_1*14)) + (ry.outer.outer*7)) + 200)], 0f32, dtype=float32)
+                pad_temp.shared_1[((threadIdx.x_1*18) + 267)] = @tir.if_then_else(((1 <= (ry.outer.outer + floormod(((threadIdx.x_1*2) + 1), 7))) && ((ry.outer.outer + floormod(((threadIdx.x_1*2) + 1), 7)) < 8)), data[((((rc.outer.outer*392) + (threadIdx.x_1*14)) + (ry.outer.outer*7)) + 201)], 0f32, dtype=float32)
+                pad_temp.shared_1[((threadIdx.x_1*18) + 268)] = @tir.if_then_else(((1 <= (ry.outer.outer + floormod(((threadIdx.x_1*2) + 1), 7))) && ((ry.outer.outer + floormod(((threadIdx.x_1*2) + 1), 7)) < 8)), data[((((rc.outer.outer*392) + (threadIdx.x_1*14)) + (ry.outer.outer*7)) + 202)], 0f32, dtype=float32)
+                pad_temp.shared_1[((threadIdx.x_1*18) + 269)] = 0f32
               }
+              attr [IterVar(threadIdx.x_2: int32, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 14;
+              kernel.shared_1: Buffer(kernel.shared, float32, [96], [], scope="shared")[threadIdx.x_2] = kernel[(((((blockIdx.x*18432) + cse_var_2) + (floordiv(threadIdx.x_2, 3)*9)) + cse_var_1) + floormod(threadIdx.x_2, 3))]
+              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 14;
+              kernel.shared_1[(threadIdx.x_2 + 14)] = kernel[((((((blockIdx.x*18432) + (floordiv((threadIdx.x_2 + 14), 24)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 14), 24), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 2), 3))]
+              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 14;
+              kernel.shared_1[(threadIdx.x_2 + 28)] = kernel[((((((blockIdx.x*18432) + (floordiv((threadIdx.x_2 + 28), 24)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 4), 24), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 1), 3))]
+              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 14;
+              kernel.shared_1[(threadIdx.x_2 + 42)] = kernel[((((((blockIdx.x*18432) + (floordiv((threadIdx.x_2 + 42), 24)*4608)) + cse_var_2) + (floormod((floordiv(threadIdx.x_2, 3) + 6), 8)*9)) + cse_var_1) + floormod(threadIdx.x_2, 3))]
+              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 14;
+              kernel.shared_1[(threadIdx.x_2 + 56)] = kernel[((((((blockIdx.x*18432) + (floordiv((threadIdx.x_2 + 56), 24)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 8), 24), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 2), 3))]
+              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 14;
+              kernel.shared_1[(threadIdx.x_2 + 70)] = kernel[((((((blockIdx.x*18432) + (floordiv((threadIdx.x_2 + 70), 24)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 22), 24), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 1), 3))]
+              attr [IterVar(threadIdx.x_2, (nullptr), "ThreadIndex", "threadIdx.x")] "thread_extent" = 14;
+              if @tir.likely((threadIdx.x_2 < 12), dtype=bool) {
+                kernel.shared_1[(threadIdx.x_2 + 84)] = kernel[((((((blockIdx.x*18432) + (floordiv((threadIdx.x_2 + 84), 24)*4608)) + cse_var_2) + ((floordiv(threadIdx.x_2, 3) + 4)*9)) + cse_var_1) + floormod(threadIdx.x_2, 3))]
+              }
+              conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[(floormod(threadIdx.x, 7)*9)]*kernel.shared_1[(floordiv(threadIdx.x, 7)*24)]))
+              conv2d_nchw_1[7] = (conv2d_nchw_1[7] + (pad_temp.shared_1[(floormod(threadIdx.x, 7)*9)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 48)]))
+              conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 1)]*kernel.shared_1[(floordiv(threadIdx.x, 7)*24)]))
+              conv2d_nchw_1[8] = (conv2d_nchw_1[8] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 1)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 48)]))
+              conv2d_nchw_1[2] = (conv2d_nchw_1[2] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 2)]*kernel.shared_1[(floordiv(threadIdx.x, 7)*24)]))
+              conv2d_nchw_1[9] = (conv2d_nchw_1[9] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 2)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 48)]))
+              conv2d_nchw_1[3] = (conv2d_nchw_1[3] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 3)]*kernel.shared_1[(floordiv(threadIdx.x, 7)*24)]))
+              conv2d_nchw_1[10] = (conv2d_nchw_1[10] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 3)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 48)]))
+              conv2d_nchw_1[4] = (conv2d_nchw_1[4] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 4)]*kernel.shared_1[(floordiv(threadIdx.x, 7)*24)]))
+              conv2d_nchw_1[11] = (conv2d_nchw_1[11] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 4)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 48)]))
+              conv2d_nchw_1[5] = (conv2d_nchw_1[5] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 5)]*kernel.shared_1[(floordiv(threadIdx.x, 7)*24)]))
+              conv2d_nchw_1[12] = (conv2d_nchw_1[12] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 5)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 48)]))
+              conv2d_nchw_1[6] = (conv2d_nchw_1[6] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 6)]*kernel.shared_1[(floordiv(threadIdx.x, 7)*24)]))
+              conv2d_nchw_1[13] = (conv2d_nchw_1[13] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 6)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 48)]))
+              conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 1)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 1)]))
+              conv2d_nchw_1[7] = (conv2d_nchw_1[7] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 1)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 49)]))
+              conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 2)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 1)]))
+              conv2d_nchw_1[8] = (conv2d_nchw_1[8] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 2)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 49)]))
+              conv2d_nchw_1[2] = (conv2d_nchw_1[2] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 3)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 1)]))
+              conv2d_nchw_1[9] = (conv2d_nchw_1[9] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 3)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 49)]))
+              conv2d_nchw_1[3] = (conv2d_nchw_1[3] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 4)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 1)]))
+              conv2d_nchw_1[10] = (conv2d_nchw_1[10] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 4)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 49)]))
+              conv2d_nchw_1[4] = (conv2d_nchw_1[4] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 5)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 1)]))
+              conv2d_nchw_1[11] = (conv2d_nchw_1[11] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 5)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 49)]))
+              conv2d_nchw_1[5] = (conv2d_nchw_1[5] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 6)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 1)]))
+              conv2d_nchw_1[12] = (conv2d_nchw_1[12] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 6)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 49)]))
+              conv2d_nchw_1[6] = (conv2d_nchw_1[6] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 7)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 1)]))
+              conv2d_nchw_1[13] = (conv2d_nchw_1[13] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 7)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 49)]))
+              conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 2)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 2)]))
+              conv2d_nchw_1[7] = (conv2d_nchw_1[7] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 2)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 50)]))
+              conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 3)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 2)]))
+              conv2d_nchw_1[8] = (conv2d_nchw_1[8] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 3)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 50)]))
+              conv2d_nchw_1[2] = (conv2d_nchw_1[2] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 4)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 2)]))
+              conv2d_nchw_1[9] = (conv2d_nchw_1[9] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 4)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 50)]))
+              conv2d_nchw_1[3] = (conv2d_nchw_1[3] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 5)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 2)]))
+              conv2d_nchw_1[10] = (conv2d_nchw_1[10] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 5)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 50)]))
+              conv2d_nchw_1[4] = (conv2d_nchw_1[4] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 6)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 2)]))
+              conv2d_nchw_1[11] = (conv2d_nchw_1[11] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 6)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 50)]))
+              conv2d_nchw_1[5] = (conv2d_nchw_1[5] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 7)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 2)]))
+              conv2d_nchw_1[12] = (conv2d_nchw_1[12] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 7)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 50)]))
+              conv2d_nchw_1[6] = (conv2d_nchw_1[6] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 8)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 2)]))
+              conv2d_nchw_1[13] = (conv2d_nchw_1[13] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 8)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 50)]))
+              conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 63)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 3)]))
+              conv2d_nchw_1[7] = (conv2d_nchw_1[7] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 63)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 51)]))
+              conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 64)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 3)]))
+              conv2d_nchw_1[8] = (conv2d_nchw_1[8] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 64)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 51)]))
+              conv2d_nchw_1[2] = (conv2d_nchw_1[2] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 65)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 3)]))
+              conv2d_nchw_1[9] = (conv2d_nchw_1[9] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 65)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 51)]))
+              conv2d_nchw_1[3] = (conv2d_nchw_1[3] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 66)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 3)]))
+              conv2d_nchw_1[10] = (conv2d_nchw_1[10] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 66)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 51)]))
+              conv2d_nchw_1[4] = (conv2d_nchw_1[4] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 67)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 3)]))
+              conv2d_nchw_1[11] = (conv2d_nchw_1[11] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 67)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 51)]))
+              conv2d_nchw_1[5] = (conv2d_nchw_1[5] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 68)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 3)]))
+              conv2d_nchw_1[12] = (conv2d_nchw_1[12] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 68)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 51)]))
+              conv2d_nchw_1[6] = (conv2d_nchw_1[6] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 69)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 3)]))
+              conv2d_nchw_1[13] = (conv2d_nchw_1[13] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 69)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 51)]))
+              conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 64)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 4)]))
+              conv2d_nchw_1[7] = (conv2d_nchw_1[7] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 64)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 52)]))
+              conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 65)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 4)]))
+              conv2d_nchw_1[8] = (conv2d_nchw_1[8] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 65)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 52)]))
+              conv2d_nchw_1[2] = (conv2d_nchw_1[2] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 66)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 4)]))
+              conv2d_nchw_1[9] = (conv2d_nchw_1[9] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 66)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 52)]))
+              conv2d_nchw_1[3] = (conv2d_nchw_1[3] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 67)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 4)]))
+              conv2d_nchw_1[10] = (conv2d_nchw_1[10] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 67)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 52)]))
+              conv2d_nchw_1[4] = (conv2d_nchw_1[4] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 68)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 4)]))
+              conv2d_nchw_1[11] = (conv2d_nchw_1[11] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 68)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 52)]))
+              conv2d_nchw_1[5] = (conv2d_nchw_1[5] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 69)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 4)]))
+              conv2d_nchw_1[12] = (conv2d_nchw_1[12] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 69)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 52)]))
+              conv2d_nchw_1[6] = (conv2d_nchw_1[6] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 70)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 4)]))
+              conv2d_nchw_1[13] = (conv2d_nchw_1[13] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 70)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 52)]))
+              conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 65)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 5)]))
+              conv2d_nchw_1[7] = (conv2d_nchw_1[7] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 65)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 53)]))
+              conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 66)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 5)]))
+              conv2d_nchw_1[8] = (conv2d_nchw_1[8] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 66)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 53)]))
+              conv2d_nchw_1[2] = (conv2d_nchw_1[2] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 67)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 5)]))
+              conv2d_nchw_1[9] = (conv2d_nchw_1[9] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 67)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 53)]))
+              conv2d_nchw_1[3] = (conv2d_nchw_1[3] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 68)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 5)]))
+              conv2d_nchw_1[10] = (conv2d_nchw_1[10] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 68)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 53)]))
+              conv2d_nchw_1[4] = (conv2d_nchw_1[4] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 69)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 5)]))
+              conv2d_nchw_1[11] = (conv2d_nchw_1[11] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 69)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 53)]))
+              conv2d_nchw_1[5] = (conv2d_nchw_1[5] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 70)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 5)]))
+              conv2d_nchw_1[12] = (conv2d_nchw_1[12] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 70)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 53)]))
+              conv2d_nchw_1[6] = (conv2d_nchw_1[6] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 71)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 5)]))
+              conv2d_nchw_1[13] = (conv2d_nchw_1[13] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 71)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 53)]))
+              conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 126)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 6)]))
+              conv2d_nchw_1[7] = (conv2d_nchw_1[7] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 126)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 54)]))
+              conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 127)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 6)]))
+              conv2d_nchw_1[8] = (conv2d_nchw_1[8] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 127)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 54)]))
+              conv2d_nchw_1[2] = (conv2d_nchw_1[2] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 128)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 6)]))
+              conv2d_nchw_1[9] = (conv2d_nchw_1[9] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 128)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 54)]))
+              conv2d_nchw_1[3] = (conv2d_nchw_1[3] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 129)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 6)]))
+              conv2d_nchw_1[10] = (conv2d_nchw_1[10] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 129)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 54)]))
+              conv2d_nchw_1[4] = (conv2d_nchw_1[4] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 130)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 6)]))
+              conv2d_nchw_1[11] = (conv2d_nchw_1[11] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 130)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 54)]))
+              conv2d_nchw_1[5] = (conv2d_nchw_1[5] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 131)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 6)]))
+              conv2d_nchw_1[12] = (conv2d_nchw_1[12] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 131)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 54)]))
+              conv2d_nchw_1[6] = (conv2d_nchw_1[6] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 132)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 6)]))
+              conv2d_nchw_1[13] = (conv2d_nchw_1[13] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 132)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 54)]))
+              conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 127)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 7)]))
+              conv2d_nchw_1[7] = (conv2d_nchw_1[7] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 127)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 55)]))
+              conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 128)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 7)]))
+              conv2d_nchw_1[8] = (conv2d_nchw_1[8] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 128)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 55)]))
+              conv2d_nchw_1[2] = (conv2d_nchw_1[2] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 129)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 7)]))
+              conv2d_nchw_1[9] = (conv2d_nchw_1[9] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 129)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 55)]))
+              conv2d_nchw_1[3] = (conv2d_nchw_1[3] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 130)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 7)]))
+              conv2d_nchw_1[10] = (conv2d_nchw_1[10] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 130)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 55)]))
+              conv2d_nchw_1[4] = (conv2d_nchw_1[4] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 131)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 7)]))
+              conv2d_nchw_1[11] = (conv2d_nchw_1[11] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 131)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 55)]))
+              conv2d_nchw_1[5] = (conv2d_nchw_1[5] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 132)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 7)]))
+              conv2d_nchw_1[12] = (conv2d_nchw_1[12] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 132)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 55)]))
+              conv2d_nchw_1[6] = (conv2d_nchw_1[6] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 133)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 7)]))
+              conv2d_nchw_1[13] = (conv2d_nchw_1[13] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 133)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 55)]))
+              conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 128)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 8)]))
+              conv2d_nchw_1[7] = (conv2d_nchw_1[7] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 128)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 56)]))
+              conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 129)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 8)]))
+              conv2d_nchw_1[8] = (conv2d_nchw_1[8] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 129)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 56)]))
+              conv2d_nchw_1[2] = (conv2d_nchw_1[2] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 130)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 8)]))
+              conv2d_nchw_1[9] = (conv2d_nchw_1[9] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 130)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 56)]))
+              conv2d_nchw_1[3] = (conv2d_nchw_1[3] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 131)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 8)]))
+              conv2d_nchw_1[10] = (conv2d_nchw_1[10] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 131)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 56)]))
+              conv2d_nchw_1[4] = (conv2d_nchw_1[4] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 132)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 8)]))
+              conv2d_nchw_1[11] = (conv2d_nchw_1[11] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 132)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 56)]))
+              conv2d_nchw_1[5] = (conv2d_nchw_1[5] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 133)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 8)]))
+              conv2d_nchw_1[12] = (conv2d_nchw_1[12] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 133)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 56)]))
+              conv2d_nchw_1[6] = (conv2d_nchw_1[6] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 134)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 8)]))
+              conv2d_nchw_1[13] = (conv2d_nchw_1[13] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 134)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 56)]))
+              conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 189)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 9)]))
+              conv2d_nchw_1[7] = (conv2d_nchw_1[7] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 189)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 57)]))
+              conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 190)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 9)]))
+              conv2d_nchw_1[8] = (conv2d_nchw_1[8] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 190)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 57)]))
+              conv2d_nchw_1[2] = (conv2d_nchw_1[2] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 191)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 9)]))
+              conv2d_nchw_1[9] = (conv2d_nchw_1[9] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 191)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 57)]))
+              conv2d_nchw_1[3] = (conv2d_nchw_1[3] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 192)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 9)]))
+              conv2d_nchw_1[10] = (conv2d_nchw_1[10] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 192)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 57)]))
+              conv2d_nchw_1[4] = (conv2d_nchw_1[4] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 193)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 9)]))
+              conv2d_nchw_1[11] = (conv2d_nchw_1[11] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 193)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 57)]))
+              conv2d_nchw_1[5] = (conv2d_nchw_1[5] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 194)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 9)]))
+              conv2d_nchw_1[12] = (conv2d_nchw_1[12] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 194)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 57)]))
+              conv2d_nchw_1[6] = (conv2d_nchw_1[6] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 195)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 9)]))
+              conv2d_nchw_1[13] = (conv2d_nchw_1[13] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 195)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 57)]))
+              conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 190)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 10)]))
+              conv2d_nchw_1[7] = (conv2d_nchw_1[7] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 190)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 58)]))
+              conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 191)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 10)]))
+              conv2d_nchw_1[8] = (conv2d_nchw_1[8] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 191)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 58)]))
+              conv2d_nchw_1[2] = (conv2d_nchw_1[2] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 192)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 10)]))
+              conv2d_nchw_1[9] = (conv2d_nchw_1[9] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 192)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 58)]))
+              conv2d_nchw_1[3] = (conv2d_nchw_1[3] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 193)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 10)]))
+              conv2d_nchw_1[10] = (conv2d_nchw_1[10] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 193)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 58)]))
+              conv2d_nchw_1[4] = (conv2d_nchw_1[4] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 194)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 10)]))
+              conv2d_nchw_1[11] = (conv2d_nchw_1[11] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 194)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 58)]))
+              conv2d_nchw_1[5] = (conv2d_nchw_1[5] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 195)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 10)]))
+              conv2d_nchw_1[12] = (conv2d_nchw_1[12] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 195)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 58)]))
+              conv2d_nchw_1[6] = (conv2d_nchw_1[6] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 196)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 10)]))
+              conv2d_nchw_1[13] = (conv2d_nchw_1[13] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 196)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 58)]))
+              conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 191)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 11)]))
+              conv2d_nchw_1[7] = (conv2d_nchw_1[7] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 191)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 59)]))
+              conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 192)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 11)]))
+              conv2d_nchw_1[8] = (conv2d_nchw_1[8] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 192)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 59)]))
+              conv2d_nchw_1[2] = (conv2d_nchw_1[2] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 193)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 11)]))
+              conv2d_nchw_1[9] = (conv2d_nchw_1[9] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 193)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 59)]))
+              conv2d_nchw_1[3] = (conv2d_nchw_1[3] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 194)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 11)]))
+              conv2d_nchw_1[10] = (conv2d_nchw_1[10] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 194)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 59)]))
+              conv2d_nchw_1[4] = (conv2d_nchw_1[4] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 195)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 11)]))
+              conv2d_nchw_1[11] = (conv2d_nchw_1[11] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 195)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 59)]))
+              conv2d_nchw_1[5] = (conv2d_nchw_1[5] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 196)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 11)]))
+              conv2d_nchw_1[12] = (conv2d_nchw_1[12] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 196)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 59)]))
+              conv2d_nchw_1[6] = (conv2d_nchw_1[6] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 197)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 11)]))
+              conv2d_nchw_1[13] = (conv2d_nchw_1[13] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 197)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 59)]))
+              conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 252)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 12)]))
+              conv2d_nchw_1[7] = (conv2d_nchw_1[7] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 252)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 60)]))
+              conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 253)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 12)]))
+              conv2d_nchw_1[8] = (conv2d_nchw_1[8] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 253)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 60)]))
+              conv2d_nchw_1[2] = (conv2d_nchw_1[2] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 254)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 12)]))
+              conv2d_nchw_1[9] = (conv2d_nchw_1[9] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 254)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 60)]))
+              conv2d_nchw_1[3] = (conv2d_nchw_1[3] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 255)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 12)]))
+              conv2d_nchw_1[10] = (conv2d_nchw_1[10] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 255)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 60)]))
+              conv2d_nchw_1[4] = (conv2d_nchw_1[4] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 256)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 12)]))
+              conv2d_nchw_1[11] = (conv2d_nchw_1[11] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 256)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 60)]))
+              conv2d_nchw_1[5] = (conv2d_nchw_1[5] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 257)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 12)]))
+              conv2d_nchw_1[12] = (conv2d_nchw_1[12] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 257)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 60)]))
+              conv2d_nchw_1[6] = (conv2d_nchw_1[6] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 258)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 12)]))
+              conv2d_nchw_1[13] = (conv2d_nchw_1[13] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 258)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 60)]))
+              conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 253)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 13)]))
+              conv2d_nchw_1[7] = (conv2d_nchw_1[7] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 253)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 61)]))
+              conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 254)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 13)]))
+              conv2d_nchw_1[8] = (conv2d_nchw_1[8] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 254)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 61)]))
+              conv2d_nchw_1[2] = (conv2d_nchw_1[2] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 255)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 13)]))
+              conv2d_nchw_1[9] = (conv2d_nchw_1[9] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 255)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 61)]))
+              conv2d_nchw_1[3] = (conv2d_nchw_1[3] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 256)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 13)]))
+              conv2d_nchw_1[10] = (conv2d_nchw_1[10] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 256)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 61)]))
+              conv2d_nchw_1[4] = (conv2d_nchw_1[4] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 257)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 13)]))
+              conv2d_nchw_1[11] = (conv2d_nchw_1[11] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 257)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 61)]))
+              conv2d_nchw_1[5] = (conv2d_nchw_1[5] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 258)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 13)]))
+              conv2d_nchw_1[12] = (conv2d_nchw_1[12] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 258)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 61)]))
+              conv2d_nchw_1[6] = (conv2d_nchw_1[6] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 259)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 13)]))
+              conv2d_nchw_1[13] = (conv2d_nchw_1[13] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 259)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 61)]))
+              conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 254)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 14)]))
+              conv2d_nchw_1[7] = (conv2d_nchw_1[7] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 254)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 62)]))
+              conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 255)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 14)]))
+              conv2d_nchw_1[8] = (conv2d_nchw_1[8] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 255)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 62)]))
+              conv2d_nchw_1[2] = (conv2d_nchw_1[2] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 256)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 14)]))
+              conv2d_nchw_1[9] = (conv2d_nchw_1[9] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 256)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 62)]))
+              conv2d_nchw_1[3] = (conv2d_nchw_1[3] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 257)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 14)]))
+              conv2d_nchw_1[10] = (conv2d_nchw_1[10] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 257)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 62)]))
+              conv2d_nchw_1[4] = (conv2d_nchw_1[4] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 258)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 14)]))
+              conv2d_nchw_1[11] = (conv2d_nchw_1[11] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 258)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 62)]))
+              conv2d_nchw_1[5] = (conv2d_nchw_1[5] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 259)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 14)]))
+              conv2d_nchw_1[12] = (conv2d_nchw_1[12] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 259)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 62)]))
+              conv2d_nchw_1[6] = (conv2d_nchw_1[6] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 260)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 14)]))
+              conv2d_nchw_1[13] = (conv2d_nchw_1[13] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 260)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 62)]))
+              conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 315)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 15)]))
+              conv2d_nchw_1[7] = (conv2d_nchw_1[7] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 315)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 63)]))
+              conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 316)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 15)]))
+              conv2d_nchw_1[8] = (conv2d_nchw_1[8] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 316)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 63)]))
+              conv2d_nchw_1[2] = (conv2d_nchw_1[2] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 317)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 15)]))
+              conv2d_nchw_1[9] = (conv2d_nchw_1[9] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 317)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 63)]))
+              conv2d_nchw_1[3] = (conv2d_nchw_1[3] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 318)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 15)]))
+              conv2d_nchw_1[10] = (conv2d_nchw_1[10] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 318)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 63)]))
+              conv2d_nchw_1[4] = (conv2d_nchw_1[4] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 319)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 15)]))
+              conv2d_nchw_1[11] = (conv2d_nchw_1[11] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 319)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 63)]))
+              conv2d_nchw_1[5] = (conv2d_nchw_1[5] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 320)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 15)]))
+              conv2d_nchw_1[12] = (conv2d_nchw_1[12] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 320)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 63)]))
+              conv2d_nchw_1[6] = (conv2d_nchw_1[6] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 321)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 15)]))
+              conv2d_nchw_1[13] = (conv2d_nchw_1[13] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 321)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 63)]))
+              conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 316)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 16)]))
+              conv2d_nchw_1[7] = (conv2d_nchw_1[7] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 316)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 64)]))
+              conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 317)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 16)]))
+              conv2d_nchw_1[8] = (conv2d_nchw_1[8] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 317)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 64)]))
+              conv2d_nchw_1[2] = (conv2d_nchw_1[2] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 318)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 16)]))
+              conv2d_nchw_1[9] = (conv2d_nchw_1[9] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 318)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 64)]))
+              conv2d_nchw_1[3] = (conv2d_nchw_1[3] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 319)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 16)]))
+              conv2d_nchw_1[10] = (conv2d_nchw_1[10] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 319)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 64)]))
+              conv2d_nchw_1[4] = (conv2d_nchw_1[4] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 320)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 16)]))
+              conv2d_nchw_1[11] = (conv2d_nchw_1[11] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 320)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 64)]))
+              conv2d_nchw_1[5] = (conv2d_nchw_1[5] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 321)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 16)]))
+              conv2d_nchw_1[12] = (conv2d_nchw_1[12] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 321)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 64)]))
+              conv2d_nchw_1[6] = (conv2d_nchw_1[6] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 322)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 16)]))
+              conv2d_nchw_1[13] = (conv2d_nchw_1[13] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 322)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 64)]))
+              conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 317)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 17)]))
+              conv2d_nchw_1[7] = (conv2d_nchw_1[7] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 317)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 65)]))
+              conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 318)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 17)]))
+              conv2d_nchw_1[8] = (conv2d_nchw_1[8] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 318)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 65)]))
+              conv2d_nchw_1[2] = (conv2d_nchw_1[2] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 319)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 17)]))
+              conv2d_nchw_1[9] = (conv2d_nchw_1[9] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 319)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 65)]))
+              conv2d_nchw_1[3] = (conv2d_nchw_1[3] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 320)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 17)]))
+              conv2d_nchw_1[10] = (conv2d_nchw_1[10] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 320)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 65)]))
+              conv2d_nchw_1[4] = (conv2d_nchw_1[4] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 321)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 17)]))
+              conv2d_nchw_1[11] = (conv2d_nchw_1[11] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 321)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 65)]))
+              conv2d_nchw_1[5] = (conv2d_nchw_1[5] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 322)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 17)]))
+              conv2d_nchw_1[12] = (conv2d_nchw_1[12] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 322)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 65)]))
+              conv2d_nchw_1[6] = (conv2d_nchw_1[6] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 323)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 17)]))
+              conv2d_nchw_1[13] = (conv2d_nchw_1[13] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 323)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 65)]))
+              conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 378)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 18)]))
+              conv2d_nchw_1[7] = (conv2d_nchw_1[7] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 378)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 66)]))
+              conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 379)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 18)]))
+              conv2d_nchw_1[8] = (conv2d_nchw_1[8] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 379)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 66)]))
+              conv2d_nchw_1[2] = (conv2d_nchw_1[2] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 380)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 18)]))
+              conv2d_nchw_1[9] = (conv2d_nchw_1[9] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 380)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 66)]))
+              conv2d_nchw_1[3] = (conv2d_nchw_1[3] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 381)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 18)]))
+              conv2d_nchw_1[10] = (conv2d_nchw_1[10] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 381)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 66)]))
+              conv2d_nchw_1[4] = (conv2d_nchw_1[4] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 382)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 18)]))
+              conv2d_nchw_1[11] = (conv2d_nchw_1[11] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 382)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 66)]))
+              conv2d_nchw_1[5] = (conv2d_nchw_1[5] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 383)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 18)]))
+              conv2d_nchw_1[12] = (conv2d_nchw_1[12] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 383)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 66)]))
+              conv2d_nchw_1[6] = (conv2d_nchw_1[6] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 384)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 18)]))
+              conv2d_nchw_1[13] = (conv2d_nchw_1[13] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 384)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 66)]))
+              conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 379)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 19)]))
+              conv2d_nchw_1[7] = (conv2d_nchw_1[7] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 379)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 67)]))
+              conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 380)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 19)]))
+              conv2d_nchw_1[8] = (conv2d_nchw_1[8] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 380)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 67)]))
+              conv2d_nchw_1[2] = (conv2d_nchw_1[2] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 381)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 19)]))
+              conv2d_nchw_1[9] = (conv2d_nchw_1[9] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 381)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 67)]))
+              conv2d_nchw_1[3] = (conv2d_nchw_1[3] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 382)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 19)]))
+              conv2d_nchw_1[10] = (conv2d_nchw_1[10] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 382)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 67)]))
+              conv2d_nchw_1[4] = (conv2d_nchw_1[4] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 383)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 19)]))
+              conv2d_nchw_1[11] = (conv2d_nchw_1[11] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 383)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 67)]))
+              conv2d_nchw_1[5] = (conv2d_nchw_1[5] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 384)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 19)]))
+              conv2d_nchw_1[12] = (conv2d_nchw_1[12] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 384)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 67)]))
+              conv2d_nchw_1[6] = (conv2d_nchw_1[6] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 385)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 19)]))
+              conv2d_nchw_1[13] = (conv2d_nchw_1[13] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 385)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 67)]))
+              conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 380)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 20)]))
+              conv2d_nchw_1[7] = (conv2d_nchw_1[7] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 380)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 68)]))
+              conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 381)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 20)]))
+              conv2d_nchw_1[8] = (conv2d_nchw_1[8] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 381)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 68)]))
+              conv2d_nchw_1[2] = (conv2d_nchw_1[2] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 382)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 20)]))
+              conv2d_nchw_1[9] = (conv2d_nchw_1[9] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 382)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 68)]))
+              conv2d_nchw_1[3] = (conv2d_nchw_1[3] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 383)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 20)]))
+              conv2d_nchw_1[10] = (conv2d_nchw_1[10] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 383)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 68)]))
+              conv2d_nchw_1[4] = (conv2d_nchw_1[4] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 384)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 20)]))
+              conv2d_nchw_1[11] = (conv2d_nchw_1[11] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 384)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 68)]))
+              conv2d_nchw_1[5] = (conv2d_nchw_1[5] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 385)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 20)]))
+              conv2d_nchw_1[12] = (conv2d_nchw_1[12] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 385)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 68)]))
+              conv2d_nchw_1[6] = (conv2d_nchw_1[6] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 386)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 20)]))
+              conv2d_nchw_1[13] = (conv2d_nchw_1[13] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 386)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 68)]))
+              conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 441)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 21)]))
+              conv2d_nchw_1[7] = (conv2d_nchw_1[7] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 441)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 69)]))
+              conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 442)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 21)]))
+              conv2d_nchw_1[8] = (conv2d_nchw_1[8] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 442)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 69)]))
+              conv2d_nchw_1[2] = (conv2d_nchw_1[2] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 443)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 21)]))
+              conv2d_nchw_1[9] = (conv2d_nchw_1[9] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 443)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 69)]))
+              conv2d_nchw_1[3] = (conv2d_nchw_1[3] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 444)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 21)]))
+              conv2d_nchw_1[10] = (conv2d_nchw_1[10] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 444)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 69)]))
+              conv2d_nchw_1[4] = (conv2d_nchw_1[4] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 445)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 21)]))
+              conv2d_nchw_1[11] = (conv2d_nchw_1[11] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 445)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 69)]))
+              conv2d_nchw_1[5] = (conv2d_nchw_1[5] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 446)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 21)]))
+              conv2d_nchw_1[12] = (conv2d_nchw_1[12] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 446)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 69)]))
+              conv2d_nchw_1[6] = (conv2d_nchw_1[6] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 447)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 21)]))
+              conv2d_nchw_1[13] = (conv2d_nchw_1[13] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 447)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 69)]))
+              conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 442)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 22)]))
+              conv2d_nchw_1[7] = (conv2d_nchw_1[7] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 442)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 70)]))
+              conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 443)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 22)]))
+              conv2d_nchw_1[8] = (conv2d_nchw_1[8] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 443)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 70)]))
+              conv2d_nchw_1[2] = (conv2d_nchw_1[2] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 444)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 22)]))
+              conv2d_nchw_1[9] = (conv2d_nchw_1[9] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 444)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 70)]))
+              conv2d_nchw_1[3] = (conv2d_nchw_1[3] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 445)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 22)]))
+              conv2d_nchw_1[10] = (conv2d_nchw_1[10] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 445)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 70)]))
+              conv2d_nchw_1[4] = (conv2d_nchw_1[4] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 446)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 22)]))
+              conv2d_nchw_1[11] = (conv2d_nchw_1[11] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 446)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 70)]))
+              conv2d_nchw_1[5] = (conv2d_nchw_1[5] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 447)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 22)]))
+              conv2d_nchw_1[12] = (conv2d_nchw_1[12] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 447)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 70)]))
+              conv2d_nchw_1[6] = (conv2d_nchw_1[6] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 448)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 22)]))
+              conv2d_nchw_1[13] = (conv2d_nchw_1[13] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 448)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 70)]))
+              conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 443)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 23)]))
+              conv2d_nchw_1[7] = (conv2d_nchw_1[7] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 443)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 71)]))
+              conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 444)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 23)]))
+              conv2d_nchw_1[8] = (conv2d_nchw_1[8] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 444)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 71)]))
+              conv2d_nchw_1[2] = (conv2d_nchw_1[2] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 445)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 23)]))
+              conv2d_nchw_1[9] = (conv2d_nchw_1[9] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 445)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 71)]))
+              conv2d_nchw_1[3] = (conv2d_nchw_1[3] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 446)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 23)]))
+              conv2d_nchw_1[10] = (conv2d_nchw_1[10] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 446)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 71)]))
+              conv2d_nchw_1[4] = (conv2d_nchw_1[4] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 447)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 23)]))
+              conv2d_nchw_1[11] = (conv2d_nchw_1[11] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 447)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 71)]))
+              conv2d_nchw_1[5] = (conv2d_nchw_1[5] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 448)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 23)]))
+              conv2d_nchw_1[12] = (conv2d_nchw_1[12] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 448)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 71)]))
+              conv2d_nchw_1[6] = (conv2d_nchw_1[6] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 449)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 23)]))
+              conv2d_nchw_1[13] = (conv2d_nchw_1[13] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 449)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 71)]))
             }
           }
         }
-        for (i1.inner: int32, 0, 8) {
-          compute[((((blockIdx.x*1568) + (floordiv(threadIdx.x, 49)*392)) + (i1.inner*49)) + floormod(threadIdx.x, 49))] = max((conv2d_nchw_1[i1.inner] + bias[(((blockIdx.x*32) + (floordiv(threadIdx.x, 49)*8)) + i1.inner)]), 0f32)
+        for (i3.inner: int32, 0, 7) {
+          compute[(((blockIdx.x*196) + (threadIdx.x*7)) + i3.inner)] = max((conv2d_nchw_1[i3.inner] + bias[((blockIdx.x*4) + floordiv(threadIdx.x, 7))]), 0f32)
+          compute[((((blockIdx.x*196) + (threadIdx.x*7)) + i3.inner) + 98)] = max((conv2d_nchw_1[(i3.inner + 7)] + bias[(((blockIdx.x*4) + floordiv(threadIdx.x, 7)) + 2)]), 0f32)
         }
       }
     }
@@ -345,7 +723,7 @@ We build the binary and check its correctness and performance.
 
  .. code-block:: none
 
-    Execution time of this operator: 0.423 ms
+    Execution time of this operator: 0.253 ms
 
 
 
@@ -393,20 +771,20 @@ They can be used for debugging and learning the behavior of the auto-scheduler.
     conv2d_nchw_nn_o_o_i, conv2d_nchw_nn_o_i = s[conv2d_nchw].split(conv2d_nchw_nn_o_i, factor=1)
     conv2d_nchw_nn_o_o_o_i, conv2d_nchw_nn_o_o_i = s[conv2d_nchw].split(conv2d_nchw_nn_o_o_i, factor=1)
     conv2d_nchw_nn_o_o_o_o, conv2d_nchw_nn_o_o_o_i = s[conv2d_nchw].split(conv2d_nchw_nn_o_o_o_i, factor=1)
-    conv2d_nchw_ff_o_i, conv2d_nchw_ff_i = s[conv2d_nchw].split(conv2d_nchw_ff, factor=8)
+    conv2d_nchw_ff_o_i, conv2d_nchw_ff_i = s[conv2d_nchw].split(conv2d_nchw_ff, factor=1)
     conv2d_nchw_ff_o_o_i, conv2d_nchw_ff_o_i = s[conv2d_nchw].split(conv2d_nchw_ff_o_i, factor=1)
-    conv2d_nchw_ff_o_o_o_i, conv2d_nchw_ff_o_o_i = s[conv2d_nchw].split(conv2d_nchw_ff_o_o_i, factor=4)
-    conv2d_nchw_ff_o_o_o_o, conv2d_nchw_ff_o_o_o_i = s[conv2d_nchw].split(conv2d_nchw_ff_o_o_o_i, factor=1)
+    conv2d_nchw_ff_o_o_o_i, conv2d_nchw_ff_o_o_i = s[conv2d_nchw].split(conv2d_nchw_ff_o_o_i, factor=2)
+    conv2d_nchw_ff_o_o_o_o, conv2d_nchw_ff_o_o_o_i = s[conv2d_nchw].split(conv2d_nchw_ff_o_o_o_i, factor=2)
     conv2d_nchw_yy_o_i, conv2d_nchw_yy_i = s[conv2d_nchw].split(conv2d_nchw_yy, factor=1)
     conv2d_nchw_yy_o_o_i, conv2d_nchw_yy_o_i = s[conv2d_nchw].split(conv2d_nchw_yy_o_i, factor=1)
     conv2d_nchw_yy_o_o_o_i, conv2d_nchw_yy_o_o_i = s[conv2d_nchw].split(conv2d_nchw_yy_o_o_i, factor=7)
     conv2d_nchw_yy_o_o_o_o, conv2d_nchw_yy_o_o_o_i = s[conv2d_nchw].split(conv2d_nchw_yy_o_o_o_i, factor=1)
     conv2d_nchw_xx_o_i, conv2d_nchw_xx_i = s[conv2d_nchw].split(conv2d_nchw_xx, factor=1)
-    conv2d_nchw_xx_o_o_i, conv2d_nchw_xx_o_i = s[conv2d_nchw].split(conv2d_nchw_xx_o_i, factor=1)
-    conv2d_nchw_xx_o_o_o_i, conv2d_nchw_xx_o_o_i = s[conv2d_nchw].split(conv2d_nchw_xx_o_o_i, factor=7)
+    conv2d_nchw_xx_o_o_i, conv2d_nchw_xx_o_i = s[conv2d_nchw].split(conv2d_nchw_xx_o_i, factor=7)
+    conv2d_nchw_xx_o_o_o_i, conv2d_nchw_xx_o_o_i = s[conv2d_nchw].split(conv2d_nchw_xx_o_o_i, factor=1)
     conv2d_nchw_xx_o_o_o_o, conv2d_nchw_xx_o_o_o_i = s[conv2d_nchw].split(conv2d_nchw_xx_o_o_o_i, factor=1)
-    conv2d_nchw_rc_o_i, conv2d_nchw_rc_i = s[conv2d_nchw].split(conv2d_nchw_rc, factor=2)
-    conv2d_nchw_rc_o_o, conv2d_nchw_rc_o_i = s[conv2d_nchw].split(conv2d_nchw_rc_o_i, factor=2)
+    conv2d_nchw_rc_o_i, conv2d_nchw_rc_i = s[conv2d_nchw].split(conv2d_nchw_rc, factor=1)
+    conv2d_nchw_rc_o_o, conv2d_nchw_rc_o_i = s[conv2d_nchw].split(conv2d_nchw_rc_o_i, factor=8)
     conv2d_nchw_ry_o_i, conv2d_nchw_ry_i = s[conv2d_nchw].split(conv2d_nchw_ry, factor=1)
     conv2d_nchw_ry_o_o, conv2d_nchw_ry_o_i = s[conv2d_nchw].split(conv2d_nchw_ry_o_i, factor=1)
     conv2d_nchw_rx_o_i, conv2d_nchw_rx_i = s[conv2d_nchw].split(conv2d_nchw_rx, factor=1)
@@ -415,14 +793,14 @@ They can be used for debugging and learning the behavior of the auto-scheduler.
     compute_i0_o_i, compute_i0_i = s[compute].split(compute_i0, factor=1)
     compute_i0_o_o_i, compute_i0_o_i = s[compute].split(compute_i0_o_i, factor=1)
     compute_i0_o_o_o, compute_i0_o_o_i = s[compute].split(compute_i0_o_o_i, factor=1)
-    compute_i1_o_i, compute_i1_i = s[compute].split(compute_i1, factor=8)
-    compute_i1_o_o_i, compute_i1_o_i = s[compute].split(compute_i1_o_i, factor=4)
-    compute_i1_o_o_o, compute_i1_o_o_i = s[compute].split(compute_i1_o_o_i, factor=1)
+    compute_i1_o_i, compute_i1_i = s[compute].split(compute_i1, factor=1)
+    compute_i1_o_o_i, compute_i1_o_i = s[compute].split(compute_i1_o_i, factor=2)
+    compute_i1_o_o_o, compute_i1_o_o_i = s[compute].split(compute_i1_o_o_i, factor=2)
     compute_i2_o_i, compute_i2_i = s[compute].split(compute_i2, factor=1)
     compute_i2_o_o_i, compute_i2_o_i = s[compute].split(compute_i2_o_i, factor=7)
     compute_i2_o_o_o, compute_i2_o_o_i = s[compute].split(compute_i2_o_o_i, factor=1)
-    compute_i3_o_i, compute_i3_i = s[compute].split(compute_i3, factor=1)
-    compute_i3_o_o_i, compute_i3_o_i = s[compute].split(compute_i3_o_i, factor=7)
+    compute_i3_o_i, compute_i3_i = s[compute].split(compute_i3, factor=7)
+    compute_i3_o_o_i, compute_i3_o_i = s[compute].split(compute_i3_o_i, factor=1)
     compute_i3_o_o_o, compute_i3_o_o_i = s[compute].split(compute_i3_o_o_i, factor=1)
     s[compute].reorder(compute_i0_o_o_o, compute_i1_o_o_o, compute_i2_o_o_o, compute_i3_o_o_o, compute_i0_o_o_i, compute_i1_o_o_i, compute_i2_o_o_i, compute_i3_o_o_i, compute_i0_o_i, compute_i1_o_i, compute_i2_o_i, compute_i3_o_i, compute_i0_i, compute_i1_i, compute_i2_i, compute_i3_i)
     s[conv2d_nchw].compute_at(s[compute], compute_i3_o_i)
@@ -442,14 +820,14 @@ They can be used for debugging and learning the behavior of the auto-scheduler.
     kernel_shared_ax0_ax1_fused_ax2_fused_ax3_fused = s[kernel_shared].fuse(kernel_shared_ax0, kernel_shared_ax1, kernel_shared_ax2, kernel_shared_ax3)
     kernel_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o, kernel_shared_ax0_ax1_fused_ax2_fused_ax3_fused_i = s[kernel_shared].split(kernel_shared_ax0_ax1_fused_ax2_fused_ax3_fused, factor=1)
     s[kernel_shared].vectorize(kernel_shared_ax0_ax1_fused_ax2_fused_ax3_fused_i)
-    kernel_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o_o, kernel_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o_i = s[kernel_shared].split(kernel_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o, factor=196)
+    kernel_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o_o, kernel_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o_i = s[kernel_shared].split(kernel_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o, factor=14)
     s[kernel_shared].bind(kernel_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o_i, te.thread_axis("threadIdx.x"))
     pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused = s[pad_temp_shared].fuse(pad_temp_shared_ax0, pad_temp_shared_ax1, pad_temp_shared_ax2, pad_temp_shared_ax3)
-    pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o, pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused_i = s[pad_temp_shared].split(pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused, factor=1)
+    pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o, pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused_i = s[pad_temp_shared].split(pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused, factor=18)
     s[pad_temp_shared].vectorize(pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused_i)
-    pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o_o, pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o_i = s[pad_temp_shared].split(pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o, factor=196)
+    pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o_o, pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o_i = s[pad_temp_shared].split(pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o, factor=14)
     s[pad_temp_shared].bind(pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o_i, te.thread_axis("threadIdx.x"))
-    s[conv2d_nchw].pragma(conv2d_nchw_nn_o_o_o_o, "auto_unroll_max_step", 16)
+    s[conv2d_nchw].pragma(conv2d_nchw_nn_o_o_o_o, "auto_unroll_max_step", 512)
     s[conv2d_nchw].pragma(conv2d_nchw_nn_o_o_o_o, "unroll_explicit", True)
 
     CUDA source code:
@@ -467,54 +845,414 @@ They can be used for debugging and learning the behavior of the auto-scheduler.
       #define int64_t long long
       #define uint64_t unsigned long long
     #endif
-    extern "C" __global__ void __launch_bounds__(196) default_function_kernel0(float* __restrict__ data, float* __restrict__ kernel, float* __restrict__ compute, float* __restrict__ bias) {
-      float conv2d_nchw[8];
-      __shared__ float pad_temp_shared[252];
-      __shared__ float kernel_shared[384];
+    extern "C" __global__ void __launch_bounds__(14) default_function_kernel0(float* __restrict__ data, float* __restrict__ kernel, float* __restrict__ compute, float* __restrict__ bias) {
+      float conv2d_nchw[14];
+      __shared__ float pad_temp_shared[504];
+      __shared__ float kernel_shared[96];
       conv2d_nchw[0] = 0.000000e+00f;
+      conv2d_nchw[7] = 0.000000e+00f;
       conv2d_nchw[1] = 0.000000e+00f;
+      conv2d_nchw[8] = 0.000000e+00f;
       conv2d_nchw[2] = 0.000000e+00f;
+      conv2d_nchw[9] = 0.000000e+00f;
       conv2d_nchw[3] = 0.000000e+00f;
+      conv2d_nchw[10] = 0.000000e+00f;
       conv2d_nchw[4] = 0.000000e+00f;
+      conv2d_nchw[11] = 0.000000e+00f;
       conv2d_nchw[5] = 0.000000e+00f;
+      conv2d_nchw[12] = 0.000000e+00f;
       conv2d_nchw[6] = 0.000000e+00f;
-      conv2d_nchw[7] = 0.000000e+00f;
-      for (int rc_outer_outer = 0; rc_outer_outer < 128; ++rc_outer_outer) {
+      conv2d_nchw[13] = 0.000000e+00f;
+      for (int rc_outer_outer = 0; rc_outer_outer < 64; ++rc_outer_outer) {
         for (int ry_outer_outer = 0; ry_outer_outer < 3; ++ry_outer_outer) {
           __syncthreads();
-          pad_temp_shared[((int)threadIdx.x)] = (((((1 <= (((((int)threadIdx.x) % 63) / 9) + ry_outer_outer)) && ((((((int)threadIdx.x) % 63) / 9) + ry_outer_outer) < 8)) && (1 <= (((int)threadIdx.x) % 9))) && ((((int)threadIdx.x) % 9) < 8)) ? data[(((((rc_outer_outer * 196) + ((((int)threadIdx.x) / 9) * 7)) + (ry_outer_outer * 7)) + (((int)threadIdx.x) % 9)) - 8)] : 0.000000e+00f);
-          if (((int)threadIdx.x) < 56) {
-            pad_temp_shared[(((int)threadIdx.x) + 196)] = (((((1 <= (((((int)threadIdx.x) + 7) / 9) + ry_outer_outer)) && ((((((int)threadIdx.x) + 7) / 9) + ry_outer_outer) < 8)) && (1 <= ((((int)threadIdx.x) + 7) % 9))) && (((((int)threadIdx.x) + 7) % 9) < 8)) ? data[(((((rc_outer_outer * 196) + (((((int)threadIdx.x) + 196) / 9) * 7)) + (ry_outer_outer * 7)) + ((((int)threadIdx.x) + 7) % 9)) - 8)] : 0.000000e+00f);
-          }
-          kernel_shared[((int)threadIdx.x)] = kernel[((((((((int)blockIdx.x) * 147456) + ((((int)threadIdx.x) / 12) * 4608)) + (rc_outer_outer * 36)) + (((((int)threadIdx.x) % 12) / 3) * 9)) + (ry_outer_outer * 3)) + (((int)threadIdx.x) % 3))];
-          if (((int)threadIdx.x) < 188) {
-            kernel_shared[(((int)threadIdx.x) + 196)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 196) / 12) * 4608)) + (rc_outer_outer * 36)) + ((((((int)threadIdx.x) + 4) % 12) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 1) % 3))];
+          pad_temp_shared[(((int)threadIdx.x) * 18)] = 0.000000e+00f;
+          pad_temp_shared[((((int)threadIdx.x) * 18) + 1)] = (((1 <= (ry_outer_outer + ((((int)threadIdx.x) * 2) % 7))) && ((ry_outer_outer + ((((int)threadIdx.x) * 2) % 7)) < 8)) ? data[((((rc_outer_outer * 392) + (((int)threadIdx.x) * 14)) + (ry_outer_outer * 7)) - 7)] : 0.000000e+00f);
+          pad_temp_shared[((((int)threadIdx.x) * 18) + 2)] = (((1 <= (ry_outer_outer + ((((int)threadIdx.x) * 2) % 7))) && ((ry_outer_outer + ((((int)threadIdx.x) * 2) % 7)) < 8)) ? data[((((rc_outer_outer * 392) + (((int)threadIdx.x) * 14)) + (ry_outer_outer * 7)) - 6)] : 0.000000e+00f);
+          pad_temp_shared[((((int)threadIdx.x) * 18) + 3)] = (((1 <= (ry_outer_outer + ((((int)threadIdx.x) * 2) % 7))) && ((ry_outer_outer + ((((int)threadIdx.x) * 2) % 7)) < 8)) ? data[((((rc_outer_outer * 392) + (((int)threadIdx.x) * 14)) + (ry_outer_outer * 7)) - 5)] : 0.000000e+00f);
+          pad_temp_shared[((((int)threadIdx.x) * 18) + 4)] = (((1 <= (ry_outer_outer + ((((int)threadIdx.x) * 2) % 7))) && ((ry_outer_outer + ((((int)threadIdx.x) * 2) % 7)) < 8)) ? data[((((rc_outer_outer * 392) + (((int)threadIdx.x) * 14)) + (ry_outer_outer * 7)) - 4)] : 0.000000e+00f);
+          pad_temp_shared[((((int)threadIdx.x) * 18) + 5)] = (((1 <= (ry_outer_outer + ((((int)threadIdx.x) * 2) % 7))) && ((ry_outer_outer + ((((int)threadIdx.x) * 2) % 7)) < 8)) ? data[((((rc_outer_outer * 392) + (((int)threadIdx.x) * 14)) + (ry_outer_outer * 7)) - 3)] : 0.000000e+00f);
+          pad_temp_shared[((((int)threadIdx.x) * 18) + 6)] = (((1 <= (ry_outer_outer + ((((int)threadIdx.x) * 2) % 7))) && ((ry_outer_outer + ((((int)threadIdx.x) * 2) % 7)) < 8)) ? data[((((rc_outer_outer * 392) + (((int)threadIdx.x) * 14)) + (ry_outer_outer * 7)) - 2)] : 0.000000e+00f);
+          pad_temp_shared[((((int)threadIdx.x) * 18) + 7)] = (((1 <= (ry_outer_outer + ((((int)threadIdx.x) * 2) % 7))) && ((ry_outer_outer + ((((int)threadIdx.x) * 2) % 7)) < 8)) ? data[((((rc_outer_outer * 392) + (((int)threadIdx.x) * 14)) + (ry_outer_outer * 7)) - 1)] : 0.000000e+00f);
+          pad_temp_shared[((((int)threadIdx.x) * 18) + 8)] = 0.000000e+00f;
+          pad_temp_shared[((((int)threadIdx.x) * 18) + 9)] = 0.000000e+00f;
+          pad_temp_shared[((((int)threadIdx.x) * 18) + 10)] = (((1 <= (ry_outer_outer + (((((int)threadIdx.x) * 2) + 1) % 7))) && ((ry_outer_outer + (((((int)threadIdx.x) * 2) + 1) % 7)) < 8)) ? data[(((rc_outer_outer * 392) + (((int)threadIdx.x) * 14)) + (ry_outer_outer * 7))] : 0.000000e+00f);
+          pad_temp_shared[((((int)threadIdx.x) * 18) + 11)] = (((1 <= (ry_outer_outer + (((((int)threadIdx.x) * 2) + 1) % 7))) && ((ry_outer_outer + (((((int)threadIdx.x) * 2) + 1) % 7)) < 8)) ? data[((((rc_outer_outer * 392) + (((int)threadIdx.x) * 14)) + (ry_outer_outer * 7)) + 1)] : 0.000000e+00f);
+          pad_temp_shared[((((int)threadIdx.x) * 18) + 12)] = (((1 <= (ry_outer_outer + (((((int)threadIdx.x) * 2) + 1) % 7))) && ((ry_outer_outer + (((((int)threadIdx.x) * 2) + 1) % 7)) < 8)) ? data[((((rc_outer_outer * 392) + (((int)threadIdx.x) * 14)) + (ry_outer_outer * 7)) + 2)] : 0.000000e+00f);
+          pad_temp_shared[((((int)threadIdx.x) * 18) + 13)] = (((1 <= (ry_outer_outer + (((((int)threadIdx.x) * 2) + 1) % 7))) && ((ry_outer_outer + (((((int)threadIdx.x) * 2) + 1) % 7)) < 8)) ? data[((((rc_outer_outer * 392) + (((int)threadIdx.x) * 14)) + (ry_outer_outer * 7)) + 3)] : 0.000000e+00f);
+          pad_temp_shared[((((int)threadIdx.x) * 18) + 14)] = (((1 <= (ry_outer_outer + (((((int)threadIdx.x) * 2) + 1) % 7))) && ((ry_outer_outer + (((((int)threadIdx.x) * 2) + 1) % 7)) < 8)) ? data[((((rc_outer_outer * 392) + (((int)threadIdx.x) * 14)) + (ry_outer_outer * 7)) + 4)] : 0.000000e+00f);
+          pad_temp_shared[((((int)threadIdx.x) * 18) + 15)] = (((1 <= (ry_outer_outer + (((((int)threadIdx.x) * 2) + 1) % 7))) && ((ry_outer_outer + (((((int)threadIdx.x) * 2) + 1) % 7)) < 8)) ? data[((((rc_outer_outer * 392) + (((int)threadIdx.x) * 14)) + (ry_outer_outer * 7)) + 5)] : 0.000000e+00f);
+          pad_temp_shared[((((int)threadIdx.x) * 18) + 16)] = (((1 <= (ry_outer_outer + (((((int)threadIdx.x) * 2) + 1) % 7))) && ((ry_outer_outer + (((((int)threadIdx.x) * 2) + 1) % 7)) < 8)) ? data[((((rc_outer_outer * 392) + (((int)threadIdx.x) * 14)) + (ry_outer_outer * 7)) + 6)] : 0.000000e+00f);
+          pad_temp_shared[((((int)threadIdx.x) * 18) + 17)] = 0.000000e+00f;
+          pad_temp_shared[((((int)threadIdx.x) * 18) + 252)] = 0.000000e+00f;
+          pad_temp_shared[((((int)threadIdx.x) * 18) + 253)] = (((1 <= (ry_outer_outer + ((((int)threadIdx.x) * 2) % 7))) && ((ry_outer_outer + ((((int)threadIdx.x) * 2) % 7)) < 8)) ? data[((((rc_outer_outer * 392) + (((int)threadIdx.x) * 14)) + (ry_outer_outer * 7)) + 189)] : 0.000000e+00f);
+          pad_temp_shared[((((int)threadIdx.x) * 18) + 254)] = (((1 <= (ry_outer_outer + ((((int)threadIdx.x) * 2) % 7))) && ((ry_outer_outer + ((((int)threadIdx.x) * 2) % 7)) < 8)) ? data[((((rc_outer_outer * 392) + (((int)threadIdx.x) * 14)) + (ry_outer_outer * 7)) + 190)] : 0.000000e+00f);
+          pad_temp_shared[((((int)threadIdx.x) * 18) + 255)] = (((1 <= (ry_outer_outer + ((((int)threadIdx.x) * 2) % 7))) && ((ry_outer_outer + ((((int)threadIdx.x) * 2) % 7)) < 8)) ? data[((((rc_outer_outer * 392) + (((int)threadIdx.x) * 14)) + (ry_outer_outer * 7)) + 191)] : 0.000000e+00f);
+          pad_temp_shared[((((int)threadIdx.x) * 18) + 256)] = (((1 <= (ry_outer_outer + ((((int)threadIdx.x) * 2) % 7))) && ((ry_outer_outer + ((((int)threadIdx.x) * 2) % 7)) < 8)) ? data[((((rc_outer_outer * 392) + (((int)threadIdx.x) * 14)) + (ry_outer_outer * 7)) + 192)] : 0.000000e+00f);
+          pad_temp_shared[((((int)threadIdx.x) * 18) + 257)] = (((1 <= (ry_outer_outer + ((((int)threadIdx.x) * 2) % 7))) && ((ry_outer_outer + ((((int)threadIdx.x) * 2) % 7)) < 8)) ? data[((((rc_outer_outer * 392) + (((int)threadIdx.x) * 14)) + (ry_outer_outer * 7)) + 193)] : 0.000000e+00f);
+          pad_temp_shared[((((int)threadIdx.x) * 18) + 258)] = (((1 <= (ry_outer_outer + ((((int)threadIdx.x) * 2) % 7))) && ((ry_outer_outer + ((((int)threadIdx.x) * 2) % 7)) < 8)) ? data[((((rc_outer_outer * 392) + (((int)threadIdx.x) * 14)) + (ry_outer_outer * 7)) + 194)] : 0.000000e+00f);
+          pad_temp_shared[((((int)threadIdx.x) * 18) + 259)] = (((1 <= (ry_outer_outer + ((((int)threadIdx.x) * 2) % 7))) && ((ry_outer_outer + ((((int)threadIdx.x) * 2) % 7)) < 8)) ? data[((((rc_outer_outer * 392) + (((int)threadIdx.x) * 14)) + (ry_outer_outer * 7)) + 195)] : 0.000000e+00f);
+          pad_temp_shared[((((int)threadIdx.x) * 18) + 260)] = 0.000000e+00f;
+          pad_temp_shared[((((int)threadIdx.x) * 18) + 261)] = 0.000000e+00f;
+          pad_temp_shared[((((int)threadIdx.x) * 18) + 262)] = (((1 <= (ry_outer_outer + (((((int)threadIdx.x) * 2) + 1) % 7))) && ((ry_outer_outer + (((((int)threadIdx.x) * 2) + 1) % 7)) < 8)) ? data[((((rc_outer_outer * 392) + (((int)threadIdx.x) * 14)) + (ry_outer_outer * 7)) + 196)] : 0.000000e+00f);
+          pad_temp_shared[((((int)threadIdx.x) * 18) + 263)] = (((1 <= (ry_outer_outer + (((((int)threadIdx.x) * 2) + 1) % 7))) && ((ry_outer_outer + (((((int)threadIdx.x) * 2) + 1) % 7)) < 8)) ? data[((((rc_outer_outer * 392) + (((int)threadIdx.x) * 14)) + (ry_outer_outer * 7)) + 197)] : 0.000000e+00f);
+          pad_temp_shared[((((int)threadIdx.x) * 18) + 264)] = (((1 <= (ry_outer_outer + (((((int)threadIdx.x) * 2) + 1) % 7))) && ((ry_outer_outer + (((((int)threadIdx.x) * 2) + 1) % 7)) < 8)) ? data[((((rc_outer_outer * 392) + (((int)threadIdx.x) * 14)) + (ry_outer_outer * 7)) + 198)] : 0.000000e+00f);
+          pad_temp_shared[((((int)threadIdx.x) * 18) + 265)] = (((1 <= (ry_outer_outer + (((((int)threadIdx.x) * 2) + 1) % 7))) && ((ry_outer_outer + (((((int)threadIdx.x) * 2) + 1) % 7)) < 8)) ? data[((((rc_outer_outer * 392) + (((int)threadIdx.x) * 14)) + (ry_outer_outer * 7)) + 199)] : 0.000000e+00f);
+          pad_temp_shared[((((int)threadIdx.x) * 18) + 266)] = (((1 <= (ry_outer_outer + (((((int)threadIdx.x) * 2) + 1) % 7))) && ((ry_outer_outer + (((((int)threadIdx.x) * 2) + 1) % 7)) < 8)) ? data[((((rc_outer_outer * 392) + (((int)threadIdx.x) * 14)) + (ry_outer_outer * 7)) + 200)] : 0.000000e+00f);
+          pad_temp_shared[((((int)threadIdx.x) * 18) + 267)] = (((1 <= (ry_outer_outer + (((((int)threadIdx.x) * 2) + 1) % 7))) && ((ry_outer_outer + (((((int)threadIdx.x) * 2) + 1) % 7)) < 8)) ? data[((((rc_outer_outer * 392) + (((int)threadIdx.x) * 14)) + (ry_outer_outer * 7)) + 201)] : 0.000000e+00f);
+          pad_temp_shared[((((int)threadIdx.x) * 18) + 268)] = (((1 <= (ry_outer_outer + (((((int)threadIdx.x) * 2) + 1) % 7))) && ((ry_outer_outer + (((((int)threadIdx.x) * 2) + 1) % 7)) < 8)) ? data[((((rc_outer_outer * 392) + (((int)threadIdx.x) * 14)) + (ry_outer_outer * 7)) + 202)] : 0.000000e+00f);
+          pad_temp_shared[((((int)threadIdx.x) * 18) + 269)] = 0.000000e+00f;
+          kernel_shared[((int)threadIdx.x)] = kernel[(((((((int)blockIdx.x) * 18432) + (rc_outer_outer * 72)) + ((((int)threadIdx.x) / 3) * 9)) + (ry_outer_outer * 3)) + (((int)threadIdx.x) % 3))];
+          kernel_shared[(((int)threadIdx.x) + 14)] = kernel[((((((((int)blockIdx.x) * 18432) + (((((int)threadIdx.x) + 14) / 24) * 4608)) + (rc_outer_outer * 72)) + ((((((int)threadIdx.x) + 14) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 2) % 3))];
+          kernel_shared[(((int)threadIdx.x) + 28)] = kernel[((((((((int)blockIdx.x) * 18432) + (((((int)threadIdx.x) + 28) / 24) * 4608)) + (rc_outer_outer * 72)) + (((((int)threadIdx.x) + 4) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 1) % 3))];
+          kernel_shared[(((int)threadIdx.x) + 42)] = kernel[((((((((int)blockIdx.x) * 18432) + (((((int)threadIdx.x) + 42) / 24) * 4608)) + (rc_outer_outer * 72)) + ((((((int)threadIdx.x) / 3) + 6) & 7) * 9)) + (ry_outer_outer * 3)) + (((int)threadIdx.x) % 3))];
+          kernel_shared[(((int)threadIdx.x) + 56)] = kernel[((((((((int)blockIdx.x) * 18432) + (((((int)threadIdx.x) + 56) / 24) * 4608)) + (rc_outer_outer * 72)) + (((((int)threadIdx.x) + 8) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 2) % 3))];
+          kernel_shared[(((int)threadIdx.x) + 70)] = kernel[((((((((int)blockIdx.x) * 18432) + (((((int)threadIdx.x) + 70) / 24) * 4608)) + (rc_outer_outer * 72)) + ((((((int)threadIdx.x) + 22) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 1) % 3))];
+          if (((int)threadIdx.x) < 12) {
+            kernel_shared[(((int)threadIdx.x) + 84)] = kernel[(((((((((int)blockIdx.x) * 18432) + (((((int)threadIdx.x) + 84) / 24) * 4608)) + (rc_outer_outer * 72)) + ((((int)threadIdx.x) / 3) * 9)) + (ry_outer_outer * 3)) + (((int)threadIdx.x) % 3)) + 36)];
           }
           __syncthreads();
-          for (int rc_outer_inner = 0; rc_outer_inner < 2; ++rc_outer_inner) {
-            for (int rx_outer_inner = 0; rx_outer_inner < 3; ++rx_outer_inner) {
-              conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[((((rc_outer_inner * 126) + (((((int)threadIdx.x) % 49) / 7) * 9)) + rx_outer_inner) + (((int)threadIdx.x) % 7))] * kernel_shared[((((((int)threadIdx.x) / 49) * 96) + (rc_outer_inner * 6)) + rx_outer_inner)]));
-              conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[((((rc_outer_inner * 126) + (((((int)threadIdx.x) % 49) / 7) * 9)) + rx_outer_inner) + (((int)threadIdx.x) % 7))] * kernel_shared[(((((((int)threadIdx.x) / 49) * 96) + (rc_outer_inner * 6)) + rx_outer_inner) + 12)]));
-              conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[((((rc_outer_inner * 126) + (((((int)threadIdx.x) % 49) / 7) * 9)) + rx_outer_inner) + (((int)threadIdx.x) % 7))] * kernel_shared[(((((((int)threadIdx.x) / 49) * 96) + (rc_outer_inner * 6)) + rx_outer_inner) + 24)]));
-              conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[((((rc_outer_inner * 126) + (((((int)threadIdx.x) % 49) / 7) * 9)) + rx_outer_inner) + (((int)threadIdx.x) % 7))] * kernel_shared[(((((((int)threadIdx.x) / 49) * 96) + (rc_outer_inner * 6)) + rx_outer_inner) + 36)]));
-              conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[((((rc_outer_inner * 126) + (((((int)threadIdx.x) % 49) / 7) * 9)) + rx_outer_inner) + (((int)threadIdx.x) % 7))] * kernel_shared[(((((((int)threadIdx.x) / 49) * 96) + (rc_outer_inner * 6)) + rx_outer_inner) + 48)]));
-              conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[((((rc_outer_inner * 126) + (((((int)threadIdx.x) % 49) / 7) * 9)) + rx_outer_inner) + (((int)threadIdx.x) % 7))] * kernel_shared[(((((((int)threadIdx.x) / 49) * 96) + (rc_outer_inner * 6)) + rx_outer_inner) + 60)]));
-              conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[((((rc_outer_inner * 126) + (((((int)threadIdx.x) % 49) / 7) * 9)) + rx_outer_inner) + (((int)threadIdx.x) % 7))] * kernel_shared[(((((((int)threadIdx.x) / 49) * 96) + (rc_outer_inner * 6)) + rx_outer_inner) + 72)]));
-              conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[((((rc_outer_inner * 126) + (((((int)threadIdx.x) % 49) / 7) * 9)) + rx_outer_inner) + (((int)threadIdx.x) % 7))] * kernel_shared[(((((((int)threadIdx.x) / 49) * 96) + (rc_outer_inner * 6)) + rx_outer_inner) + 84)]));
-              conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[(((((rc_outer_inner * 126) + (((((int)threadIdx.x) % 49) / 7) * 9)) + rx_outer_inner) + (((int)threadIdx.x) % 7)) + 63)] * kernel_shared[(((((((int)threadIdx.x) / 49) * 96) + (rc_outer_inner * 6)) + rx_outer_inner) + 3)]));
-              conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[(((((rc_outer_inner * 126) + (((((int)threadIdx.x) % 49) / 7) * 9)) + rx_outer_inner) + (((int)threadIdx.x) % 7)) + 63)] * kernel_shared[(((((((int)threadIdx.x) / 49) * 96) + (rc_outer_inner * 6)) + rx_outer_inner) + 15)]));
-              conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[(((((rc_outer_inner * 126) + (((((int)threadIdx.x) % 49) / 7) * 9)) + rx_outer_inner) + (((int)threadIdx.x) % 7)) + 63)] * kernel_shared[(((((((int)threadIdx.x) / 49) * 96) + (rc_outer_inner * 6)) + rx_outer_inner) + 27)]));
-              conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[(((((rc_outer_inner * 126) + (((((int)threadIdx.x) % 49) / 7) * 9)) + rx_outer_inner) + (((int)threadIdx.x) % 7)) + 63)] * kernel_shared[(((((((int)threadIdx.x) / 49) * 96) + (rc_outer_inner * 6)) + rx_outer_inner) + 39)]));
-              conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[(((((rc_outer_inner * 126) + (((((int)threadIdx.x) % 49) / 7) * 9)) + rx_outer_inner) + (((int)threadIdx.x) % 7)) + 63)] * kernel_shared[(((((((int)threadIdx.x) / 49) * 96) + (rc_outer_inner * 6)) + rx_outer_inner) + 51)]));
-              conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[(((((rc_outer_inner * 126) + (((((int)threadIdx.x) % 49) / 7) * 9)) + rx_outer_inner) + (((int)threadIdx.x) % 7)) + 63)] * kernel_shared[(((((((int)threadIdx.x) / 49) * 96) + (rc_outer_inner * 6)) + rx_outer_inner) + 63)]));
-              conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[(((((rc_outer_inner * 126) + (((((int)threadIdx.x) % 49) / 7) * 9)) + rx_outer_inner) + (((int)threadIdx.x) % 7)) + 63)] * kernel_shared[(((((((int)threadIdx.x) / 49) * 96) + (rc_outer_inner * 6)) + rx_outer_inner) + 75)]));
-              conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[(((((rc_outer_inner * 126) + (((((int)threadIdx.x) % 49) / 7) * 9)) + rx_outer_inner) + (((int)threadIdx.x) % 7)) + 63)] * kernel_shared[(((((((int)threadIdx.x) / 49) * 96) + (rc_outer_inner * 6)) + rx_outer_inner) + 87)]));
-            }
-          }
+          conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[((((int)threadIdx.x) % 7) * 9)] * kernel_shared[((((int)threadIdx.x) / 7) * 24)]));
+          conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[((((int)threadIdx.x) % 7) * 9)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 48)]));
+          conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 1)] * kernel_shared[((((int)threadIdx.x) / 7) * 24)]));
+          conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 1)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 48)]));
+          conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 2)] * kernel_shared[((((int)threadIdx.x) / 7) * 24)]));
+          conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 2)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 48)]));
+          conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 3)] * kernel_shared[((((int)threadIdx.x) / 7) * 24)]));
+          conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 3)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 48)]));
+          conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 4)] * kernel_shared[((((int)threadIdx.x) / 7) * 24)]));
+          conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 4)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 48)]));
+          conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 5)] * kernel_shared[((((int)threadIdx.x) / 7) * 24)]));
+          conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 5)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 48)]));
+          conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 6)] * kernel_shared[((((int)threadIdx.x) / 7) * 24)]));
+          conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 6)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 48)]));
+          conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 1)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 1)]));
+          conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 1)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 49)]));
+          conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 2)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 1)]));
+          conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 2)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 49)]));
+          conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 3)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 1)]));
+          conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 3)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 49)]));
+          conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 4)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 1)]));
+          conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 4)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 49)]));
+          conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 5)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 1)]));
+          conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 5)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 49)]));
+          conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 6)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 1)]));
+          conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 6)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 49)]));
+          conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 7)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 1)]));
+          conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 7)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 49)]));
+          conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 2)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 2)]));
+          conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 2)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 50)]));
+          conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 3)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 2)]));
+          conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 3)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 50)]));
+          conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 4)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 2)]));
+          conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 4)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 50)]));
+          conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 5)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 2)]));
+          conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 5)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 50)]));
+          conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 6)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 2)]));
+          conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 6)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 50)]));
+          conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 7)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 2)]));
+          conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 7)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 50)]));
+          conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 8)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 2)]));
+          conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 8)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 50)]));
+          conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 63)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 3)]));
+          conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 63)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 51)]));
+          conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 64)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 3)]));
+          conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 64)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 51)]));
+          conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 65)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 3)]));
+          conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 65)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 51)]));
+          conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 66)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 3)]));
+          conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 66)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 51)]));
+          conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 67)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 3)]));
+          conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 67)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 51)]));
+          conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 68)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 3)]));
+          conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 68)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 51)]));
+          conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 69)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 3)]));
+          conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 69)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 51)]));
+          conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 64)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 4)]));
+          conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 64)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 52)]));
+          conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 65)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 4)]));
+          conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 65)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 52)]));
+          conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 66)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 4)]));
+          conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 66)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 52)]));
+          conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 67)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 4)]));
+          conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 67)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 52)]));
+          conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 68)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 4)]));
+          conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 68)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 52)]));
+          conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 69)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 4)]));
+          conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 69)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 52)]));
+          conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 70)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 4)]));
+          conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 70)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 52)]));
+          conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 65)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 5)]));
+          conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 65)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 53)]));
+          conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 66)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 5)]));
+          conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 66)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 53)]));
+          conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 67)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 5)]));
+          conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 67)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 53)]));
+          conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 68)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 5)]));
+          conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 68)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 53)]));
+          conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 69)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 5)]));
+          conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 69)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 53)]));
+          conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 70)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 5)]));
+          conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 70)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 53)]));
+          conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 71)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 5)]));
+          conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 71)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 53)]));
+          conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 126)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 6)]));
+          conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 126)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 54)]));
+          conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 127)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 6)]));
+          conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 127)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 54)]));
+          conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 128)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 6)]));
+          conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 128)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 54)]));
+          conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 129)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 6)]));
+          conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 129)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 54)]));
+          conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 130)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 6)]));
+          conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 130)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 54)]));
+          conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 131)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 6)]));
+          conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 131)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 54)]));
+          conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 132)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 6)]));
+          conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 132)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 54)]));
+          conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 127)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 7)]));
+          conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 127)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 55)]));
+          conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 128)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 7)]));
+          conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 128)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 55)]));
+          conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 129)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 7)]));
+          conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 129)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 55)]));
+          conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 130)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 7)]));
+          conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 130)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 55)]));
+          conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 131)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 7)]));
+          conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 131)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 55)]));
+          conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 132)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 7)]));
+          conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 132)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 55)]));
+          conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 133)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 7)]));
+          conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 133)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 55)]));
+          conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 128)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 8)]));
+          conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 128)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 56)]));
+          conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 129)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 8)]));
+          conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 129)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 56)]));
+          conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 130)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 8)]));
+          conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 130)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 56)]));
+          conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 131)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 8)]));
+          conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 131)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 56)]));
+          conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 132)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 8)]));
+          conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 132)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 56)]));
+          conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 133)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 8)]));
+          conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 133)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 56)]));
+          conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 134)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 8)]));
+          conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 134)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 56)]));
+          conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 189)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 9)]));
+          conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 189)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 57)]));
+          conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 190)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 9)]));
+          conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 190)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 57)]));
+          conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 191)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 9)]));
+          conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 191)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 57)]));
+          conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 192)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 9)]));
+          conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 192)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 57)]));
+          conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 193)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 9)]));
+          conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 193)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 57)]));
+          conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 194)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 9)]));
+          conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 194)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 57)]));
+          conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 195)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 9)]));
+          conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 195)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 57)]));
+          conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 190)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 10)]));
+          conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 190)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 58)]));
+          conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 191)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 10)]));
+          conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 191)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 58)]));
+          conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 192)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 10)]));
+          conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 192)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 58)]));
+          conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 193)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 10)]));
+          conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 193)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 58)]));
+          conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 194)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 10)]));
+          conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 194)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 58)]));
+          conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 195)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 10)]));
+          conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 195)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 58)]));
+          conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 196)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 10)]));
+          conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 196)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 58)]));
+          conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 191)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 11)]));
+          conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 191)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 59)]));
+          conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 192)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 11)]));
+          conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 192)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 59)]));
+          conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 193)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 11)]));
+          conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 193)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 59)]));
+          conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 194)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 11)]));
+          conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 194)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 59)]));
+          conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 195)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 11)]));
+          conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 195)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 59)]));
+          conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 196)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 11)]));
+          conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 196)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 59)]));
+          conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 197)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 11)]));
+          conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 197)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 59)]));
+          conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 252)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 12)]));
+          conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 252)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 60)]));
+          conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 253)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 12)]));
+          conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 253)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 60)]));
+          conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 254)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 12)]));
+          conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 254)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 60)]));
+          conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 255)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 12)]));
+          conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 255)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 60)]));
+          conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 256)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 12)]));
+          conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 256)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 60)]));
+          conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 257)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 12)]));
+          conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 257)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 60)]));
+          conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 258)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 12)]));
+          conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 258)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 60)]));
+          conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 253)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 13)]));
+          conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 253)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 61)]));
+          conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 254)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 13)]));
+          conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 254)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 61)]));
+          conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 255)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 13)]));
+          conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 255)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 61)]));
+          conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 256)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 13)]));
+          conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 256)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 61)]));
+          conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 257)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 13)]));
+          conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 257)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 61)]));
+          conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 258)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 13)]));
+          conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 258)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 61)]));
+          conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 259)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 13)]));
+          conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 259)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 61)]));
+          conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 254)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 14)]));
+          conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 254)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 62)]));
+          conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 255)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 14)]));
+          conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 255)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 62)]));
+          conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 256)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 14)]));
+          conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 256)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 62)]));
+          conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 257)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 14)]));
+          conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 257)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 62)]));
+          conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 258)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 14)]));
+          conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 258)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 62)]));
+          conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 259)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 14)]));
+          conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 259)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 62)]));
+          conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 260)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 14)]));
+          conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 260)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 62)]));
+          conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 315)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 15)]));
+          conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 315)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 63)]));
+          conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 316)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 15)]));
+          conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 316)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 63)]));
+          conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 317)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 15)]));
+          conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 317)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 63)]));
+          conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 318)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 15)]));
+          conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 318)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 63)]));
+          conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 319)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 15)]));
+          conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 319)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 63)]));
+          conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 320)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 15)]));
+          conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 320)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 63)]));
+          conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 321)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 15)]));
+          conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 321)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 63)]));
+          conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 316)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 16)]));
+          conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 316)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 64)]));
+          conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 317)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 16)]));
+          conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 317)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 64)]));
+          conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 318)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 16)]));
+          conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 318)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 64)]));
+          conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 319)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 16)]));
+          conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 319)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 64)]));
+          conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 320)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 16)]));
+          conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 320)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 64)]));
+          conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 321)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 16)]));
+          conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 321)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 64)]));
+          conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 322)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 16)]));
+          conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 322)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 64)]));
+          conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 317)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 17)]));
+          conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 317)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 65)]));
+          conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 318)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 17)]));
+          conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 318)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 65)]));
+          conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 319)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 17)]));
+          conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 319)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 65)]));
+          conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 320)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 17)]));
+          conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 320)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 65)]));
+          conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 321)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 17)]));
+          conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 321)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 65)]));
+          conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 322)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 17)]));
+          conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 322)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 65)]));
+          conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 323)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 17)]));
+          conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 323)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 65)]));
+          conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 378)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 18)]));
+          conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 378)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 66)]));
+          conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 379)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 18)]));
+          conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 379)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 66)]));
+          conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 380)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 18)]));
+          conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 380)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 66)]));
+          conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 381)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 18)]));
+          conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 381)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 66)]));
+          conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 382)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 18)]));
+          conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 382)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 66)]));
+          conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 383)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 18)]));
+          conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 383)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 66)]));
+          conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 384)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 18)]));
+          conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 384)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 66)]));
+          conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 379)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 19)]));
+          conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 379)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 67)]));
+          conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 380)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 19)]));
+          conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 380)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 67)]));
+          conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 381)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 19)]));
+          conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 381)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 67)]));
+          conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 382)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 19)]));
+          conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 382)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 67)]));
+          conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 383)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 19)]));
+          conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 383)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 67)]));
+          conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 384)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 19)]));
+          conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 384)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 67)]));
+          conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 385)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 19)]));
+          conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 385)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 67)]));
+          conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 380)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 20)]));
+          conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 380)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 68)]));
+          conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 381)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 20)]));
+          conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 381)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 68)]));
+          conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 382)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 20)]));
+          conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 382)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 68)]));
+          conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 383)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 20)]));
+          conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 383)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 68)]));
+          conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 384)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 20)]));
+          conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 384)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 68)]));
+          conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 385)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 20)]));
+          conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 385)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 68)]));
+          conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 386)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 20)]));
+          conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 386)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 68)]));
+          conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 441)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 21)]));
+          conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 441)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 69)]));
+          conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 442)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 21)]));
+          conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 442)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 69)]));
+          conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 443)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 21)]));
+          conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 443)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 69)]));
+          conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 444)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 21)]));
+          conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 444)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 69)]));
+          conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 445)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 21)]));
+          conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 445)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 69)]));
+          conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 446)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 21)]));
+          conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 446)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 69)]));
+          conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 447)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 21)]));
+          conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 447)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 69)]));
+          conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 442)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 22)]));
+          conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 442)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 70)]));
+          conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 443)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 22)]));
+          conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 443)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 70)]));
+          conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 444)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 22)]));
+          conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 444)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 70)]));
+          conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 445)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 22)]));
+          conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 445)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 70)]));
+          conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 446)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 22)]));
+          conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 446)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 70)]));
+          conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 447)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 22)]));
+          conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 447)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 70)]));
+          conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 448)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 22)]));
+          conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 448)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 70)]));
+          conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 443)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 23)]));
+          conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 443)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 71)]));
+          conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 444)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 23)]));
+          conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 444)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 71)]));
+          conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 445)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 23)]));
+          conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 445)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 71)]));
+          conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 446)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 23)]));
+          conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 446)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 71)]));
+          conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 447)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 23)]));
+          conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 447)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 71)]));
+          conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 448)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 23)]));
+          conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 448)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 71)]));
+          conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 449)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 23)]));
+          conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 449)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 71)]));
         }
       }
-      for (int i1_inner = 0; i1_inner < 8; ++i1_inner) {
-        compute[((((((int)blockIdx.x) * 1568) + ((((int)threadIdx.x) / 49) * 392)) + (i1_inner * 49)) + (((int)threadIdx.x) % 49))] = max((conv2d_nchw[i1_inner] + bias[(((((int)blockIdx.x) * 32) + ((((int)threadIdx.x) / 49) * 8)) + i1_inner)]), 0.000000e+00f);
+      for (int i3_inner = 0; i3_inner < 7; ++i3_inner) {
+        compute[(((((int)blockIdx.x) * 196) + (((int)threadIdx.x) * 7)) + i3_inner)] = max((conv2d_nchw[i3_inner] + bias[((((int)blockIdx.x) * 4) + (((int)threadIdx.x) / 7))]), 0.000000e+00f);
+        compute[((((((int)blockIdx.x) * 196) + (((int)threadIdx.x) * 7)) + i3_inner) + 98)] = max((conv2d_nchw[(i3_inner + 7)] + bias[(((((int)blockIdx.x) * 4) + (((int)threadIdx.x) / 7)) + 2)]), 0.000000e+00f);
       }
     }
 
@@ -576,7 +1314,7 @@ In the example below we resume the status and do more 5 trials.
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 3 minutes  27.246 seconds)
+   **Total running time of the script:** ( 3 minutes  43.102 seconds)
 
 
 .. _sphx_glr_download_how_to_tune_with_autoscheduler_tune_conv2d_layer_cuda.py:
diff --git a/docs/_sources/how_to/tune_with_autoscheduler/tune_network_cuda.rst.txt b/docs/_sources/how_to/tune_with_autoscheduler/tune_network_cuda.rst.txt
index 538a41592..c40bc2f69 100644
--- a/docs/_sources/how_to/tune_with_autoscheduler/tune_network_cuda.rst.txt
+++ b/docs/_sources/how_to/tune_with_autoscheduler/tune_network_cuda.rst.txt
@@ -643,7 +643,7 @@ so we can read the log file and load the best schedules.
     Evaluate inference time cost...
     Execution time summary:
      mean (ms)   median (ms)    max (ms)     min (ms)     std (ms)  
-       8.1912       8.1889       8.2025       8.1821       0.0085   
+       8.2279       8.2254       8.2328       8.2253       0.0035   
                
 
 
diff --git a/docs/_sources/how_to/tune_with_autoscheduler/tune_network_x86.rst.txt b/docs/_sources/how_to/tune_with_autoscheduler/tune_network_x86.rst.txt
index 3d2a9a4f2..5de676ff1 100644
--- a/docs/_sources/how_to/tune_with_autoscheduler/tune_network_x86.rst.txt
+++ b/docs/_sources/how_to/tune_with_autoscheduler/tune_network_x86.rst.txt
@@ -662,7 +662,7 @@ so we can read the log file and load the best schedules.
     Evaluate inference time cost...
     Execution time summary:
      mean (ms)   median (ms)    max (ms)     min (ms)     std (ms)  
-      758.2995     758.3920     758.4811     758.0255      0.1972   
+      762.8897     764.1302     766.0950     758.4440      3.2443   
                
 
 
@@ -690,7 +690,7 @@ Other Tips
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 1 minutes  23.476 seconds)
+   **Total running time of the script:** ( 1 minutes  23.690 seconds)
 
 
 .. _sphx_glr_download_how_to_tune_with_autoscheduler_tune_network_x86.py:
diff --git a/docs/_sources/how_to/tune_with_autoscheduler/tune_sparse_x86.rst.txt b/docs/_sources/how_to/tune_with_autoscheduler/tune_sparse_x86.rst.txt
index 5fc3d2282..194662e92 100644
--- a/docs/_sources/how_to/tune_with_autoscheduler/tune_sparse_x86.rst.txt
+++ b/docs/_sources/how_to/tune_with_autoscheduler/tune_sparse_x86.rst.txt
@@ -397,30 +397,103 @@ layout transformation, parallelization, vectorization, unrolling, and operator f
                  placeholder_4: Buffer(placeholder_14: Pointer(float32), float32, [65536], []),
                  compute: Buffer(compute_2: Pointer(float32), float32, [65536], [])}
       buffer_map = {placeholder_5: placeholder, placeholder_6: placeholder_1, placeholder_7: placeholder_2, placeholder_8: placeholder_3, placeholder_9: placeholder_4, compute_1: compute}
-      preflattened_buffer_map = {placeholder_7: placeholder_15: Buffer(placeholder_12, int32, [4916], []), placeholder_5: placeholder_16: Buffer(placeholder_10, float32, [128, 256], []), placeholder_6: placeholder_17: Buffer(placeholder_11, float32, [4916, 16, 1], []), compute_1: compute_3: Buffer(compute_2, float32, [128, 512], []), placeholder_9: placeholder_18: Buffer(placeholder_14, float32, [128, 512], []), placeholder_8: placeholder_19: Buffer(placeholder_13, int32, [33], [])} {
-      for (i0.outer.i1.outer.fused: int32, 0, 16) "parallel" {
-        allocate(compute_4: Pointer(global float32), float32, [4096]), storage_scope = global {
-          for (i.outer.inner: int32, 0, 2) {
-            for (nb_j.inner: int32, 0, 2) {
-              for (i.inner.init: int32, 0, 64) {
-                for (j.init: int32, 0, 16) {
-                  compute_5: Buffer(compute_4, float32, [4096], [])[((((i.outer.inner*2048) + (i.inner.init*32)) + (nb_j.inner*16)) + j.init)] = 0f32
-                }
+      preflattened_buffer_map = {placeholder_5: placeholder_15: Buffer(placeholder_10, float32, [128, 256], []), placeholder_8: placeholder_16: Buffer(placeholder_13, int32, [33], []), placeholder_9: placeholder_17: Buffer(placeholder_14, float32, [128, 512], []), placeholder_6: placeholder_18: Buffer(placeholder_11, float32, [4916, 16, 1], []), compute_1: compute_3: Buffer(compute_2, float32, [128, 512], []), placeholder_7: placeholder_19: Buffer(placeholder_12, int32, [4916], [])} {
+      for (i0.outer.i1.outer.fused: int32, 0, 32) "parallel" {
+        allocate(compute_4: Pointer(global float32), float32, [2048]), storage_scope = global {
+          for (i.outer.inner: int32, 0, 8) {
+            for (i.inner.init: int32, 0, 16) {
+              let cse_var_1: int32 = ((i.outer.inner*256) + (i.inner.init*16))
+               {
+                compute_5: Buffer(compute_4, float32, [2048], [])[cse_var_1] = 0f32
+                compute_5[(cse_var_1 + 1)] = 0f32
+                compute_5[(cse_var_1 + 2)] = 0f32
+                compute_5[(cse_var_1 + 3)] = 0f32
+                compute_5[(cse_var_1 + 4)] = 0f32
+                compute_5[(cse_var_1 + 5)] = 0f32
+                compute_5[(cse_var_1 + 6)] = 0f32
+                compute_5[(cse_var_1 + 7)] = 0f32
+                compute_5[(cse_var_1 + 8)] = 0f32
+                compute_5[(cse_var_1 + 9)] = 0f32
+                compute_5[(cse_var_1 + 10)] = 0f32
+                compute_5[(cse_var_1 + 11)] = 0f32
+                compute_5[(cse_var_1 + 12)] = 0f32
+                compute_5[(cse_var_1 + 13)] = 0f32
+                compute_5[(cse_var_1 + 14)] = 0f32
+                compute_5[(cse_var_1 + 15)] = 0f32
               }
-              for (elem_idx: int32, 0, let cse_var_1: int32 = ((i0.outer.i1.outer.fused*2) + nb_j.inner) in (placeholder_3[(cse_var_1 + 1)] - placeholder_3[cse_var_1])) {
-                for (i.inner: int32, 0, 64) {
-                  for (j: int32, 0, 16) {
-                    let cse_var_3: int32 = ((i0.outer.i1.outer.fused*2) + nb_j.inner)
-                    let cse_var_2: int32 = ((((i.outer.inner*2048) + (i.inner*32)) + (nb_j.inner*16)) + j)
-                    compute_5[cse_var_2] = (compute_5[cse_var_2] + (placeholder_1[(((placeholder_3[cse_var_3]*16) + (elem_idx*16)) + j)]*max(placeholder[(((i.outer.inner*16384) + (i.inner*256)) + placeholder_2[(placeholder_3[cse_var_3] + elem_idx)])], 0f32)))
-                  }
+            }
+            for (elem_idx: int32, 0, (placeholder_3[(i0.outer.i1.outer.fused + 1)] - placeholder_3[i0.outer.i1.outer.fused])) {
+              for (i.inner: int32, 0, 16) {
+                if @tir.likely((elem_idx < (placeholder_3[(i0.outer.i1.outer.fused + 1)] - placeholder_3[i0.outer.i1.outer.fused])), dtype=bool) {
+                  let cse_var_2: int32 = ((i.outer.inner*256) + (i.inner*16))
+                  compute_5[cse_var_2] = (compute_5[cse_var_2] + (placeholder_1[((placeholder_3[i0.outer.i1.outer.fused]*16) + (elem_idx*16))]*max(placeholder[(((i.outer.inner*4096) + (i.inner*256)) + placeholder_2[(placeholder_3[i0.outer.i1.outer.fused] + elem_idx)])], 0f32)))
+                }
+                if @tir.likely((elem_idx < (placeholder_3[(i0.outer.i1.outer.fused + 1)] - placeholder_3[i0.outer.i1.outer.fused])), dtype=bool) {
+                  let cse_var_3: int32 = (((i.outer.inner*256) + (i.inner*16)) + 1)
+                  compute_5[cse_var_3] = (compute_5[cse_var_3] + (placeholder_1[(((placeholder_3[i0.outer.i1.outer.fused]*16) + (elem_idx*16)) + 1)]*max(placeholder[(((i.outer.inner*4096) + (i.inner*256)) + placeholder_2[(placeholder_3[i0.outer.i1.outer.fused] + elem_idx)])], 0f32)))
+                }
+                if @tir.likely((elem_idx < (placeholder_3[(i0.outer.i1.outer.fused + 1)] - placeholder_3[i0.outer.i1.outer.fused])), dtype=bool) {
+                  let cse_var_4: int32 = (((i.outer.inner*256) + (i.inner*16)) + 2)
+                  compute_5[cse_var_4] = (compute_5[cse_var_4] + (placeholder_1[(((placeholder_3[i0.outer.i1.outer.fused]*16) + (elem_idx*16)) + 2)]*max(placeholder[(((i.outer.inner*4096) + (i.inner*256)) + placeholder_2[(placeholder_3[i0.outer.i1.outer.fused] + elem_idx)])], 0f32)))
+                }
+                if @tir.likely((elem_idx < (placeholder_3[(i0.outer.i1.outer.fused + 1)] - placeholder_3[i0.outer.i1.outer.fused])), dtype=bool) {
+                  let cse_var_5: int32 = (((i.outer.inner*256) + (i.inner*16)) + 3)
+                  compute_5[cse_var_5] = (compute_5[cse_var_5] + (placeholder_1[(((placeholder_3[i0.outer.i1.outer.fused]*16) + (elem_idx*16)) + 3)]*max(placeholder[(((i.outer.inner*4096) + (i.inner*256)) + placeholder_2[(placeholder_3[i0.outer.i1.outer.fused] + elem_idx)])], 0f32)))
+                }
+                if @tir.likely((elem_idx < (placeholder_3[(i0.outer.i1.outer.fused + 1)] - placeholder_3[i0.outer.i1.outer.fused])), dtype=bool) {
+                  let cse_var_6: int32 = (((i.outer.inner*256) + (i.inner*16)) + 4)
+                  compute_5[cse_var_6] = (compute_5[cse_var_6] + (placeholder_1[(((placeholder_3[i0.outer.i1.outer.fused]*16) + (elem_idx*16)) + 4)]*max(placeholder[(((i.outer.inner*4096) + (i.inner*256)) + placeholder_2[(placeholder_3[i0.outer.i1.outer.fused] + elem_idx)])], 0f32)))
+                }
+                if @tir.likely((elem_idx < (placeholder_3[(i0.outer.i1.outer.fused + 1)] - placeholder_3[i0.outer.i1.outer.fused])), dtype=bool) {
+                  let cse_var_7: int32 = (((i.outer.inner*256) + (i.inner*16)) + 5)
+                  compute_5[cse_var_7] = (compute_5[cse_var_7] + (placeholder_1[(((placeholder_3[i0.outer.i1.outer.fused]*16) + (elem_idx*16)) + 5)]*max(placeholder[(((i.outer.inner*4096) + (i.inner*256)) + placeholder_2[(placeholder_3[i0.outer.i1.outer.fused] + elem_idx)])], 0f32)))
+                }
+                if @tir.likely((elem_idx < (placeholder_3[(i0.outer.i1.outer.fused + 1)] - placeholder_3[i0.outer.i1.outer.fused])), dtype=bool) {
+                  let cse_var_8: int32 = (((i.outer.inner*256) + (i.inner*16)) + 6)
+                  compute_5[cse_var_8] = (compute_5[cse_var_8] + (placeholder_1[(((placeholder_3[i0.outer.i1.outer.fused]*16) + (elem_idx*16)) + 6)]*max(placeholder[(((i.outer.inner*4096) + (i.inner*256)) + placeholder_2[(placeholder_3[i0.outer.i1.outer.fused] + elem_idx)])], 0f32)))
+                }
+                if @tir.likely((elem_idx < (placeholder_3[(i0.outer.i1.outer.fused + 1)] - placeholder_3[i0.outer.i1.outer.fused])), dtype=bool) {
+                  let cse_var_9: int32 = (((i.outer.inner*256) + (i.inner*16)) + 7)
+                  compute_5[cse_var_9] = (compute_5[cse_var_9] + (placeholder_1[(((placeholder_3[i0.outer.i1.outer.fused]*16) + (elem_idx*16)) + 7)]*max(placeholder[(((i.outer.inner*4096) + (i.inner*256)) + placeholder_2[(placeholder_3[i0.outer.i1.outer.fused] + elem_idx)])], 0f32)))
+                }
+                if @tir.likely((elem_idx < (placeholder_3[(i0.outer.i1.outer.fused + 1)] - placeholder_3[i0.outer.i1.outer.fused])), dtype=bool) {
+                  let cse_var_10: int32 = (((i.outer.inner*256) + (i.inner*16)) + 8)
+                  compute_5[cse_var_10] = (compute_5[cse_var_10] + (placeholder_1[(((placeholder_3[i0.outer.i1.outer.fused]*16) + (elem_idx*16)) + 8)]*max(placeholder[(((i.outer.inner*4096) + (i.inner*256)) + placeholder_2[(placeholder_3[i0.outer.i1.outer.fused] + elem_idx)])], 0f32)))
+                }
+                if @tir.likely((elem_idx < (placeholder_3[(i0.outer.i1.outer.fused + 1)] - placeholder_3[i0.outer.i1.outer.fused])), dtype=bool) {
+                  let cse_var_11: int32 = (((i.outer.inner*256) + (i.inner*16)) + 9)
+                  compute_5[cse_var_11] = (compute_5[cse_var_11] + (placeholder_1[(((placeholder_3[i0.outer.i1.outer.fused]*16) + (elem_idx*16)) + 9)]*max(placeholder[(((i.outer.inner*4096) + (i.inner*256)) + placeholder_2[(placeholder_3[i0.outer.i1.outer.fused] + elem_idx)])], 0f32)))
+                }
+                if @tir.likely((elem_idx < (placeholder_3[(i0.outer.i1.outer.fused + 1)] - placeholder_3[i0.outer.i1.outer.fused])), dtype=bool) {
+                  let cse_var_12: int32 = (((i.outer.inner*256) + (i.inner*16)) + 10)
+                  compute_5[cse_var_12] = (compute_5[cse_var_12] + (placeholder_1[(((placeholder_3[i0.outer.i1.outer.fused]*16) + (elem_idx*16)) + 10)]*max(placeholder[(((i.outer.inner*4096) + (i.inner*256)) + placeholder_2[(placeholder_3[i0.outer.i1.outer.fused] + elem_idx)])], 0f32)))
+                }
+                if @tir.likely((elem_idx < (placeholder_3[(i0.outer.i1.outer.fused + 1)] - placeholder_3[i0.outer.i1.outer.fused])), dtype=bool) {
+                  let cse_var_13: int32 = (((i.outer.inner*256) + (i.inner*16)) + 11)
+                  compute_5[cse_var_13] = (compute_5[cse_var_13] + (placeholder_1[(((placeholder_3[i0.outer.i1.outer.fused]*16) + (elem_idx*16)) + 11)]*max(placeholder[(((i.outer.inner*4096) + (i.inner*256)) + placeholder_2[(placeholder_3[i0.outer.i1.outer.fused] + elem_idx)])], 0f32)))
+                }
+                if @tir.likely((elem_idx < (placeholder_3[(i0.outer.i1.outer.fused + 1)] - placeholder_3[i0.outer.i1.outer.fused])), dtype=bool) {
+                  let cse_var_14: int32 = (((i.outer.inner*256) + (i.inner*16)) + 12)
+                  compute_5[cse_var_14] = (compute_5[cse_var_14] + (placeholder_1[(((placeholder_3[i0.outer.i1.outer.fused]*16) + (elem_idx*16)) + 12)]*max(placeholder[(((i.outer.inner*4096) + (i.inner*256)) + placeholder_2[(placeholder_3[i0.outer.i1.outer.fused] + elem_idx)])], 0f32)))
+                }
+                if @tir.likely((elem_idx < (placeholder_3[(i0.outer.i1.outer.fused + 1)] - placeholder_3[i0.outer.i1.outer.fused])), dtype=bool) {
+                  let cse_var_15: int32 = (((i.outer.inner*256) + (i.inner*16)) + 13)
+                  compute_5[cse_var_15] = (compute_5[cse_var_15] + (placeholder_1[(((placeholder_3[i0.outer.i1.outer.fused]*16) + (elem_idx*16)) + 13)]*max(placeholder[(((i.outer.inner*4096) + (i.inner*256)) + placeholder_2[(placeholder_3[i0.outer.i1.outer.fused] + elem_idx)])], 0f32)))
+                }
+                if @tir.likely((elem_idx < (placeholder_3[(i0.outer.i1.outer.fused + 1)] - placeholder_3[i0.outer.i1.outer.fused])), dtype=bool) {
+                  let cse_var_16: int32 = (((i.outer.inner*256) + (i.inner*16)) + 14)
+                  compute_5[cse_var_16] = (compute_5[cse_var_16] + (placeholder_1[(((placeholder_3[i0.outer.i1.outer.fused]*16) + (elem_idx*16)) + 14)]*max(placeholder[(((i.outer.inner*4096) + (i.inner*256)) + placeholder_2[(placeholder_3[i0.outer.i1.outer.fused] + elem_idx)])], 0f32)))
+                }
+                if @tir.likely((elem_idx < (placeholder_3[(i0.outer.i1.outer.fused + 1)] - placeholder_3[i0.outer.i1.outer.fused])), dtype=bool) {
+                  let cse_var_17: int32 = (((i.outer.inner*256) + (i.inner*16)) + 15)
+                  compute_5[cse_var_17] = (compute_5[cse_var_17] + (placeholder_1[(((placeholder_3[i0.outer.i1.outer.fused]*16) + (elem_idx*16)) + 15)]*max(placeholder[(((i.outer.inner*4096) + (i.inner*256)) + placeholder_2[(placeholder_3[i0.outer.i1.outer.fused] + elem_idx)])], 0f32)))
                 }
               }
             }
           }
           for (i0.inner: int32, 0, 128) {
-            let cse_var_4: int32 = ((i0.inner*512) + (i0.outer.i1.outer.fused*32))
-            compute[ramp(cse_var_4, 1, 32)] = max((compute_5[ramp((i0.inner*32), 1, 32)] + placeholder_4[ramp(cse_var_4, 1, 32)]), broadcast(0f32, 32))
+            let cse_var_18: int32 = ((i0.inner*512) + (i0.outer.i1.outer.fused*16))
+            compute[ramp(cse_var_18, 1, 16)] = max((compute_5[ramp((i0.inner*16), 1, 16)] + placeholder_4[ramp(cse_var_18, 1, 16)]), broadcast(0f32, 16))
           }
         }
       }
@@ -476,7 +549,7 @@ We build the binary and check its correctness and performance.
 
  .. code-block:: none
 
-    Execution time of this operator: 1.841 ms
+    Execution time of this operator: 1.694 ms
 
 
 
diff --git a/docs/_sources/how_to/tune_with_autotvm/sg_execution_times.rst.txt b/docs/_sources/how_to/tune_with_autotvm/sg_execution_times.rst.txt
index 1d6f2f737..438cac24f 100644
--- a/docs/_sources/how_to/tune_with_autotvm/sg_execution_times.rst.txt
+++ b/docs/_sources/how_to/tune_with_autotvm/sg_execution_times.rst.txt
@@ -5,12 +5,12 @@
 
 Computation times
 =================
-**00:46.176** total execution time for **how_to_tune_with_autotvm** files:
+**00:45.912** total execution time for **how_to_tune_with_autotvm** files:
 
 +--------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_tune_with_autotvm_tune_conv2d_cuda.py` (``tune_conv2d_cuda.py``)           | 00:46.140 | 0.0 MB |
+| :ref:`sphx_glr_how_to_tune_with_autotvm_tune_conv2d_cuda.py` (``tune_conv2d_cuda.py``)           | 00:45.877 | 0.0 MB |
 +--------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_tune_with_autotvm_tune_relay_x86.py` (``tune_relay_x86.py``)               | 00:00.021 | 0.0 MB |
+| :ref:`sphx_glr_how_to_tune_with_autotvm_tune_relay_x86.py` (``tune_relay_x86.py``)               | 00:00.020 | 0.0 MB |
 +--------------------------------------------------------------------------------------------------+-----------+--------+
 | :ref:`sphx_glr_how_to_tune_with_autotvm_tune_relay_cuda.py` (``tune_relay_cuda.py``)             | 00:00.005 | 0.0 MB |
 +--------------------------------------------------------------------------------------------------+-----------+--------+
diff --git a/docs/_sources/how_to/tune_with_autotvm/tune_conv2d_cuda.rst.txt b/docs/_sources/how_to/tune_with_autotvm/tune_conv2d_cuda.rst.txt
index 3a9c80cfa..1ed428f43 100644
--- a/docs/_sources/how_to/tune_with_autotvm/tune_conv2d_cuda.rst.txt
+++ b/docs/_sources/how_to/tune_with_autotvm/tune_conv2d_cuda.rst.txt
@@ -1156,8 +1156,8 @@ for this template
     TimeoutError
 
             [('tile_f', [-1, 2, 1, 64]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 1, 4]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 0)],None,4909501
-    No: 9   GFLOPS: 202.51/202.51   result: MeasureResult(costs=(0.0011431864111111111,), error_no=MeasureErrorNo.NO_ERROR, all_cost=2.0515146255493164, timestamp=1663471066.990349)       [('tile_f', [-1, 1, 4, 8]), ('tile_y', [-1, 7, 1, 1]), ('tile_x', [-1, 1, 1, 1]), ('tile_rc', [-1, 2, 2]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 0)],None,5072689
-    No: 10  GFLOPS: 0.00/202.51     result: Traceback (most recent call last):
+    No: 9   GFLOPS: 80.82/80.82     result: MeasureResult(costs=(0.002864252542857143,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.8780179023742676, timestamp=1663472071.364252)        [('tile_f', [-1, 1, 4, 8]), ('tile_y', [-1, 7, 1, 1]), ('tile_x', [-1, 1, 1, 1]), ('tile_rc', [-1, 2, 2]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 0)],None,5072689
+    No: 10  GFLOPS: 0.00/80.82      result: Traceback (most recent call last):
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 588, in __call__
         func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 540, in _build_func_common
@@ -1280,8 +1280,8 @@ for this template
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 871, in verify_pass
         raise InstantiationError("Skipped because of invalid gpu kernel")
     tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [('tile_f', [-1, 4, 4, 8]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 1, 1, 7]), ('tile_rc', [-1, 64, 2]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 0)],None,5092711
-    No: 11  GFLOPS: 260.13/260.13   result: MeasureResult(costs=(0.0008899435966850829,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.7576069831848145, timestamp=1663471067.895412)       [('tile_f', [-1, 8, 2, 1]), ('tile_y', [-1, 7, 1, 1]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 2, 1]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 0)],None,4264713
-    No: 12  GFLOPS: 0.00/260.13     result: Traceback (most recent call last):
+    No: 11  GFLOPS: 258.99/258.99   result: MeasureResult(costs=(0.0008938525178571429,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.6819677352905273, timestamp=1663472072.175398)       [('tile_f', [-1, 8, 2, 1]), ('tile_y', [-1, 7, 1, 1]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 2, 1]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 0)],None,4264713
+    No: 12  GFLOPS: 0.00/258.99     result: Traceback (most recent call last):
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 588, in __call__
         func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 540, in _build_func_common
@@ -1404,7 +1404,7 @@ for this template
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 871, in verify_pass
         raise InstantiationError("Skipped because of invalid gpu kernel")
     tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [('tile_f', [-1, 128, 1, 2]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 1, 1, 1]), ('tile_rc', [-1, 1, 256]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 0), ('unroll_explicit', 0)],None,183542
-    No: 13  GFLOPS: 0.00/260.13     result: Traceback (most recent call last):
+    No: 13  GFLOPS: 0.00/258.99     result: Traceback (most recent call last):
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 588, in __call__
         func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 540, in _build_func_common
@@ -1527,7 +1527,7 @@ for this template
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 871, in verify_pass
         raise InstantiationError("Skipped because of invalid gpu kernel")
     tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [('tile_f', [-1, 4, 8, 8]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 1, 1, 1]), ('tile_rc', [-1, 1, 64]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 512), ('unroll_explicit', 0)],None,2482196
-    No: 14  GFLOPS: 0.00/260.13     result: Traceback (most recent call last):
+    No: 14  GFLOPS: 0.00/258.99     result: Traceback (most recent call last):
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 588, in __call__
         func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 540, in _build_func_common
@@ -1650,9 +1650,9 @@ for this template
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 871, in verify_pass
         raise InstantiationError("Skipped because of invalid gpu kernel")
     tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [('tile_f', [-1, 64, 1, 4]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 1, 1, 7]), ('tile_rc', [-1, 4, 2]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 1)],None,10306226
-    No: 15  GFLOPS: 5.31/260.13     result: MeasureResult(costs=(0.043591854750000006,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.8104641437530518, timestamp=1663471072.469813)        [('tile_f', [-1, 2, 2, 8]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 4, 8]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 0), ('unroll_explicit', 1)],None,5330964
-    No: 16  GFLOPS: 3.36/260.13     result: MeasureResult(costs=(0.06895347475,), error_no=MeasureErrorNo.NO_ERROR, all_cost=4.553717136383057, timestamp=1663471073.6994028)       [('tile_f', [-1, 8, 4, 4]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 1, 1, 7]), ('tile_rc', [-1, 4, 1]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 512), ('unroll_explicit', 0)],None,2140058
-    No: 17  GFLOPS: 0.00/260.13     result: Traceback (most recent call last):
+    No: 15  GFLOPS: 5.48/258.99     result: MeasureResult(costs=(0.042214929750000005,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.8499467372894287, timestamp=1663472076.7767456)       [('tile_f', [-1, 2, 2, 8]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 4, 8]), ('tile_ry', [-1, 1, 1]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 0), ('unroll_explicit', 1)],None,5330964
+    No: 16  GFLOPS: 3.36/258.99     result: MeasureResult(costs=(0.068974594,), error_no=MeasureErrorNo.NO_ERROR, all_cost=4.585432291030884, timestamp=1663472078.0168946) [('tile_f', [-1, 8, 4, 4]), ('tile_y', [-1, 1, 1, 7]), ('tile_x', [-1, 1, 1, 7]), ('tile_rc', [-1, 4, 1]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 1]), ('auto_unroll_max_step', 512), ('unroll_explicit', 0)],None,2140058
+    No: 17  GFLOPS: 0.00/258.99     result: Traceback (most recent call last):
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 142, in build
         res = future.result()
       File "/usr/lib/python3.7/concurrent/futures/_base.py", line 435, in result
@@ -1670,8 +1670,8 @@ for this template
     TimeoutError
 
             [('tile_f', [-1, 2, 2, 1]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 4, 16]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 1)],None,10195251
-    No: 18  GFLOPS: 28.32/260.13    result: MeasureResult(costs=(0.008175491785714285,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.3032119274139404, timestamp=1663471084.760921)        [('tile_f', [-1, 4, 8, 4]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 1, 1, 1]), ('tile_rc', [-1, 1, 4]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 0), ('unroll_explicit', 1)],None,6068603
-    No: 19  GFLOPS: 0.00/260.13     result: Traceback (most recent call last):
+    No: 18  GFLOPS: 25.46/258.99    result: MeasureResult(costs=(0.009093943545454545,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.2622807025909424, timestamp=1663472089.016531)        [('tile_f', [-1, 4, 8, 4]), ('tile_y', [-1, 1, 1, 1]), ('tile_x', [-1, 1, 1, 1]), ('tile_rc', [-1, 1, 4]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 0), ('unroll_explicit', 1)],None,6068603
+    No: 19  GFLOPS: 0.00/258.99     result: Traceback (most recent call last):
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 588, in __call__
         func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 540, in _build_func_common
@@ -1794,7 +1794,7 @@ for this template
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 871, in verify_pass
         raise InstantiationError("Skipped because of invalid gpu kernel")
     tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [('tile_f', [-1, 16, 4, 8]), ('tile_y', [-1, 1, 7, 1]), ('tile_x', [-1, 7, 1, 1]), ('tile_rc', [-1, 4, 128]), ('tile_ry', [-1, 1, 3]), ('tile_rx', [-1, 1, 3]), ('auto_unroll_max_step', 0), ('unroll_explicit', 1)],None,6956993
-    No: 20  GFLOPS: 0.00/260.13     result: Traceback (most recent call last):
+    No: 20  GFLOPS: 0.00/258.99     result: Traceback (most recent call last):
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 588, in __call__
         func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
       File "/workspace/python/tvm/autotvm/measure/measure_methods.py", line 540, in _build_func_common
@@ -1973,7 +1973,7 @@ and measure running time.
     Best config:
     [('tile_f', [-1, 8, 2, 1]), ('tile_y', [-1, 7, 1, 1]), ('tile_x', [-1, 1, 7, 1]), ('tile_rc', [-1, 2, 1]), ('tile_ry', [-1, 3, 1]), ('tile_rx', [-1, 3, 1]), ('auto_unroll_max_step', 1500), ('unroll_explicit', 0)],None,4264713
     Finish loading 20 records
-    Time cost of this operator: 0.001274
+    Time cost of this operator: 0.001258
 
 
 
diff --git a/docs/_sources/how_to/work_with_microtvm/micro_autotune.rst.txt b/docs/_sources/how_to/work_with_microtvm/micro_autotune.rst.txt
index 1eb3fc142..9ae048126 100644
--- a/docs/_sources/how_to/work_with_microtvm/micro_autotune.rst.txt
+++ b/docs/_sources/how_to/work_with_microtvm/micro_autotune.rst.txt
@@ -328,9 +328,9 @@ Timing the untuned program
     Node Name                                     Ops                                           Time(us)  Time(%)  Shape              Inputs  Outputs  Measurements(us)  
     ---------                                     ---                                           --------  -------  -----              ------  -------  ----------------  
     tvmgen_default_fused_nn_contrib_conv2d_NCHWc  tvmgen_default_fused_nn_contrib_conv2d_NCHWc  313.7     98.727   (1, 2, 10, 10, 3)  2       1        [313.7]           
-    tvmgen_default_fused_layout_transform_1       tvmgen_default_fused_layout_transform_1       3.063     0.964    (1, 6, 10, 10)     1       1        [3.063]           
-    tvmgen_default_fused_layout_transform         tvmgen_default_fused_layout_transform         0.983     0.309    (1, 1, 10, 10, 3)  1       1        [0.983]           
-    Total_time                                    -                                             317.746   -        -                  -       -        -                 
+    tvmgen_default_fused_layout_transform_1       tvmgen_default_fused_layout_transform_1       3.072     0.967    (1, 6, 10, 10)     1       1        [3.072]           
+    tvmgen_default_fused_layout_transform         tvmgen_default_fused_layout_transform         0.972     0.306    (1, 1, 10, 10, 3)  1       1        [0.972]           
+    Total_time                                    -                                             317.744   -        -                  -       -        -                 
 
 
 
@@ -394,10 +394,10 @@ Timing the tuned program
     ########## Build with Autotuning ##########
     Node Name                                     Ops                                           Time(us)  Time(%)  Shape              Inputs  Outputs  Measurements(us)  
     ---------                                     ---                                           --------  -------  -----              ------  -------  ----------------  
-    tvmgen_default_fused_nn_contrib_conv2d_NCHWc  tvmgen_default_fused_nn_contrib_conv2d_NCHWc  81.938    96.755   (1, 6, 10, 10, 1)  2       1        [81.938]          
-    tvmgen_default_fused_layout_transform_1       tvmgen_default_fused_layout_transform_1       1.777     2.099    (1, 6, 10, 10)     1       1        [1.777]           
-    tvmgen_default_fused_layout_transform         tvmgen_default_fused_layout_transform         0.971     1.147    (1, 1, 10, 10, 3)  1       1        [0.971]           
-    Total_time                                    -                                             84.686    -        -                  -       -        -                 
+    tvmgen_default_fused_nn_contrib_conv2d_NCHWc  tvmgen_default_fused_nn_contrib_conv2d_NCHWc  218.7     98.616   (1, 1, 10, 10, 6)  2       1        [218.7]           
+    tvmgen_default_fused_layout_transform_1       tvmgen_default_fused_layout_transform_1       2.22      1.001    (1, 6, 10, 10)     1       1        [2.22]            
+    tvmgen_default_fused_layout_transform         tvmgen_default_fused_layout_transform         0.849     0.383    (1, 3, 10, 10, 1)  1       1        [0.849]           
+    Total_time                                    -                                             221.769   -        -                  -       -        -                 
 
 
 
diff --git a/docs/_sources/how_to/work_with_microtvm/micro_train.rst.txt b/docs/_sources/how_to/work_with_microtvm/micro_train.rst.txt
index f45d42b37..4c29745d4 100644
--- a/docs/_sources/how_to/work_with_microtvm/micro_train.rst.txt
+++ b/docs/_sources/how_to/work_with_microtvm/micro_train.rst.txt
@@ -225,7 +225,7 @@ take about **2 minutes** to download the Stanford Cars, while COCO 2017 validati
  .. code-block:: none
 
 
-    '/tmp/tmp29e4vrgb/images/random'
+    '/tmp/tmp6lkx6c2o/images/random'
 
 
 
@@ -325,8 +325,8 @@ objects to other stuff? We can display some examples from our datasets using ``m
 
  .. code-block:: none
 
-    /tmp/tmp29e4vrgb/images/target contains 8144 images
-    /tmp/tmp29e4vrgb/images/random contains 5000 images
+    /tmp/tmp6lkx6c2o/images/target contains 8144 images
+    /tmp/tmp6lkx6c2o/images/random contains 5000 images
 
 
 
@@ -501,13 +501,13 @@ the time on our validation set).
  .. code-block:: none
 
     Epoch 1/3
-    328/328 - 47s - loss: 0.2257 - accuracy: 0.9245 - val_loss: 0.1414 - val_accuracy: 0.9573 - 47s/epoch - 142ms/step
+    328/328 - 47s - loss: 0.2045 - accuracy: 0.9274 - val_loss: 0.1374 - val_accuracy: 0.9581 - 47s/epoch - 143ms/step
     Epoch 2/3
-    328/328 - 43s - loss: 0.1025 - accuracy: 0.9611 - val_loss: 0.1262 - val_accuracy: 0.9645 - 43s/epoch - 133ms/step
+    328/328 - 44s - loss: 0.0973 - accuracy: 0.9636 - val_loss: 0.1150 - val_accuracy: 0.9660 - 44s/epoch - 133ms/step
     Epoch 3/3
-    328/328 - 43s - loss: 0.0719 - accuracy: 0.9718 - val_loss: 0.1210 - val_accuracy: 0.9607 - 43s/epoch - 132ms/step
+    328/328 - 43s - loss: 0.0651 - accuracy: 0.9781 - val_loss: 0.1138 - val_accuracy: 0.9641 - 43s/epoch - 132ms/step
 
-    <keras.callbacks.History object at 0x7f472191bb90>
+    <keras.callbacks.History object at 0x7f0a7fc98b50>
 
 
 
@@ -864,7 +864,7 @@ Arduino tutorial for how to do that `on GitHub <https://github.com/guberti/tvm-a
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 4 minutes  32.163 seconds)
+   **Total running time of the script:** ( 4 minutes  23.590 seconds)
 
 
 .. _sphx_glr_download_how_to_work_with_microtvm_micro_train.py:
diff --git a/docs/_sources/how_to/work_with_microtvm/sg_execution_times.rst.txt b/docs/_sources/how_to/work_with_microtvm/sg_execution_times.rst.txt
index 557f248a8..c77200d4b 100644
--- a/docs/_sources/how_to/work_with_microtvm/sg_execution_times.rst.txt
+++ b/docs/_sources/how_to/work_with_microtvm/sg_execution_times.rst.txt
@@ -5,16 +5,16 @@
 
 Computation times
 =================
-**05:26.298** total execution time for **how_to_work_with_microtvm** files:
+**05:18.025** total execution time for **how_to_work_with_microtvm** files:
 
 +---------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_work_with_microtvm_micro_train.py` (``micro_train.py``)               | 04:32.163 | 0.0 MB |
+| :ref:`sphx_glr_how_to_work_with_microtvm_micro_train.py` (``micro_train.py``)               | 04:23.590 | 0.0 MB |
 +---------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_work_with_microtvm_micro_autotune.py` (``micro_autotune.py``)         | 00:42.803 | 0.0 MB |
+| :ref:`sphx_glr_how_to_work_with_microtvm_micro_autotune.py` (``micro_autotune.py``)         | 00:42.921 | 0.0 MB |
 +---------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_work_with_microtvm_micro_aot.py` (``micro_aot.py``)                   | 00:07.932 | 0.0 MB |
+| :ref:`sphx_glr_how_to_work_with_microtvm_micro_aot.py` (``micro_aot.py``)                   | 00:08.131 | 0.0 MB |
 +---------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_work_with_microtvm_micro_tflite.py` (``micro_tflite.py``)             | 00:03.397 | 0.0 MB |
+| :ref:`sphx_glr_how_to_work_with_microtvm_micro_tflite.py` (``micro_tflite.py``)             | 00:03.381 | 0.0 MB |
 +---------------------------------------------------------------------------------------------+-----------+--------+
 | :ref:`sphx_glr_how_to_work_with_microtvm_micro_ethosu.py` (``micro_ethosu.py``)             | 00:00.001 | 0.0 MB |
 +---------------------------------------------------------------------------------------------+-----------+--------+
diff --git a/docs/_sources/how_to/work_with_relay/sg_execution_times.rst.txt b/docs/_sources/how_to/work_with_relay/sg_execution_times.rst.txt
index a90fba718..d1d32aa80 100644
--- a/docs/_sources/how_to/work_with_relay/sg_execution_times.rst.txt
+++ b/docs/_sources/how_to/work_with_relay/sg_execution_times.rst.txt
@@ -5,14 +5,14 @@
 
 Computation times
 =================
-**00:43.321** total execution time for **how_to_work_with_relay** files:
+**00:43.343** total execution time for **how_to_work_with_relay** files:
 
 +----------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_work_with_relay_using_pipeline_executor.py` (``using_pipeline_executor.py``) | 00:31.757 | 0.0 MB |
+| :ref:`sphx_glr_how_to_work_with_relay_using_pipeline_executor.py` (``using_pipeline_executor.py``) | 00:31.820 | 0.0 MB |
 +----------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_work_with_relay_using_external_lib.py` (``using_external_lib.py``)           | 00:09.962 | 0.0 MB |
+| :ref:`sphx_glr_how_to_work_with_relay_using_external_lib.py` (``using_external_lib.py``)           | 00:09.836 | 0.0 MB |
 +----------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_work_with_relay_build_gcn.py` (``build_gcn.py``)                             | 00:01.594 | 0.0 MB |
+| :ref:`sphx_glr_how_to_work_with_relay_build_gcn.py` (``build_gcn.py``)                             | 00:01.680 | 0.0 MB |
 +----------------------------------------------------------------------------------------------------+-----------+--------+
 | :ref:`sphx_glr_how_to_work_with_relay_using_relay_viz.py` (``using_relay_viz.py``)                 | 00:00.007 | 0.0 MB |
 +----------------------------------------------------------------------------------------------------+-----------+--------+
diff --git a/docs/_sources/how_to/work_with_schedules/intrin_math.rst.txt b/docs/_sources/how_to/work_with_schedules/intrin_math.rst.txt
index c5d06f1f4..c19eeb984 100644
--- a/docs/_sources/how_to/work_with_schedules/intrin_math.rst.txt
+++ b/docs/_sources/how_to/work_with_schedules/intrin_math.rst.txt
@@ -261,7 +261,7 @@ The following example customizes CUDA lowering rule for :code:`exp`.
  .. code-block:: none
 
 
-    <function my_cuda_math_rule at 0x7f469a5749e0>
+    <function my_cuda_math_rule at 0x7f0a231c99e0>
 
 
 
diff --git a/docs/_sources/how_to/work_with_schedules/sg_execution_times.rst.txt b/docs/_sources/how_to/work_with_schedules/sg_execution_times.rst.txt
index e6cfc4ae8..d963a5d44 100644
--- a/docs/_sources/how_to/work_with_schedules/sg_execution_times.rst.txt
+++ b/docs/_sources/how_to/work_with_schedules/sg_execution_times.rst.txt
@@ -5,20 +5,20 @@
 
 Computation times
 =================
-**00:07.937** total execution time for **how_to_work_with_schedules** files:
+**00:07.499** total execution time for **how_to_work_with_schedules** files:
 
 +------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_work_with_schedules_intrin_math.py` (``intrin_math.py``)                 | 00:05.684 | 0.0 MB |
+| :ref:`sphx_glr_how_to_work_with_schedules_intrin_math.py` (``intrin_math.py``)                 | 00:05.280 | 0.0 MB |
 +------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_work_with_schedules_tensorize.py` (``tensorize.py``)                     | 00:00.991 | 0.0 MB |
+| :ref:`sphx_glr_how_to_work_with_schedules_tensorize.py` (``tensorize.py``)                     | 00:00.952 | 0.0 MB |
 +------------------------------------------------------------------------------------------------+-----------+--------+
 | :ref:`sphx_glr_how_to_work_with_schedules_reduction.py` (``reduction.py``)                     | 00:00.550 | 0.0 MB |
 +------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_work_with_schedules_scan.py` (``scan.py``)                               | 00:00.529 | 0.0 MB |
+| :ref:`sphx_glr_how_to_work_with_schedules_scan.py` (``scan.py``)                               | 00:00.532 | 0.0 MB |
 +------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_work_with_schedules_extern_op.py` (``extern_op.py``)                     | 00:00.100 | 0.0 MB |
+| :ref:`sphx_glr_how_to_work_with_schedules_extern_op.py` (``extern_op.py``)                     | 00:00.101 | 0.0 MB |
 +------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_how_to_work_with_schedules_schedule_primitives.py` (``schedule_primitives.py``) | 00:00.041 | 0.0 MB |
+| :ref:`sphx_glr_how_to_work_with_schedules_schedule_primitives.py` (``schedule_primitives.py``) | 00:00.042 | 0.0 MB |
 +------------------------------------------------------------------------------------------------+-----------+--------+
 | :ref:`sphx_glr_how_to_work_with_schedules_tedd.py` (``tedd.py``)                               | 00:00.027 | 0.0 MB |
 +------------------------------------------------------------------------------------------------+-----------+--------+
diff --git a/docs/_sources/how_to/work_with_schedules/tensorize.rst.txt b/docs/_sources/how_to/work_with_schedules/tensorize.rst.txt
index f2eba0f75..90d1ff96b 100644
--- a/docs/_sources/how_to/work_with_schedules/tensorize.rst.txt
+++ b/docs/_sources/how_to/work_with_schedules/tensorize.rst.txt
@@ -347,7 +347,7 @@ The importing needs to happen before the tensorized GEMV being executed.
                  C: Buffer(C_2: Pointer(float32), float32, [524288], [])}
       buffer_map = {A_1: A, B_1: B, C_1: C}
       preflattened_buffer_map = {A_1: A_3: Buffer(A_2, float32, [1024, 64], []), B_1: B_3: Buffer(B_2, float32, [512, 64], []), C_1: C_3: Buffer(C_2, float32, [1024, 512], [])} {
-      attr [IterVar(i: int32, (nullptr), "DataPar", "")] "pragma_import_llvm" = "; ModuleID = '/tmp/tmptj4j9rlc/input0.cc'\nsource_filename = \"/tmp/tmptj4j9rlc/input0.cc\"\ntarget datalayout = \"e-m:e-i64:64-f80:128-n8:16:32:64-S128\"\ntarget triple = \"x86_64-pc-linux-gnu\"\n\n; Function Attrs: noinline nounwind optnone uwtable\ndefine dso_local i32 @gemv_update(float*, float*, float*, i32, i32, i32) #0 {\n  %7 = alloca float*, align 8\n  %8 = alloca float*, align 8\n  %9 = alloca floa [...]
+      attr [IterVar(i: int32, (nullptr), "DataPar", "")] "pragma_import_llvm" = "; ModuleID = '/tmp/tmp8cc6zqi1/input0.cc'\nsource_filename = \"/tmp/tmp8cc6zqi1/input0.cc\"\ntarget datalayout = \"e-m:e-i64:64-f80:128-n8:16:32:64-S128\"\ntarget triple = \"x86_64-pc-linux-gnu\"\n\n; Function Attrs: noinline nounwind optnone uwtable\ndefine dso_local i32 @gemv_update(float*, float*, float*, i32, i32, i32) #0 {\n  %7 = alloca float*, align 8\n  %8 = alloca float*, align 8\n  %9 = alloca floa [...]
       for (i, 0, 1024) {
         for (j.outer: int32, 0, 32) {
           @tir.call_extern("gemv_update", @tir.tvm_access_ptr(@tir.type_annotation(, dtype=float32), C_2, ((i*512) + (j.outer*16)), 16, 2, dtype=handle), @tir.tvm_access_ptr(@tir.type_annotation(, dtype=float32), A_2, (i*64), 64, 1, dtype=handle), @tir.tvm_access_ptr(@tir.type_annotation(, dtype=float32), B_2, (j.outer*1024), 1024, 1, dtype=handle), 16, 64, 64, dtype=int32)
diff --git a/docs/_sources/topic/vta/tutorials/autotvm/sg_execution_times.rst.txt b/docs/_sources/topic/vta/tutorials/autotvm/sg_execution_times.rst.txt
index a32c8a500..cd6ccb445 100644
--- a/docs/_sources/topic/vta/tutorials/autotvm/sg_execution_times.rst.txt
+++ b/docs/_sources/topic/vta/tutorials/autotvm/sg_execution_times.rst.txt
@@ -5,10 +5,10 @@
 
 Computation times
 =================
-**00:21.546** total execution time for **topic_vta_tutorials_autotvm** files:
+**00:21.786** total execution time for **topic_vta_tutorials_autotvm** files:
 
 +---------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_topic_vta_tutorials_autotvm_tune_relay_vta.py` (``tune_relay_vta.py``) | 00:21.540 | 0.0 MB |
+| :ref:`sphx_glr_topic_vta_tutorials_autotvm_tune_relay_vta.py` (``tune_relay_vta.py``) | 00:21.780 | 0.0 MB |
 +---------------------------------------------------------------------------------------+-----------+--------+
 | :ref:`sphx_glr_topic_vta_tutorials_autotvm_tune_alu_vta.py` (``tune_alu_vta.py``)     | 00:00.006 | 0.0 MB |
 +---------------------------------------------------------------------------------------+-----------+--------+
diff --git a/docs/_sources/topic/vta/tutorials/frontend/deploy_classification.rst.txt b/docs/_sources/topic/vta/tutorials/frontend/deploy_classification.rst.txt
index 07cee6853..1b5a7dd19 100644
--- a/docs/_sources/topic/vta/tutorials/frontend/deploy_classification.rst.txt
+++ b/docs/_sources/topic/vta/tutorials/frontend/deploy_classification.rst.txt
@@ -289,7 +289,7 @@ The compilation steps are:
       DeprecationWarning,
     /workspace/vta/tutorials/frontend/deploy_classification.py:213: DeprecationWarning: legacy graph executor behavior of producing json / lib / params will be removed in the next release. Please see documents of tvm.contrib.graph_executor.GraphModule for the  new recommended usage.
       relay_prog, target=tvm.target.Target(target, host=env.target_host), params=params
-    resnet18_v1 inference graph built in 23.22s!
+    resnet18_v1 inference graph built in 23.36s!
 
 
 
diff --git a/docs/_sources/topic/vta/tutorials/frontend/deploy_detection.rst.txt b/docs/_sources/topic/vta/tutorials/frontend/deploy_detection.rst.txt
index 0c143e3a5..c1fb3b48a 100644
--- a/docs/_sources/topic/vta/tutorials/frontend/deploy_detection.rst.txt
+++ b/docs/_sources/topic/vta/tutorials/frontend/deploy_detection.rst.txt
@@ -333,7 +333,7 @@ The compilation steps are:
 
     /workspace/python/tvm/relay/build_module.py:348: DeprecationWarning: Please use input parameter mod (tvm.IRModule) instead of deprecated parameter mod (tvm.relay.function.Function)
       DeprecationWarning,
-    yolov3-tiny inference graph built in 16.37s!
+    yolov3-tiny inference graph built in 16.68s!
 
 
 
diff --git a/docs/_sources/topic/vta/tutorials/frontend/sg_execution_times.rst.txt b/docs/_sources/topic/vta/tutorials/frontend/sg_execution_times.rst.txt
index 1e74a0a2e..f86afb4a3 100644
--- a/docs/_sources/topic/vta/tutorials/frontend/sg_execution_times.rst.txt
+++ b/docs/_sources/topic/vta/tutorials/frontend/sg_execution_times.rst.txt
@@ -5,10 +5,10 @@
 
 Computation times
 =================
-**01:31.794** total execution time for **topic_vta_tutorials_frontend** files:
+**01:32.886** total execution time for **topic_vta_tutorials_frontend** files:
 
 +------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_topic_vta_tutorials_frontend_deploy_detection.py` (``deploy_detection.py``)           | 00:48.617 | 0.0 MB |
+| :ref:`sphx_glr_topic_vta_tutorials_frontend_deploy_detection.py` (``deploy_detection.py``)           | 00:49.228 | 0.0 MB |
 +------------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_topic_vta_tutorials_frontend_deploy_classification.py` (``deploy_classification.py``) | 00:43.177 | 0.0 MB |
+| :ref:`sphx_glr_topic_vta_tutorials_frontend_deploy_classification.py` (``deploy_classification.py``) | 00:43.657 | 0.0 MB |
 +------------------------------------------------------------------------------------------------------+-----------+--------+
diff --git a/docs/_sources/topic/vta/tutorials/optimize/sg_execution_times.rst.txt b/docs/_sources/topic/vta/tutorials/optimize/sg_execution_times.rst.txt
index f38322eb1..444e1a25a 100644
--- a/docs/_sources/topic/vta/tutorials/optimize/sg_execution_times.rst.txt
+++ b/docs/_sources/topic/vta/tutorials/optimize/sg_execution_times.rst.txt
@@ -5,10 +5,10 @@
 
 Computation times
 =================
-**00:03.039** total execution time for **topic_vta_tutorials_optimize** files:
+**00:03.062** total execution time for **topic_vta_tutorials_optimize** files:
 
 +--------------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_topic_vta_tutorials_optimize_convolution_opt.py` (``convolution_opt.py``)         | 00:02.641 | 0.0 MB |
+| :ref:`sphx_glr_topic_vta_tutorials_optimize_convolution_opt.py` (``convolution_opt.py``)         | 00:02.664 | 0.0 MB |
 +--------------------------------------------------------------------------------------------------+-----------+--------+
 | :ref:`sphx_glr_topic_vta_tutorials_optimize_matrix_multiply_opt.py` (``matrix_multiply_opt.py``) | 00:00.398 | 0.0 MB |
 +--------------------------------------------------------------------------------------------------+-----------+--------+
diff --git a/docs/_sources/topic/vta/tutorials/sg_execution_times.rst.txt b/docs/_sources/topic/vta/tutorials/sg_execution_times.rst.txt
index 4e0377d50..05d04c0e6 100644
--- a/docs/_sources/topic/vta/tutorials/sg_execution_times.rst.txt
+++ b/docs/_sources/topic/vta/tutorials/sg_execution_times.rst.txt
@@ -5,10 +5,10 @@
 
 Computation times
 =================
-**00:00.739** total execution time for **topic_vta_tutorials** files:
+**00:00.732** total execution time for **topic_vta_tutorials** files:
 
 +---------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_topic_vta_tutorials_matrix_multiply.py` (``matrix_multiply.py``) | 00:00.393 | 0.0 MB |
+| :ref:`sphx_glr_topic_vta_tutorials_matrix_multiply.py` (``matrix_multiply.py``) | 00:00.395 | 0.0 MB |
 +---------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_topic_vta_tutorials_vta_get_started.py` (``vta_get_started.py``) | 00:00.346 | 0.0 MB |
+| :ref:`sphx_glr_topic_vta_tutorials_vta_get_started.py` (``vta_get_started.py``) | 00:00.337 | 0.0 MB |
 +---------------------------------------------------------------------------------+-----------+--------+
diff --git a/docs/_sources/tutorial/auto_scheduler_matmul_x86.rst.txt b/docs/_sources/tutorial/auto_scheduler_matmul_x86.rst.txt
index c8f13584c..d1236f3f0 100644
--- a/docs/_sources/tutorial/auto_scheduler_matmul_x86.rst.txt
+++ b/docs/_sources/tutorial/auto_scheduler_matmul_x86.rst.txt
@@ -326,7 +326,7 @@ We build the binary and check its correctness and performance.
 
  .. code-block:: none
 
-    Execution time of this operator: 94.313 ms
+    Execution time of this operator: 94.362 ms
 
 
 
@@ -444,7 +444,7 @@ operations.
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 1 minutes  3.071 seconds)
+   **Total running time of the script:** ( 1 minutes  0.689 seconds)
 
 
 .. _sphx_glr_download_tutorial_auto_scheduler_matmul_x86.py:
diff --git a/docs/_sources/tutorial/autotvm_matmul_x86.rst.txt b/docs/_sources/tutorial/autotvm_matmul_x86.rst.txt
index 121b6e469..1951a0f4b 100644
--- a/docs/_sources/tutorial/autotvm_matmul_x86.rst.txt
+++ b/docs/_sources/tutorial/autotvm_matmul_x86.rst.txt
@@ -462,16 +462,16 @@ reduce variance, we take 5 measurements and average them.
     waiting for device...
     device available
     Get devices for measurement successfully!
-    No: 1   GFLOPS: 10.55/10.55     result: MeasureResult(costs=(0.025445902599999997,), error_no=MeasureErrorNo.NO_ERROR, all_cost=0.5417540073394775, timestamp=1663469819.5163558)       [('tile_y', [-1, 1]), ('tile_x', [-1, 256])],None,80
-    No: 2   GFLOPS: 2.84/10.55      result: MeasureResult(costs=(0.0944229584,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.6651501655578613, timestamp=1663469821.1950037)       [('tile_y', [-1, 4]), ('tile_x', [-1, 8])],None,32
-    No: 3   GFLOPS: 11.78/11.78     result: MeasureResult(costs=(0.0227868496,), error_no=MeasureErrorNo.NO_ERROR, all_cost=0.5590567588806152, timestamp=1663469822.27112) [('tile_y', [-1, 64]), ('tile_x', [-1, 32])],None,56
-    No: 4   GFLOPS: 1.75/11.78      result: MeasureResult(costs=(0.1538192732,), error_no=MeasureErrorNo.NO_ERROR, all_cost=2.5762321949005127, timestamp=1663469825.4323292)       [('tile_y', [-1, 1]), ('tile_x', [-1, 4])],None,20
-    No: 5   GFLOPS: 3.61/11.78      result: MeasureResult(costs=(0.0742677068,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.3287341594696045, timestamp=1663469826.891373)        [('tile_y', [-1, 256]), ('tile_x', [-1, 16])],None,48
-    No: 6   GFLOPS: 1.78/11.78      result: MeasureResult(costs=(0.150919807,), error_no=MeasureErrorNo.NO_ERROR, all_cost=2.578319787979126, timestamp=1663469829.5149138) [('tile_y', [-1, 512]), ('tile_x', [-1, 4])],None,29
-    No: 7   GFLOPS: 0.83/11.78      result: MeasureResult(costs=(0.3241857452,), error_no=MeasureErrorNo.NO_ERROR, all_cost=5.3045430183410645, timestamp=1663469835.3961186)       [('tile_y', [-1, 512]), ('tile_x', [-1, 2])],None,19
-    No: 8   GFLOPS: 9.80/11.78      result: MeasureResult(costs=(0.0273998466,), error_no=MeasureErrorNo.NO_ERROR, all_cost=0.5892088413238525, timestamp=1663469835.9991488)       [('tile_y', [-1, 4]), ('tile_x', [-1, 64])],None,62
-    No: 9   GFLOPS: 1.48/11.78      result: MeasureResult(costs=(0.1814769942,), error_no=MeasureErrorNo.NO_ERROR, all_cost=3.0227136611938477, timestamp=1663469839.1418772)       [('tile_y', [-1, 2]), ('tile_x', [-1, 2])],None,11
-    No: 10  GFLOPS: 2.58/11.78      result: MeasureResult(costs=(0.1040216138,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.8347859382629395, timestamp=1663469841.0136619)       [('tile_y', [-1, 4]), ('tile_x', [-1, 4])],None,22
+    No: 1   GFLOPS: 10.50/10.50     result: MeasureResult(costs=(0.025571394000000004,), error_no=MeasureErrorNo.NO_ERROR, all_cost=0.5410504341125488, timestamp=1663470826.6606605)       [('tile_y', [-1, 1]), ('tile_x', [-1, 256])],None,80
+    No: 2   GFLOPS: 2.94/10.50      result: MeasureResult(costs=(0.0913465966,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.6107385158538818, timestamp=1663470828.2854114)       [('tile_y', [-1, 4]), ('tile_x', [-1, 8])],None,32
+    No: 3   GFLOPS: 11.81/11.81     result: MeasureResult(costs=(0.022735824600000003,), error_no=MeasureErrorNo.NO_ERROR, all_cost=0.553229808807373, timestamp=1663470829.356972) [('tile_y', [-1, 64]), ('tile_x', [-1, 32])],None,56
+    No: 4   GFLOPS: 1.68/11.81      result: MeasureResult(costs=(0.1596556664,), error_no=MeasureErrorNo.NO_ERROR, all_cost=2.672175884246826, timestamp=1663470832.0769916)        [('tile_y', [-1, 1]), ('tile_x', [-1, 4])],None,20
+    No: 5   GFLOPS: 3.59/11.81      result: MeasureResult(costs=(0.0748339044,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.338423728942871, timestamp=1663470833.5457747)        [('tile_y', [-1, 256]), ('tile_x', [-1, 16])],None,48
+    No: 6   GFLOPS: 1.71/11.81      result: MeasureResult(costs=(0.15662303119999998,), error_no=MeasureErrorNo.NO_ERROR, all_cost=2.6491992473602295, timestamp=1663470836.7730813)        [('tile_y', [-1, 512]), ('tile_x', [-1, 4])],None,29
+    No: 7   GFLOPS: 0.86/11.81      result: MeasureResult(costs=(0.3116066164,), error_no=MeasureErrorNo.NO_ERROR, all_cost=5.121730089187622, timestamp=1663470842.4811149)        [('tile_y', [-1, 512]), ('tile_x', [-1, 2])],None,19
+    No: 8   GFLOPS: 10.35/11.81     result: MeasureResult(costs=(0.0259337086,), error_no=MeasureErrorNo.NO_ERROR, all_cost=0.5578944683074951, timestamp=1663470843.0597157)       [('tile_y', [-1, 4]), ('tile_x', [-1, 64])],None,62
+    No: 9   GFLOPS: 1.65/11.81      result: MeasureResult(costs=(0.1628200444,), error_no=MeasureErrorNo.NO_ERROR, all_cost=2.7443952560424805, timestamp=1663470845.9253268)       [('tile_y', [-1, 2]), ('tile_x', [-1, 2])],None,11
+    No: 10  GFLOPS: 2.75/11.81      result: MeasureResult(costs=(0.09748297019999999,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.6899127960205078, timestamp=1663470847.6526582)        [('tile_y', [-1, 4]), ('tile_x', [-1, 4])],None,22
 
 
 
diff --git a/docs/_sources/tutorial/autotvm_relay_x86.rst.txt b/docs/_sources/tutorial/autotvm_relay_x86.rst.txt
index fe519a9b7..dd2c0acdd 100644
--- a/docs/_sources/tutorial/autotvm_relay_x86.rst.txt
+++ b/docs/_sources/tutorial/autotvm_relay_x86.rst.txt
@@ -320,7 +320,7 @@ standard deviation.
 
  .. code-block:: none
 
-    {'mean': 513.5153334400026, 'median': 513.5146032500018, 'std': 2.0956416894507734}
+    {'mean': 515.16661602, 'median': 515.5533031499999, 'std': 2.187307481651193}
 
 
 
@@ -554,30 +554,30 @@ the tuning data to.
 
  .. code-block:: none
 
-
    [Task  1/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task  1/25]  Current/Best:   17.50/  17.50 GFLOPS | Progress: (4/20) | 6.44 s
    [Task  1/25]  Current/Best:    6.10/  17.50 GFLOPS | Progress: (8/20) | 9.51 s
    [Task  1/25]  Current/Best:   11.23/  21.37 GFLOPS | Progress: (12/20) | 12.04 s
    [Task  1/25]  Current/Best:   16.39/  22.16 GFLOPS | Progress: (16/20) | 13.73 s
    [Task  1/25]  Current/Best:   11.32/  23.48 GFLOPS | Progress: (20/20) | 15.53 s Done.
-
    [Task  2/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task  2/25]  Current/Best:   12.25/  12.25 GFLOPS | Progress: (4/20) | 3.91 s
    [Task  2/25]  Current/Best:   12.41/  18.26 GFLOPS | Progress: (8/20) | 5.21 s
    [Task  2/25]  Current/Best:   20.36/  20.36 GFLOPS | Progress: (12/20) | 6.57 s
    [Task  2/25]  Current/Best:   11.17/  20.36 GFLOPS | Progress: (16/20) | 7.83 s
    [Task  2/25]  Current/Best:   18.25/  20.36 GFLOPS | Progress: (20/20) | 9.46 s Done.
-
    [Task  3/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task  3/25]  Current/Best:    1.63/  10.15 GFLOPS | Progress: (4/20) | 5.90 s
    [Task  3/25]  Current/Best:   15.38/  16.87 GFLOPS | Progress: (8/20) | 7.85 s
    [Task  3/25]  Current/Best:   15.01/  16.87 GFLOPS | Progress: (12/20) | 9.59 s
    [Task  3/25]  Current/Best:    6.83/  23.19 GFLOPS | Progress: (16/20) | 11.61 s
    [Task  3/25]  Current/Best:   11.05/  23.19 GFLOPS | Progress: (20/20) | 16.23 s Done.
-
    [Task  4/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task  4/25]  Current/Best:    9.09/  18.53 GFLOPS | Progress: (4/20) | 2.44 s
    [Task  4/25]  Current/Best:    6.61/  18.53 GFLOPS | Progress: (8/20) | 7.15 s
    [Task  4/25]  Current/Best:   20.89/  20.89 GFLOPS | Progress: (12/20) | 12.05 s
    [Task  4/25]  Current/Best:   16.49/  20.89 GFLOPS | Progress: (16/20) | 14.44 s
    [Task  4/25]  Current/Best:   12.32/  20.89 GFLOPS | Progress: (20/20) | 16.41 s Done.
-
    [Task  5/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task  5/25]  Current/Best:    9.17/   9.97 GFLOPS | Progress: (4/20) | 2.65 s
    [Task  5/25]  Current/Best:   11.74/  11.74 GFLOPS | Progress: (8/20) | 4.72 s
    [Task  5/25]  Current/Best:   10.24/  17.95 GFLOPS | Progress: (12/20) | 7.82 s
    [Task  5/25]  Current/Best:   11.65/  22.00 GFLOPS | Progress: (16/20) | 9.25 s
    [Task  5/25]  Current/Best:   12.10/  22.00 GFLOPS | Progress: (20/20) | 11.21 s Done.
-
    [Task  6/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task  6/25]  Current/Best:   12.06/  19.94 GFLOPS | Progress: (4/20) | 4.14 s
    [Task  6/25]  Current/Best:   18.93/  19.94 GFLOPS | Progress: (8/20) | 5.91 s
    [Task  6/25]  Current/Best:   13.25/  19.94 GFLOPS | Progress: (12/20) | 7.92 s
    [Task  6/25]  Current/Best:   18.70/  19.94 GFLOPS | Progress: (16/20) | 10.23 s
    [Task  6/25]  Current/Best:    3.74/  19.94 GFLOPS | Progress: (20/20) | 12.85 s Done.
-
    [Task  7/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task  7/25]  Current/Best:    9.76/  12.05 GFLOPS | Progress: (4/20) | 3.68 s
    [Task  7/25]  Current/Best:   19.52/  20.11 GFLOPS | Progress: (8/20) | 5.23 s
    [Task  7/25]  Current/Best:   16.10/  20.11 GFLOPS | Progress: (12/20) | 7.16 s
    [Task  7/25]  Current/Best:   12.12/  20.11 GFLOPS | Progress: (16/20) | 9.26 s
    [Task  7/25]  Current/Best:    6.12/  20.53 GFLOPS | Progress: (20/20) | 11.77 s Done.
-
    [Task  8/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task  8/25]  Current/Best:   10.40/  14.10 GFLOPS | Progress: (4/20) | 2.95 s
    [Task  8/25]  Current/Best:    9.85/  14.10 GFLOPS | Progress: (8/20) | 8.02 s
    [Task  8/25]  Current/Best:   13.37/  14.10 GFLOPS | Progress: (12/20) | 14.51 s
    [Task  8/25]  Current/Best:   19.01/  19.01 GFLOPS | Progress: (16/20) | 16.63 s
    [Task  8/25]  Current/Best:   18.83/  19.01 GFLOPS | Progress: (20/20) | 23.66 s Done.
-
    [Task  9/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task  9/25]  Current/Best:   14.33/  14.33 GFLOPS | Progress: (4/20) | 12.01 s
    [Task  9/25]  Current/Best:   21.74/  21.74 GFLOPS | Progress: (8/20) | 13.93 s
    [Task  9/25]  Current/Best:    7.56/  21.74 GFLOPS | Progress: (12/20) | 16.48 s
    [Task  9/25]  Current/Best:   17.93/  21.74 GFLOPS | Progress: (16/20) | 19.35 s
    [Task  9/25]  Current/Best:    8.99/  21.74 GFLOPS | Progress: (20/20) | 27.80 s
    [Task 10/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 10/25]  Current/Best:   18.12/  18.12 GFLOPS | Progress: (4/20) | 2.60 s
    [Task 10/25]  Current/Best:   13.96/  18.12 GFLOPS | Progress: (8/20) | 4.24 s
    [Task 10/25]  Current/Best:   11.65/  18.87 GFLOPS | Progress: (12/20) | 5.83 s
    [Task 10/25]  Current/Best:   19.13/  20.23 GFLOPS | Progress: (16/20) | 6.95 s
    [Task 10/25]  Current/Best:    8.40/  20.23 GFLOPS | Progress: (20/20
 ) | 8.51 s Done.
-
    [Task 11/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 11/25]  Current/Best:   10.91/  18.20 GFLOPS | Progress: (4/20) | 3.47 s
    [Task 11/25]  Current/Best:   14.85/  18.20 GFLOPS | Progress: (8/20) | 6.31 s
    [Task 11/25]  Current/Best:   15.95/  18.20 GFLOPS | Progress: (12/20) | 8.46 s
    [Task 11/25]  Current/Best:   11.87/  20.66 GFLOPS | Progress: (16/20) | 11.44 s
    [Task 11/25]  Current/Best:   18.53/  20.66 GFLOPS | Progress: (20/20) | 13.59 s Done.
-
    [Task 12/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 12/25]  Current/Best:    7.77/  17.87 GFLOPS | Progress: (4/20) | 5.75 s
    [Task 12/25]  Current/Best:    5.14/  17.87 GFLOPS | Progress: (8/20) | 9.71 s
    [Task 12/25]  Current/Best:   18.78/  18.78 GFLOPS | Progress: (12/20) | 11.73 s
    [Task 12/25]  Current/Best:   15.14/  18.78 GFLOPS | Progress: (16/20) | 14.68 s
    [Task 12/25]  Current/Best:   15.11/  18.78 GFLOPS | Progress: (20/20) | 16.63 s Done.
-
    [Task 13/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 13/25]  Current/Best:    8.71/  17.33 GFLOPS | Progress: (4/20) | 3.78 s
    [Task 13/25]  Current/Best:   15.22/  20.67 GFLOPS | Progress: (8/20) | 6.39 s
    [Task 13/25]  Current/Best:   17.92/  21.41 GFLOPS | Progress: (12/20) | 9.52 s
    [Task 13/25]  Current/Best:   12.17/  21.41 GFLOPS | Progress: (16/20) | 12.95 s
    [Task 13/25]  Current/Best:   17.85/  21.41 GFLOPS | Progress: (20/20) | 15.33 s Done.
-
    [Task 14/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 14/25]  Current/Best:   12.19/  13.26 GFLOPS | Progress: (4/20) | 3.40 s
    [Task 14/25]  Current/Best:    6.06/  13.26 GFLOPS | Progress: (8/20) | 5.60 s
    [Task 14/25]  Current/Best:   19.75/  19.75 GFLOPS | Progress: (12/20) | 8.27 s
    [Task 14/25]  Current/Best:   16.08/  19.75 GFLOPS | Progress: (16/20) | 9.92 s Done.
-
    [Task 14/25]  Current/Best:   16.75/  19.75 GFLOPS | Progress: (20/20) | 11.75 s
    [Task 15/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 15/25]  Current/Best:   14.89/  16.72 GFLOPS | Progress: (4/20) | 2.76 s
    [Task 15/25]  Current/Best:   12.72/  17.75 GFLOPS | Progress: (8/20) | 4.09 s
    [Task 15/25]  Current/Best:    9.84/  20.31 GFLOPS | Progress: (12/20) | 6.33 s
    [Task 15/25]  Current/Best:   19.30/  20.31 GFLOPS | Progress: (16/20) | 9.44 s
    [Task 15/25]  Current/Best:    9.52/  20.31 GFLOPS | Progress: (20/20) | 10.47 s
    [Task 16/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 16/25]  Current/Best:   19.83/  19.83 GFLOPS | Progress: (4/20) | 3.02 s
    [Task 16/25]  Current/Best:    3.03/  19.83 GFLOPS | Progress: (8/20) | 4.65 s
    [Task 16/25]  Current/Best:   18.05/  19.83 GFLOPS | Progress: (12/20) | 5.89 s
    [Task 16/25]  Current/Best:   18.25/  19.83 GFLOPS | Progress: (16/20) |
  7.30 s
    [Task 16/25]  Current/Best:    9.77/  20.68 GFLOPS | Progress: (20/20) | 9.47 s Done.
-
    [Task 17/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 17/25]  Current/Best:   12.69/  16.12 GFLOPS | Progress: (4/20) | 4.87 s
    [Task 17/25]  Current/Best:   13.00/  22.45 GFLOPS | Progress: (8/20) | 7.79 s
    [Task 17/25]  Current/Best:   16.49/  22.45 GFLOPS | Progress: (12/20) | 9.91 s
    [Task 17/25]  Current/Best:   16.43/  22.45 GFLOPS | Progress: (16/20) | 12.18 s
    [Task 17/25]  Current/Best:    9.95/  22.45 GFLOPS | Progress: (20/20) | 14.36 s Done.
-
    [Task 18/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 18/25]  Current/Best:   10.18/  16.93 GFLOPS | Progress: (4/20) | 3.89 s
    [Task 18/25]  Current/Best:   10.51/  17.57 GFLOPS | Progress: (8/20) | 7.59 s
    [Task 18/25]  Current/Best:   18.66/  18.66 GFLOPS | Progress: (12/20) | 9.55 s
    [Task 18/25]  Current/Best:   10.22/  18.66 GFLOPS | Progress: (16/20) | 13.44 s
    [Task 18/25]  Current/Best:   20.75/  20.75 GFLOPS | Progress: (20/20) | 14.99 s Done.
-
    [Task 19/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 19/25]  Current/Best:    7.23/  19.02 GFLOPS | Progress: (4/20) | 6.20 s
    [Task 19/25]  Current/Best:    2.69/  19.02 GFLOPS | Progress: (8/20) | 9.52 s
    [Task 19/25]  Current/Best:   18.96/  20.19 GFLOPS | Progress: (12/20) | 12.50 s
    [Task 19/25]  Current/Best:   13.03/  20.19 GFLOPS | Progress: (16/20) | 15.53 s
    [Task 19/25]  Current/Best:    2.69/  21.89 GFLOPS | Progress: (20/20) | 18.34 s Done.
-
    [Task 20/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 20/25]  Current/Best:    8.42/  15.13 GFLOPS | Progress: (4/20) | 3.41 s Done.
+
    [Task  1/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task  1/25]  Current/Best:   16.54/  16.81 GFLOPS | Progress: (4/20) | 6.49 s
    [Task  1/25]  Current/Best:    6.09/  16.81 GFLOPS | Progress: (8/20) | 9.58 s
    [Task  1/25]  Current/Best:   11.20/  21.93 GFLOPS | Progress: (12/20) | 12.11 s
    [Task  1/25]  Current/Best:   16.51/  22.27 GFLOPS | Progress: (16/20) | 13.81 s
    [Task  1/25]  Current/Best:   11.18/  23.59 GFLOPS | Progress: (20/20) | 15.59 s Done.
+
    [Task  2/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task  2/25]  Current/Best:   11.99/  12.38 GFLOPS | Progress: (4/20) | 3.82 s
    [Task  2/25]  Current/Best:   12.48/  18.21 GFLOPS | Progress: (8/20) | 5.16 s
    [Task  2/25]  Current/Best:   20.86/  20.86 GFLOPS | Progress: (12/20) | 6.50 s
    [Task  2/25]  Current/Best:   10.72/  20.86 GFLOPS | Progress: (16/20) | 7.78 s
    [Task  2/25]  Current/Best:   17.58/  20.86 GFLOPS | Progress: (20/20) | 9.40 s Done.
+
    [Task  3/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task  3/25]  Current/Best:    1.63/  10.11 GFLOPS | Progress: (4/20) | 5.90 s
    [Task  3/25]  Current/Best:   15.39/  16.84 GFLOPS | Progress: (8/20) | 7.87 s
    [Task  3/25]  Current/Best:   14.99/  16.84 GFLOPS | Progress: (12/20) | 9.61 s
    [Task  3/25]  Current/Best:    6.82/  23.10 GFLOPS | Progress: (16/20) | 11.58 s
    [Task  3/25]  Current/Best:   10.98/  23.10 GFLOPS | Progress: (20/20) | 16.14 s Done.
+
    [Task  4/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task  4/25]  Current/Best:    9.11/  18.38 GFLOPS | Progress: (4/20) | 2.46 s
    [Task  4/25]  Current/Best:    6.52/  18.38 GFLOPS | Progress: (8/20) | 6.88 s
    [Task  4/25]  Current/Best:   18.95/  18.95 GFLOPS | Progress: (12/20) | 11.53 s
    [Task  4/25]  Current/Best:   16.03/  19.81 GFLOPS | Progress: (16/20) | 13.73 s
    [Task  4/25]  Current/Best:   12.62/  19.81 GFLOPS | Progress: (20/20) | 15.78 s Done.
+
    [Task  5/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task  5/25]  Current/Best:    8.98/   9.76 GFLOPS | Progress: (4/20) | 2.66 s
    [Task  5/25]  Current/Best:   11.50/  11.50 GFLOPS | Progress: (8/20) | 4.75 s
    [Task  5/25]  Current/Best:   11.15/  17.99 GFLOPS | Progress: (12/20) | 7.73 s
    [Task  5/25]  Current/Best:   11.39/  22.23 GFLOPS | Progress: (16/20) | 9.17 s
    [Task  5/25]  Current/Best:   12.00/  22.23 GFLOPS | Progress: (20/20) | 11.06 s Done.
+
    [Task  6/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task  6/25]  Current/Best:   12.00/  19.95 GFLOPS | Progress: (4/20) | 4.05 s
    [Task  6/25]  Current/Best:   18.89/  19.95 GFLOPS | Progress: (8/20) | 5.82 s
    [Task  6/25]  Current/Best:   13.15/  19.95 GFLOPS | Progress: (12/20) | 7.82 s
    [Task  6/25]  Current/Best:   19.53/  19.95 GFLOPS | Progress: (16/20) | 10.13 s
    [Task  6/25]  Current/Best:    3.72/  19.95 GFLOPS | Progress: (20/20) | 12.73 s Done.
+
    [Task  7/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task  7/25]  Current/Best:    9.77/  12.09 GFLOPS | Progress: (4/20) | 3.75 s
    [Task  7/25]  Current/Best:   19.24/  19.24 GFLOPS | Progress: (8/20) | 5.32 s
    [Task  7/25]  Current/Best:   15.91/  19.31 GFLOPS | Progress: (12/20) | 7.26 s
    [Task  7/25]  Current/Best:   12.11/  20.09 GFLOPS | Progress: (16/20) | 9.36 s
    [Task  7/25]  Current/Best:    6.06/  20.39 GFLOPS | Progress: (20/20) | 11.87 s Done.
+
    [Task  8/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task  8/25]  Current/Best:   10.09/  13.64 GFLOPS | Progress: (4/20) | 2.96 s
    [Task  8/25]  Current/Best:    8.99/  13.64 GFLOPS | Progress: (8/20) | 7.87 s
    [Task  8/25]  Current/Best:   13.21/  13.69 GFLOPS | Progress: (12/20) | 14.08 s
    [Task  8/25]  Current/Best:   19.18/  19.18 GFLOPS | Progress: (16/20) | 16.21 s
    [Task  8/25]  Current/Best:   18.15/  19.18 GFLOPS | Progress: (20/20) | 22.73 s Done.
+
    [Task  9/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task  9/25]  Current/Best:   14.37/  14.37 GFLOPS | Progress: (4/20) | 12.02 s
    [Task  9/25]  Current/Best:   22.04/  22.04 GFLOPS | Progress: (8/20) | 13.92 s
    [Task  9/25]  Current/Best:    7.99/  22.04 GFLOPS | Progress: (12/20) | 16.35 s
    [Task  9/25]  Current/Best:   17.86/  22.04 GFLOPS | Progress: (16/20) | 18.93 s
    [Task  9/25]  Current/Best:    8.96/  22.04 GFLOPS | Progress: (20/20) | 26.60 s
    [Task 10/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 10/25]  Current/Best:   18.04/  18.04 GFLOPS | Progress: (4/20) | 2.65 s
    [Task 10/25]  Current/Best:   15.68/  18.04 GFLOPS | Progress: (8/20) | 4.25 s
    [Task 10/25]  Current/Best:   11.22/  18.49 GFLOPS | Progress: (12/20) | 5.81 s
    [Task 10/25]  Current/Best:   19.03/  20.13 GFLOPS | Progress: (16/20) | 6.93 s
    [Task 10/25]  Current/Best:    8.59/  20.13 GFLOPS | Progress: (20/20
 ) | 8.48 s Done.
+
    [Task 11/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 11/25]  Current/Best:   10.77/  18.19 GFLOPS | Progress: (4/20) | 3.44 s
    [Task 11/25]  Current/Best:   14.80/  18.19 GFLOPS | Progress: (8/20) | 6.23 s
    [Task 11/25]  Current/Best:   15.93/  18.19 GFLOPS | Progress: (12/20) | 8.33 s
    [Task 11/25]  Current/Best:   11.87/  20.30 GFLOPS | Progress: (16/20) | 11.19 s
    [Task 11/25]  Current/Best:   18.30/  20.30 GFLOPS | Progress: (20/20) | 13.28 s Done.
+
    [Task 12/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 12/25]  Current/Best:    7.78/  17.81 GFLOPS | Progress: (4/20) | 5.39 s
    [Task 12/25]  Current/Best:    5.08/  17.81 GFLOPS | Progress: (8/20) | 9.12 s
    [Task 12/25]  Current/Best:   18.68/  18.68 GFLOPS | Progress: (12/20) | 11.17 s
    [Task 12/25]  Current/Best:   15.07/  18.68 GFLOPS | Progress: (16/20) | 14.00 s
    [Task 12/25]  Current/Best:   15.10/  18.68 GFLOPS | Progress: (20/20) | 16.01 s Done.
+
    [Task 13/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 13/25]  Current/Best:    8.49/  17.16 GFLOPS | Progress: (4/20) | 3.73 s
    [Task 13/25]  Current/Best:   14.85/  20.61 GFLOPS | Progress: (8/20) | 6.19 s
    [Task 13/25]  Current/Best:   18.63/  21.01 GFLOPS | Progress: (12/20) | 9.13 s
    [Task 13/25]  Current/Best:   12.20/  21.01 GFLOPS | Progress: (16/20) | 12.54 s
    [Task 13/25]  Current/Best:   17.17/  21.01 GFLOPS | Progress: (20/20) | 14.88 s Done.
+
    [Task 14/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 14/25]  Current/Best:   12.16/  13.32 GFLOPS | Progress: (4/20) | 3.36 s
    [Task 14/25]  Current/Best:    6.08/  13.32 GFLOPS | Progress: (8/20) | 5.64 s
    [Task 14/25]  Current/Best:   18.93/  18.93 GFLOPS | Progress: (12/20) | 8.23 s
    [Task 14/25]  Current/Best:   15.28/  18.93 GFLOPS | Progress: (16/20) | 9.95 s Done.
+
    [Task 14/25]  Current/Best:   17.01/  18.93 GFLOPS | Progress: (20/20) | 11.73 s
    [Task 15/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 15/25]  Current/Best:   15.61/  17.10 GFLOPS | Progress: (4/20) | 2.81 s
    [Task 15/25]  Current/Best:   12.64/  17.90 GFLOPS | Progress: (8/20) | 4.13 s
    [Task 15/25]  Current/Best:    9.80/  21.54 GFLOPS | Progress: (12/20) | 6.21 s
    [Task 15/25]  Current/Best:   19.54/  21.54 GFLOPS | Progress: (16/20) | 9.59 s
    [Task 15/25]  Current/Best:    9.03/  21.54 GFLOPS | Progress: (20/20) | 10.62 s
    [Task 16/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 16/25]  Current/Best:   16.98/  16.98 GFLOPS | Progress: (4/20) | 3.07 s
    [Task 16/25]  Current/Best:    3.03/  16.98 GFLOPS | Progress: (8/20) | 4.70 s
    [Task 16/25]  Current/Best:   17.38/  19.36 GFLOPS | Progress: (12/20) | 5.94 s
    [Task 16/25]  Current/Best:   17.87/  19.36 GFLOPS | Progress: (16/20) |
  7.29 s
    [Task 16/25]  Current/Best:    9.82/  21.17 GFLOPS | Progress: (20/20) | 9.36 s Done.
+
    [Task 17/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 17/25]  Current/Best:   12.31/  16.08 GFLOPS | Progress: (4/20) | 4.84 s
    [Task 17/25]  Current/Best:   12.74/  22.68 GFLOPS | Progress: (8/20) | 7.71 s
    [Task 17/25]  Current/Best:   16.51/  22.68 GFLOPS | Progress: (12/20) | 9.82 s
    [Task 17/25]  Current/Best:   16.44/  22.68 GFLOPS | Progress: (16/20) | 11.97 s
    [Task 17/25]  Current/Best:    9.95/  22.68 GFLOPS | Progress: (20/20) | 14.11 s Done.
+
    [Task 18/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 18/25]  Current/Best:   10.57/  16.33 GFLOPS | Progress: (4/20) | 3.79 s
    [Task 18/25]  Current/Best:   10.58/  17.88 GFLOPS | Progress: (8/20) | 7.32 s
    [Task 18/25]  Current/Best:   18.67/  18.67 GFLOPS | Progress: (12/20) | 9.33 s
    [Task 18/25]  Current/Best:    9.87/  18.67 GFLOPS | Progress: (16/20) | 12.96 s
    [Task 18/25]  Current/Best:   20.42/  20.42 GFLOPS | Progress: (20/20) | 14.51 s Done.
+
    [Task 19/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 19/25]  Current/Best:    7.13/  19.82 GFLOPS | Progress: (4/20) | 6.16 s
    [Task 19/25]  Current/Best:    2.68/  19.82 GFLOPS | Progress: (8/20) | 9.42 s
    [Task 19/25]  Current/Best:   18.18/  20.72 GFLOPS | Progress: (12/20) | 12.28 s
    [Task 19/25]  Current/Best:   13.34/  20.89 GFLOPS | Progress: (16/20) | 15.24 s
    [Task 19/25]  Current/Best:    2.69/  22.02 GFLOPS | Progress: (20/20) | 18.03 s Done.
+
    [Task 20/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 20/25]  Current/Best:    8.50/  15.12 GFLOPS | Progress: (4/20) | 3.36 s Done.
      Done.
-
    [Task 20/25]  Current/Best:    9.71/  15.13 GFLOPS | Progress: (8/20) | 6.84 s
    [Task 20/25]  Current/Best:    2.32/  15.13 GFLOPS | Progress: (12/20) | 10.82 s
    [Task 20/25]  Current/Best:   11.06/  15.13 GFLOPS | Progress: (16/20) | 14.74 s
    [Task 20/25]  Current/Best:   11.90/  21.57 GFLOPS | Progress: (20/20) | 16.91 s
    [Task 21/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 21/25]  Current/Best:    6.30/  17.49 GFLOPS | Progress: (4/20) | 3.32 s
    [Task 21/25]  Current/Best:   14.60/  17.49 GFLOPS | Progress: (8/20) | 4.98 s
    [Task 21/25]  Current/Best:    1.61/  17.49 GFLOPS | Progress: (12/20) | 7.15 s
    [Task 21/25]  Current/Best:   16.06/  17.49 GFLOPS | Progress: (16/20) | 10.70 s
    [Task 21/25]  Current/Best:    4.40/  17.49 GFLOPS | Progress: (20/20) | 18.10 s
    [Task 22/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 22/25]  Current/Best:    2.70/  16.84 GFLOPS | Progress: (4/20
 ) | 2.73 s
    [Task 22/25]  Current/Best:    9.24/  21.23 GFLOPS | Progress: (8/20) | 4.71 s
    [Task 22/25]  Current/Best:   19.63/  21.23 GFLOPS | Progress: (12/20) | 7.08 s
    [Task 22/25]  Current/Best:   15.36/  21.23 GFLOPS | Progress: (16/20) | 9.22 s
    [Task 22/25]  Current/Best:   12.60/  21.23 GFLOPS | Progress: (20/20) | 10.93 s Done.
-
    [Task 23/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 23/25]  Current/Best:   15.61/  19.33 GFLOPS | Progress: (4/20) | 3.33 s
    [Task 23/25]  Current/Best:   14.25/  19.86 GFLOPS | Progress: (8/20) | 6.84 s
    [Task 23/25]  Current/Best:   20.15/  21.34 GFLOPS | Progress: (12/20) | 8.73 s
    [Task 23/25]  Current/Best:    6.44/  21.34 GFLOPS | Progress: (16/20) | 15.86 s
    [Task 23/25]  Current/Best:    7.46/  21.34 GFLOPS | Progress: (20/20) | 20.13 s Done.
-
    [Task 24/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 24/25]  Current/Best:    8.21/   8.21 GFLOPS | Progress: (4/20) | 11.83 s
    [Task 24/25]  Current/Best:    1.92/   8.21 GFLOPS | Progress: (8/20) | 22.91 s
    [Task 24/25]  Current/Best:    3.85/   8.21 GFLOPS | Progress: (12/20) | 34.48 s Done.
-
    [Task 24/25]  Current/Best:    5.94/   8.71 GFLOPS | Progress: (16/20) | 40.18 s
    [Task 24/25]  Current/Best:    2.95/   8.71 GFLOPS | Progress: (20/20) | 46.18 s Done.
-
    [Task 25/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 25/25]  Current/Best:    1.54/   2.85 GFLOPS | Progress: (4/20) | 11.64 s
    [Task 25/25]  Current/Best:    5.64/   7.46 GFLOPS | Progress: (8/20) | 22.94 s
    [Task 25/25]  Current/Best:    5.82/   7.46 GFLOPS | Progress: (12/20) | 34.26 s
    [Task 25/25]  Current/Best:    5.68/   9.24 GFLOPS | Progress: (16/20) | 36.06 s
    [Task 25/25]  Current/Best:    2.88/   9.24 GFLOPS | Progress: (20/20) | 46.77 s
+
    [Task 20/25]  Current/Best:   10.25/  15.12 GFLOPS | Progress: (8/20) | 6.68 s
    [Task 20/25]  Current/Best:    2.32/  15.12 GFLOPS | Progress: (12/20) | 10.76 s
    [Task 20/25]  Current/Best:   10.98/  15.12 GFLOPS | Progress: (16/20) | 14.58 s
    [Task 20/25]  Current/Best:   11.16/  21.49 GFLOPS | Progress: (20/20) | 16.72 s
    [Task 21/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 21/25]  Current/Best:    6.36/  17.71 GFLOPS | Progress: (4/20) | 3.27 s
    [Task 21/25]  Current/Best:   14.51/  17.71 GFLOPS | Progress: (8/20) | 4.84 s
    [Task 21/25]  Current/Best:    1.61/  17.71 GFLOPS | Progress: (12/20) | 7.03 s
    [Task 21/25]  Current/Best:   16.03/  17.71 GFLOPS | Progress: (16/20) | 10.57 s
    [Task 21/25]  Current/Best:    4.43/  17.71 GFLOPS | Progress: (20/20) | 17.78 s
    [Task 22/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 22/25]  Current/Best:    2.70/  16.79 GFLOPS | Progress: (4/20
 ) | 2.74 s
    [Task 22/25]  Current/Best:    8.84/  21.02 GFLOPS | Progress: (8/20) | 4.74 s
    [Task 22/25]  Current/Best:   19.66/  21.02 GFLOPS | Progress: (12/20) | 7.10 s
    [Task 22/25]  Current/Best:   15.21/  21.02 GFLOPS | Progress: (16/20) | 9.20 s
    [Task 22/25]  Current/Best:   13.17/  21.02 GFLOPS | Progress: (20/20) | 10.90 s Done.
+
    [Task 23/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 23/25]  Current/Best:   16.62/  18.24 GFLOPS | Progress: (4/20) | 3.32 s
    [Task 23/25]  Current/Best:   13.86/  19.72 GFLOPS | Progress: (8/20) | 6.73 s
    [Task 23/25]  Current/Best:   20.47/  21.39 GFLOPS | Progress: (12/20) | 8.55 s
    [Task 23/25]  Current/Best:    6.45/  21.39 GFLOPS | Progress: (16/20) | 15.48 s
    [Task 23/25]  Current/Best:    7.42/  21.39 GFLOPS | Progress: (20/20) | 19.72 s Done.
+
    [Task 24/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 24/25]  Current/Best:    8.22/   8.22 GFLOPS | Progress: (4/20) | 11.82 s
    [Task 24/25]  Current/Best:    3.09/   8.22 GFLOPS | Progress: (8/20) | 23.11 s
    [Task 24/25]  Current/Best:    3.70/   8.22 GFLOPS | Progress: (12/20) | 33.84 s Done.
+
    [Task 24/25]  Current/Best:    6.34/   8.96 GFLOPS | Progress: (16/20) | 39.27 s
    [Task 24/25]  Current/Best:    2.95/   8.96 GFLOPS | Progress: (20/20) | 45.35 s Done.
+
    [Task 25/25]  Current/Best:    0.00/   0.00 GFLOPS | Progress: (0/20) | 0.00 s
    [Task 25/25]  Current/Best:    1.55/   2.79 GFLOPS | Progress: (4/20) | 11.65 s
    [Task 25/25]  Current/Best:    5.65/   7.21 GFLOPS | Progress: (8/20) | 22.95 s
    [Task 25/25]  Current/Best:    5.84/   7.21 GFLOPS | Progress: (12/20) | 34.46 s
    [Task 25/25]  Current/Best:    5.80/   8.86 GFLOPS | Progress: (16/20) | 36.35 s
    [Task 25/25]  Current/Best:    2.87/   8.86 GFLOPS | Progress: (20/20) | 47.08 s
 
 
 
@@ -679,8 +679,8 @@ Verify that the optimized model runs and produces the same results:
 
  .. code-block:: none
 
-    class='n02123045 tabby, tabby cat' with probability=0.621104
-    class='n02123159 tiger cat' with probability=0.356378
+    class='n02123045 tabby, tabby cat' with probability=0.621105
+    class='n02123159 tiger cat' with probability=0.356377
     class='n02124075 Egyptian cat' with probability=0.019712
     class='n02129604 tiger, Panthera tigris' with probability=0.001215
     class='n04040759 radiator' with probability=0.000262
@@ -737,8 +737,8 @@ improvement in comparing the optimized model to the unoptimized model.
 
  .. code-block:: none
 
-    optimized: {'mean': 408.8910042799989, 'median': 408.00447995000013, 'std': 2.360481971772515}
-    unoptimized: {'mean': 513.5153334400026, 'median': 513.5146032500018, 'std': 2.0956416894507734}
+    optimized: {'mean': 410.5001561999984, 'median': 410.81959625000763, 'std': 0.8091459110740891}
+    unoptimized: {'mean': 515.16661602, 'median': 515.5533031499999, 'std': 2.187307481651193}
 
 
 
@@ -761,7 +761,7 @@ profiling/benchmarking.
 
 .. rst-class:: sphx-glr-timing
 
-   **Total running time of the script:** ( 10 minutes  27.284 seconds)
+   **Total running time of the script:** ( 11 minutes  27.796 seconds)
 
 
 .. _sphx_glr_download_tutorial_autotvm_relay_x86.py:
diff --git a/docs/_sources/tutorial/cross_compilation_and_rpc.rst.txt b/docs/_sources/tutorial/cross_compilation_and_rpc.rst.txt
index e3780e86a..970727b5b 100644
--- a/docs/_sources/tutorial/cross_compilation_and_rpc.rst.txt
+++ b/docs/_sources/tutorial/cross_compilation_and_rpc.rst.txt
@@ -282,7 +282,7 @@ device and returns the measured cost. Network overhead is excluded.
 
  .. code-block:: none
 
-    1.291e-07 secs/op
+    1.342e-07 secs/op
 
 
 
diff --git a/docs/_sources/tutorial/intro_topi.rst.txt b/docs/_sources/tutorial/intro_topi.rst.txt
index 2e8a77ee8..f79718df9 100644
--- a/docs/_sources/tutorial/intro_topi.rst.txt
+++ b/docs/_sources/tutorial/intro_topi.rst.txt
@@ -263,7 +263,7 @@ As you can see, scheduled stages of computation have been accumulated and we can
 
  .. code-block:: none
 
-    [stage(a, placeholder(a, 0x20d397e0)), stage(b, placeholder(b, 0xed93660)), stage(T_add, compute(T_add, body=[(a[ax0, ax1, ax2] + b[ax1, ax2])], axis=[iter_var(ax0, range(min=0, ext=100)), iter_var(ax1, range(min=0, ext=10)), iter_var(ax2, range(min=0, ext=10))], reduce_axis=[], tag=broadcast, attrs={})), stage(T_multiply, compute(T_multiply, body=[(a[ax0, ax1, ax2]*b[ax1, ax2])], axis=[iter_var(ax0, range(min=0, ext=100)), iter_var(ax1, range(min=0, ext=10)), iter_var(ax2, range(min [...]
+    [stage(a, placeholder(a, 0x215829e0)), stage(b, placeholder(b, 0x16c0d190)), stage(T_add, compute(T_add, body=[(a[ax0, ax1, ax2] + b[ax1, ax2])], axis=[iter_var(ax0, range(min=0, ext=100)), iter_var(ax1, range(min=0, ext=10)), iter_var(ax2, range(min=0, ext=10))], reduce_axis=[], tag=broadcast, attrs={})), stage(T_multiply, compute(T_multiply, body=[(a[ax0, ax1, ax2]*b[ax1, ax2])], axis=[iter_var(ax0, range(min=0, ext=100)), iter_var(ax1, range(min=0, ext=10)), iter_var(ax2, range(mi [...]
 
 
 
diff --git a/docs/_sources/tutorial/sg_execution_times.rst.txt b/docs/_sources/tutorial/sg_execution_times.rst.txt
index 264648b67..6cf8d63a2 100644
--- a/docs/_sources/tutorial/sg_execution_times.rst.txt
+++ b/docs/_sources/tutorial/sg_execution_times.rst.txt
@@ -5,32 +5,32 @@
 
 Computation times
 =================
-**13:27.671** total execution time for **tutorial** files:
+**14:26.935** total execution time for **tutorial** files:
 
 +------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_tutorial_autotvm_relay_x86.py` (``autotvm_relay_x86.py``)                 | 10:27.284 | 0.0 MB |
+| :ref:`sphx_glr_tutorial_autotvm_relay_x86.py` (``autotvm_relay_x86.py``)                 | 11:27.796 | 0.0 MB |
 +------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_tutorial_auto_scheduler_matmul_x86.py` (``auto_scheduler_matmul_x86.py``) | 01:03.071 | 0.0 MB |
+| :ref:`sphx_glr_tutorial_auto_scheduler_matmul_x86.py` (``auto_scheduler_matmul_x86.py``) | 01:00.689 | 0.0 MB |
 +------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_tutorial_tensor_expr_get_started.py` (``tensor_expr_get_started.py``)     | 00:58.519 | 0.0 MB |
+| :ref:`sphx_glr_tutorial_tensor_expr_get_started.py` (``tensor_expr_get_started.py``)     | 01:00.235 | 0.0 MB |
 +------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_tutorial_relay_quick_start.py` (``relay_quick_start.py``)                 | 00:31.671 | 0.0 MB |
+| :ref:`sphx_glr_tutorial_relay_quick_start.py` (``relay_quick_start.py``)                 | 00:31.572 | 0.0 MB |
 +------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_tutorial_autotvm_matmul_x86.py` (``autotvm_matmul_x86.py``)               | 00:25.031 | 0.0 MB |
+| :ref:`sphx_glr_tutorial_autotvm_matmul_x86.py` (``autotvm_matmul_x86.py``)               | 00:24.505 | 0.0 MB |
 +------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_tutorial_tensor_ir_blitz_course.py` (``tensor_ir_blitz_course.py``)       | 00:01.210 | 0.0 MB |
+| :ref:`sphx_glr_tutorial_tensor_ir_blitz_course.py` (``tensor_ir_blitz_course.py``)       | 00:01.265 | 0.0 MB |
 +------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_tutorial_intro_topi.py` (``intro_topi.py``)                               | 00:00.712 | 0.0 MB |
+| :ref:`sphx_glr_tutorial_intro_topi.py` (``intro_topi.py``)                               | 00:00.701 | 0.0 MB |
 +------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_tutorial_cross_compilation_and_rpc.py` (``cross_compilation_and_rpc.py``) | 00:00.165 | 0.0 MB |
+| :ref:`sphx_glr_tutorial_cross_compilation_and_rpc.py` (``cross_compilation_and_rpc.py``) | 00:00.163 | 0.0 MB |
 +------------------------------------------------------------------------------------------+-----------+--------+
 | :ref:`sphx_glr_tutorial_introduction.py` (``introduction.py``)                           | 00:00.005 | 0.0 MB |
 +------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_tutorial_uma.py` (``uma.py``)                                             | 00:00.001 | 0.0 MB |
+| :ref:`sphx_glr_tutorial_uma.py` (``uma.py``)                                             | 00:00.002 | 0.0 MB |
++------------------------------------------------------------------------------------------+-----------+--------+
+| :ref:`sphx_glr_tutorial_install.py` (``install.py``)                                     | 00:00.001 | 0.0 MB |
 +------------------------------------------------------------------------------------------+-----------+--------+
 | :ref:`sphx_glr_tutorial_tvmc_command_line_driver.py` (``tvmc_command_line_driver.py``)   | 00:00.001 | 0.0 MB |
 +------------------------------------------------------------------------------------------+-----------+--------+
 | :ref:`sphx_glr_tutorial_tvmc_python.py` (``tvmc_python.py``)                             | 00:00.001 | 0.0 MB |
 +------------------------------------------------------------------------------------------+-----------+--------+
-| :ref:`sphx_glr_tutorial_install.py` (``install.py``)                                     | 00:00.001 | 0.0 MB |
-+------------------------------------------------------------------------------------------+-----------+--------+
diff --git a/docs/_sources/tutorial/tensor_expr_get_started.rst.txt b/docs/_sources/tutorial/tensor_expr_get_started.rst.txt
index 3e8d5d883..5a68dde75 100644
--- a/docs/_sources/tutorial/tensor_expr_get_started.rst.txt
+++ b/docs/_sources/tutorial/tensor_expr_get_started.rst.txt
@@ -501,10 +501,10 @@ We can now compare the different schedules
  .. code-block:: none
 
                 Operator                  Timing             Performance
-                   numpy    7.660920000489568e-06                    1.0
-                   naive    6.6478999999999995e-06    0.8677678398384487
-                parallel              6.9853e-06      0.9118095476200779
-                  vector             2.45902e-05      3.2098233630462887
+                   numpy    7.557379999525437e-06                    1.0
+                   naive    6.677800000000001e-06     0.8836131040677233
+                parallel               6.923e-06       0.916058210707246
+                  vector              2.4562e-05       3.250068145513705
 
 
 
@@ -925,7 +925,7 @@ matrix multiplication.
 
  .. code-block:: none
 
-    Numpy running time: 0.019081
+    Numpy running time: 0.018583
 
 
 
@@ -983,7 +983,7 @@ optimizations.
 
  .. code-block:: none
 
-    none: 3.200248
+    none: 3.360908
 
 
 
@@ -1086,7 +1086,7 @@ schedule.
 
  .. code-block:: none
 
-    blocking: 0.310435
+    blocking: 0.296537
 
 
 
@@ -1182,7 +1182,7 @@ already cache friendly from our previous optimizations.
 
  .. code-block:: none
 
-    vectorization: 0.345098
+    vectorization: 0.335062
     @main = primfn(A_1: handle, B_1: handle, C_1: handle) -> ()
       attr = {"from_legacy_te_schedule": True, "global_symbol": "main", "tir.noalias": True}
       buffers = {A: Buffer(A_2: Pointer(float32), float32, [1048576], []),
@@ -1256,7 +1256,7 @@ more cache friendly.
 
  .. code-block:: none
 
-    loop permutation: 0.119399
+    loop permutation: 0.119013
     @main = primfn(A_1: handle, B_1: handle, C_1: handle) -> ()
       attr = {"from_legacy_te_schedule": True, "global_symbol": "main", "tir.noalias": True}
       buffers = {A: Buffer(A_2: Pointer(float32), float32, [1048576], []),
@@ -1355,7 +1355,7 @@ optimized schedule.
 
  .. code-block:: none
 
-    array packing: 0.109326
+    array packing: 0.110060
     @main = primfn(A_1: handle, B_1: handle, C_1: handle) -> ()
       attr = {"from_legacy_te_schedule": True, "global_symbol": "main", "tir.noalias": True}
       buffers = {A: Buffer(A_2: Pointer(float32), float32, [1048576], []),
@@ -1448,7 +1448,7 @@ to `C` when all the block results are ready.
 
  .. code-block:: none
 
-    block caching: 0.110732
+    block caching: 0.110494
     @main = primfn(A_1: handle, B_1: handle, C_1: handle) -> ()
       attr = {"from_legacy_te_schedule": True, "global_symbol": "main", "tir.noalias": True}
       buffers = {A: Buffer(A_2: Pointer(float32), float32, [1048576], []),
@@ -1534,7 +1534,7 @@ of thread-level parallelization.
 
  .. code-block:: none
 
-    parallelization: 0.144836
+    parallelization: 0.146965
     @main = primfn(A_1: handle, B_1: handle, C_1: handle) -> ()
       attr = {"from_legacy_te_schedule": True, "global_symbol": "main", "tir.noalias": True}
       buffers = {A: Buffer(A_2: Pointer(float32), float32, [1048576], []),
@@ -1615,13 +1615,13 @@ working, we can compare the results.
  .. code-block:: none
 
                 Operator                  Timing             Performance
-                    none            3.2002477539                     1.0
-                blocking     0.31043503910000003     0.09700343941236632
-           vectorization            0.3450979818     0.10783477041096097
-        loop permutation     0.11939903519999999     0.03730930989780203
-           array packing            0.1093260589    0.034161748497993374
-           block caching     0.11073218999999998     0.03460113044843343
-         parallelization              0.14483632     0.04525784599754641
+                    none      3.3609077834000005                     1.0
+                blocking     0.29653671319999997     0.08823113644017155
+           vectorization            0.3350617439     0.09969382247109468
+        loop permutation     0.11901322379999998    0.035411035193474556
+           array packing            0.1100597273     0.03274702383790492
+           block caching            0.1104936093     0.03287612050700813
+         parallelization            0.1469650091    0.043727771950745266
 
 
 
@@ -1661,6 +1661,11 @@ operations with tunable parameters that allows you to automatically optimize
 the computation for specific platforms.
 
 
+.. rst-class:: sphx-glr-timing
+
+   **Total running time of the script:** ( 1 minutes  0.235 seconds)
+
+
 .. _sphx_glr_download_tutorial_tensor_expr_get_started.py:
 
 .. only:: html
diff --git a/docs/commit_hash b/docs/commit_hash
index 22f938374..22e2471ba 100644
--- a/docs/commit_hash
+++ b/docs/commit_hash
@@ -1 +1 @@
-d1871a6957b4f469f1b994aa6c89e0d209b64f05
+b2c5addbb4e92aa770f0cd0847eabb43400ac9d2
diff --git a/docs/how_to/compile_models/from_darknet.html b/docs/how_to/compile_models/from_darknet.html
index ddad0909a..8e2016369 100644
--- a/docs/how_to/compile_models/from_darknet.html
+++ b/docs/how_to/compile_models/from_darknet.html
@@ -572,7 +572,7 @@ class:[&#39;truck 0.9266&#39;] left:471 top:83 right:689 bottom:169
 class:[&#39;bicycle 0.9984&#39;] left:111 top:113 right:577 bottom:447
 </pre></div>
 </div>
-<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes  2.517 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes  4.550 seconds)</p>
 <div class="sphx-glr-footer sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-compile-models-from-darknet-py">
 <div class="sphx-glr-download sphx-glr-download-python docutils container">
 <p><a class="reference download internal" download="" href="../../_downloads/7716f96385bd5abb6e822041e285be54/from_darknet.py"><code class="xref download docutils literal notranslate"><span class="pre">Download</span> <span class="pre">Python</span> <span class="pre">source</span> <span class="pre">code:</span> <span class="pre">from_darknet.py</span></code></a></p>
diff --git a/docs/how_to/compile_models/from_keras.html b/docs/how_to/compile_models/from_keras.html
index b892e45aa..fca82877b 100644
--- a/docs/how_to/compile_models/from_keras.html
+++ b/docs/how_to/compile_models/from_keras.html
@@ -493,7 +493,7 @@ pip install -U tensorflow --user
 <div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Relay top-1 id: 285, class name: Egyptian cat
 
 1/1 [==============================] - ETA: 0s
-1/1 [==============================] - 1s 944ms/step
+1/1 [==============================] - 1s 973ms/step
 Keras top-1 id: 285, class name: Egyptian cat
 </pre></div>
 </div>
diff --git a/docs/how_to/compile_models/from_mxnet.html b/docs/how_to/compile_models/from_mxnet.html
index 844b96658..1b45e048f 100644
--- a/docs/how_to/compile_models/from_mxnet.html
+++ b/docs/how_to/compile_models/from_mxnet.html
@@ -427,7 +427,7 @@ to download the full example code</p>
 <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;x&quot;</span><span class="p">,</span> <a href="https://docs.python.org/3/library/stdtypes.html#tuple" title="builtins.tuple" class="sphx-glr-backref-module-builtins sphx-glr-backref-type-py-class sphx-glr-backref-instance"><span class="n">x</span><span class="o">.</span><span class="n">shape</span></a><span class="p">)</span>
 </pre></div>
 </div>
-<img src="../../_images/sphx_glr_from_mxnet_001.png" srcset="../../_images/sphx_glr_from_mxnet_001.png" alt="from mxnet" class = "sphx-glr-single-img"/><div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Downloading /workspace/.mxnet/models/resnet18_v1-a0666292.zip39ec02e6-41be-48c7-a945-adff4340d27e from https://apache-mxnet.s3-accelerate.dualstack.amazonaws.com/gluon/models/resnet18_v1-a0666292.zip...
+<img src="../../_images/sphx_glr_from_mxnet_001.png" srcset="../../_images/sphx_glr_from_mxnet_001.png" alt="from mxnet" class = "sphx-glr-single-img"/><div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Downloading /workspace/.mxnet/models/resnet18_v1-a0666292.zip6cba18eb-0d4a-42c0-8d89-6f1081c61b5c from https://apache-mxnet.s3-accelerate.dualstack.amazonaws.com/gluon/models/resnet18_v1-a0666292.zip...
 x (1, 3, 224, 224)
 </pre></div>
 </div>
diff --git a/docs/how_to/compile_models/from_oneflow.html b/docs/how_to/compile_models/from_oneflow.html
index f94e73e0f..18ebdc249 100644
--- a/docs/how_to/compile_models/from_oneflow.html
+++ b/docs/how_to/compile_models/from_oneflow.html
@@ -435,13 +435,15 @@ Deprecated in NumPy 1.20; for more details and guidance: https://numpy.org/devdo
 <div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Downloading: &quot;https://oneflow-public.oss-cn-beijing.aliyuncs.com/model_zoo/flowvision/classification/ResNet/resnet18.zip&quot; to /workspace/.oneflow/flowvision_cache/resnet18.zip
 
   0%|          | 0.00/41.5M [00:00&lt;?, ?B/s]
- 15%|#5        | 6.33M/41.5M [00:00&lt;00:00, 57.6MB/s]
- 29%|##8       | 11.8M/41.5M [00:00&lt;00:00, 46.9MB/s]
- 39%|###9      | 16.4M/41.5M [00:00&lt;00:00, 34.6MB/s]
- 58%|#####7    | 24.0M/41.5M [00:00&lt;00:00, 40.7MB/s]
- 77%|#######7  | 32.0M/41.5M [00:00&lt;00:00, 46.7MB/s]
- 92%|#########2| 38.3M/41.5M [00:00&lt;00:00, 51.4MB/s]
-100%|##########| 41.5M/41.5M [00:00&lt;00:00, 46.8MB/s]
+  9%|9         | 3.84M/41.5M [00:00&lt;00:01, 38.7MB/s]
+ 19%|#9        | 7.99M/41.5M [00:00&lt;00:00, 37.3MB/s]
+ 35%|###4      | 14.3M/41.5M [00:00&lt;00:00, 35.7MB/s]
+ 43%|####2     | 17.8M/41.5M [00:00&lt;00:00, 35.2MB/s]
+ 56%|#####6    | 23.3M/41.5M [00:00&lt;00:00, 41.6MB/s]
+ 66%|######5   | 27.4M/41.5M [00:00&lt;00:00, 31.7MB/s]
+ 77%|#######7  | 32.0M/41.5M [00:00&lt;00:00, 32.7MB/s]
+ 95%|#########4| 39.3M/41.5M [00:01&lt;00:00, 43.2MB/s]
+100%|##########| 41.5M/41.5M [00:01&lt;00:00, 36.3MB/s]
 </pre></div>
 </div>
 </div>
diff --git a/docs/how_to/compile_models/from_pytorch.html b/docs/how_to/compile_models/from_pytorch.html
index 52070a49d..f071a2417 100644
--- a/docs/how_to/compile_models/from_pytorch.html
+++ b/docs/how_to/compile_models/from_pytorch.html
@@ -414,9 +414,9 @@ be unstable.</p>
 <div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Downloading: &quot;https://download.pytorch.org/models/resnet18-f37072fd.pth&quot; to /workspace/.cache/torch/hub/checkpoints/resnet18-f37072fd.pth
 
   0%|          | 0.00/44.7M [00:00&lt;?, ?B/s]
- 39%|###9      | 17.5M/44.7M [00:00&lt;00:00, 184MB/s]
- 96%|#########5| 42.7M/44.7M [00:00&lt;00:00, 231MB/s]
-100%|##########| 44.7M/44.7M [00:00&lt;00:00, 225MB/s]
+ 38%|###7      | 16.8M/44.7M [00:00&lt;00:00, 177MB/s]
+ 75%|#######5  | 33.7M/44.7M [00:00&lt;00:00, 176MB/s]
+100%|##########| 44.7M/44.7M [00:00&lt;00:00, 180MB/s]
 </pre></div>
 </div>
 </div>
diff --git a/docs/how_to/compile_models/from_tensorflow.html b/docs/how_to/compile_models/from_tensorflow.html
index 23d05dcba..fc7394d8e 100644
--- a/docs/how_to/compile_models/from_tensorflow.html
+++ b/docs/how_to/compile_models/from_tensorflow.html
@@ -632,7 +632,7 @@ banana (score = 0.00022)
 desk (score = 0.00019)
 </pre></div>
 </div>
-<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes  5.680 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes  4.951 seconds)</p>
 <div class="sphx-glr-footer sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-compile-models-from-tensorflow-py">
 <div class="sphx-glr-download sphx-glr-download-python docutils container">
 <p><a class="reference download internal" download="" href="../../_downloads/7f1d3d1b878694c201c614c807cdebc8/from_tensorflow.py"><code class="xref download docutils literal notranslate"><span class="pre">Download</span> <span class="pre">Python</span> <span class="pre">source</span> <span class="pre">code:</span> <span class="pre">from_tensorflow.py</span></code></a></p>
diff --git a/docs/how_to/compile_models/sg_execution_times.html b/docs/how_to/compile_models/sg_execution_times.html
index 738c6bae8..ba2c093bb 100644
--- a/docs/how_to/compile_models/sg_execution_times.html
+++ b/docs/how_to/compile_models/sg_execution_times.html
@@ -327,7 +327,7 @@
             
   <div class="section" id="computation-times">
 <span id="sphx-glr-how-to-compile-models-sg-execution-times"></span><h1>Computation times<a class="headerlink" href="#computation-times" title="Permalink to this headline">¶</a></h1>
-<p><strong>05:10.888</strong> total execution time for <strong>how_to_compile_models</strong> files:</p>
+<p><strong>05:10.671</strong> total execution time for <strong>how_to_compile_models</strong> files:</p>
 <table class="docutils align-default">
 <colgroup>
 <col style="width: 81%" />
@@ -336,43 +336,43 @@
 </colgroup>
 <tbody>
 <tr class="row-odd"><td><p><a class="reference internal" href="from_tensorflow.html#sphx-glr-how-to-compile-models-from-tensorflow-py"><span class="std std-ref">Compile Tensorflow Models</span></a> (<code class="docutils literal notranslate"><span class="pre">from_tensorflow.py</span></code>)</p></td>
-<td><p>01:05.680</p></td>
+<td><p>01:04.951</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="from_darknet.html#sphx-glr-how-to-compile-models-from-darknet-py"><span class="std std-ref">Compile YOLO-V2 and YOLO-V3 in DarkNet Models</span></a> (<code class="docutils literal notranslate"><span class="pre">from_darknet.py</span></code>)</p></td>
-<td><p>01:02.517</p></td>
+<td><p>01:04.550</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-odd"><td><p><a class="reference internal" href="from_paddle.html#sphx-glr-how-to-compile-models-from-paddle-py"><span class="std std-ref">Compile PaddlePaddle Models</span></a> (<code class="docutils literal notranslate"><span class="pre">from_paddle.py</span></code>)</p></td>
-<td><p>00:41.659</p></td>
+<td><p>00:39.439</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="from_oneflow.html#sphx-glr-how-to-compile-models-from-oneflow-py"><span class="std std-ref">Compile OneFlow Models</span></a> (<code class="docutils literal notranslate"><span class="pre">from_oneflow.py</span></code>)</p></td>
-<td><p>00:28.570</p></td>
+<td><p>00:28.942</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-odd"><td><p><a class="reference internal" href="from_mxnet.html#sphx-glr-how-to-compile-models-from-mxnet-py"><span class="std std-ref">Compile MXNet Models</span></a> (<code class="docutils literal notranslate"><span class="pre">from_mxnet.py</span></code>)</p></td>
-<td><p>00:26.838</p></td>
+<td><p>00:26.535</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="from_tflite.html#sphx-glr-how-to-compile-models-from-tflite-py"><span class="std std-ref">Compile TFLite Models</span></a> (<code class="docutils literal notranslate"><span class="pre">from_tflite.py</span></code>)</p></td>
-<td><p>00:24.374</p></td>
+<td><p>00:24.778</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-odd"><td><p><a class="reference internal" href="from_coreml.html#sphx-glr-how-to-compile-models-from-coreml-py"><span class="std std-ref">Compile CoreML Models</span></a> (<code class="docutils literal notranslate"><span class="pre">from_coreml.py</span></code>)</p></td>
-<td><p>00:22.254</p></td>
+<td><p>00:22.378</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="from_pytorch.html#sphx-glr-how-to-compile-models-from-pytorch-py"><span class="std std-ref">Compile PyTorch Models</span></a> (<code class="docutils literal notranslate"><span class="pre">from_pytorch.py</span></code>)</p></td>
-<td><p>00:20.097</p></td>
+<td><p>00:19.784</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-odd"><td><p><a class="reference internal" href="from_keras.html#sphx-glr-how-to-compile-models-from-keras-py"><span class="std std-ref">Compile Keras Models</span></a> (<code class="docutils literal notranslate"><span class="pre">from_keras.py</span></code>)</p></td>
-<td><p>00:16.604</p></td>
+<td><p>00:16.859</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="from_onnx.html#sphx-glr-how-to-compile-models-from-onnx-py"><span class="std std-ref">Compile ONNX Models</span></a> (<code class="docutils literal notranslate"><span class="pre">from_onnx.py</span></code>)</p></td>
-<td><p>00:02.295</p></td>
+<td><p>00:02.457</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 </tbody>
diff --git a/docs/how_to/deploy_models/deploy_model_on_android.html b/docs/how_to/deploy_models/deploy_model_on_android.html
index 1f5caa50f..a88ec8129 100644
--- a/docs/how_to/deploy_models/deploy_model_on_android.html
+++ b/docs/how_to/deploy_models/deploy_model_on_android.html
@@ -649,7 +649,7 @@ to the remote android device.</p>
 Evaluate inference time cost...
 Execution time summary:
  mean (ms)   median (ms)    max (ms)     min (ms)     std (ms)
-  15.9128      15.8602      16.3475      15.8089       0.1520
+  15.8597      15.8454      15.9869      15.7845       0.0679
 </pre></div>
 </div>
 </div>
diff --git a/docs/how_to/deploy_models/deploy_object_detection_pytorch.html b/docs/how_to/deploy_models/deploy_object_detection_pytorch.html
index 83a3d8773..5e2b57ae8 100644
--- a/docs/how_to/deploy_models/deploy_object_detection_pytorch.html
+++ b/docs/how_to/deploy_models/deploy_object_detection_pytorch.html
@@ -436,15 +436,103 @@ be unstable.</p>
 <div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Downloading: &quot;https://download.pytorch.org/models/maskrcnn_resnet50_fpn_coco-bf2d0c1e.pth&quot; to /workspace/.cache/torch/hub/checkpoints/maskrcnn_resnet50_fpn_coco-bf2d0c1e.pth
 
   0%|          | 0.00/170M [00:00&lt;?, ?B/s]
- 10%|#         | 17.1M/170M [00:00&lt;00:00, 180MB/s]
- 24%|##4       | 41.2M/170M [00:00&lt;00:00, 223MB/s]
- 38%|###7      | 64.1M/170M [00:00&lt;00:00, 230MB/s]
- 51%|#####     | 86.0M/170M [00:00&lt;00:00, 207MB/s]
- 62%|######2   | 106M/170M [00:00&lt;00:00, 203MB/s]
- 75%|#######4  | 127M/170M [00:00&lt;00:00, 207MB/s]
- 86%|########6 | 147M/170M [00:00&lt;00:00, 143MB/s]
- 96%|#########5| 163M/170M [00:01&lt;00:00, 136MB/s]
-100%|##########| 170M/170M [00:01&lt;00:00, 167MB/s]
+  1%|          | 1.01M/170M [00:00&lt;00:16, 10.4MB/s]
+  1%|1         | 2.12M/170M [00:00&lt;00:17, 10.3MB/s]
+  2%|2         | 3.56M/170M [00:00&lt;00:14, 12.2MB/s]
+  3%|3         | 5.35M/170M [00:00&lt;00:11, 14.7MB/s]
+  4%|4         | 7.44M/170M [00:00&lt;00:09, 17.2MB/s]
+  5%|5         | 9.09M/170M [00:00&lt;00:10, 16.6MB/s]
+  6%|6         | 10.9M/170M [00:00&lt;00:09, 17.1MB/s]
+  7%|7         | 12.5M/170M [00:00&lt;00:11, 14.7MB/s]
+  8%|8         | 14.0M/170M [00:00&lt;00:11, 14.5MB/s]
+  9%|9         | 15.6M/170M [00:01&lt;00:11, 14.5MB/s]
+ 10%|#         | 17.4M/170M [00:01&lt;00:10, 15.6MB/s]
+ 11%|#1        | 19.1M/170M [00:01&lt;00:09, 16.3MB/s]
+ 12%|#2        | 20.9M/170M [00:01&lt;00:09, 16.6MB/s]
+ 13%|#3        | 22.5M/170M [00:01&lt;00:09, 15.5MB/s]
+ 14%|#4        | 24.0M/170M [00:01&lt;00:10, 15.1MB/s]
+ 15%|#4        | 25.5M/170M [00:01&lt;00:10, 15.1MB/s]
+ 16%|#5        | 26.9M/170M [00:01&lt;00:11, 13.1MB/s]
+ 17%|#6        | 28.6M/170M [00:02&lt;00:10, 14.2MB/s]
+ 18%|#7        | 30.1M/170M [00:02&lt;00:10, 14.5MB/s]
+ 19%|#8        | 31.6M/170M [00:02&lt;00:09, 14.9MB/s]
+ 20%|#9        | 33.4M/170M [00:02&lt;00:09, 15.9MB/s]
+ 21%|##        | 35.4M/170M [00:02&lt;00:08, 17.3MB/s]
+ 22%|##1       | 37.0M/170M [00:02&lt;00:08, 16.5MB/s]
+ 23%|##2       | 38.7M/170M [00:02&lt;00:08, 16.6MB/s]
+ 24%|##3       | 40.3M/170M [00:02&lt;00:08, 16.6MB/s]
+ 25%|##4       | 41.9M/170M [00:02&lt;00:08, 16.2MB/s]
+ 26%|##5       | 43.5M/170M [00:02&lt;00:09, 14.4MB/s]
+ 27%|##6       | 45.6M/170M [00:03&lt;00:07, 16.4MB/s]
+ 28%|##7       | 47.4M/170M [00:03&lt;00:07, 17.0MB/s]
+ 29%|##8       | 49.0M/170M [00:03&lt;00:07, 16.2MB/s]
+ 30%|##9       | 50.6M/170M [00:03&lt;00:08, 15.5MB/s]
+ 31%|###       | 52.1M/170M [00:03&lt;00:08, 14.8MB/s]
+ 32%|###1      | 53.6M/170M [00:03&lt;00:08, 14.6MB/s]
+ 32%|###2      | 55.0M/170M [00:03&lt;00:08, 14.6MB/s]
+ 33%|###3      | 56.4M/170M [00:03&lt;00:08, 14.5MB/s]
+ 34%|###4      | 57.8M/170M [00:03&lt;00:08, 14.7MB/s]
+ 35%|###4      | 59.3M/170M [00:04&lt;00:07, 14.9MB/s]
+ 36%|###5      | 60.7M/170M [00:04&lt;00:07, 14.7MB/s]
+ 37%|###6      | 62.6M/170M [00:04&lt;00:06, 16.1MB/s]
+ 38%|###7      | 64.4M/170M [00:04&lt;00:06, 17.0MB/s]
+ 39%|###9      | 66.4M/170M [00:04&lt;00:06, 17.7MB/s]
+ 40%|####      | 68.1M/170M [00:04&lt;00:06, 15.3MB/s]
+ 41%|####1     | 70.1M/170M [00:04&lt;00:06, 16.6MB/s]
+ 42%|####2     | 71.7M/170M [00:04&lt;00:06, 14.9MB/s]
+ 43%|####3     | 73.2M/170M [00:05&lt;00:07, 14.2MB/s]
+ 44%|####3     | 74.6M/170M [00:05&lt;00:07, 14.0MB/s]
+ 45%|####4     | 76.2M/170M [00:05&lt;00:06, 14.3MB/s]
+ 46%|####5     | 77.9M/170M [00:05&lt;00:06, 15.4MB/s]
+ 47%|####6     | 79.4M/170M [00:05&lt;00:06, 14.3MB/s]
+ 48%|####7     | 80.8M/170M [00:05&lt;00:06, 13.5MB/s]
+ 48%|####8     | 82.1M/170M [00:05&lt;00:06, 13.4MB/s]
+ 49%|####9     | 83.7M/170M [00:05&lt;00:06, 14.0MB/s]
+ 50%|#####     | 85.3M/170M [00:05&lt;00:05, 14.9MB/s]
+ 51%|#####1    | 86.8M/170M [00:06&lt;00:07, 12.1MB/s]
+ 52%|#####2    | 89.1M/170M [00:06&lt;00:05, 15.2MB/s]
+ 54%|#####4    | 92.1M/170M [00:06&lt;00:04, 19.3MB/s]
+ 55%|#####5    | 94.1M/170M [00:06&lt;00:04, 18.5MB/s]
+ 56%|#####6    | 95.9M/170M [00:06&lt;00:04, 18.6MB/s]
+ 58%|#####7    | 98.4M/170M [00:06&lt;00:03, 20.6MB/s]
+ 59%|#####9    | 100M/170M [00:06&lt;00:03, 20.6MB/s]
+ 60%|######    | 102M/170M [00:06&lt;00:03, 18.5MB/s]
+ 61%|######1   | 104M/170M [00:07&lt;00:04, 16.6MB/s]
+ 62%|######2   | 106M/170M [00:07&lt;00:03, 17.0MB/s]
+ 63%|######3   | 108M/170M [00:07&lt;00:04, 14.9MB/s]
+ 64%|######4   | 110M/170M [00:07&lt;00:04, 15.0MB/s]
+ 65%|######5   | 111M/170M [00:07&lt;00:04, 14.0MB/s]
+ 66%|######6   | 112M/170M [00:07&lt;00:04, 13.7MB/s]
+ 67%|######7   | 114M/170M [00:07&lt;00:03, 15.4MB/s]
+ 69%|######8   | 117M/170M [00:07&lt;00:02, 18.7MB/s]
+ 70%|#######   | 119M/170M [00:07&lt;00:02, 18.8MB/s]
+ 71%|#######1  | 121M/170M [00:08&lt;00:03, 15.3MB/s]
+ 72%|#######2  | 123M/170M [00:08&lt;00:03, 16.4MB/s]
+ 73%|#######3  | 124M/170M [00:08&lt;00:03, 15.5MB/s]
+ 74%|#######4  | 126M/170M [00:08&lt;00:03, 14.9MB/s]
+ 75%|#######5  | 127M/170M [00:08&lt;00:03, 14.4MB/s]
+ 76%|#######5  | 129M/170M [00:08&lt;00:02, 14.9MB/s]
+ 77%|#######7  | 131M/170M [00:08&lt;00:02, 16.4MB/s]
+ 78%|#######8  | 133M/170M [00:08&lt;00:02, 16.5MB/s]
+ 79%|#######9  | 134M/170M [00:09&lt;00:02, 16.7MB/s]
+ 81%|########  | 137M/170M [00:09&lt;00:01, 19.4MB/s]
+ 82%|########1 | 139M/170M [00:09&lt;00:01, 16.9MB/s]
+ 83%|########2 | 140M/170M [00:09&lt;00:02, 15.3MB/s]
+ 84%|########3 | 142M/170M [00:09&lt;00:01, 16.2MB/s]
+ 85%|########4 | 144M/170M [00:09&lt;00:01, 14.1MB/s]
+ 86%|########5 | 145M/170M [00:09&lt;00:01, 14.6MB/s]
+ 87%|########6 | 147M/170M [00:09&lt;00:01, 15.0MB/s]
+ 88%|########7 | 149M/170M [00:09&lt;00:01, 16.5MB/s]
+ 89%|########8 | 151M/170M [00:10&lt;00:01, 16.3MB/s]
+ 90%|########9 | 152M/170M [00:10&lt;00:01, 16.3MB/s]
+ 91%|######### | 154M/170M [00:10&lt;00:01, 15.0MB/s]
+ 91%|#########1| 155M/170M [00:10&lt;00:01, 14.4MB/s]
+ 92%|#########2| 157M/170M [00:10&lt;00:00, 14.5MB/s]
+ 94%|#########3| 159M/170M [00:10&lt;00:00, 16.9MB/s]
+ 96%|#########5| 162M/170M [00:10&lt;00:00, 22.1MB/s]
+ 98%|#########7| 166M/170M [00:10&lt;00:00, 25.5MB/s]
+ 99%|#########9| 168M/170M [00:10&lt;00:00, 23.0MB/s]
+100%|##########| 170M/170M [00:11&lt;00:00, 16.0MB/s]
 /usr/local/lib/python3.7/dist-packages/torch/nn/functional.py:3878: UserWarning: To copy construct from a tensor, it is recommended to use sourceTensor.clone().detach() or sourceTensor.clone().detach().requires_grad_(True), rather than torch.tensor(sourceTensor).
   for i in range(dim)
 /usr/local/lib/python3.7/dist-packages/torchvision/models/detection/anchor_utils.py:127: UserWarning: __floordiv__ is deprecated, and its behavior will change in a future version of pytorch. It currently rounds toward 0 (like the &#39;trunc&#39; function NOT &#39;floor&#39;). This results in incorrect rounding for negative values. To keep the current behavior, use torch.div(a, b, rounding_mode=&#39;trunc&#39;), or for actual floor division, use torch.div(a, b, rounding_mode=&#39;floor&#39;).
@@ -538,7 +626,7 @@ torchvision rcnn models.</p>
 <div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Get 9 valid boxes
 </pre></div>
 </div>
-<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 3 minutes  1.380 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 3 minutes  12.187 seconds)</p>
 <div class="sphx-glr-footer sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-deploy-models-deploy-object-detection-pytorch-py">
 <div class="sphx-glr-download sphx-glr-download-python docutils container">
 <p><a class="reference download internal" download="" href="../../_downloads/7795da4b258c8feff986668b95ef57ad/deploy_object_detection_pytorch.py"><code class="xref download docutils literal notranslate"><span class="pre">Download</span> <span class="pre">Python</span> <span class="pre">source</span> <span class="pre">code:</span> <span class="pre">deploy_object_detection_pytorch.py</span></code></a></p>
diff --git a/docs/how_to/deploy_models/deploy_prequantized.html b/docs/how_to/deploy_models/deploy_prequantized.html
index f364f1e2f..04efc5f40 100644
--- a/docs/how_to/deploy_models/deploy_prequantized.html
+++ b/docs/how_to/deploy_models/deploy_prequantized.html
@@ -480,7 +480,13 @@ training. Other models require a full post training calibration.</p>
 <div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Downloading: &quot;https://download.pytorch.org/models/mobilenet_v2-b0353104.pth&quot; to /workspace/.cache/torch/hub/checkpoints/mobilenet_v2-b0353104.pth
 
   0%|          | 0.00/13.6M [00:00&lt;?, ?B/s]
-100%|##########| 13.6M/13.6M [00:00&lt;00:00, 167MB/s]
+ 15%|#4        | 2.03M/13.6M [00:00&lt;00:00, 21.3MB/s]
+ 32%|###2      | 4.38M/13.6M [00:00&lt;00:00, 23.0MB/s]
+ 50%|####9     | 6.75M/13.6M [00:00&lt;00:00, 23.5MB/s]
+ 66%|######6   | 9.00M/13.6M [00:00&lt;00:00, 22.5MB/s]
+ 82%|########2 | 11.2M/13.6M [00:00&lt;00:00, 20.1MB/s]
+ 97%|#########6| 13.1M/13.6M [00:00&lt;00:00, 18.6MB/s]
+100%|##########| 13.6M/13.6M [00:00&lt;00:00, 19.8MB/s]
 </pre></div>
 </div>
 </div>
@@ -565,7 +571,7 @@ output values are identical out of 1000 outputs from mobilenet v2.</p>
 </div>
 <div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Execution time summary:
  mean (ms)   median (ms)    max (ms)     min (ms)     std (ms)
-  90.3867      90.2498      93.4431      90.1197       0.4264
+  90.2393      90.1157      95.5348      90.0241       0.6210
 </pre></div>
 </div>
 <div class="admonition note">
@@ -604,7 +610,7 @@ This includes support for the VNNI 8 bit dot product instruction (CascadeLake or
 <div class="section" id="deploy-a-quantized-tflite-model">
 <h2>Deploy a quantized TFLite Model<a class="headerlink" href="#deploy-a-quantized-tflite-model" title="Permalink to this headline">¶</a></h2>
 <p>TODO</p>
-<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes  10.155 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes  10.264 seconds)</p>
 <div class="sphx-glr-footer sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-deploy-models-deploy-prequantized-py">
 <div class="sphx-glr-download sphx-glr-download-python docutils container">
 <p><a class="reference download internal" download="" href="../../_downloads/fb8217c13f4351224c6cf3aacf1a87fc/deploy_prequantized.py"><code class="xref download docutils literal notranslate"><span class="pre">Download</span> <span class="pre">Python</span> <span class="pre">source</span> <span class="pre">code:</span> <span class="pre">deploy_prequantized.py</span></code></a></p>
diff --git a/docs/how_to/deploy_models/deploy_prequantized_tflite.html b/docs/how_to/deploy_models/deploy_prequantized_tflite.html
index 85944a874..94513c7d6 100644
--- a/docs/how_to/deploy_models/deploy_prequantized_tflite.html
+++ b/docs/how_to/deploy_models/deploy_prequantized_tflite.html
@@ -569,7 +569,7 @@ TFLite Top-5 labels: [387 102 386 341 349]
 </div>
 <div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Execution time summary:
  mean (ms)   median (ms)    max (ms)     min (ms)     std (ms)
-  120.5983     120.5436     126.8637     119.7613      0.7099
+  119.7209     119.6574     122.8400     118.9301      0.4546
 </pre></div>
 </div>
 <div class="admonition note">
@@ -597,7 +597,7 @@ network for ARM CPU</span></a>.</p></li>
 </ul>
 </div></blockquote>
 </div>
-<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes  59.137 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes  53.267 seconds)</p>
 <div class="sphx-glr-footer sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-deploy-models-deploy-prequantized-tflite-py">
 <div class="sphx-glr-download sphx-glr-download-python docutils container">
 <p><a class="reference download internal" download="" href="../../_downloads/56691c7a27d45da61d112276334640d3/deploy_prequantized_tflite.py"><code class="xref download docutils literal notranslate"><span class="pre">Download</span> <span class="pre">Python</span> <span class="pre">source</span> <span class="pre">code:</span> <span class="pre">deploy_prequantized_tflite.py</span></code></a></p>
diff --git a/docs/how_to/deploy_models/deploy_quantized.html b/docs/how_to/deploy_models/deploy_quantized.html
index bd6c2a994..94f0b588d 100644
--- a/docs/how_to/deploy_models/deploy_quantized.html
+++ b/docs/how_to/deploy_models/deploy_quantized.html
@@ -507,7 +507,7 @@ for calibration. But the accuracy might be impacted.</p>
   DeprecationWarning,
 </pre></div>
 </div>
-<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes  25.983 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes  25.388 seconds)</p>
 <div class="sphx-glr-footer sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-deploy-models-deploy-quantized-py">
 <div class="sphx-glr-download sphx-glr-download-python docutils container">
 <p><a class="reference download internal" download="" href="../../_downloads/7810ecf51bfc05f7d5e8a400ac3e815d/deploy_quantized.py"><code class="xref download docutils literal notranslate"><span class="pre">Download</span> <span class="pre">Python</span> <span class="pre">source</span> <span class="pre">code:</span> <span class="pre">deploy_quantized.py</span></code></a></p>
diff --git a/docs/how_to/deploy_models/deploy_ssd_gluoncv.html b/docs/how_to/deploy_models/deploy_ssd_gluoncv.html
index a09f449a9..fb4f5d505 100644
--- a/docs/how_to/deploy_models/deploy_ssd_gluoncv.html
+++ b/docs/how_to/deploy_models/deploy_ssd_gluoncv.html
@@ -441,24 +441,24 @@ to your device.</p>
 Downloading /workspace/.mxnet/models/ssd_512_resnet50_v1_voc-9c8b225a.zip from https://apache-mxnet.s3-accelerate.dualstack.amazonaws.com/gluon/models/ssd_512_resnet50_v1_voc-9c8b225a.zip...
 
   0%|          | 0/132723 [00:00&lt;?, ?KB/s]
-  4%|4         | 5353/132723 [00:00&lt;00:02, 53523.67KB/s]
- 10%|9         | 12611/132723 [00:00&lt;00:01, 64730.59KB/s]
- 15%|#5        | 19921/132723 [00:00&lt;00:01, 68547.32KB/s]
- 21%|##        | 27210/132723 [00:00&lt;00:01, 70259.69KB/s]
- 26%|##6       | 34625/132723 [00:00&lt;00:01, 71659.85KB/s]
- 32%|###1      | 41882/132723 [00:00&lt;00:01, 71967.79KB/s]
- 37%|###7      | 49273/132723 [00:00&lt;00:01, 72597.41KB/s]
- 43%|####2     | 56617/132723 [00:00&lt;00:01, 72749.98KB/s]
- 49%|####8     | 64418/132723 [00:00&lt;00:00, 74389.75KB/s]
- 54%|#####4    | 72048/132723 [00:01&lt;00:00, 74976.43KB/s]
- 60%|#####9    | 79621/132723 [00:01&lt;00:00, 75205.69KB/s]
- 66%|######5   | 87306/132723 [00:01&lt;00:00, 75703.74KB/s]
- 72%|#######1  | 94924/132723 [00:01&lt;00:00, 75846.02KB/s]
- 77%|#######7  | 102572/132723 [00:01&lt;00:00, 76036.12KB/s]
- 83%|########3 | 110176/132723 [00:01&lt;00:00, 75934.84KB/s]
- 89%|########8 | 117770/132723 [00:01&lt;00:00, 75665.09KB/s]
- 94%|#########4| 125360/132723 [00:01&lt;00:00, 75732.71KB/s]
-100%|##########| 132723/132723 [00:01&lt;00:00, 73777.85KB/s]
+  4%|4         | 5553/132723 [00:00&lt;00:02, 55517.74KB/s]
+ 10%|9         | 13020/132723 [00:00&lt;00:01, 66777.73KB/s]
+ 15%|#5        | 20334/132723 [00:00&lt;00:01, 69680.29KB/s]
+ 21%|##        | 27828/132723 [00:00&lt;00:01, 71755.02KB/s]
+ 26%|##6       | 35154/132723 [00:00&lt;00:01, 72295.17KB/s]
+ 32%|###1      | 42426/132723 [00:00&lt;00:01, 72437.86KB/s]
+ 38%|###7      | 49808/132723 [00:00&lt;00:01, 72887.04KB/s]
+ 43%|####3     | 57272/132723 [00:00&lt;00:01, 73442.47KB/s]
+ 49%|####8     | 64617/132723 [00:00&lt;00:00, 73353.44KB/s]
+ 54%|#####4    | 72135/132723 [00:01&lt;00:00, 73915.11KB/s]
+ 60%|######    | 79681/132723 [00:01&lt;00:00, 74384.93KB/s]
+ 66%|######5   | 87182/132723 [00:01&lt;00:00, 74571.55KB/s]
+ 71%|#######1  | 94640/132723 [00:01&lt;00:00, 74551.42KB/s]
+ 77%|#######6  | 102109/132723 [00:01&lt;00:00, 74588.34KB/s]
+ 83%|########2 | 109568/132723 [00:01&lt;00:00, 74190.19KB/s]
+ 88%|########8 | 117382/132723 [00:01&lt;00:00, 75371.55KB/s]
+ 94%|#########4| 124920/132723 [00:01&lt;00:00, 67241.97KB/s]
+100%|##########| 132723/132723 [00:01&lt;00:00, 72049.98KB/s]
 </pre></div>
 </div>
 <p>Create TVM runtime and do inference
@@ -497,7 +497,7 @@ Downloading /workspace/.mxnet/models/ssd_512_resnet50_v1_voc-9c8b225a.zip from h
 <span class="n">plt</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
 </pre></div>
 </div>
-<img src="../../_images/sphx_glr_deploy_ssd_gluoncv_001.png" srcset="../../_images/sphx_glr_deploy_ssd_gluoncv_001.png" alt="deploy ssd gluoncv" class = "sphx-glr-single-img"/><p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 2 minutes  42.086 seconds)</p>
+<img src="../../_images/sphx_glr_deploy_ssd_gluoncv_001.png" srcset="../../_images/sphx_glr_deploy_ssd_gluoncv_001.png" alt="deploy ssd gluoncv" class = "sphx-glr-single-img"/><p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 2 minutes  39.240 seconds)</p>
 <div class="sphx-glr-footer sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-deploy-models-deploy-ssd-gluoncv-py">
 <div class="sphx-glr-download sphx-glr-download-python docutils container">
 <p><a class="reference download internal" download="" href="../../_downloads/cccb17d28e5e8b2e94ea8cd5ec59f6ed/deploy_ssd_gluoncv.py"><code class="xref download docutils literal notranslate"><span class="pre">Download</span> <span class="pre">Python</span> <span class="pre">source</span> <span class="pre">code:</span> <span class="pre">deploy_ssd_gluoncv.py</span></code></a></p>
diff --git a/docs/how_to/deploy_models/sg_execution_times.html b/docs/how_to/deploy_models/sg_execution_times.html
index 1961e615e..dd8b96197 100644
--- a/docs/how_to/deploy_models/sg_execution_times.html
+++ b/docs/how_to/deploy_models/sg_execution_times.html
@@ -327,7 +327,7 @@
             
   <div class="section" id="computation-times">
 <span id="sphx-glr-how-to-deploy-models-sg-execution-times"></span><h1>Computation times<a class="headerlink" href="#computation-times" title="Permalink to this headline">¶</a></h1>
-<p><strong>11:35.188</strong> total execution time for <strong>how_to_deploy_models</strong> files:</p>
+<p><strong>11:35.674</strong> total execution time for <strong>how_to_deploy_models</strong> files:</p>
 <table class="docutils align-default">
 <colgroup>
 <col style="width: 86%" />
@@ -336,35 +336,35 @@
 </colgroup>
 <tbody>
 <tr class="row-odd"><td><p><a class="reference internal" href="deploy_object_detection_pytorch.html#sphx-glr-how-to-deploy-models-deploy-object-detection-pytorch-py"><span class="std std-ref">Compile PyTorch Object Detection Models</span></a> (<code class="docutils literal notranslate"><span class="pre">deploy_object_detection_pytorch.py</span></code>)</p></td>
-<td><p>03:01.380</p></td>
+<td><p>03:12.187</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="deploy_ssd_gluoncv.html#sphx-glr-how-to-deploy-models-deploy-ssd-gluoncv-py"><span class="std std-ref">Deploy Single Shot Multibox Detector(SSD) model</span></a> (<code class="docutils literal notranslate"><span class="pre">deploy_ssd_gluoncv.py</span></code>)</p></td>
-<td><p>02:42.086</p></td>
+<td><p>02:39.240</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-odd"><td><p><a class="reference internal" href="deploy_prequantized_tflite.html#sphx-glr-how-to-deploy-models-deploy-prequantized-tflite-py"><span class="std std-ref">Deploy a Framework-prequantized Model with TVM - Part 3 (TFLite)</span></a> (<code class="docutils literal notranslate"><span class="pre">deploy_prequantized_tflite.py</span></code>)</p></td>
-<td><p>01:59.137</p></td>
+<td><p>01:53.267</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="deploy_quantized.html#sphx-glr-how-to-deploy-models-deploy-quantized-py"><span class="std std-ref">Deploy a Quantized Model on Cuda</span></a> (<code class="docutils literal notranslate"><span class="pre">deploy_quantized.py</span></code>)</p></td>
-<td><p>01:25.983</p></td>
+<td><p>01:25.388</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-odd"><td><p><a class="reference internal" href="deploy_prequantized.html#sphx-glr-how-to-deploy-models-deploy-prequantized-py"><span class="std std-ref">Deploy a Framework-prequantized Model with TVM</span></a> (<code class="docutils literal notranslate"><span class="pre">deploy_prequantized.py</span></code>)</p></td>
-<td><p>01:10.155</p></td>
+<td><p>01:10.264</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="deploy_model_on_android.html#sphx-glr-how-to-deploy-models-deploy-model-on-android-py"><span class="std std-ref">Deploy the Pretrained Model on Android</span></a> (<code class="docutils literal notranslate"><span class="pre">deploy_model_on_android.py</span></code>)</p></td>
-<td><p>00:30.785</p></td>
+<td><p>00:30.579</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-odd"><td><p><a class="reference internal" href="deploy_model_on_nano.html#sphx-glr-how-to-deploy-models-deploy-model-on-nano-py"><span class="std std-ref">Deploy the Pretrained Model on Jetson Nano</span></a> (<code class="docutils literal notranslate"><span class="pre">deploy_model_on_nano.py</span></code>)</p></td>
-<td><p>00:23.099</p></td>
+<td><p>00:22.541</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="deploy_model_on_rasp.html#sphx-glr-how-to-deploy-models-deploy-model-on-rasp-py"><span class="std std-ref">Deploy the Pretrained Model on Raspberry Pi</span></a> (<code class="docutils literal notranslate"><span class="pre">deploy_model_on_rasp.py</span></code>)</p></td>
-<td><p>00:22.557</p></td>
+<td><p>00:22.202</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-odd"><td><p><a class="reference internal" href="deploy_sparse.html#sphx-glr-how-to-deploy-models-deploy-sparse-py"><span class="std std-ref">Deploy a Hugging Face Pruned Model on CPU</span></a> (<code class="docutils literal notranslate"><span class="pre">deploy_sparse.py</span></code>)</p></td>
diff --git a/docs/how_to/extend_tvm/bring_your_own_datatypes.html b/docs/how_to/extend_tvm/bring_your_own_datatypes.html
index 92f8a2c5c..bad275307 100644
--- a/docs/how_to/extend_tvm/bring_your_own_datatypes.html
+++ b/docs/how_to/extend_tvm/bring_your_own_datatypes.html
@@ -608,7 +608,7 @@ In this alpha state of the Bring Your Own Datatypes framework, we have not imple
 <span class="n">module</span><span class="p">,</span> <a href="https://docs.python.org/3/library/stdtypes.html#dict" title="builtins.dict" class="sphx-glr-backref-module-builtins sphx-glr-backref-type-py-class sphx-glr-backref-instance"><span class="n">params</span></a> <span class="o">=</span> <span class="n">get_mobilenet</span><span class="p">()</span>
 </pre></div>
 </div>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Downloading /workspace/.mxnet/models/mobilenet0.25-9f83e440.zipba92d1a1-30a7-48f4-8d7c-ddf7a7d2a0ac from https://apache-mxnet.s3-accelerate.dualstack.amazonaws.com/gluon/models/mobilenet0.25-9f83e440.zip...
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Downloading /workspace/.mxnet/models/mobilenet0.25-9f83e440.zip83c365a1-e407-4e81-ae2b-2e03ffc28fbf from https://apache-mxnet.s3-accelerate.dualstack.amazonaws.com/gluon/models/mobilenet0.25-9f83e440.zip...
 </pre></div>
 </div>
 <p>It’s easy to execute MobileNet with native TVM:</p>
diff --git a/docs/how_to/extend_tvm/sg_execution_times.html b/docs/how_to/extend_tvm/sg_execution_times.html
index 7c48e97c8..fe04bbdab 100644
--- a/docs/how_to/extend_tvm/sg_execution_times.html
+++ b/docs/how_to/extend_tvm/sg_execution_times.html
@@ -327,7 +327,7 @@
             
   <div class="section" id="computation-times">
 <span id="sphx-glr-how-to-extend-tvm-sg-execution-times"></span><h1>Computation times<a class="headerlink" href="#computation-times" title="Permalink to this headline">¶</a></h1>
-<p><strong>00:41.338</strong> total execution time for <strong>how_to_extend_tvm</strong> files:</p>
+<p><strong>00:41.855</strong> total execution time for <strong>how_to_extend_tvm</strong> files:</p>
 <table class="docutils align-default">
 <colgroup>
 <col style="width: 84%" />
@@ -336,15 +336,15 @@
 </colgroup>
 <tbody>
 <tr class="row-odd"><td><p><a class="reference internal" href="bring_your_own_datatypes.html#sphx-glr-how-to-extend-tvm-bring-your-own-datatypes-py"><span class="std std-ref">Bring Your Own Datatypes to TVM</span></a> (<code class="docutils literal notranslate"><span class="pre">bring_your_own_datatypes.py</span></code>)</p></td>
-<td><p>00:38.141</p></td>
+<td><p>00:38.670</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="use_pass_instrument.html#sphx-glr-how-to-extend-tvm-use-pass-instrument-py"><span class="std std-ref">How to Use TVM Pass Instrument</span></a> (<code class="docutils literal notranslate"><span class="pre">use_pass_instrument.py</span></code>)</p></td>
-<td><p>00:02.237</p></td>
+<td><p>00:02.231</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-odd"><td><p><a class="reference internal" href="use_pass_infra.html#sphx-glr-how-to-extend-tvm-use-pass-infra-py"><span class="std std-ref">How to Use TVM Pass Infra</span></a> (<code class="docutils literal notranslate"><span class="pre">use_pass_infra.py</span></code>)</p></td>
-<td><p>00:00.952</p></td>
+<td><p>00:00.947</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="low_level_custom_pass.html#sphx-glr-how-to-extend-tvm-low-level-custom-pass-py"><span class="std std-ref">Writing a Customized Pass</span></a> (<code class="docutils literal notranslate"><span class="pre">low_level_custom_pass.py</span></code>)</p></td>
diff --git a/docs/how_to/extend_tvm/use_pass_instrument.html b/docs/how_to/extend_tvm/use_pass_instrument.html
index 3dc12636e..e79eaaab3 100644
--- a/docs/how_to/extend_tvm/use_pass_instrument.html
+++ b/docs/how_to/extend_tvm/use_pass_instrument.html
@@ -512,10 +512,10 @@ profile the execution time of each passes.</p>
 </pre></div>
 </div>
 <div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Printing results of timing profile...
-InferType: 7037us [7037us] (44.26%; 44.26%)
-FoldScaleAxis: 8863us [6us] (55.74%; 55.74%)
-        FoldConstant: 8857us [1774us] (55.70%; 99.93%)
-                InferType: 7083us [7083us] (44.55%; 79.97%)
+InferType: 6704us [6704us] (45.87%; 45.87%)
+FoldScaleAxis: 7911us [5us] (54.13%; 54.13%)
+        FoldConstant: 7905us [1653us] (54.09%; 99.93%)
+                InferType: 6252us [6252us] (42.78%; 79.09%)
 </pre></div>
 </div>
 </div>
@@ -537,10 +537,10 @@ Refer to following sections and <a class="reference internal" href="../../refere
 </pre></div>
 </div>
 <div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Printing results of timing profile...
-InferType: 6509us [6509us] (44.45%; 44.45%)
-FoldScaleAxis: 8135us [6us] (55.55%; 55.55%)
-        FoldConstant: 8130us [1725us] (55.51%; 99.93%)
-                InferType: 6405us [6405us] (43.74%; 78.78%)
+InferType: 6309us [6309us] (44.48%; 44.48%)
+FoldScaleAxis: 7874us [5us] (55.52%; 55.52%)
+        FoldConstant: 7868us [1657us] (55.48%; 99.93%)
+                InferType: 6211us [6211us] (43.79%; 78.93%)
 </pre></div>
 </div>
 <p>Register empty list to clear existing instruments.</p>
diff --git a/docs/how_to/optimize_operators/opt_conv_cuda.html b/docs/how_to/optimize_operators/opt_conv_cuda.html
index 8f0843536..7812fb20e 100644
--- a/docs/how_to/optimize_operators/opt_conv_cuda.html
+++ b/docs/how_to/optimize_operators/opt_conv_cuda.html
@@ -564,7 +564,7 @@ latency of convolution.</p>
 <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Convolution: </span><span class="si">%f</span><span class="s2"> ms&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">evaluator</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">w</span><span class="p">,</span> <span class="n">b</span><span class="p">)</span><span class="o">.</span><span class="n">mean</span> <span class="o">*</span> <span cl [...]
 </pre></div>
 </div>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Convolution: 34.301079 ms
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Convolution: 46.199459 ms
 </pre></div>
 </div>
 <div class="sphx-glr-footer sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-optimize-operators-opt-conv-cuda-py">
diff --git a/docs/how_to/optimize_operators/opt_conv_tensorcore.html b/docs/how_to/optimize_operators/opt_conv_tensorcore.html
index e81e480c7..eeb0e36b2 100644
--- a/docs/how_to/optimize_operators/opt_conv_tensorcore.html
+++ b/docs/how_to/optimize_operators/opt_conv_tensorcore.html
@@ -906,7 +906,7 @@ be able to run on our build server</p>
     <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;conv2d with tensor core: </span><span class="si">%f</span><span class="s2"> ms&quot;</span> <span class="o">%</span> <span class="p">(</span><span class="n">evaluator</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">w</span><span class="p">,</span> <span class="n">c</span><span class="p">)</span><span class="o">.</span><span class="n">mean</span> <span class="o">* [...]
 </pre></div>
 </div>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>conv2d with tensor core: 9.281595 ms
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>conv2d with tensor core: 6.900343 ms
 </pre></div>
 </div>
 </div>
diff --git a/docs/how_to/optimize_operators/opt_gemm.html b/docs/how_to/optimize_operators/opt_gemm.html
index b3ae31bff..9182fb9ee 100644
--- a/docs/how_to/optimize_operators/opt_gemm.html
+++ b/docs/how_to/optimize_operators/opt_gemm.html
@@ -461,8 +461,8 @@ Then we write a baseline implementation, the simplest way to write a matrix mult
 <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Baseline: </span><span class="si">%f</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">evaluator</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">,</span> <span class="n">c</span><span class="p">)</span><span class="o">.</span><span class="n">mean</span><span class="p">)</span>
 </pre></div>
 </div>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Numpy running time: 0.019026
-Baseline: 3.262334
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Numpy running time: 0.019388
+Baseline: 3.498071
 </pre></div>
 </div>
 <p>In TVM, we can always inspect lower level IR to debug or optimize our schedule.
@@ -522,7 +522,7 @@ fill 32 * 32 * sizeof(float) which is 4KB in the cache whose total size is 32KB
 <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Opt1: </span><span class="si">%f</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">evaluator</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">,</span> <span class="n">c</span><span class="p">)</span><span class="o">.</span><span class="n">mean</span><span class="p">)</span>
 </pre></div>
 </div>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt1: 0.311867
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt1: 0.315137
 </pre></div>
 </div>
 <p>Here is the generated IR after blocking.</p>
@@ -589,7 +589,7 @@ vastly.</p>
 <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Opt2: </span><span class="si">%f</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">evaluator</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">,</span> <span class="n">c</span><span class="p">)</span><span class="o">.</span><span class="n">mean</span><span class="p">)</span>
 </pre></div>
 </div>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt2: 0.343041
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt2: 0.343121
 </pre></div>
 </div>
 <p>Here is the generated IR after vectorization.</p>
@@ -650,7 +650,7 @@ the access pattern for A matrix is more cache friendly.</p>
 <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Opt3: </span><span class="si">%f</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">evaluator</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">,</span> <span class="n">c</span><span class="p">)</span><span class="o">.</span><span class="n">mean</span><span class="p">)</span>
 </pre></div>
 </div>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt3: 0.118091
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt3: 0.118553
 </pre></div>
 </div>
 <p>Here is the generated IR after loop permutation.</p>
@@ -733,7 +733,7 @@ flattening.</p>
 <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Opt4: </span><span class="si">%f</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">evaluator</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">,</span> <span class="n">c</span><span class="p">)</span><span class="o">.</span><span class="n">mean</span><span class="p">)</span>
 </pre></div>
 </div>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt4: 0.110221
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt4: 0.109896
 </pre></div>
 </div>
 <p>Here is the generated IR after array packing.</p>
@@ -819,7 +819,7 @@ write to C when all the block results are ready.</p>
 <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Opt5: </span><span class="si">%f</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">evaluator</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">,</span> <span class="n">c</span><span class="p">)</span><span class="o">.</span><span class="n">mean</span><span class="p">)</span>
 </pre></div>
 </div>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt5: 0.110821
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt5: 0.111095
 </pre></div>
 </div>
 <p>Here is the generated IR after blocking.</p>
@@ -909,7 +909,7 @@ write to C when all the block results are ready.</p>
 <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Opt6: </span><span class="si">%f</span><span class="s2">&quot;</span> <span class="o">%</span> <span class="n">opt6_time</span><span class="p">)</span>
 </pre></div>
 </div>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt6: 0.146781
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Opt6: 0.147013
 </pre></div>
 </div>
 <p>Here is the generated IR after parallelization.</p>
diff --git a/docs/how_to/optimize_operators/sg_execution_times.html b/docs/how_to/optimize_operators/sg_execution_times.html
index f2ec022db..67b73901c 100644
--- a/docs/how_to/optimize_operators/sg_execution_times.html
+++ b/docs/how_to/optimize_operators/sg_execution_times.html
@@ -327,7 +327,7 @@
             
   <div class="section" id="computation-times">
 <span id="sphx-glr-how-to-optimize-operators-sg-execution-times"></span><h1>Computation times<a class="headerlink" href="#computation-times" title="Permalink to this headline">¶</a></h1>
-<p><strong>00:34.362</strong> total execution time for <strong>how_to_optimize_operators</strong> files:</p>
+<p><strong>00:35.181</strong> total execution time for <strong>how_to_optimize_operators</strong> files:</p>
 <table class="docutils align-default">
 <colgroup>
 <col style="width: 83%" />
@@ -336,15 +336,15 @@
 </colgroup>
 <tbody>
 <tr class="row-odd"><td><p><a class="reference internal" href="opt_gemm.html#sphx-glr-how-to-optimize-operators-opt-gemm-py"><span class="std std-ref">How to optimize GEMM on CPU</span></a> (<code class="docutils literal notranslate"><span class="pre">opt_gemm.py</span></code>)</p></td>
-<td><p>00:32.072</p></td>
+<td><p>00:32.871</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="opt_conv_tensorcore.html#sphx-glr-how-to-optimize-operators-opt-conv-tensorcore-py"><span class="std std-ref">How to optimize convolution using TensorCores</span></a> (<code class="docutils literal notranslate"><span class="pre">opt_conv_tensorcore.py</span></code>)</p></td>
-<td><p>00:01.269</p></td>
+<td><p>00:01.235</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-odd"><td><p><a class="reference internal" href="opt_conv_cuda.html#sphx-glr-how-to-optimize-operators-opt-conv-cuda-py"><span class="std std-ref">How to optimize convolution on GPU</span></a> (<code class="docutils literal notranslate"><span class="pre">opt_conv_cuda.py</span></code>)</p></td>
-<td><p>00:01.022</p></td>
+<td><p>00:01.075</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 </tbody>
diff --git a/docs/how_to/tune_with_autoscheduler/sg_execution_times.html b/docs/how_to/tune_with_autoscheduler/sg_execution_times.html
index 18b9fb486..aa63f6ac8 100644
--- a/docs/how_to/tune_with_autoscheduler/sg_execution_times.html
+++ b/docs/how_to/tune_with_autoscheduler/sg_execution_times.html
@@ -327,7 +327,7 @@
             
   <div class="section" id="computation-times">
 <span id="sphx-glr-how-to-tune-with-autoscheduler-sg-execution-times"></span><h1>Computation times<a class="headerlink" href="#computation-times" title="Permalink to this headline">¶</a></h1>
-<p><strong>06:24.775</strong> total execution time for <strong>how_to_tune_with_autoscheduler</strong> files:</p>
+<p><strong>06:43.066</strong> total execution time for <strong>how_to_tune_with_autoscheduler</strong> files:</p>
 <table class="docutils align-default">
 <colgroup>
 <col style="width: 85%" />
@@ -336,27 +336,27 @@
 </colgroup>
 <tbody>
 <tr class="row-odd"><td><p><a class="reference internal" href="tune_conv2d_layer_cuda.html#sphx-glr-how-to-tune-with-autoscheduler-tune-conv2d-layer-cuda-py"><span class="std std-ref">Auto-scheduling a Convolution Layer for GPU</span></a> (<code class="docutils literal notranslate"><span class="pre">tune_conv2d_layer_cuda.py</span></code>)</p></td>
-<td><p>03:27.246</p></td>
+<td><p>03:43.102</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="tune_network_x86.html#sphx-glr-how-to-tune-with-autoscheduler-tune-network-x86-py"><span class="std std-ref">Auto-scheduling a Neural Network for x86 CPU</span></a> (<code class="docutils literal notranslate"><span class="pre">tune_network_x86.py</span></code>)</p></td>
-<td><p>01:23.476</p></td>
+<td><p>01:23.690</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-odd"><td><p><a class="reference internal" href="tune_network_cuda.html#sphx-glr-how-to-tune-with-autoscheduler-tune-network-cuda-py"><span class="std std-ref">Auto-scheduling a Neural Network for NVIDIA GPU</span></a> (<code class="docutils literal notranslate"><span class="pre">tune_network_cuda.py</span></code>)</p></td>
-<td><p>00:57.130</p></td>
+<td><p>00:57.011</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="tune_sparse_x86.html#sphx-glr-how-to-tune-with-autoscheduler-tune-sparse-x86-py"><span class="std std-ref">Auto-scheduling Sparse Matrix Multiplication on CPU with Custom Sketch Rule</span></a> (<code class="docutils literal notranslate"><span class="pre">tune_sparse_x86.py</span></code>)</p></td>
-<td><p>00:18.857</p></td>
+<td><p>00:21.464</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-odd"><td><p><a class="reference internal" href="tune_network_mali.html#sphx-glr-how-to-tune-with-autoscheduler-tune-network-mali-py"><span class="std std-ref">Auto-scheduling a Neural Network for mali GPU</span></a> (<code class="docutils literal notranslate"><span class="pre">tune_network_mali.py</span></code>)</p></td>
-<td><p>00:09.242</p></td>
+<td><p>00:09.005</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="tune_network_arm.html#sphx-glr-how-to-tune-with-autoscheduler-tune-network-arm-py"><span class="std std-ref">Auto-scheduling a Neural Network for ARM CPU</span></a> (<code class="docutils literal notranslate"><span class="pre">tune_network_arm.py</span></code>)</p></td>
-<td><p>00:08.825</p></td>
+<td><p>00:08.795</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 </tbody>
diff --git a/docs/how_to/tune_with_autoscheduler/tune_conv2d_layer_cuda.html b/docs/how_to/tune_with_autoscheduler/tune_conv2d_layer_cuda.html
index f142a2836..3e84fa1b2 100644
--- a/docs/how_to/tune_with_autoscheduler/tune_conv2d_layer_cuda.html
+++ b/docs/how_to/tune_with_autoscheduler/tune_conv2d_layer_cuda.html
@@ -475,6 +475,9 @@ file and apply it.</p>
 <span class="k">del</span> <span class="n">measure_ctx</span>
 </pre></div>
 </div>
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>.T
+</pre></div>
+</div>
 <p>We can lower the schedule to see the IR after auto-scheduling.
 The auto-scheduler correctly performs optimizations including multi-level tiling,
 cooperative fetching, unrolling and operator fusion.</p>
@@ -491,57 +494,428 @@ cooperative fetching, unrolling and operator fusion.</p>
              compute: Buffer(compute_2: Pointer(float32), float32, [25088], [])}
   buffer_map = {data_1: data, kernel_1: kernel, bias_1: bias, compute_1: compute}
   preflattened_buffer_map = {data_1: data_3: Buffer(data_2, float32, [1, 512, 7, 7], []), kernel_1: kernel_3: Buffer(kernel_2, float32, [512, 512, 3, 3], []), bias_1: bias_3: Buffer(bias_2, float32, [1, 512, 1, 1], []), compute_1: compute_3: Buffer(compute_2, float32, [1, 512, 7, 7], [])} {
-  attr [IterVar(blockIdx.x: int32, (nullptr), &quot;ThreadIndex&quot;, &quot;blockIdx.x&quot;)] &quot;thread_extent&quot; = 16;
-  allocate(conv2d_nchw: Pointer(local float32), float32, [8]), storage_scope = local;
-  allocate(pad_temp.shared: Pointer(shared float32), float32, [252]), storage_scope = shared;
-  allocate(kernel.shared: Pointer(shared float32), float32, [384]), storage_scope = shared;
-  attr [IterVar(threadIdx.x: int32, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 196 {
-    conv2d_nchw_1: Buffer(conv2d_nchw, float32, [8], [], scope=&quot;local&quot;, align=32)[0] = 0f32
+  attr [IterVar(blockIdx.x: int32, (nullptr), &quot;ThreadIndex&quot;, &quot;blockIdx.x&quot;)] &quot;thread_extent&quot; = 128;
+  allocate(conv2d_nchw: Pointer(local float32), float32, [14]), storage_scope = local;
+  allocate(pad_temp.shared: Pointer(shared float32), float32, [504]), storage_scope = shared;
+  allocate(kernel.shared: Pointer(shared float32), float32, [96]), storage_scope = shared;
+  attr [IterVar(threadIdx.x: int32, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 14 {
+    conv2d_nchw_1: Buffer(conv2d_nchw, float32, [49], [], scope=&quot;local&quot;, align=16)[0] = 0f32
+    conv2d_nchw_1[7] = 0f32
     conv2d_nchw_1[1] = 0f32
+    conv2d_nchw_1[8] = 0f32
     conv2d_nchw_1[2] = 0f32
+    conv2d_nchw_1[9] = 0f32
     conv2d_nchw_1[3] = 0f32
+    conv2d_nchw_1[10] = 0f32
     conv2d_nchw_1[4] = 0f32
+    conv2d_nchw_1[11] = 0f32
     conv2d_nchw_1[5] = 0f32
+    conv2d_nchw_1[12] = 0f32
     conv2d_nchw_1[6] = 0f32
-    conv2d_nchw_1[7] = 0f32
-    for (rc.outer.outer: int32, 0, 128) {
+    conv2d_nchw_1[13] = 0f32
+    for (rc.outer.outer: int32, 0, 64) {
       for (ry.outer.outer: int32, 0, 3) {
-        attr [IterVar(threadIdx.x_1: int32, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 196;
-        pad_temp.shared_1: Buffer(pad_temp.shared, float32, [252], [], scope=&quot;shared&quot;)[threadIdx.x_1] = @tir.if_then_else(((((1 &lt;= (floordiv(floormod(threadIdx.x_1, 63), 9) + ry.outer.outer)) &amp;&amp; ((floordiv(floormod(threadIdx.x_1, 63), 9) + ry.outer.outer) &lt; 8)) &amp;&amp; (1 &lt;= floormod(threadIdx.x_1, 9))) &amp;&amp; (floormod(threadIdx.x_1, 9) &lt; 8)), data[(((((rc.outer.outer*196) + (floordiv(threadIdx.x_1, 9)*7)) + (ry.outer.outer*7)) + floormod(threadIdx.x [...]
-        attr [IterVar(threadIdx.x_1, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 196;
-        if @tir.likely((threadIdx.x_1 &lt; 56), dtype=bool) {
-          pad_temp.shared_1[(threadIdx.x_1 + 196)] = @tir.if_then_else(((((1 &lt;= (floordiv(floormod((threadIdx.x_1 + 7), 63), 9) + ry.outer.outer)) &amp;&amp; ((floordiv(floormod((threadIdx.x_1 + 7), 63), 9) + ry.outer.outer) &lt; 8)) &amp;&amp; (1 &lt;= floormod((threadIdx.x_1 + 7), 9))) &amp;&amp; (floormod((threadIdx.x_1 + 7), 9) &lt; 8)), data[(((((rc.outer.outer*196) + (floordiv((threadIdx.x_1 + 196), 9)*7)) + (ry.outer.outer*7)) + floormod((threadIdx.x_1 + 7), 9)) - 8)], 0f32, dt [...]
-        }
-        attr [IterVar(threadIdx.x_2: int32, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 196;
-        kernel.shared_1: Buffer(kernel.shared, float32, [384], [], scope=&quot;shared&quot;)[threadIdx.x_2] = kernel[((((((blockIdx.x*147456) + (floordiv(threadIdx.x_2, 12)*4608)) + (rc.outer.outer*36)) + (floordiv(floormod(threadIdx.x_2, 12), 3)*9)) + (ry.outer.outer*3)) + floormod(threadIdx.x_2, 3))]
-        attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 196;
-        if @tir.likely((threadIdx.x_2 &lt; 188), dtype=bool) {
-          kernel.shared_1[(threadIdx.x_2 + 196)] = kernel[((((((blockIdx.x*147456) + (floordiv((threadIdx.x_2 + 196), 12)*4608)) + (rc.outer.outer*36)) + (floordiv(floormod((threadIdx.x_2 + 4), 12), 3)*9)) + (ry.outer.outer*3)) + floormod((threadIdx.x_2 + 1), 3))]
-        }
-        for (rc.outer.inner: int32, 0, 2) {
-          for (rx.outer.inner: int32, 0, 3) {
-            conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[((((rc.outer.inner*126) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + rx.outer.inner) + floormod(threadIdx.x, 7))]*kernel.shared_1[(((floordiv(threadIdx.x, 49)*96) + (rc.outer.inner*6)) + rx.outer.inner)]))
-            conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[((((rc.outer.inner*126) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + rx.outer.inner) + floormod(threadIdx.x, 7))]*kernel.shared_1[((((floordiv(threadIdx.x, 49)*96) + (rc.outer.inner*6)) + rx.outer.inner) + 12)]))
-            conv2d_nchw_1[2] = (conv2d_nchw_1[2] + (pad_temp.shared_1[((((rc.outer.inner*126) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + rx.outer.inner) + floormod(threadIdx.x, 7))]*kernel.shared_1[((((floordiv(threadIdx.x, 49)*96) + (rc.outer.inner*6)) + rx.outer.inner) + 24)]))
-            conv2d_nchw_1[3] = (conv2d_nchw_1[3] + (pad_temp.shared_1[((((rc.outer.inner*126) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + rx.outer.inner) + floormod(threadIdx.x, 7))]*kernel.shared_1[((((floordiv(threadIdx.x, 49)*96) + (rc.outer.inner*6)) + rx.outer.inner) + 36)]))
-            conv2d_nchw_1[4] = (conv2d_nchw_1[4] + (pad_temp.shared_1[((((rc.outer.inner*126) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + rx.outer.inner) + floormod(threadIdx.x, 7))]*kernel.shared_1[((((floordiv(threadIdx.x, 49)*96) + (rc.outer.inner*6)) + rx.outer.inner) + 48)]))
-            conv2d_nchw_1[5] = (conv2d_nchw_1[5] + (pad_temp.shared_1[((((rc.outer.inner*126) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + rx.outer.inner) + floormod(threadIdx.x, 7))]*kernel.shared_1[((((floordiv(threadIdx.x, 49)*96) + (rc.outer.inner*6)) + rx.outer.inner) + 60)]))
-            conv2d_nchw_1[6] = (conv2d_nchw_1[6] + (pad_temp.shared_1[((((rc.outer.inner*126) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + rx.outer.inner) + floormod(threadIdx.x, 7))]*kernel.shared_1[((((floordiv(threadIdx.x, 49)*96) + (rc.outer.inner*6)) + rx.outer.inner) + 72)]))
-            conv2d_nchw_1[7] = (conv2d_nchw_1[7] + (pad_temp.shared_1[((((rc.outer.inner*126) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + rx.outer.inner) + floormod(threadIdx.x, 7))]*kernel.shared_1[((((floordiv(threadIdx.x, 49)*96) + (rc.outer.inner*6)) + rx.outer.inner) + 84)]))
-            conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[(((((rc.outer.inner*126) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + rx.outer.inner) + floormod(threadIdx.x, 7)) + 63)]*kernel.shared_1[((((floordiv(threadIdx.x, 49)*96) + (rc.outer.inner*6)) + rx.outer.inner) + 3)]))
-            conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[(((((rc.outer.inner*126) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + rx.outer.inner) + floormod(threadIdx.x, 7)) + 63)]*kernel.shared_1[((((floordiv(threadIdx.x, 49)*96) + (rc.outer.inner*6)) + rx.outer.inner) + 15)]))
-            conv2d_nchw_1[2] = (conv2d_nchw_1[2] + (pad_temp.shared_1[(((((rc.outer.inner*126) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + rx.outer.inner) + floormod(threadIdx.x, 7)) + 63)]*kernel.shared_1[((((floordiv(threadIdx.x, 49)*96) + (rc.outer.inner*6)) + rx.outer.inner) + 27)]))
-            conv2d_nchw_1[3] = (conv2d_nchw_1[3] + (pad_temp.shared_1[(((((rc.outer.inner*126) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + rx.outer.inner) + floormod(threadIdx.x, 7)) + 63)]*kernel.shared_1[((((floordiv(threadIdx.x, 49)*96) + (rc.outer.inner*6)) + rx.outer.inner) + 39)]))
-            conv2d_nchw_1[4] = (conv2d_nchw_1[4] + (pad_temp.shared_1[(((((rc.outer.inner*126) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + rx.outer.inner) + floormod(threadIdx.x, 7)) + 63)]*kernel.shared_1[((((floordiv(threadIdx.x, 49)*96) + (rc.outer.inner*6)) + rx.outer.inner) + 51)]))
-            conv2d_nchw_1[5] = (conv2d_nchw_1[5] + (pad_temp.shared_1[(((((rc.outer.inner*126) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + rx.outer.inner) + floormod(threadIdx.x, 7)) + 63)]*kernel.shared_1[((((floordiv(threadIdx.x, 49)*96) + (rc.outer.inner*6)) + rx.outer.inner) + 63)]))
-            conv2d_nchw_1[6] = (conv2d_nchw_1[6] + (pad_temp.shared_1[(((((rc.outer.inner*126) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + rx.outer.inner) + floormod(threadIdx.x, 7)) + 63)]*kernel.shared_1[((((floordiv(threadIdx.x, 49)*96) + (rc.outer.inner*6)) + rx.outer.inner) + 75)]))
-            conv2d_nchw_1[7] = (conv2d_nchw_1[7] + (pad_temp.shared_1[(((((rc.outer.inner*126) + (floordiv(floormod(threadIdx.x, 49), 7)*9)) + rx.outer.inner) + floormod(threadIdx.x, 7)) + 63)]*kernel.shared_1[((((floordiv(threadIdx.x, 49)*96) + (rc.outer.inner*6)) + rx.outer.inner) + 87)]))
+        let cse_var_2: int32 = (rc.outer.outer*72)
+        let cse_var_1: int32 = (ry.outer.outer*3)
+         {
+          attr [IterVar(threadIdx.x_1: int32, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 14 {
+            pad_temp.shared_1: Buffer(pad_temp.shared, float32, [504], [], scope=&quot;shared&quot;)[(threadIdx.x_1*18)] = 0f32
+            pad_temp.shared_1[((threadIdx.x_1*18) + 1)] = @tir.if_then_else(((1 &lt;= (ry.outer.outer + floormod((threadIdx.x_1*2), 7))) &amp;&amp; ((ry.outer.outer + floormod((threadIdx.x_1*2), 7)) &lt; 8)), data[((((rc.outer.outer*392) + (threadIdx.x_1*14)) + (ry.outer.outer*7)) - 7)], 0f32, dtype=float32)
+            pad_temp.shared_1[((threadIdx.x_1*18) + 2)] = @tir.if_then_else(((1 &lt;= (ry.outer.outer + floormod((threadIdx.x_1*2), 7))) &amp;&amp; ((ry.outer.outer + floormod((threadIdx.x_1*2), 7)) &lt; 8)), data[((((rc.outer.outer*392) + (threadIdx.x_1*14)) + (ry.outer.outer*7)) - 6)], 0f32, dtype=float32)
+            pad_temp.shared_1[((threadIdx.x_1*18) + 3)] = @tir.if_then_else(((1 &lt;= (ry.outer.outer + floormod((threadIdx.x_1*2), 7))) &amp;&amp; ((ry.outer.outer + floormod((threadIdx.x_1*2), 7)) &lt; 8)), data[((((rc.outer.outer*392) + (threadIdx.x_1*14)) + (ry.outer.outer*7)) - 5)], 0f32, dtype=float32)
+            pad_temp.shared_1[((threadIdx.x_1*18) + 4)] = @tir.if_then_else(((1 &lt;= (ry.outer.outer + floormod((threadIdx.x_1*2), 7))) &amp;&amp; ((ry.outer.outer + floormod((threadIdx.x_1*2), 7)) &lt; 8)), data[((((rc.outer.outer*392) + (threadIdx.x_1*14)) + (ry.outer.outer*7)) - 4)], 0f32, dtype=float32)
+            pad_temp.shared_1[((threadIdx.x_1*18) + 5)] = @tir.if_then_else(((1 &lt;= (ry.outer.outer + floormod((threadIdx.x_1*2), 7))) &amp;&amp; ((ry.outer.outer + floormod((threadIdx.x_1*2), 7)) &lt; 8)), data[((((rc.outer.outer*392) + (threadIdx.x_1*14)) + (ry.outer.outer*7)) - 3)], 0f32, dtype=float32)
+            pad_temp.shared_1[((threadIdx.x_1*18) + 6)] = @tir.if_then_else(((1 &lt;= (ry.outer.outer + floormod((threadIdx.x_1*2), 7))) &amp;&amp; ((ry.outer.outer + floormod((threadIdx.x_1*2), 7)) &lt; 8)), data[((((rc.outer.outer*392) + (threadIdx.x_1*14)) + (ry.outer.outer*7)) - 2)], 0f32, dtype=float32)
+            pad_temp.shared_1[((threadIdx.x_1*18) + 7)] = @tir.if_then_else(((1 &lt;= (ry.outer.outer + floormod((threadIdx.x_1*2), 7))) &amp;&amp; ((ry.outer.outer + floormod((threadIdx.x_1*2), 7)) &lt; 8)), data[((((rc.outer.outer*392) + (threadIdx.x_1*14)) + (ry.outer.outer*7)) - 1)], 0f32, dtype=float32)
+            pad_temp.shared_1[((threadIdx.x_1*18) + 8)] = 0f32
+            pad_temp.shared_1[((threadIdx.x_1*18) + 9)] = 0f32
+            pad_temp.shared_1[((threadIdx.x_1*18) + 10)] = @tir.if_then_else(((1 &lt;= (ry.outer.outer + floormod(((threadIdx.x_1*2) + 1), 7))) &amp;&amp; ((ry.outer.outer + floormod(((threadIdx.x_1*2) + 1), 7)) &lt; 8)), data[(((rc.outer.outer*392) + (threadIdx.x_1*14)) + (ry.outer.outer*7))], 0f32, dtype=float32)
+            pad_temp.shared_1[((threadIdx.x_1*18) + 11)] = @tir.if_then_else(((1 &lt;= (ry.outer.outer + floormod(((threadIdx.x_1*2) + 1), 7))) &amp;&amp; ((ry.outer.outer + floormod(((threadIdx.x_1*2) + 1), 7)) &lt; 8)), data[((((rc.outer.outer*392) + (threadIdx.x_1*14)) + (ry.outer.outer*7)) + 1)], 0f32, dtype=float32)
+            pad_temp.shared_1[((threadIdx.x_1*18) + 12)] = @tir.if_then_else(((1 &lt;= (ry.outer.outer + floormod(((threadIdx.x_1*2) + 1), 7))) &amp;&amp; ((ry.outer.outer + floormod(((threadIdx.x_1*2) + 1), 7)) &lt; 8)), data[((((rc.outer.outer*392) + (threadIdx.x_1*14)) + (ry.outer.outer*7)) + 2)], 0f32, dtype=float32)
+            pad_temp.shared_1[((threadIdx.x_1*18) + 13)] = @tir.if_then_else(((1 &lt;= (ry.outer.outer + floormod(((threadIdx.x_1*2) + 1), 7))) &amp;&amp; ((ry.outer.outer + floormod(((threadIdx.x_1*2) + 1), 7)) &lt; 8)), data[((((rc.outer.outer*392) + (threadIdx.x_1*14)) + (ry.outer.outer*7)) + 3)], 0f32, dtype=float32)
+            pad_temp.shared_1[((threadIdx.x_1*18) + 14)] = @tir.if_then_else(((1 &lt;= (ry.outer.outer + floormod(((threadIdx.x_1*2) + 1), 7))) &amp;&amp; ((ry.outer.outer + floormod(((threadIdx.x_1*2) + 1), 7)) &lt; 8)), data[((((rc.outer.outer*392) + (threadIdx.x_1*14)) + (ry.outer.outer*7)) + 4)], 0f32, dtype=float32)
+            pad_temp.shared_1[((threadIdx.x_1*18) + 15)] = @tir.if_then_else(((1 &lt;= (ry.outer.outer + floormod(((threadIdx.x_1*2) + 1), 7))) &amp;&amp; ((ry.outer.outer + floormod(((threadIdx.x_1*2) + 1), 7)) &lt; 8)), data[((((rc.outer.outer*392) + (threadIdx.x_1*14)) + (ry.outer.outer*7)) + 5)], 0f32, dtype=float32)
+            pad_temp.shared_1[((threadIdx.x_1*18) + 16)] = @tir.if_then_else(((1 &lt;= (ry.outer.outer + floormod(((threadIdx.x_1*2) + 1), 7))) &amp;&amp; ((ry.outer.outer + floormod(((threadIdx.x_1*2) + 1), 7)) &lt; 8)), data[((((rc.outer.outer*392) + (threadIdx.x_1*14)) + (ry.outer.outer*7)) + 6)], 0f32, dtype=float32)
+            pad_temp.shared_1[((threadIdx.x_1*18) + 17)] = 0f32
+          }
+          attr [IterVar(threadIdx.x_1, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 14 {
+            pad_temp.shared_1[((threadIdx.x_1*18) + 252)] = 0f32
+            pad_temp.shared_1[((threadIdx.x_1*18) + 253)] = @tir.if_then_else(((1 &lt;= (ry.outer.outer + floormod((threadIdx.x_1*2), 7))) &amp;&amp; ((ry.outer.outer + floormod((threadIdx.x_1*2), 7)) &lt; 8)), data[((((rc.outer.outer*392) + (threadIdx.x_1*14)) + (ry.outer.outer*7)) + 189)], 0f32, dtype=float32)
+            pad_temp.shared_1[((threadIdx.x_1*18) + 254)] = @tir.if_then_else(((1 &lt;= (ry.outer.outer + floormod((threadIdx.x_1*2), 7))) &amp;&amp; ((ry.outer.outer + floormod((threadIdx.x_1*2), 7)) &lt; 8)), data[((((rc.outer.outer*392) + (threadIdx.x_1*14)) + (ry.outer.outer*7)) + 190)], 0f32, dtype=float32)
+            pad_temp.shared_1[((threadIdx.x_1*18) + 255)] = @tir.if_then_else(((1 &lt;= (ry.outer.outer + floormod((threadIdx.x_1*2), 7))) &amp;&amp; ((ry.outer.outer + floormod((threadIdx.x_1*2), 7)) &lt; 8)), data[((((rc.outer.outer*392) + (threadIdx.x_1*14)) + (ry.outer.outer*7)) + 191)], 0f32, dtype=float32)
+            pad_temp.shared_1[((threadIdx.x_1*18) + 256)] = @tir.if_then_else(((1 &lt;= (ry.outer.outer + floormod((threadIdx.x_1*2), 7))) &amp;&amp; ((ry.outer.outer + floormod((threadIdx.x_1*2), 7)) &lt; 8)), data[((((rc.outer.outer*392) + (threadIdx.x_1*14)) + (ry.outer.outer*7)) + 192)], 0f32, dtype=float32)
+            pad_temp.shared_1[((threadIdx.x_1*18) + 257)] = @tir.if_then_else(((1 &lt;= (ry.outer.outer + floormod((threadIdx.x_1*2), 7))) &amp;&amp; ((ry.outer.outer + floormod((threadIdx.x_1*2), 7)) &lt; 8)), data[((((rc.outer.outer*392) + (threadIdx.x_1*14)) + (ry.outer.outer*7)) + 193)], 0f32, dtype=float32)
+            pad_temp.shared_1[((threadIdx.x_1*18) + 258)] = @tir.if_then_else(((1 &lt;= (ry.outer.outer + floormod((threadIdx.x_1*2), 7))) &amp;&amp; ((ry.outer.outer + floormod((threadIdx.x_1*2), 7)) &lt; 8)), data[((((rc.outer.outer*392) + (threadIdx.x_1*14)) + (ry.outer.outer*7)) + 194)], 0f32, dtype=float32)
+            pad_temp.shared_1[((threadIdx.x_1*18) + 259)] = @tir.if_then_else(((1 &lt;= (ry.outer.outer + floormod((threadIdx.x_1*2), 7))) &amp;&amp; ((ry.outer.outer + floormod((threadIdx.x_1*2), 7)) &lt; 8)), data[((((rc.outer.outer*392) + (threadIdx.x_1*14)) + (ry.outer.outer*7)) + 195)], 0f32, dtype=float32)
+            pad_temp.shared_1[((threadIdx.x_1*18) + 260)] = 0f32
+            pad_temp.shared_1[((threadIdx.x_1*18) + 261)] = 0f32
+            pad_temp.shared_1[((threadIdx.x_1*18) + 262)] = @tir.if_then_else(((1 &lt;= (ry.outer.outer + floormod(((threadIdx.x_1*2) + 1), 7))) &amp;&amp; ((ry.outer.outer + floormod(((threadIdx.x_1*2) + 1), 7)) &lt; 8)), data[((((rc.outer.outer*392) + (threadIdx.x_1*14)) + (ry.outer.outer*7)) + 196)], 0f32, dtype=float32)
+            pad_temp.shared_1[((threadIdx.x_1*18) + 263)] = @tir.if_then_else(((1 &lt;= (ry.outer.outer + floormod(((threadIdx.x_1*2) + 1), 7))) &amp;&amp; ((ry.outer.outer + floormod(((threadIdx.x_1*2) + 1), 7)) &lt; 8)), data[((((rc.outer.outer*392) + (threadIdx.x_1*14)) + (ry.outer.outer*7)) + 197)], 0f32, dtype=float32)
+            pad_temp.shared_1[((threadIdx.x_1*18) + 264)] = @tir.if_then_else(((1 &lt;= (ry.outer.outer + floormod(((threadIdx.x_1*2) + 1), 7))) &amp;&amp; ((ry.outer.outer + floormod(((threadIdx.x_1*2) + 1), 7)) &lt; 8)), data[((((rc.outer.outer*392) + (threadIdx.x_1*14)) + (ry.outer.outer*7)) + 198)], 0f32, dtype=float32)
+            pad_temp.shared_1[((threadIdx.x_1*18) + 265)] = @tir.if_then_else(((1 &lt;= (ry.outer.outer + floormod(((threadIdx.x_1*2) + 1), 7))) &amp;&amp; ((ry.outer.outer + floormod(((threadIdx.x_1*2) + 1), 7)) &lt; 8)), data[((((rc.outer.outer*392) + (threadIdx.x_1*14)) + (ry.outer.outer*7)) + 199)], 0f32, dtype=float32)
+            pad_temp.shared_1[((threadIdx.x_1*18) + 266)] = @tir.if_then_else(((1 &lt;= (ry.outer.outer + floormod(((threadIdx.x_1*2) + 1), 7))) &amp;&amp; ((ry.outer.outer + floormod(((threadIdx.x_1*2) + 1), 7)) &lt; 8)), data[((((rc.outer.outer*392) + (threadIdx.x_1*14)) + (ry.outer.outer*7)) + 200)], 0f32, dtype=float32)
+            pad_temp.shared_1[((threadIdx.x_1*18) + 267)] = @tir.if_then_else(((1 &lt;= (ry.outer.outer + floormod(((threadIdx.x_1*2) + 1), 7))) &amp;&amp; ((ry.outer.outer + floormod(((threadIdx.x_1*2) + 1), 7)) &lt; 8)), data[((((rc.outer.outer*392) + (threadIdx.x_1*14)) + (ry.outer.outer*7)) + 201)], 0f32, dtype=float32)
+            pad_temp.shared_1[((threadIdx.x_1*18) + 268)] = @tir.if_then_else(((1 &lt;= (ry.outer.outer + floormod(((threadIdx.x_1*2) + 1), 7))) &amp;&amp; ((ry.outer.outer + floormod(((threadIdx.x_1*2) + 1), 7)) &lt; 8)), data[((((rc.outer.outer*392) + (threadIdx.x_1*14)) + (ry.outer.outer*7)) + 202)], 0f32, dtype=float32)
+            pad_temp.shared_1[((threadIdx.x_1*18) + 269)] = 0f32
           }
+          attr [IterVar(threadIdx.x_2: int32, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 14;
+          kernel.shared_1: Buffer(kernel.shared, float32, [96], [], scope=&quot;shared&quot;)[threadIdx.x_2] = kernel[(((((blockIdx.x*18432) + cse_var_2) + (floordiv(threadIdx.x_2, 3)*9)) + cse_var_1) + floormod(threadIdx.x_2, 3))]
+          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 14;
+          kernel.shared_1[(threadIdx.x_2 + 14)] = kernel[((((((blockIdx.x*18432) + (floordiv((threadIdx.x_2 + 14), 24)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 14), 24), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 2), 3))]
+          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 14;
+          kernel.shared_1[(threadIdx.x_2 + 28)] = kernel[((((((blockIdx.x*18432) + (floordiv((threadIdx.x_2 + 28), 24)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 4), 24), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 1), 3))]
+          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 14;
+          kernel.shared_1[(threadIdx.x_2 + 42)] = kernel[((((((blockIdx.x*18432) + (floordiv((threadIdx.x_2 + 42), 24)*4608)) + cse_var_2) + (floormod((floordiv(threadIdx.x_2, 3) + 6), 8)*9)) + cse_var_1) + floormod(threadIdx.x_2, 3))]
+          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 14;
+          kernel.shared_1[(threadIdx.x_2 + 56)] = kernel[((((((blockIdx.x*18432) + (floordiv((threadIdx.x_2 + 56), 24)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 8), 24), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 2), 3))]
+          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 14;
+          kernel.shared_1[(threadIdx.x_2 + 70)] = kernel[((((((blockIdx.x*18432) + (floordiv((threadIdx.x_2 + 70), 24)*4608)) + cse_var_2) + (floordiv(floormod((threadIdx.x_2 + 22), 24), 3)*9)) + cse_var_1) + floormod((threadIdx.x_2 + 1), 3))]
+          attr [IterVar(threadIdx.x_2, (nullptr), &quot;ThreadIndex&quot;, &quot;threadIdx.x&quot;)] &quot;thread_extent&quot; = 14;
+          if @tir.likely((threadIdx.x_2 &lt; 12), dtype=bool) {
+            kernel.shared_1[(threadIdx.x_2 + 84)] = kernel[((((((blockIdx.x*18432) + (floordiv((threadIdx.x_2 + 84), 24)*4608)) + cse_var_2) + ((floordiv(threadIdx.x_2, 3) + 4)*9)) + cse_var_1) + floormod(threadIdx.x_2, 3))]
+          }
+          conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[(floormod(threadIdx.x, 7)*9)]*kernel.shared_1[(floordiv(threadIdx.x, 7)*24)]))
+          conv2d_nchw_1[7] = (conv2d_nchw_1[7] + (pad_temp.shared_1[(floormod(threadIdx.x, 7)*9)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 48)]))
+          conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 1)]*kernel.shared_1[(floordiv(threadIdx.x, 7)*24)]))
+          conv2d_nchw_1[8] = (conv2d_nchw_1[8] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 1)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 48)]))
+          conv2d_nchw_1[2] = (conv2d_nchw_1[2] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 2)]*kernel.shared_1[(floordiv(threadIdx.x, 7)*24)]))
+          conv2d_nchw_1[9] = (conv2d_nchw_1[9] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 2)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 48)]))
+          conv2d_nchw_1[3] = (conv2d_nchw_1[3] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 3)]*kernel.shared_1[(floordiv(threadIdx.x, 7)*24)]))
+          conv2d_nchw_1[10] = (conv2d_nchw_1[10] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 3)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 48)]))
+          conv2d_nchw_1[4] = (conv2d_nchw_1[4] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 4)]*kernel.shared_1[(floordiv(threadIdx.x, 7)*24)]))
+          conv2d_nchw_1[11] = (conv2d_nchw_1[11] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 4)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 48)]))
+          conv2d_nchw_1[5] = (conv2d_nchw_1[5] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 5)]*kernel.shared_1[(floordiv(threadIdx.x, 7)*24)]))
+          conv2d_nchw_1[12] = (conv2d_nchw_1[12] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 5)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 48)]))
+          conv2d_nchw_1[6] = (conv2d_nchw_1[6] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 6)]*kernel.shared_1[(floordiv(threadIdx.x, 7)*24)]))
+          conv2d_nchw_1[13] = (conv2d_nchw_1[13] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 6)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 48)]))
+          conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 1)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 1)]))
+          conv2d_nchw_1[7] = (conv2d_nchw_1[7] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 1)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 49)]))
+          conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 2)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 1)]))
+          conv2d_nchw_1[8] = (conv2d_nchw_1[8] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 2)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 49)]))
+          conv2d_nchw_1[2] = (conv2d_nchw_1[2] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 3)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 1)]))
+          conv2d_nchw_1[9] = (conv2d_nchw_1[9] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 3)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 49)]))
+          conv2d_nchw_1[3] = (conv2d_nchw_1[3] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 4)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 1)]))
+          conv2d_nchw_1[10] = (conv2d_nchw_1[10] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 4)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 49)]))
+          conv2d_nchw_1[4] = (conv2d_nchw_1[4] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 5)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 1)]))
+          conv2d_nchw_1[11] = (conv2d_nchw_1[11] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 5)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 49)]))
+          conv2d_nchw_1[5] = (conv2d_nchw_1[5] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 6)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 1)]))
+          conv2d_nchw_1[12] = (conv2d_nchw_1[12] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 6)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 49)]))
+          conv2d_nchw_1[6] = (conv2d_nchw_1[6] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 7)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 1)]))
+          conv2d_nchw_1[13] = (conv2d_nchw_1[13] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 7)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 49)]))
+          conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 2)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 2)]))
+          conv2d_nchw_1[7] = (conv2d_nchw_1[7] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 2)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 50)]))
+          conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 3)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 2)]))
+          conv2d_nchw_1[8] = (conv2d_nchw_1[8] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 3)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 50)]))
+          conv2d_nchw_1[2] = (conv2d_nchw_1[2] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 4)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 2)]))
+          conv2d_nchw_1[9] = (conv2d_nchw_1[9] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 4)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 50)]))
+          conv2d_nchw_1[3] = (conv2d_nchw_1[3] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 5)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 2)]))
+          conv2d_nchw_1[10] = (conv2d_nchw_1[10] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 5)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 50)]))
+          conv2d_nchw_1[4] = (conv2d_nchw_1[4] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 6)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 2)]))
+          conv2d_nchw_1[11] = (conv2d_nchw_1[11] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 6)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 50)]))
+          conv2d_nchw_1[5] = (conv2d_nchw_1[5] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 7)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 2)]))
+          conv2d_nchw_1[12] = (conv2d_nchw_1[12] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 7)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 50)]))
+          conv2d_nchw_1[6] = (conv2d_nchw_1[6] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 8)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 2)]))
+          conv2d_nchw_1[13] = (conv2d_nchw_1[13] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 8)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 50)]))
+          conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 63)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 3)]))
+          conv2d_nchw_1[7] = (conv2d_nchw_1[7] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 63)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 51)]))
+          conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 64)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 3)]))
+          conv2d_nchw_1[8] = (conv2d_nchw_1[8] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 64)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 51)]))
+          conv2d_nchw_1[2] = (conv2d_nchw_1[2] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 65)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 3)]))
+          conv2d_nchw_1[9] = (conv2d_nchw_1[9] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 65)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 51)]))
+          conv2d_nchw_1[3] = (conv2d_nchw_1[3] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 66)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 3)]))
+          conv2d_nchw_1[10] = (conv2d_nchw_1[10] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 66)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 51)]))
+          conv2d_nchw_1[4] = (conv2d_nchw_1[4] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 67)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 3)]))
+          conv2d_nchw_1[11] = (conv2d_nchw_1[11] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 67)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 51)]))
+          conv2d_nchw_1[5] = (conv2d_nchw_1[5] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 68)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 3)]))
+          conv2d_nchw_1[12] = (conv2d_nchw_1[12] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 68)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 51)]))
+          conv2d_nchw_1[6] = (conv2d_nchw_1[6] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 69)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 3)]))
+          conv2d_nchw_1[13] = (conv2d_nchw_1[13] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 69)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 51)]))
+          conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 64)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 4)]))
+          conv2d_nchw_1[7] = (conv2d_nchw_1[7] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 64)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 52)]))
+          conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 65)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 4)]))
+          conv2d_nchw_1[8] = (conv2d_nchw_1[8] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 65)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 52)]))
+          conv2d_nchw_1[2] = (conv2d_nchw_1[2] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 66)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 4)]))
+          conv2d_nchw_1[9] = (conv2d_nchw_1[9] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 66)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 52)]))
+          conv2d_nchw_1[3] = (conv2d_nchw_1[3] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 67)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 4)]))
+          conv2d_nchw_1[10] = (conv2d_nchw_1[10] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 67)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 52)]))
+          conv2d_nchw_1[4] = (conv2d_nchw_1[4] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 68)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 4)]))
+          conv2d_nchw_1[11] = (conv2d_nchw_1[11] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 68)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 52)]))
+          conv2d_nchw_1[5] = (conv2d_nchw_1[5] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 69)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 4)]))
+          conv2d_nchw_1[12] = (conv2d_nchw_1[12] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 69)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 52)]))
+          conv2d_nchw_1[6] = (conv2d_nchw_1[6] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 70)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 4)]))
+          conv2d_nchw_1[13] = (conv2d_nchw_1[13] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 70)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 52)]))
+          conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 65)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 5)]))
+          conv2d_nchw_1[7] = (conv2d_nchw_1[7] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 65)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 53)]))
+          conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 66)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 5)]))
+          conv2d_nchw_1[8] = (conv2d_nchw_1[8] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 66)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 53)]))
+          conv2d_nchw_1[2] = (conv2d_nchw_1[2] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 67)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 5)]))
+          conv2d_nchw_1[9] = (conv2d_nchw_1[9] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 67)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 53)]))
+          conv2d_nchw_1[3] = (conv2d_nchw_1[3] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 68)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 5)]))
+          conv2d_nchw_1[10] = (conv2d_nchw_1[10] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 68)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 53)]))
+          conv2d_nchw_1[4] = (conv2d_nchw_1[4] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 69)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 5)]))
+          conv2d_nchw_1[11] = (conv2d_nchw_1[11] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 69)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 53)]))
+          conv2d_nchw_1[5] = (conv2d_nchw_1[5] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 70)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 5)]))
+          conv2d_nchw_1[12] = (conv2d_nchw_1[12] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 70)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 53)]))
+          conv2d_nchw_1[6] = (conv2d_nchw_1[6] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 71)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 5)]))
+          conv2d_nchw_1[13] = (conv2d_nchw_1[13] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 71)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 53)]))
+          conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 126)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 6)]))
+          conv2d_nchw_1[7] = (conv2d_nchw_1[7] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 126)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 54)]))
+          conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 127)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 6)]))
+          conv2d_nchw_1[8] = (conv2d_nchw_1[8] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 127)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 54)]))
+          conv2d_nchw_1[2] = (conv2d_nchw_1[2] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 128)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 6)]))
+          conv2d_nchw_1[9] = (conv2d_nchw_1[9] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 128)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 54)]))
+          conv2d_nchw_1[3] = (conv2d_nchw_1[3] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 129)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 6)]))
+          conv2d_nchw_1[10] = (conv2d_nchw_1[10] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 129)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 54)]))
+          conv2d_nchw_1[4] = (conv2d_nchw_1[4] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 130)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 6)]))
+          conv2d_nchw_1[11] = (conv2d_nchw_1[11] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 130)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 54)]))
+          conv2d_nchw_1[5] = (conv2d_nchw_1[5] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 131)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 6)]))
+          conv2d_nchw_1[12] = (conv2d_nchw_1[12] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 131)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 54)]))
+          conv2d_nchw_1[6] = (conv2d_nchw_1[6] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 132)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 6)]))
+          conv2d_nchw_1[13] = (conv2d_nchw_1[13] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 132)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 54)]))
+          conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 127)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 7)]))
+          conv2d_nchw_1[7] = (conv2d_nchw_1[7] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 127)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 55)]))
+          conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 128)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 7)]))
+          conv2d_nchw_1[8] = (conv2d_nchw_1[8] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 128)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 55)]))
+          conv2d_nchw_1[2] = (conv2d_nchw_1[2] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 129)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 7)]))
+          conv2d_nchw_1[9] = (conv2d_nchw_1[9] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 129)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 55)]))
+          conv2d_nchw_1[3] = (conv2d_nchw_1[3] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 130)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 7)]))
+          conv2d_nchw_1[10] = (conv2d_nchw_1[10] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 130)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 55)]))
+          conv2d_nchw_1[4] = (conv2d_nchw_1[4] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 131)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 7)]))
+          conv2d_nchw_1[11] = (conv2d_nchw_1[11] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 131)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 55)]))
+          conv2d_nchw_1[5] = (conv2d_nchw_1[5] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 132)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 7)]))
+          conv2d_nchw_1[12] = (conv2d_nchw_1[12] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 132)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 55)]))
+          conv2d_nchw_1[6] = (conv2d_nchw_1[6] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 133)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 7)]))
+          conv2d_nchw_1[13] = (conv2d_nchw_1[13] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 133)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 55)]))
+          conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 128)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 8)]))
+          conv2d_nchw_1[7] = (conv2d_nchw_1[7] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 128)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 56)]))
+          conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 129)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 8)]))
+          conv2d_nchw_1[8] = (conv2d_nchw_1[8] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 129)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 56)]))
+          conv2d_nchw_1[2] = (conv2d_nchw_1[2] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 130)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 8)]))
+          conv2d_nchw_1[9] = (conv2d_nchw_1[9] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 130)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 56)]))
+          conv2d_nchw_1[3] = (conv2d_nchw_1[3] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 131)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 8)]))
+          conv2d_nchw_1[10] = (conv2d_nchw_1[10] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 131)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 56)]))
+          conv2d_nchw_1[4] = (conv2d_nchw_1[4] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 132)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 8)]))
+          conv2d_nchw_1[11] = (conv2d_nchw_1[11] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 132)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 56)]))
+          conv2d_nchw_1[5] = (conv2d_nchw_1[5] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 133)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 8)]))
+          conv2d_nchw_1[12] = (conv2d_nchw_1[12] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 133)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 56)]))
+          conv2d_nchw_1[6] = (conv2d_nchw_1[6] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 134)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 8)]))
+          conv2d_nchw_1[13] = (conv2d_nchw_1[13] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 134)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 56)]))
+          conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 189)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 9)]))
+          conv2d_nchw_1[7] = (conv2d_nchw_1[7] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 189)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 57)]))
+          conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 190)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 9)]))
+          conv2d_nchw_1[8] = (conv2d_nchw_1[8] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 190)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 57)]))
+          conv2d_nchw_1[2] = (conv2d_nchw_1[2] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 191)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 9)]))
+          conv2d_nchw_1[9] = (conv2d_nchw_1[9] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 191)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 57)]))
+          conv2d_nchw_1[3] = (conv2d_nchw_1[3] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 192)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 9)]))
+          conv2d_nchw_1[10] = (conv2d_nchw_1[10] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 192)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 57)]))
+          conv2d_nchw_1[4] = (conv2d_nchw_1[4] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 193)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 9)]))
+          conv2d_nchw_1[11] = (conv2d_nchw_1[11] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 193)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 57)]))
+          conv2d_nchw_1[5] = (conv2d_nchw_1[5] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 194)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 9)]))
+          conv2d_nchw_1[12] = (conv2d_nchw_1[12] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 194)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 57)]))
+          conv2d_nchw_1[6] = (conv2d_nchw_1[6] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 195)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 9)]))
+          conv2d_nchw_1[13] = (conv2d_nchw_1[13] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 195)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 57)]))
+          conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 190)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 10)]))
+          conv2d_nchw_1[7] = (conv2d_nchw_1[7] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 190)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 58)]))
+          conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 191)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 10)]))
+          conv2d_nchw_1[8] = (conv2d_nchw_1[8] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 191)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 58)]))
+          conv2d_nchw_1[2] = (conv2d_nchw_1[2] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 192)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 10)]))
+          conv2d_nchw_1[9] = (conv2d_nchw_1[9] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 192)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 58)]))
+          conv2d_nchw_1[3] = (conv2d_nchw_1[3] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 193)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 10)]))
+          conv2d_nchw_1[10] = (conv2d_nchw_1[10] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 193)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 58)]))
+          conv2d_nchw_1[4] = (conv2d_nchw_1[4] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 194)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 10)]))
+          conv2d_nchw_1[11] = (conv2d_nchw_1[11] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 194)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 58)]))
+          conv2d_nchw_1[5] = (conv2d_nchw_1[5] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 195)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 10)]))
+          conv2d_nchw_1[12] = (conv2d_nchw_1[12] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 195)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 58)]))
+          conv2d_nchw_1[6] = (conv2d_nchw_1[6] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 196)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 10)]))
+          conv2d_nchw_1[13] = (conv2d_nchw_1[13] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 196)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 58)]))
+          conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 191)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 11)]))
+          conv2d_nchw_1[7] = (conv2d_nchw_1[7] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 191)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 59)]))
+          conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 192)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 11)]))
+          conv2d_nchw_1[8] = (conv2d_nchw_1[8] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 192)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 59)]))
+          conv2d_nchw_1[2] = (conv2d_nchw_1[2] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 193)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 11)]))
+          conv2d_nchw_1[9] = (conv2d_nchw_1[9] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 193)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 59)]))
+          conv2d_nchw_1[3] = (conv2d_nchw_1[3] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 194)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 11)]))
+          conv2d_nchw_1[10] = (conv2d_nchw_1[10] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 194)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 59)]))
+          conv2d_nchw_1[4] = (conv2d_nchw_1[4] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 195)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 11)]))
+          conv2d_nchw_1[11] = (conv2d_nchw_1[11] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 195)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 59)]))
+          conv2d_nchw_1[5] = (conv2d_nchw_1[5] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 196)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 11)]))
+          conv2d_nchw_1[12] = (conv2d_nchw_1[12] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 196)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 59)]))
+          conv2d_nchw_1[6] = (conv2d_nchw_1[6] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 197)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 11)]))
+          conv2d_nchw_1[13] = (conv2d_nchw_1[13] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 197)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 59)]))
+          conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 252)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 12)]))
+          conv2d_nchw_1[7] = (conv2d_nchw_1[7] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 252)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 60)]))
+          conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 253)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 12)]))
+          conv2d_nchw_1[8] = (conv2d_nchw_1[8] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 253)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 60)]))
+          conv2d_nchw_1[2] = (conv2d_nchw_1[2] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 254)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 12)]))
+          conv2d_nchw_1[9] = (conv2d_nchw_1[9] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 254)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 60)]))
+          conv2d_nchw_1[3] = (conv2d_nchw_1[3] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 255)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 12)]))
+          conv2d_nchw_1[10] = (conv2d_nchw_1[10] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 255)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 60)]))
+          conv2d_nchw_1[4] = (conv2d_nchw_1[4] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 256)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 12)]))
+          conv2d_nchw_1[11] = (conv2d_nchw_1[11] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 256)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 60)]))
+          conv2d_nchw_1[5] = (conv2d_nchw_1[5] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 257)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 12)]))
+          conv2d_nchw_1[12] = (conv2d_nchw_1[12] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 257)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 60)]))
+          conv2d_nchw_1[6] = (conv2d_nchw_1[6] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 258)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 12)]))
+          conv2d_nchw_1[13] = (conv2d_nchw_1[13] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 258)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 60)]))
+          conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 253)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 13)]))
+          conv2d_nchw_1[7] = (conv2d_nchw_1[7] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 253)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 61)]))
+          conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 254)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 13)]))
+          conv2d_nchw_1[8] = (conv2d_nchw_1[8] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 254)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 61)]))
+          conv2d_nchw_1[2] = (conv2d_nchw_1[2] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 255)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 13)]))
+          conv2d_nchw_1[9] = (conv2d_nchw_1[9] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 255)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 61)]))
+          conv2d_nchw_1[3] = (conv2d_nchw_1[3] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 256)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 13)]))
+          conv2d_nchw_1[10] = (conv2d_nchw_1[10] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 256)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 61)]))
+          conv2d_nchw_1[4] = (conv2d_nchw_1[4] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 257)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 13)]))
+          conv2d_nchw_1[11] = (conv2d_nchw_1[11] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 257)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 61)]))
+          conv2d_nchw_1[5] = (conv2d_nchw_1[5] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 258)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 13)]))
+          conv2d_nchw_1[12] = (conv2d_nchw_1[12] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 258)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 61)]))
+          conv2d_nchw_1[6] = (conv2d_nchw_1[6] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 259)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 13)]))
+          conv2d_nchw_1[13] = (conv2d_nchw_1[13] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 259)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 61)]))
+          conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 254)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 14)]))
+          conv2d_nchw_1[7] = (conv2d_nchw_1[7] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 254)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 62)]))
+          conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 255)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 14)]))
+          conv2d_nchw_1[8] = (conv2d_nchw_1[8] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 255)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 62)]))
+          conv2d_nchw_1[2] = (conv2d_nchw_1[2] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 256)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 14)]))
+          conv2d_nchw_1[9] = (conv2d_nchw_1[9] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 256)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 62)]))
+          conv2d_nchw_1[3] = (conv2d_nchw_1[3] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 257)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 14)]))
+          conv2d_nchw_1[10] = (conv2d_nchw_1[10] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 257)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 62)]))
+          conv2d_nchw_1[4] = (conv2d_nchw_1[4] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 258)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 14)]))
+          conv2d_nchw_1[11] = (conv2d_nchw_1[11] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 258)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 62)]))
+          conv2d_nchw_1[5] = (conv2d_nchw_1[5] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 259)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 14)]))
+          conv2d_nchw_1[12] = (conv2d_nchw_1[12] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 259)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 62)]))
+          conv2d_nchw_1[6] = (conv2d_nchw_1[6] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 260)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 14)]))
+          conv2d_nchw_1[13] = (conv2d_nchw_1[13] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 260)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 62)]))
+          conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 315)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 15)]))
+          conv2d_nchw_1[7] = (conv2d_nchw_1[7] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 315)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 63)]))
+          conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 316)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 15)]))
+          conv2d_nchw_1[8] = (conv2d_nchw_1[8] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 316)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 63)]))
+          conv2d_nchw_1[2] = (conv2d_nchw_1[2] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 317)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 15)]))
+          conv2d_nchw_1[9] = (conv2d_nchw_1[9] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 317)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 63)]))
+          conv2d_nchw_1[3] = (conv2d_nchw_1[3] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 318)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 15)]))
+          conv2d_nchw_1[10] = (conv2d_nchw_1[10] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 318)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 63)]))
+          conv2d_nchw_1[4] = (conv2d_nchw_1[4] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 319)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 15)]))
+          conv2d_nchw_1[11] = (conv2d_nchw_1[11] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 319)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 63)]))
+          conv2d_nchw_1[5] = (conv2d_nchw_1[5] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 320)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 15)]))
+          conv2d_nchw_1[12] = (conv2d_nchw_1[12] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 320)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 63)]))
+          conv2d_nchw_1[6] = (conv2d_nchw_1[6] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 321)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 15)]))
+          conv2d_nchw_1[13] = (conv2d_nchw_1[13] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 321)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 63)]))
+          conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 316)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 16)]))
+          conv2d_nchw_1[7] = (conv2d_nchw_1[7] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 316)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 64)]))
+          conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 317)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 16)]))
+          conv2d_nchw_1[8] = (conv2d_nchw_1[8] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 317)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 64)]))
+          conv2d_nchw_1[2] = (conv2d_nchw_1[2] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 318)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 16)]))
+          conv2d_nchw_1[9] = (conv2d_nchw_1[9] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 318)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 64)]))
+          conv2d_nchw_1[3] = (conv2d_nchw_1[3] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 319)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 16)]))
+          conv2d_nchw_1[10] = (conv2d_nchw_1[10] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 319)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 64)]))
+          conv2d_nchw_1[4] = (conv2d_nchw_1[4] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 320)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 16)]))
+          conv2d_nchw_1[11] = (conv2d_nchw_1[11] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 320)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 64)]))
+          conv2d_nchw_1[5] = (conv2d_nchw_1[5] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 321)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 16)]))
+          conv2d_nchw_1[12] = (conv2d_nchw_1[12] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 321)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 64)]))
+          conv2d_nchw_1[6] = (conv2d_nchw_1[6] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 322)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 16)]))
+          conv2d_nchw_1[13] = (conv2d_nchw_1[13] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 322)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 64)]))
+          conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 317)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 17)]))
+          conv2d_nchw_1[7] = (conv2d_nchw_1[7] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 317)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 65)]))
+          conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 318)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 17)]))
+          conv2d_nchw_1[8] = (conv2d_nchw_1[8] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 318)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 65)]))
+          conv2d_nchw_1[2] = (conv2d_nchw_1[2] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 319)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 17)]))
+          conv2d_nchw_1[9] = (conv2d_nchw_1[9] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 319)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 65)]))
+          conv2d_nchw_1[3] = (conv2d_nchw_1[3] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 320)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 17)]))
+          conv2d_nchw_1[10] = (conv2d_nchw_1[10] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 320)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 65)]))
+          conv2d_nchw_1[4] = (conv2d_nchw_1[4] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 321)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 17)]))
+          conv2d_nchw_1[11] = (conv2d_nchw_1[11] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 321)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 65)]))
+          conv2d_nchw_1[5] = (conv2d_nchw_1[5] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 322)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 17)]))
+          conv2d_nchw_1[12] = (conv2d_nchw_1[12] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 322)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 65)]))
+          conv2d_nchw_1[6] = (conv2d_nchw_1[6] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 323)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 17)]))
+          conv2d_nchw_1[13] = (conv2d_nchw_1[13] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 323)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 65)]))
+          conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 378)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 18)]))
+          conv2d_nchw_1[7] = (conv2d_nchw_1[7] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 378)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 66)]))
+          conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 379)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 18)]))
+          conv2d_nchw_1[8] = (conv2d_nchw_1[8] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 379)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 66)]))
+          conv2d_nchw_1[2] = (conv2d_nchw_1[2] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 380)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 18)]))
+          conv2d_nchw_1[9] = (conv2d_nchw_1[9] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 380)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 66)]))
+          conv2d_nchw_1[3] = (conv2d_nchw_1[3] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 381)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 18)]))
+          conv2d_nchw_1[10] = (conv2d_nchw_1[10] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 381)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 66)]))
+          conv2d_nchw_1[4] = (conv2d_nchw_1[4] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 382)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 18)]))
+          conv2d_nchw_1[11] = (conv2d_nchw_1[11] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 382)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 66)]))
+          conv2d_nchw_1[5] = (conv2d_nchw_1[5] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 383)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 18)]))
+          conv2d_nchw_1[12] = (conv2d_nchw_1[12] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 383)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 66)]))
+          conv2d_nchw_1[6] = (conv2d_nchw_1[6] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 384)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 18)]))
+          conv2d_nchw_1[13] = (conv2d_nchw_1[13] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 384)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 66)]))
+          conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 379)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 19)]))
+          conv2d_nchw_1[7] = (conv2d_nchw_1[7] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 379)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 67)]))
+          conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 380)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 19)]))
+          conv2d_nchw_1[8] = (conv2d_nchw_1[8] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 380)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 67)]))
+          conv2d_nchw_1[2] = (conv2d_nchw_1[2] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 381)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 19)]))
+          conv2d_nchw_1[9] = (conv2d_nchw_1[9] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 381)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 67)]))
+          conv2d_nchw_1[3] = (conv2d_nchw_1[3] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 382)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 19)]))
+          conv2d_nchw_1[10] = (conv2d_nchw_1[10] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 382)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 67)]))
+          conv2d_nchw_1[4] = (conv2d_nchw_1[4] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 383)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 19)]))
+          conv2d_nchw_1[11] = (conv2d_nchw_1[11] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 383)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 67)]))
+          conv2d_nchw_1[5] = (conv2d_nchw_1[5] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 384)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 19)]))
+          conv2d_nchw_1[12] = (conv2d_nchw_1[12] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 384)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 67)]))
+          conv2d_nchw_1[6] = (conv2d_nchw_1[6] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 385)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 19)]))
+          conv2d_nchw_1[13] = (conv2d_nchw_1[13] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 385)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 67)]))
+          conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 380)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 20)]))
+          conv2d_nchw_1[7] = (conv2d_nchw_1[7] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 380)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 68)]))
+          conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 381)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 20)]))
+          conv2d_nchw_1[8] = (conv2d_nchw_1[8] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 381)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 68)]))
+          conv2d_nchw_1[2] = (conv2d_nchw_1[2] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 382)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 20)]))
+          conv2d_nchw_1[9] = (conv2d_nchw_1[9] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 382)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 68)]))
+          conv2d_nchw_1[3] = (conv2d_nchw_1[3] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 383)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 20)]))
+          conv2d_nchw_1[10] = (conv2d_nchw_1[10] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 383)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 68)]))
+          conv2d_nchw_1[4] = (conv2d_nchw_1[4] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 384)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 20)]))
+          conv2d_nchw_1[11] = (conv2d_nchw_1[11] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 384)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 68)]))
+          conv2d_nchw_1[5] = (conv2d_nchw_1[5] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 385)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 20)]))
+          conv2d_nchw_1[12] = (conv2d_nchw_1[12] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 385)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 68)]))
+          conv2d_nchw_1[6] = (conv2d_nchw_1[6] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 386)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 20)]))
+          conv2d_nchw_1[13] = (conv2d_nchw_1[13] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 386)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 68)]))
+          conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 441)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 21)]))
+          conv2d_nchw_1[7] = (conv2d_nchw_1[7] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 441)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 69)]))
+          conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 442)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 21)]))
+          conv2d_nchw_1[8] = (conv2d_nchw_1[8] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 442)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 69)]))
+          conv2d_nchw_1[2] = (conv2d_nchw_1[2] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 443)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 21)]))
+          conv2d_nchw_1[9] = (conv2d_nchw_1[9] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 443)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 69)]))
+          conv2d_nchw_1[3] = (conv2d_nchw_1[3] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 444)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 21)]))
+          conv2d_nchw_1[10] = (conv2d_nchw_1[10] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 444)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 69)]))
+          conv2d_nchw_1[4] = (conv2d_nchw_1[4] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 445)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 21)]))
+          conv2d_nchw_1[11] = (conv2d_nchw_1[11] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 445)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 69)]))
+          conv2d_nchw_1[5] = (conv2d_nchw_1[5] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 446)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 21)]))
+          conv2d_nchw_1[12] = (conv2d_nchw_1[12] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 446)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 69)]))
+          conv2d_nchw_1[6] = (conv2d_nchw_1[6] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 447)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 21)]))
+          conv2d_nchw_1[13] = (conv2d_nchw_1[13] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 447)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 69)]))
+          conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 442)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 22)]))
+          conv2d_nchw_1[7] = (conv2d_nchw_1[7] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 442)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 70)]))
+          conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 443)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 22)]))
+          conv2d_nchw_1[8] = (conv2d_nchw_1[8] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 443)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 70)]))
+          conv2d_nchw_1[2] = (conv2d_nchw_1[2] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 444)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 22)]))
+          conv2d_nchw_1[9] = (conv2d_nchw_1[9] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 444)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 70)]))
+          conv2d_nchw_1[3] = (conv2d_nchw_1[3] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 445)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 22)]))
+          conv2d_nchw_1[10] = (conv2d_nchw_1[10] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 445)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 70)]))
+          conv2d_nchw_1[4] = (conv2d_nchw_1[4] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 446)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 22)]))
+          conv2d_nchw_1[11] = (conv2d_nchw_1[11] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 446)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 70)]))
+          conv2d_nchw_1[5] = (conv2d_nchw_1[5] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 447)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 22)]))
+          conv2d_nchw_1[12] = (conv2d_nchw_1[12] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 447)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 70)]))
+          conv2d_nchw_1[6] = (conv2d_nchw_1[6] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 448)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 22)]))
+          conv2d_nchw_1[13] = (conv2d_nchw_1[13] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 448)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 70)]))
+          conv2d_nchw_1[0] = (conv2d_nchw_1[0] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 443)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 23)]))
+          conv2d_nchw_1[7] = (conv2d_nchw_1[7] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 443)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 71)]))
+          conv2d_nchw_1[1] = (conv2d_nchw_1[1] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 444)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 23)]))
+          conv2d_nchw_1[8] = (conv2d_nchw_1[8] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 444)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 71)]))
+          conv2d_nchw_1[2] = (conv2d_nchw_1[2] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 445)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 23)]))
+          conv2d_nchw_1[9] = (conv2d_nchw_1[9] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 445)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 71)]))
+          conv2d_nchw_1[3] = (conv2d_nchw_1[3] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 446)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 23)]))
+          conv2d_nchw_1[10] = (conv2d_nchw_1[10] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 446)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 71)]))
+          conv2d_nchw_1[4] = (conv2d_nchw_1[4] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 447)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 23)]))
+          conv2d_nchw_1[11] = (conv2d_nchw_1[11] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 447)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 71)]))
+          conv2d_nchw_1[5] = (conv2d_nchw_1[5] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 448)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 23)]))
+          conv2d_nchw_1[12] = (conv2d_nchw_1[12] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 448)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 71)]))
+          conv2d_nchw_1[6] = (conv2d_nchw_1[6] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 449)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 23)]))
+          conv2d_nchw_1[13] = (conv2d_nchw_1[13] + (pad_temp.shared_1[((floormod(threadIdx.x, 7)*9) + 449)]*kernel.shared_1[((floordiv(threadIdx.x, 7)*24) + 71)]))
         }
       }
     }
-    for (i1.inner: int32, 0, 8) {
-      compute[((((blockIdx.x*1568) + (floordiv(threadIdx.x, 49)*392)) + (i1.inner*49)) + floormod(threadIdx.x, 49))] = max((conv2d_nchw_1[i1.inner] + bias[(((blockIdx.x*32) + (floordiv(threadIdx.x, 49)*8)) + i1.inner)]), 0f32)
+    for (i3.inner: int32, 0, 7) {
+      compute[(((blockIdx.x*196) + (threadIdx.x*7)) + i3.inner)] = max((conv2d_nchw_1[i3.inner] + bias[((blockIdx.x*4) + floordiv(threadIdx.x, 7))]), 0f32)
+      compute[((((blockIdx.x*196) + (threadIdx.x*7)) + i3.inner) + 98)] = max((conv2d_nchw_1[(i3.inner + 7)] + bias[(((blockIdx.x*4) + floordiv(threadIdx.x, 7)) + 2)]), 0f32)
     }
   }
 }
@@ -578,7 +952,7 @@ cooperative fetching, unrolling and operator fusion.</p>
 <span class="p">)</span>
 </pre></div>
 </div>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Execution time of this operator: 0.423 ms
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Execution time of this operator: 0.253 ms
 </pre></div>
 </div>
 </div>
@@ -607,20 +981,20 @@ conv2d_nchw_nn_o_i, conv2d_nchw_nn_i = s[conv2d_nchw].split(conv2d_nchw_nn, fact
 conv2d_nchw_nn_o_o_i, conv2d_nchw_nn_o_i = s[conv2d_nchw].split(conv2d_nchw_nn_o_i, factor=1)
 conv2d_nchw_nn_o_o_o_i, conv2d_nchw_nn_o_o_i = s[conv2d_nchw].split(conv2d_nchw_nn_o_o_i, factor=1)
 conv2d_nchw_nn_o_o_o_o, conv2d_nchw_nn_o_o_o_i = s[conv2d_nchw].split(conv2d_nchw_nn_o_o_o_i, factor=1)
-conv2d_nchw_ff_o_i, conv2d_nchw_ff_i = s[conv2d_nchw].split(conv2d_nchw_ff, factor=8)
+conv2d_nchw_ff_o_i, conv2d_nchw_ff_i = s[conv2d_nchw].split(conv2d_nchw_ff, factor=1)
 conv2d_nchw_ff_o_o_i, conv2d_nchw_ff_o_i = s[conv2d_nchw].split(conv2d_nchw_ff_o_i, factor=1)
-conv2d_nchw_ff_o_o_o_i, conv2d_nchw_ff_o_o_i = s[conv2d_nchw].split(conv2d_nchw_ff_o_o_i, factor=4)
-conv2d_nchw_ff_o_o_o_o, conv2d_nchw_ff_o_o_o_i = s[conv2d_nchw].split(conv2d_nchw_ff_o_o_o_i, factor=1)
+conv2d_nchw_ff_o_o_o_i, conv2d_nchw_ff_o_o_i = s[conv2d_nchw].split(conv2d_nchw_ff_o_o_i, factor=2)
+conv2d_nchw_ff_o_o_o_o, conv2d_nchw_ff_o_o_o_i = s[conv2d_nchw].split(conv2d_nchw_ff_o_o_o_i, factor=2)
 conv2d_nchw_yy_o_i, conv2d_nchw_yy_i = s[conv2d_nchw].split(conv2d_nchw_yy, factor=1)
 conv2d_nchw_yy_o_o_i, conv2d_nchw_yy_o_i = s[conv2d_nchw].split(conv2d_nchw_yy_o_i, factor=1)
 conv2d_nchw_yy_o_o_o_i, conv2d_nchw_yy_o_o_i = s[conv2d_nchw].split(conv2d_nchw_yy_o_o_i, factor=7)
 conv2d_nchw_yy_o_o_o_o, conv2d_nchw_yy_o_o_o_i = s[conv2d_nchw].split(conv2d_nchw_yy_o_o_o_i, factor=1)
 conv2d_nchw_xx_o_i, conv2d_nchw_xx_i = s[conv2d_nchw].split(conv2d_nchw_xx, factor=1)
-conv2d_nchw_xx_o_o_i, conv2d_nchw_xx_o_i = s[conv2d_nchw].split(conv2d_nchw_xx_o_i, factor=1)
-conv2d_nchw_xx_o_o_o_i, conv2d_nchw_xx_o_o_i = s[conv2d_nchw].split(conv2d_nchw_xx_o_o_i, factor=7)
+conv2d_nchw_xx_o_o_i, conv2d_nchw_xx_o_i = s[conv2d_nchw].split(conv2d_nchw_xx_o_i, factor=7)
+conv2d_nchw_xx_o_o_o_i, conv2d_nchw_xx_o_o_i = s[conv2d_nchw].split(conv2d_nchw_xx_o_o_i, factor=1)
 conv2d_nchw_xx_o_o_o_o, conv2d_nchw_xx_o_o_o_i = s[conv2d_nchw].split(conv2d_nchw_xx_o_o_o_i, factor=1)
-conv2d_nchw_rc_o_i, conv2d_nchw_rc_i = s[conv2d_nchw].split(conv2d_nchw_rc, factor=2)
-conv2d_nchw_rc_o_o, conv2d_nchw_rc_o_i = s[conv2d_nchw].split(conv2d_nchw_rc_o_i, factor=2)
+conv2d_nchw_rc_o_i, conv2d_nchw_rc_i = s[conv2d_nchw].split(conv2d_nchw_rc, factor=1)
+conv2d_nchw_rc_o_o, conv2d_nchw_rc_o_i = s[conv2d_nchw].split(conv2d_nchw_rc_o_i, factor=8)
 conv2d_nchw_ry_o_i, conv2d_nchw_ry_i = s[conv2d_nchw].split(conv2d_nchw_ry, factor=1)
 conv2d_nchw_ry_o_o, conv2d_nchw_ry_o_i = s[conv2d_nchw].split(conv2d_nchw_ry_o_i, factor=1)
 conv2d_nchw_rx_o_i, conv2d_nchw_rx_i = s[conv2d_nchw].split(conv2d_nchw_rx, factor=1)
@@ -629,14 +1003,14 @@ s[conv2d_nchw].reorder(conv2d_nchw_nn_o_o_o_o, conv2d_nchw_ff_o_o_o_o, conv2d_nc
 compute_i0_o_i, compute_i0_i = s[compute].split(compute_i0, factor=1)
 compute_i0_o_o_i, compute_i0_o_i = s[compute].split(compute_i0_o_i, factor=1)
 compute_i0_o_o_o, compute_i0_o_o_i = s[compute].split(compute_i0_o_o_i, factor=1)
-compute_i1_o_i, compute_i1_i = s[compute].split(compute_i1, factor=8)
-compute_i1_o_o_i, compute_i1_o_i = s[compute].split(compute_i1_o_i, factor=4)
-compute_i1_o_o_o, compute_i1_o_o_i = s[compute].split(compute_i1_o_o_i, factor=1)
+compute_i1_o_i, compute_i1_i = s[compute].split(compute_i1, factor=1)
+compute_i1_o_o_i, compute_i1_o_i = s[compute].split(compute_i1_o_i, factor=2)
+compute_i1_o_o_o, compute_i1_o_o_i = s[compute].split(compute_i1_o_o_i, factor=2)
 compute_i2_o_i, compute_i2_i = s[compute].split(compute_i2, factor=1)
 compute_i2_o_o_i, compute_i2_o_i = s[compute].split(compute_i2_o_i, factor=7)
 compute_i2_o_o_o, compute_i2_o_o_i = s[compute].split(compute_i2_o_o_i, factor=1)
-compute_i3_o_i, compute_i3_i = s[compute].split(compute_i3, factor=1)
-compute_i3_o_o_i, compute_i3_o_i = s[compute].split(compute_i3_o_i, factor=7)
+compute_i3_o_i, compute_i3_i = s[compute].split(compute_i3, factor=7)
+compute_i3_o_o_i, compute_i3_o_i = s[compute].split(compute_i3_o_i, factor=1)
 compute_i3_o_o_o, compute_i3_o_o_i = s[compute].split(compute_i3_o_o_i, factor=1)
 s[compute].reorder(compute_i0_o_o_o, compute_i1_o_o_o, compute_i2_o_o_o, compute_i3_o_o_o, compute_i0_o_o_i, compute_i1_o_o_i, compute_i2_o_o_i, compute_i3_o_o_i, compute_i0_o_i, compute_i1_o_i, compute_i2_o_i, compute_i3_o_i, compute_i0_i, compute_i1_i, compute_i2_i, compute_i3_i)
 s[conv2d_nchw].compute_at(s[compute], compute_i3_o_i)
@@ -656,14 +1030,14 @@ s[compute].bind(compute_i0_o_i_i1_o_i_fused_i2_o_i_fused_i3_o_i_fused, te.thread
 kernel_shared_ax0_ax1_fused_ax2_fused_ax3_fused = s[kernel_shared].fuse(kernel_shared_ax0, kernel_shared_ax1, kernel_shared_ax2, kernel_shared_ax3)
 kernel_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o, kernel_shared_ax0_ax1_fused_ax2_fused_ax3_fused_i = s[kernel_shared].split(kernel_shared_ax0_ax1_fused_ax2_fused_ax3_fused, factor=1)
 s[kernel_shared].vectorize(kernel_shared_ax0_ax1_fused_ax2_fused_ax3_fused_i)
-kernel_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o_o, kernel_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o_i = s[kernel_shared].split(kernel_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o, factor=196)
+kernel_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o_o, kernel_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o_i = s[kernel_shared].split(kernel_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o, factor=14)
 s[kernel_shared].bind(kernel_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o_i, te.thread_axis(&quot;threadIdx.x&quot;))
 pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused = s[pad_temp_shared].fuse(pad_temp_shared_ax0, pad_temp_shared_ax1, pad_temp_shared_ax2, pad_temp_shared_ax3)
-pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o, pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused_i = s[pad_temp_shared].split(pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused, factor=1)
+pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o, pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused_i = s[pad_temp_shared].split(pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused, factor=18)
 s[pad_temp_shared].vectorize(pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused_i)
-pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o_o, pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o_i = s[pad_temp_shared].split(pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o, factor=196)
+pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o_o, pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o_i = s[pad_temp_shared].split(pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o, factor=14)
 s[pad_temp_shared].bind(pad_temp_shared_ax0_ax1_fused_ax2_fused_ax3_fused_o_i, te.thread_axis(&quot;threadIdx.x&quot;))
-s[conv2d_nchw].pragma(conv2d_nchw_nn_o_o_o_o, &quot;auto_unroll_max_step&quot;, 16)
+s[conv2d_nchw].pragma(conv2d_nchw_nn_o_o_o_o, &quot;auto_unroll_max_step&quot;, 512)
 s[conv2d_nchw].pragma(conv2d_nchw_nn_o_o_o_o, &quot;unroll_explicit&quot;, True)
 
 CUDA source code:
@@ -681,54 +1055,414 @@ CUDA source code:
   #define int64_t long long
   #define uint64_t unsigned long long
 #endif
-extern &quot;C&quot; __global__ void __launch_bounds__(196) default_function_kernel0(float* __restrict__ data, float* __restrict__ kernel, float* __restrict__ compute, float* __restrict__ bias) {
-  float conv2d_nchw[8];
-  __shared__ float pad_temp_shared[252];
-  __shared__ float kernel_shared[384];
+extern &quot;C&quot; __global__ void __launch_bounds__(14) default_function_kernel0(float* __restrict__ data, float* __restrict__ kernel, float* __restrict__ compute, float* __restrict__ bias) {
+  float conv2d_nchw[14];
+  __shared__ float pad_temp_shared[504];
+  __shared__ float kernel_shared[96];
   conv2d_nchw[0] = 0.000000e+00f;
+  conv2d_nchw[7] = 0.000000e+00f;
   conv2d_nchw[1] = 0.000000e+00f;
+  conv2d_nchw[8] = 0.000000e+00f;
   conv2d_nchw[2] = 0.000000e+00f;
+  conv2d_nchw[9] = 0.000000e+00f;
   conv2d_nchw[3] = 0.000000e+00f;
+  conv2d_nchw[10] = 0.000000e+00f;
   conv2d_nchw[4] = 0.000000e+00f;
+  conv2d_nchw[11] = 0.000000e+00f;
   conv2d_nchw[5] = 0.000000e+00f;
+  conv2d_nchw[12] = 0.000000e+00f;
   conv2d_nchw[6] = 0.000000e+00f;
-  conv2d_nchw[7] = 0.000000e+00f;
-  for (int rc_outer_outer = 0; rc_outer_outer &lt; 128; ++rc_outer_outer) {
+  conv2d_nchw[13] = 0.000000e+00f;
+  for (int rc_outer_outer = 0; rc_outer_outer &lt; 64; ++rc_outer_outer) {
     for (int ry_outer_outer = 0; ry_outer_outer &lt; 3; ++ry_outer_outer) {
       __syncthreads();
-      pad_temp_shared[((int)threadIdx.x)] = (((((1 &lt;= (((((int)threadIdx.x) % 63) / 9) + ry_outer_outer)) &amp;&amp; ((((((int)threadIdx.x) % 63) / 9) + ry_outer_outer) &lt; 8)) &amp;&amp; (1 &lt;= (((int)threadIdx.x) % 9))) &amp;&amp; ((((int)threadIdx.x) % 9) &lt; 8)) ? data[(((((rc_outer_outer * 196) + ((((int)threadIdx.x) / 9) * 7)) + (ry_outer_outer * 7)) + (((int)threadIdx.x) % 9)) - 8)] : 0.000000e+00f);
-      if (((int)threadIdx.x) &lt; 56) {
-        pad_temp_shared[(((int)threadIdx.x) + 196)] = (((((1 &lt;= (((((int)threadIdx.x) + 7) / 9) + ry_outer_outer)) &amp;&amp; ((((((int)threadIdx.x) + 7) / 9) + ry_outer_outer) &lt; 8)) &amp;&amp; (1 &lt;= ((((int)threadIdx.x) + 7) % 9))) &amp;&amp; (((((int)threadIdx.x) + 7) % 9) &lt; 8)) ? data[(((((rc_outer_outer * 196) + (((((int)threadIdx.x) + 196) / 9) * 7)) + (ry_outer_outer * 7)) + ((((int)threadIdx.x) + 7) % 9)) - 8)] : 0.000000e+00f);
-      }
-      kernel_shared[((int)threadIdx.x)] = kernel[((((((((int)blockIdx.x) * 147456) + ((((int)threadIdx.x) / 12) * 4608)) + (rc_outer_outer * 36)) + (((((int)threadIdx.x) % 12) / 3) * 9)) + (ry_outer_outer * 3)) + (((int)threadIdx.x) % 3))];
-      if (((int)threadIdx.x) &lt; 188) {
-        kernel_shared[(((int)threadIdx.x) + 196)] = kernel[((((((((int)blockIdx.x) * 147456) + (((((int)threadIdx.x) + 196) / 12) * 4608)) + (rc_outer_outer * 36)) + ((((((int)threadIdx.x) + 4) % 12) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 1) % 3))];
+      pad_temp_shared[(((int)threadIdx.x) * 18)] = 0.000000e+00f;
+      pad_temp_shared[((((int)threadIdx.x) * 18) + 1)] = (((1 &lt;= (ry_outer_outer + ((((int)threadIdx.x) * 2) % 7))) &amp;&amp; ((ry_outer_outer + ((((int)threadIdx.x) * 2) % 7)) &lt; 8)) ? data[((((rc_outer_outer * 392) + (((int)threadIdx.x) * 14)) + (ry_outer_outer * 7)) - 7)] : 0.000000e+00f);
+      pad_temp_shared[((((int)threadIdx.x) * 18) + 2)] = (((1 &lt;= (ry_outer_outer + ((((int)threadIdx.x) * 2) % 7))) &amp;&amp; ((ry_outer_outer + ((((int)threadIdx.x) * 2) % 7)) &lt; 8)) ? data[((((rc_outer_outer * 392) + (((int)threadIdx.x) * 14)) + (ry_outer_outer * 7)) - 6)] : 0.000000e+00f);
+      pad_temp_shared[((((int)threadIdx.x) * 18) + 3)] = (((1 &lt;= (ry_outer_outer + ((((int)threadIdx.x) * 2) % 7))) &amp;&amp; ((ry_outer_outer + ((((int)threadIdx.x) * 2) % 7)) &lt; 8)) ? data[((((rc_outer_outer * 392) + (((int)threadIdx.x) * 14)) + (ry_outer_outer * 7)) - 5)] : 0.000000e+00f);
+      pad_temp_shared[((((int)threadIdx.x) * 18) + 4)] = (((1 &lt;= (ry_outer_outer + ((((int)threadIdx.x) * 2) % 7))) &amp;&amp; ((ry_outer_outer + ((((int)threadIdx.x) * 2) % 7)) &lt; 8)) ? data[((((rc_outer_outer * 392) + (((int)threadIdx.x) * 14)) + (ry_outer_outer * 7)) - 4)] : 0.000000e+00f);
+      pad_temp_shared[((((int)threadIdx.x) * 18) + 5)] = (((1 &lt;= (ry_outer_outer + ((((int)threadIdx.x) * 2) % 7))) &amp;&amp; ((ry_outer_outer + ((((int)threadIdx.x) * 2) % 7)) &lt; 8)) ? data[((((rc_outer_outer * 392) + (((int)threadIdx.x) * 14)) + (ry_outer_outer * 7)) - 3)] : 0.000000e+00f);
+      pad_temp_shared[((((int)threadIdx.x) * 18) + 6)] = (((1 &lt;= (ry_outer_outer + ((((int)threadIdx.x) * 2) % 7))) &amp;&amp; ((ry_outer_outer + ((((int)threadIdx.x) * 2) % 7)) &lt; 8)) ? data[((((rc_outer_outer * 392) + (((int)threadIdx.x) * 14)) + (ry_outer_outer * 7)) - 2)] : 0.000000e+00f);
+      pad_temp_shared[((((int)threadIdx.x) * 18) + 7)] = (((1 &lt;= (ry_outer_outer + ((((int)threadIdx.x) * 2) % 7))) &amp;&amp; ((ry_outer_outer + ((((int)threadIdx.x) * 2) % 7)) &lt; 8)) ? data[((((rc_outer_outer * 392) + (((int)threadIdx.x) * 14)) + (ry_outer_outer * 7)) - 1)] : 0.000000e+00f);
+      pad_temp_shared[((((int)threadIdx.x) * 18) + 8)] = 0.000000e+00f;
+      pad_temp_shared[((((int)threadIdx.x) * 18) + 9)] = 0.000000e+00f;
+      pad_temp_shared[((((int)threadIdx.x) * 18) + 10)] = (((1 &lt;= (ry_outer_outer + (((((int)threadIdx.x) * 2) + 1) % 7))) &amp;&amp; ((ry_outer_outer + (((((int)threadIdx.x) * 2) + 1) % 7)) &lt; 8)) ? data[(((rc_outer_outer * 392) + (((int)threadIdx.x) * 14)) + (ry_outer_outer * 7))] : 0.000000e+00f);
+      pad_temp_shared[((((int)threadIdx.x) * 18) + 11)] = (((1 &lt;= (ry_outer_outer + (((((int)threadIdx.x) * 2) + 1) % 7))) &amp;&amp; ((ry_outer_outer + (((((int)threadIdx.x) * 2) + 1) % 7)) &lt; 8)) ? data[((((rc_outer_outer * 392) + (((int)threadIdx.x) * 14)) + (ry_outer_outer * 7)) + 1)] : 0.000000e+00f);
+      pad_temp_shared[((((int)threadIdx.x) * 18) + 12)] = (((1 &lt;= (ry_outer_outer + (((((int)threadIdx.x) * 2) + 1) % 7))) &amp;&amp; ((ry_outer_outer + (((((int)threadIdx.x) * 2) + 1) % 7)) &lt; 8)) ? data[((((rc_outer_outer * 392) + (((int)threadIdx.x) * 14)) + (ry_outer_outer * 7)) + 2)] : 0.000000e+00f);
+      pad_temp_shared[((((int)threadIdx.x) * 18) + 13)] = (((1 &lt;= (ry_outer_outer + (((((int)threadIdx.x) * 2) + 1) % 7))) &amp;&amp; ((ry_outer_outer + (((((int)threadIdx.x) * 2) + 1) % 7)) &lt; 8)) ? data[((((rc_outer_outer * 392) + (((int)threadIdx.x) * 14)) + (ry_outer_outer * 7)) + 3)] : 0.000000e+00f);
+      pad_temp_shared[((((int)threadIdx.x) * 18) + 14)] = (((1 &lt;= (ry_outer_outer + (((((int)threadIdx.x) * 2) + 1) % 7))) &amp;&amp; ((ry_outer_outer + (((((int)threadIdx.x) * 2) + 1) % 7)) &lt; 8)) ? data[((((rc_outer_outer * 392) + (((int)threadIdx.x) * 14)) + (ry_outer_outer * 7)) + 4)] : 0.000000e+00f);
+      pad_temp_shared[((((int)threadIdx.x) * 18) + 15)] = (((1 &lt;= (ry_outer_outer + (((((int)threadIdx.x) * 2) + 1) % 7))) &amp;&amp; ((ry_outer_outer + (((((int)threadIdx.x) * 2) + 1) % 7)) &lt; 8)) ? data[((((rc_outer_outer * 392) + (((int)threadIdx.x) * 14)) + (ry_outer_outer * 7)) + 5)] : 0.000000e+00f);
+      pad_temp_shared[((((int)threadIdx.x) * 18) + 16)] = (((1 &lt;= (ry_outer_outer + (((((int)threadIdx.x) * 2) + 1) % 7))) &amp;&amp; ((ry_outer_outer + (((((int)threadIdx.x) * 2) + 1) % 7)) &lt; 8)) ? data[((((rc_outer_outer * 392) + (((int)threadIdx.x) * 14)) + (ry_outer_outer * 7)) + 6)] : 0.000000e+00f);
+      pad_temp_shared[((((int)threadIdx.x) * 18) + 17)] = 0.000000e+00f;
+      pad_temp_shared[((((int)threadIdx.x) * 18) + 252)] = 0.000000e+00f;
+      pad_temp_shared[((((int)threadIdx.x) * 18) + 253)] = (((1 &lt;= (ry_outer_outer + ((((int)threadIdx.x) * 2) % 7))) &amp;&amp; ((ry_outer_outer + ((((int)threadIdx.x) * 2) % 7)) &lt; 8)) ? data[((((rc_outer_outer * 392) + (((int)threadIdx.x) * 14)) + (ry_outer_outer * 7)) + 189)] : 0.000000e+00f);
+      pad_temp_shared[((((int)threadIdx.x) * 18) + 254)] = (((1 &lt;= (ry_outer_outer + ((((int)threadIdx.x) * 2) % 7))) &amp;&amp; ((ry_outer_outer + ((((int)threadIdx.x) * 2) % 7)) &lt; 8)) ? data[((((rc_outer_outer * 392) + (((int)threadIdx.x) * 14)) + (ry_outer_outer * 7)) + 190)] : 0.000000e+00f);
+      pad_temp_shared[((((int)threadIdx.x) * 18) + 255)] = (((1 &lt;= (ry_outer_outer + ((((int)threadIdx.x) * 2) % 7))) &amp;&amp; ((ry_outer_outer + ((((int)threadIdx.x) * 2) % 7)) &lt; 8)) ? data[((((rc_outer_outer * 392) + (((int)threadIdx.x) * 14)) + (ry_outer_outer * 7)) + 191)] : 0.000000e+00f);
+      pad_temp_shared[((((int)threadIdx.x) * 18) + 256)] = (((1 &lt;= (ry_outer_outer + ((((int)threadIdx.x) * 2) % 7))) &amp;&amp; ((ry_outer_outer + ((((int)threadIdx.x) * 2) % 7)) &lt; 8)) ? data[((((rc_outer_outer * 392) + (((int)threadIdx.x) * 14)) + (ry_outer_outer * 7)) + 192)] : 0.000000e+00f);
+      pad_temp_shared[((((int)threadIdx.x) * 18) + 257)] = (((1 &lt;= (ry_outer_outer + ((((int)threadIdx.x) * 2) % 7))) &amp;&amp; ((ry_outer_outer + ((((int)threadIdx.x) * 2) % 7)) &lt; 8)) ? data[((((rc_outer_outer * 392) + (((int)threadIdx.x) * 14)) + (ry_outer_outer * 7)) + 193)] : 0.000000e+00f);
+      pad_temp_shared[((((int)threadIdx.x) * 18) + 258)] = (((1 &lt;= (ry_outer_outer + ((((int)threadIdx.x) * 2) % 7))) &amp;&amp; ((ry_outer_outer + ((((int)threadIdx.x) * 2) % 7)) &lt; 8)) ? data[((((rc_outer_outer * 392) + (((int)threadIdx.x) * 14)) + (ry_outer_outer * 7)) + 194)] : 0.000000e+00f);
+      pad_temp_shared[((((int)threadIdx.x) * 18) + 259)] = (((1 &lt;= (ry_outer_outer + ((((int)threadIdx.x) * 2) % 7))) &amp;&amp; ((ry_outer_outer + ((((int)threadIdx.x) * 2) % 7)) &lt; 8)) ? data[((((rc_outer_outer * 392) + (((int)threadIdx.x) * 14)) + (ry_outer_outer * 7)) + 195)] : 0.000000e+00f);
+      pad_temp_shared[((((int)threadIdx.x) * 18) + 260)] = 0.000000e+00f;
+      pad_temp_shared[((((int)threadIdx.x) * 18) + 261)] = 0.000000e+00f;
+      pad_temp_shared[((((int)threadIdx.x) * 18) + 262)] = (((1 &lt;= (ry_outer_outer + (((((int)threadIdx.x) * 2) + 1) % 7))) &amp;&amp; ((ry_outer_outer + (((((int)threadIdx.x) * 2) + 1) % 7)) &lt; 8)) ? data[((((rc_outer_outer * 392) + (((int)threadIdx.x) * 14)) + (ry_outer_outer * 7)) + 196)] : 0.000000e+00f);
+      pad_temp_shared[((((int)threadIdx.x) * 18) + 263)] = (((1 &lt;= (ry_outer_outer + (((((int)threadIdx.x) * 2) + 1) % 7))) &amp;&amp; ((ry_outer_outer + (((((int)threadIdx.x) * 2) + 1) % 7)) &lt; 8)) ? data[((((rc_outer_outer * 392) + (((int)threadIdx.x) * 14)) + (ry_outer_outer * 7)) + 197)] : 0.000000e+00f);
+      pad_temp_shared[((((int)threadIdx.x) * 18) + 264)] = (((1 &lt;= (ry_outer_outer + (((((int)threadIdx.x) * 2) + 1) % 7))) &amp;&amp; ((ry_outer_outer + (((((int)threadIdx.x) * 2) + 1) % 7)) &lt; 8)) ? data[((((rc_outer_outer * 392) + (((int)threadIdx.x) * 14)) + (ry_outer_outer * 7)) + 198)] : 0.000000e+00f);
+      pad_temp_shared[((((int)threadIdx.x) * 18) + 265)] = (((1 &lt;= (ry_outer_outer + (((((int)threadIdx.x) * 2) + 1) % 7))) &amp;&amp; ((ry_outer_outer + (((((int)threadIdx.x) * 2) + 1) % 7)) &lt; 8)) ? data[((((rc_outer_outer * 392) + (((int)threadIdx.x) * 14)) + (ry_outer_outer * 7)) + 199)] : 0.000000e+00f);
+      pad_temp_shared[((((int)threadIdx.x) * 18) + 266)] = (((1 &lt;= (ry_outer_outer + (((((int)threadIdx.x) * 2) + 1) % 7))) &amp;&amp; ((ry_outer_outer + (((((int)threadIdx.x) * 2) + 1) % 7)) &lt; 8)) ? data[((((rc_outer_outer * 392) + (((int)threadIdx.x) * 14)) + (ry_outer_outer * 7)) + 200)] : 0.000000e+00f);
+      pad_temp_shared[((((int)threadIdx.x) * 18) + 267)] = (((1 &lt;= (ry_outer_outer + (((((int)threadIdx.x) * 2) + 1) % 7))) &amp;&amp; ((ry_outer_outer + (((((int)threadIdx.x) * 2) + 1) % 7)) &lt; 8)) ? data[((((rc_outer_outer * 392) + (((int)threadIdx.x) * 14)) + (ry_outer_outer * 7)) + 201)] : 0.000000e+00f);
+      pad_temp_shared[((((int)threadIdx.x) * 18) + 268)] = (((1 &lt;= (ry_outer_outer + (((((int)threadIdx.x) * 2) + 1) % 7))) &amp;&amp; ((ry_outer_outer + (((((int)threadIdx.x) * 2) + 1) % 7)) &lt; 8)) ? data[((((rc_outer_outer * 392) + (((int)threadIdx.x) * 14)) + (ry_outer_outer * 7)) + 202)] : 0.000000e+00f);
+      pad_temp_shared[((((int)threadIdx.x) * 18) + 269)] = 0.000000e+00f;
+      kernel_shared[((int)threadIdx.x)] = kernel[(((((((int)blockIdx.x) * 18432) + (rc_outer_outer * 72)) + ((((int)threadIdx.x) / 3) * 9)) + (ry_outer_outer * 3)) + (((int)threadIdx.x) % 3))];
+      kernel_shared[(((int)threadIdx.x) + 14)] = kernel[((((((((int)blockIdx.x) * 18432) + (((((int)threadIdx.x) + 14) / 24) * 4608)) + (rc_outer_outer * 72)) + ((((((int)threadIdx.x) + 14) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 2) % 3))];
+      kernel_shared[(((int)threadIdx.x) + 28)] = kernel[((((((((int)blockIdx.x) * 18432) + (((((int)threadIdx.x) + 28) / 24) * 4608)) + (rc_outer_outer * 72)) + (((((int)threadIdx.x) + 4) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 1) % 3))];
+      kernel_shared[(((int)threadIdx.x) + 42)] = kernel[((((((((int)blockIdx.x) * 18432) + (((((int)threadIdx.x) + 42) / 24) * 4608)) + (rc_outer_outer * 72)) + ((((((int)threadIdx.x) / 3) + 6) &amp; 7) * 9)) + (ry_outer_outer * 3)) + (((int)threadIdx.x) % 3))];
+      kernel_shared[(((int)threadIdx.x) + 56)] = kernel[((((((((int)blockIdx.x) * 18432) + (((((int)threadIdx.x) + 56) / 24) * 4608)) + (rc_outer_outer * 72)) + (((((int)threadIdx.x) + 8) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 2) % 3))];
+      kernel_shared[(((int)threadIdx.x) + 70)] = kernel[((((((((int)blockIdx.x) * 18432) + (((((int)threadIdx.x) + 70) / 24) * 4608)) + (rc_outer_outer * 72)) + ((((((int)threadIdx.x) + 22) % 24) / 3) * 9)) + (ry_outer_outer * 3)) + ((((int)threadIdx.x) + 1) % 3))];
+      if (((int)threadIdx.x) &lt; 12) {
+        kernel_shared[(((int)threadIdx.x) + 84)] = kernel[(((((((((int)blockIdx.x) * 18432) + (((((int)threadIdx.x) + 84) / 24) * 4608)) + (rc_outer_outer * 72)) + ((((int)threadIdx.x) / 3) * 9)) + (ry_outer_outer * 3)) + (((int)threadIdx.x) % 3)) + 36)];
       }
       __syncthreads();
-      for (int rc_outer_inner = 0; rc_outer_inner &lt; 2; ++rc_outer_inner) {
-        for (int rx_outer_inner = 0; rx_outer_inner &lt; 3; ++rx_outer_inner) {
-          conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[((((rc_outer_inner * 126) + (((((int)threadIdx.x) % 49) / 7) * 9)) + rx_outer_inner) + (((int)threadIdx.x) % 7))] * kernel_shared[((((((int)threadIdx.x) / 49) * 96) + (rc_outer_inner * 6)) + rx_outer_inner)]));
-          conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[((((rc_outer_inner * 126) + (((((int)threadIdx.x) % 49) / 7) * 9)) + rx_outer_inner) + (((int)threadIdx.x) % 7))] * kernel_shared[(((((((int)threadIdx.x) / 49) * 96) + (rc_outer_inner * 6)) + rx_outer_inner) + 12)]));
-          conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[((((rc_outer_inner * 126) + (((((int)threadIdx.x) % 49) / 7) * 9)) + rx_outer_inner) + (((int)threadIdx.x) % 7))] * kernel_shared[(((((((int)threadIdx.x) / 49) * 96) + (rc_outer_inner * 6)) + rx_outer_inner) + 24)]));
-          conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[((((rc_outer_inner * 126) + (((((int)threadIdx.x) % 49) / 7) * 9)) + rx_outer_inner) + (((int)threadIdx.x) % 7))] * kernel_shared[(((((((int)threadIdx.x) / 49) * 96) + (rc_outer_inner * 6)) + rx_outer_inner) + 36)]));
-          conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[((((rc_outer_inner * 126) + (((((int)threadIdx.x) % 49) / 7) * 9)) + rx_outer_inner) + (((int)threadIdx.x) % 7))] * kernel_shared[(((((((int)threadIdx.x) / 49) * 96) + (rc_outer_inner * 6)) + rx_outer_inner) + 48)]));
-          conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[((((rc_outer_inner * 126) + (((((int)threadIdx.x) % 49) / 7) * 9)) + rx_outer_inner) + (((int)threadIdx.x) % 7))] * kernel_shared[(((((((int)threadIdx.x) / 49) * 96) + (rc_outer_inner * 6)) + rx_outer_inner) + 60)]));
-          conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[((((rc_outer_inner * 126) + (((((int)threadIdx.x) % 49) / 7) * 9)) + rx_outer_inner) + (((int)threadIdx.x) % 7))] * kernel_shared[(((((((int)threadIdx.x) / 49) * 96) + (rc_outer_inner * 6)) + rx_outer_inner) + 72)]));
-          conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[((((rc_outer_inner * 126) + (((((int)threadIdx.x) % 49) / 7) * 9)) + rx_outer_inner) + (((int)threadIdx.x) % 7))] * kernel_shared[(((((((int)threadIdx.x) / 49) * 96) + (rc_outer_inner * 6)) + rx_outer_inner) + 84)]));
-          conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[(((((rc_outer_inner * 126) + (((((int)threadIdx.x) % 49) / 7) * 9)) + rx_outer_inner) + (((int)threadIdx.x) % 7)) + 63)] * kernel_shared[(((((((int)threadIdx.x) / 49) * 96) + (rc_outer_inner * 6)) + rx_outer_inner) + 3)]));
-          conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[(((((rc_outer_inner * 126) + (((((int)threadIdx.x) % 49) / 7) * 9)) + rx_outer_inner) + (((int)threadIdx.x) % 7)) + 63)] * kernel_shared[(((((((int)threadIdx.x) / 49) * 96) + (rc_outer_inner * 6)) + rx_outer_inner) + 15)]));
-          conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[(((((rc_outer_inner * 126) + (((((int)threadIdx.x) % 49) / 7) * 9)) + rx_outer_inner) + (((int)threadIdx.x) % 7)) + 63)] * kernel_shared[(((((((int)threadIdx.x) / 49) * 96) + (rc_outer_inner * 6)) + rx_outer_inner) + 27)]));
-          conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[(((((rc_outer_inner * 126) + (((((int)threadIdx.x) % 49) / 7) * 9)) + rx_outer_inner) + (((int)threadIdx.x) % 7)) + 63)] * kernel_shared[(((((((int)threadIdx.x) / 49) * 96) + (rc_outer_inner * 6)) + rx_outer_inner) + 39)]));
-          conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[(((((rc_outer_inner * 126) + (((((int)threadIdx.x) % 49) / 7) * 9)) + rx_outer_inner) + (((int)threadIdx.x) % 7)) + 63)] * kernel_shared[(((((((int)threadIdx.x) / 49) * 96) + (rc_outer_inner * 6)) + rx_outer_inner) + 51)]));
-          conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[(((((rc_outer_inner * 126) + (((((int)threadIdx.x) % 49) / 7) * 9)) + rx_outer_inner) + (((int)threadIdx.x) % 7)) + 63)] * kernel_shared[(((((((int)threadIdx.x) / 49) * 96) + (rc_outer_inner * 6)) + rx_outer_inner) + 63)]));
-          conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[(((((rc_outer_inner * 126) + (((((int)threadIdx.x) % 49) / 7) * 9)) + rx_outer_inner) + (((int)threadIdx.x) % 7)) + 63)] * kernel_shared[(((((((int)threadIdx.x) / 49) * 96) + (rc_outer_inner * 6)) + rx_outer_inner) + 75)]));
-          conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[(((((rc_outer_inner * 126) + (((((int)threadIdx.x) % 49) / 7) * 9)) + rx_outer_inner) + (((int)threadIdx.x) % 7)) + 63)] * kernel_shared[(((((((int)threadIdx.x) / 49) * 96) + (rc_outer_inner * 6)) + rx_outer_inner) + 87)]));
-        }
-      }
+      conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[((((int)threadIdx.x) % 7) * 9)] * kernel_shared[((((int)threadIdx.x) / 7) * 24)]));
+      conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[((((int)threadIdx.x) % 7) * 9)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 48)]));
+      conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 1)] * kernel_shared[((((int)threadIdx.x) / 7) * 24)]));
+      conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 1)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 48)]));
+      conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 2)] * kernel_shared[((((int)threadIdx.x) / 7) * 24)]));
+      conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 2)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 48)]));
+      conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 3)] * kernel_shared[((((int)threadIdx.x) / 7) * 24)]));
+      conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 3)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 48)]));
+      conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 4)] * kernel_shared[((((int)threadIdx.x) / 7) * 24)]));
+      conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 4)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 48)]));
+      conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 5)] * kernel_shared[((((int)threadIdx.x) / 7) * 24)]));
+      conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 5)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 48)]));
+      conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 6)] * kernel_shared[((((int)threadIdx.x) / 7) * 24)]));
+      conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 6)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 48)]));
+      conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 1)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 1)]));
+      conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 1)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 49)]));
+      conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 2)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 1)]));
+      conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 2)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 49)]));
+      conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 3)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 1)]));
+      conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 3)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 49)]));
+      conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 4)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 1)]));
+      conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 4)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 49)]));
+      conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 5)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 1)]));
+      conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 5)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 49)]));
+      conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 6)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 1)]));
+      conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 6)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 49)]));
+      conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 7)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 1)]));
+      conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 7)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 49)]));
+      conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 2)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 2)]));
+      conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 2)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 50)]));
+      conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 3)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 2)]));
+      conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 3)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 50)]));
+      conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 4)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 2)]));
+      conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 4)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 50)]));
+      conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 5)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 2)]));
+      conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 5)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 50)]));
+      conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 6)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 2)]));
+      conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 6)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 50)]));
+      conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 7)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 2)]));
+      conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 7)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 50)]));
+      conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 8)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 2)]));
+      conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 8)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 50)]));
+      conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 63)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 3)]));
+      conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 63)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 51)]));
+      conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 64)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 3)]));
+      conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 64)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 51)]));
+      conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 65)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 3)]));
+      conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 65)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 51)]));
+      conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 66)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 3)]));
+      conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 66)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 51)]));
+      conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 67)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 3)]));
+      conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 67)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 51)]));
+      conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 68)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 3)]));
+      conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 68)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 51)]));
+      conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 69)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 3)]));
+      conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 69)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 51)]));
+      conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 64)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 4)]));
+      conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 64)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 52)]));
+      conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 65)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 4)]));
+      conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 65)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 52)]));
+      conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 66)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 4)]));
+      conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 66)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 52)]));
+      conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 67)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 4)]));
+      conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 67)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 52)]));
+      conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 68)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 4)]));
+      conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 68)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 52)]));
+      conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 69)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 4)]));
+      conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 69)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 52)]));
+      conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 70)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 4)]));
+      conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 70)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 52)]));
+      conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 65)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 5)]));
+      conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 65)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 53)]));
+      conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 66)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 5)]));
+      conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 66)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 53)]));
+      conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 67)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 5)]));
+      conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 67)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 53)]));
+      conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 68)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 5)]));
+      conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 68)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 53)]));
+      conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 69)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 5)]));
+      conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 69)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 53)]));
+      conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 70)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 5)]));
+      conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 70)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 53)]));
+      conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 71)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 5)]));
+      conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 71)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 53)]));
+      conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 126)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 6)]));
+      conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 126)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 54)]));
+      conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 127)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 6)]));
+      conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 127)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 54)]));
+      conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 128)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 6)]));
+      conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 128)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 54)]));
+      conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 129)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 6)]));
+      conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 129)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 54)]));
+      conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 130)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 6)]));
+      conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 130)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 54)]));
+      conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 131)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 6)]));
+      conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 131)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 54)]));
+      conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 132)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 6)]));
+      conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 132)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 54)]));
+      conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 127)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 7)]));
+      conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 127)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 55)]));
+      conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 128)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 7)]));
+      conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 128)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 55)]));
+      conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 129)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 7)]));
+      conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 129)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 55)]));
+      conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 130)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 7)]));
+      conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 130)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 55)]));
+      conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 131)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 7)]));
+      conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 131)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 55)]));
+      conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 132)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 7)]));
+      conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 132)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 55)]));
+      conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 133)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 7)]));
+      conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 133)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 55)]));
+      conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 128)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 8)]));
+      conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 128)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 56)]));
+      conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 129)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 8)]));
+      conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 129)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 56)]));
+      conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 130)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 8)]));
+      conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 130)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 56)]));
+      conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 131)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 8)]));
+      conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 131)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 56)]));
+      conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 132)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 8)]));
+      conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 132)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 56)]));
+      conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 133)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 8)]));
+      conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 133)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 56)]));
+      conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 134)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 8)]));
+      conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 134)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 56)]));
+      conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 189)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 9)]));
+      conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 189)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 57)]));
+      conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 190)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 9)]));
+      conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 190)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 57)]));
+      conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 191)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 9)]));
+      conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 191)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 57)]));
+      conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 192)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 9)]));
+      conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 192)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 57)]));
+      conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 193)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 9)]));
+      conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 193)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 57)]));
+      conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 194)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 9)]));
+      conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 194)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 57)]));
+      conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 195)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 9)]));
+      conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 195)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 57)]));
+      conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 190)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 10)]));
+      conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 190)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 58)]));
+      conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 191)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 10)]));
+      conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 191)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 58)]));
+      conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 192)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 10)]));
+      conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 192)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 58)]));
+      conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 193)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 10)]));
+      conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 193)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 58)]));
+      conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 194)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 10)]));
+      conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 194)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 58)]));
+      conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 195)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 10)]));
+      conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 195)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 58)]));
+      conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 196)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 10)]));
+      conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 196)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 58)]));
+      conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 191)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 11)]));
+      conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 191)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 59)]));
+      conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 192)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 11)]));
+      conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 192)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 59)]));
+      conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 193)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 11)]));
+      conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 193)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 59)]));
+      conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 194)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 11)]));
+      conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 194)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 59)]));
+      conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 195)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 11)]));
+      conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 195)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 59)]));
+      conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 196)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 11)]));
+      conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 196)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 59)]));
+      conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 197)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 11)]));
+      conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 197)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 59)]));
+      conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 252)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 12)]));
+      conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 252)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 60)]));
+      conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 253)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 12)]));
+      conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 253)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 60)]));
+      conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 254)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 12)]));
+      conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 254)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 60)]));
+      conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 255)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 12)]));
+      conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 255)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 60)]));
+      conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 256)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 12)]));
+      conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 256)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 60)]));
+      conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 257)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 12)]));
+      conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 257)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 60)]));
+      conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 258)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 12)]));
+      conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 258)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 60)]));
+      conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 253)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 13)]));
+      conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 253)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 61)]));
+      conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 254)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 13)]));
+      conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 254)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 61)]));
+      conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 255)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 13)]));
+      conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 255)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 61)]));
+      conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 256)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 13)]));
+      conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 256)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 61)]));
+      conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 257)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 13)]));
+      conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 257)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 61)]));
+      conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 258)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 13)]));
+      conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 258)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 61)]));
+      conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 259)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 13)]));
+      conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 259)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 61)]));
+      conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 254)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 14)]));
+      conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 254)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 62)]));
+      conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 255)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 14)]));
+      conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 255)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 62)]));
+      conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 256)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 14)]));
+      conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 256)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 62)]));
+      conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 257)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 14)]));
+      conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 257)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 62)]));
+      conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 258)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 14)]));
+      conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 258)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 62)]));
+      conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 259)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 14)]));
+      conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 259)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 62)]));
+      conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 260)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 14)]));
+      conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 260)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 62)]));
+      conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 315)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 15)]));
+      conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 315)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 63)]));
+      conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 316)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 15)]));
+      conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 316)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 63)]));
+      conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 317)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 15)]));
+      conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 317)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 63)]));
+      conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 318)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 15)]));
+      conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 318)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 63)]));
+      conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 319)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 15)]));
+      conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 319)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 63)]));
+      conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 320)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 15)]));
+      conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 320)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 63)]));
+      conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 321)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 15)]));
+      conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 321)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 63)]));
+      conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 316)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 16)]));
+      conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 316)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 64)]));
+      conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 317)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 16)]));
+      conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 317)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 64)]));
+      conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 318)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 16)]));
+      conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 318)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 64)]));
+      conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 319)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 16)]));
+      conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 319)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 64)]));
+      conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 320)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 16)]));
+      conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 320)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 64)]));
+      conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 321)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 16)]));
+      conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 321)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 64)]));
+      conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 322)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 16)]));
+      conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 322)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 64)]));
+      conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 317)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 17)]));
+      conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 317)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 65)]));
+      conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 318)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 17)]));
+      conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 318)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 65)]));
+      conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 319)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 17)]));
+      conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 319)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 65)]));
+      conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 320)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 17)]));
+      conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 320)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 65)]));
+      conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 321)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 17)]));
+      conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 321)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 65)]));
+      conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 322)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 17)]));
+      conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 322)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 65)]));
+      conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 323)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 17)]));
+      conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 323)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 65)]));
+      conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 378)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 18)]));
+      conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 378)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 66)]));
+      conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 379)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 18)]));
+      conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 379)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 66)]));
+      conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 380)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 18)]));
+      conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 380)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 66)]));
+      conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 381)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 18)]));
+      conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 381)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 66)]));
+      conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 382)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 18)]));
+      conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 382)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 66)]));
+      conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 383)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 18)]));
+      conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 383)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 66)]));
+      conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 384)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 18)]));
+      conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 384)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 66)]));
+      conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 379)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 19)]));
+      conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 379)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 67)]));
+      conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 380)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 19)]));
+      conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 380)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 67)]));
+      conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 381)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 19)]));
+      conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 381)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 67)]));
+      conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 382)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 19)]));
+      conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 382)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 67)]));
+      conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 383)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 19)]));
+      conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 383)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 67)]));
+      conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 384)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 19)]));
+      conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 384)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 67)]));
+      conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 385)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 19)]));
+      conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 385)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 67)]));
+      conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 380)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 20)]));
+      conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 380)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 68)]));
+      conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 381)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 20)]));
+      conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 381)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 68)]));
+      conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 382)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 20)]));
+      conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 382)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 68)]));
+      conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 383)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 20)]));
+      conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 383)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 68)]));
+      conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 384)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 20)]));
+      conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 384)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 68)]));
+      conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 385)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 20)]));
+      conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 385)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 68)]));
+      conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 386)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 20)]));
+      conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 386)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 68)]));
+      conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 441)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 21)]));
+      conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 441)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 69)]));
+      conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 442)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 21)]));
+      conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 442)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 69)]));
+      conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 443)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 21)]));
+      conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 443)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 69)]));
+      conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 444)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 21)]));
+      conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 444)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 69)]));
+      conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 445)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 21)]));
+      conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 445)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 69)]));
+      conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 446)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 21)]));
+      conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 446)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 69)]));
+      conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 447)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 21)]));
+      conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 447)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 69)]));
+      conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 442)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 22)]));
+      conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 442)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 70)]));
+      conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 443)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 22)]));
+      conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 443)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 70)]));
+      conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 444)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 22)]));
+      conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 444)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 70)]));
+      conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 445)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 22)]));
+      conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 445)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 70)]));
+      conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 446)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 22)]));
+      conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 446)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 70)]));
+      conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 447)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 22)]));
+      conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 447)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 70)]));
+      conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 448)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 22)]));
+      conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 448)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 70)]));
+      conv2d_nchw[0] = (conv2d_nchw[0] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 443)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 23)]));
+      conv2d_nchw[7] = (conv2d_nchw[7] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 443)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 71)]));
+      conv2d_nchw[1] = (conv2d_nchw[1] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 444)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 23)]));
+      conv2d_nchw[8] = (conv2d_nchw[8] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 444)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 71)]));
+      conv2d_nchw[2] = (conv2d_nchw[2] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 445)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 23)]));
+      conv2d_nchw[9] = (conv2d_nchw[9] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 445)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 71)]));
+      conv2d_nchw[3] = (conv2d_nchw[3] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 446)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 23)]));
+      conv2d_nchw[10] = (conv2d_nchw[10] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 446)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 71)]));
+      conv2d_nchw[4] = (conv2d_nchw[4] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 447)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 23)]));
+      conv2d_nchw[11] = (conv2d_nchw[11] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 447)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 71)]));
+      conv2d_nchw[5] = (conv2d_nchw[5] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 448)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 23)]));
+      conv2d_nchw[12] = (conv2d_nchw[12] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 448)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 71)]));
+      conv2d_nchw[6] = (conv2d_nchw[6] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 449)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 23)]));
+      conv2d_nchw[13] = (conv2d_nchw[13] + (pad_temp_shared[(((((int)threadIdx.x) % 7) * 9) + 449)] * kernel_shared[(((((int)threadIdx.x) / 7) * 24) + 71)]));
     }
   }
-  for (int i1_inner = 0; i1_inner &lt; 8; ++i1_inner) {
-    compute[((((((int)blockIdx.x) * 1568) + ((((int)threadIdx.x) / 49) * 392)) + (i1_inner * 49)) + (((int)threadIdx.x) % 49))] = max((conv2d_nchw[i1_inner] + bias[(((((int)blockIdx.x) * 32) + ((((int)threadIdx.x) / 49) * 8)) + i1_inner)]), 0.000000e+00f);
+  for (int i3_inner = 0; i3_inner &lt; 7; ++i3_inner) {
+    compute[(((((int)blockIdx.x) * 196) + (((int)threadIdx.x) * 7)) + i3_inner)] = max((conv2d_nchw[i3_inner] + bias[((((int)blockIdx.x) * 4) + (((int)threadIdx.x) / 7))]), 0.000000e+00f);
+    compute[((((((int)blockIdx.x) * 196) + (((int)threadIdx.x) * 7)) + i3_inner) + 98)] = max((conv2d_nchw[(i3_inner + 7)] + bias[(((((int)blockIdx.x) * 4) + (((int)threadIdx.x) / 7)) + 2)]), 0.000000e+00f);
   }
 }
 </pre></div>
@@ -765,7 +1499,7 @@ In the example below we resume the status and do more 5 trials.</p>
 Get devices for measurement successfully!
 </pre></div>
 </div>
-<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 3 minutes  27.246 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 3 minutes  43.102 seconds)</p>
 <div class="sphx-glr-footer sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-tune-with-autoscheduler-tune-conv2d-layer-cuda-py">
 <div class="sphx-glr-download sphx-glr-download-python docutils container">
 <p><a class="reference download internal" download="" href="../../_downloads/e3e540f3b477c0c52d8eb73e674e8ffd/tune_conv2d_layer_cuda.py"><code class="xref download docutils literal notranslate"><span class="pre">Download</span> <span class="pre">Python</span> <span class="pre">source</span> <span class="pre">code:</span> <span class="pre">tune_conv2d_layer_cuda.py</span></code></a></p>
diff --git a/docs/how_to/tune_with_autoscheduler/tune_network_cuda.html b/docs/how_to/tune_with_autoscheduler/tune_network_cuda.html
index fa1d4395b..81e6c2177 100644
--- a/docs/how_to/tune_with_autoscheduler/tune_network_cuda.html
+++ b/docs/how_to/tune_with_autoscheduler/tune_network_cuda.html
@@ -902,7 +902,7 @@ so we can read the log file and load the best schedules.</p>
 Evaluate inference time cost...
 Execution time summary:
  mean (ms)   median (ms)    max (ms)     min (ms)     std (ms)
-   8.1912       8.1889       8.2025       8.1821       0.0085
+   8.2279       8.2254       8.2328       8.2253       0.0035
 </pre></div>
 </div>
 </div>
diff --git a/docs/how_to/tune_with_autoscheduler/tune_network_x86.html b/docs/how_to/tune_with_autoscheduler/tune_network_x86.html
index d8e653334..f9498348d 100644
--- a/docs/how_to/tune_with_autoscheduler/tune_network_x86.html
+++ b/docs/how_to/tune_with_autoscheduler/tune_network_x86.html
@@ -921,7 +921,7 @@ so we can read the log file and load the best schedules.</p>
 Evaluate inference time cost...
 Execution time summary:
  mean (ms)   median (ms)    max (ms)     min (ms)     std (ms)
-  758.2995     758.3920     758.4811     758.0255      0.1972
+  762.8897     764.1302     766.0950     758.4440      3.2443
 </pre></div>
 </div>
 </div>
@@ -943,7 +943,7 @@ to learn how to use the RPC Tracker and RPC Server.
 To use the RPC Tracker in auto-scheduler, replace the runner in <code class="code docutils literal notranslate"><span class="pre">TuningOptions</span></code>
 with <a class="reference internal" href="../../reference/api/python/auto_scheduler.html#tvm.auto_scheduler.RPCRunner" title="tvm.auto_scheduler.RPCRunner"><code class="xref any py py-class docutils literal notranslate"><span class="pre">auto_scheduler.RPCRunner</span></code></a>.</p></li>
 </ol>
-<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes  23.476 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 1 minutes  23.690 seconds)</p>
 <div class="sphx-glr-footer sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-tune-with-autoscheduler-tune-network-x86-py">
 <div class="sphx-glr-download sphx-glr-download-python docutils container">
 <p><a class="reference download internal" download="" href="../../_downloads/e416b94ca1090b0897c0f6e0df95b911/tune_network_x86.py"><code class="xref download docutils literal notranslate"><span class="pre">Download</span> <span class="pre">Python</span> <span class="pre">source</span> <span class="pre">code:</span> <span class="pre">tune_network_x86.py</span></code></a></p>
diff --git a/docs/how_to/tune_with_autoscheduler/tune_sparse_x86.html b/docs/how_to/tune_with_autoscheduler/tune_sparse_x86.html
index 564db2d4c..28ee6ddc2 100644
--- a/docs/how_to/tune_with_autoscheduler/tune_sparse_x86.html
+++ b/docs/how_to/tune_with_autoscheduler/tune_sparse_x86.html
@@ -625,30 +625,103 @@ layout transformation, parallelization, vectorization, unrolling, and operator f
              placeholder_4: Buffer(placeholder_14: Pointer(float32), float32, [65536], []),
              compute: Buffer(compute_2: Pointer(float32), float32, [65536], [])}
   buffer_map = {placeholder_5: placeholder, placeholder_6: placeholder_1, placeholder_7: placeholder_2, placeholder_8: placeholder_3, placeholder_9: placeholder_4, compute_1: compute}
-  preflattened_buffer_map = {placeholder_7: placeholder_15: Buffer(placeholder_12, int32, [4916], []), placeholder_5: placeholder_16: Buffer(placeholder_10, float32, [128, 256], []), placeholder_6: placeholder_17: Buffer(placeholder_11, float32, [4916, 16, 1], []), compute_1: compute_3: Buffer(compute_2, float32, [128, 512], []), placeholder_9: placeholder_18: Buffer(placeholder_14, float32, [128, 512], []), placeholder_8: placeholder_19: Buffer(placeholder_13, int32, [33], [])} {
-  for (i0.outer.i1.outer.fused: int32, 0, 16) &quot;parallel&quot; {
-    allocate(compute_4: Pointer(global float32), float32, [4096]), storage_scope = global {
-      for (i.outer.inner: int32, 0, 2) {
-        for (nb_j.inner: int32, 0, 2) {
-          for (i.inner.init: int32, 0, 64) {
-            for (j.init: int32, 0, 16) {
-              compute_5: Buffer(compute_4, float32, [4096], [])[((((i.outer.inner*2048) + (i.inner.init*32)) + (nb_j.inner*16)) + j.init)] = 0f32
-            }
+  preflattened_buffer_map = {placeholder_5: placeholder_15: Buffer(placeholder_10, float32, [128, 256], []), placeholder_8: placeholder_16: Buffer(placeholder_13, int32, [33], []), placeholder_9: placeholder_17: Buffer(placeholder_14, float32, [128, 512], []), placeholder_6: placeholder_18: Buffer(placeholder_11, float32, [4916, 16, 1], []), compute_1: compute_3: Buffer(compute_2, float32, [128, 512], []), placeholder_7: placeholder_19: Buffer(placeholder_12, int32, [4916], [])} {
+  for (i0.outer.i1.outer.fused: int32, 0, 32) &quot;parallel&quot; {
+    allocate(compute_4: Pointer(global float32), float32, [2048]), storage_scope = global {
+      for (i.outer.inner: int32, 0, 8) {
+        for (i.inner.init: int32, 0, 16) {
+          let cse_var_1: int32 = ((i.outer.inner*256) + (i.inner.init*16))
+           {
+            compute_5: Buffer(compute_4, float32, [2048], [])[cse_var_1] = 0f32
+            compute_5[(cse_var_1 + 1)] = 0f32
+            compute_5[(cse_var_1 + 2)] = 0f32
+            compute_5[(cse_var_1 + 3)] = 0f32
+            compute_5[(cse_var_1 + 4)] = 0f32
+            compute_5[(cse_var_1 + 5)] = 0f32
+            compute_5[(cse_var_1 + 6)] = 0f32
+            compute_5[(cse_var_1 + 7)] = 0f32
+            compute_5[(cse_var_1 + 8)] = 0f32
+            compute_5[(cse_var_1 + 9)] = 0f32
+            compute_5[(cse_var_1 + 10)] = 0f32
+            compute_5[(cse_var_1 + 11)] = 0f32
+            compute_5[(cse_var_1 + 12)] = 0f32
+            compute_5[(cse_var_1 + 13)] = 0f32
+            compute_5[(cse_var_1 + 14)] = 0f32
+            compute_5[(cse_var_1 + 15)] = 0f32
           }
-          for (elem_idx: int32, 0, let cse_var_1: int32 = ((i0.outer.i1.outer.fused*2) + nb_j.inner) in (placeholder_3[(cse_var_1 + 1)] - placeholder_3[cse_var_1])) {
-            for (i.inner: int32, 0, 64) {
-              for (j: int32, 0, 16) {
-                let cse_var_3: int32 = ((i0.outer.i1.outer.fused*2) + nb_j.inner)
-                let cse_var_2: int32 = ((((i.outer.inner*2048) + (i.inner*32)) + (nb_j.inner*16)) + j)
-                compute_5[cse_var_2] = (compute_5[cse_var_2] + (placeholder_1[(((placeholder_3[cse_var_3]*16) + (elem_idx*16)) + j)]*max(placeholder[(((i.outer.inner*16384) + (i.inner*256)) + placeholder_2[(placeholder_3[cse_var_3] + elem_idx)])], 0f32)))
-              }
+        }
+        for (elem_idx: int32, 0, (placeholder_3[(i0.outer.i1.outer.fused + 1)] - placeholder_3[i0.outer.i1.outer.fused])) {
+          for (i.inner: int32, 0, 16) {
+            if @tir.likely((elem_idx &lt; (placeholder_3[(i0.outer.i1.outer.fused + 1)] - placeholder_3[i0.outer.i1.outer.fused])), dtype=bool) {
+              let cse_var_2: int32 = ((i.outer.inner*256) + (i.inner*16))
+              compute_5[cse_var_2] = (compute_5[cse_var_2] + (placeholder_1[((placeholder_3[i0.outer.i1.outer.fused]*16) + (elem_idx*16))]*max(placeholder[(((i.outer.inner*4096) + (i.inner*256)) + placeholder_2[(placeholder_3[i0.outer.i1.outer.fused] + elem_idx)])], 0f32)))
+            }
+            if @tir.likely((elem_idx &lt; (placeholder_3[(i0.outer.i1.outer.fused + 1)] - placeholder_3[i0.outer.i1.outer.fused])), dtype=bool) {
+              let cse_var_3: int32 = (((i.outer.inner*256) + (i.inner*16)) + 1)
+              compute_5[cse_var_3] = (compute_5[cse_var_3] + (placeholder_1[(((placeholder_3[i0.outer.i1.outer.fused]*16) + (elem_idx*16)) + 1)]*max(placeholder[(((i.outer.inner*4096) + (i.inner*256)) + placeholder_2[(placeholder_3[i0.outer.i1.outer.fused] + elem_idx)])], 0f32)))
+            }
+            if @tir.likely((elem_idx &lt; (placeholder_3[(i0.outer.i1.outer.fused + 1)] - placeholder_3[i0.outer.i1.outer.fused])), dtype=bool) {
+              let cse_var_4: int32 = (((i.outer.inner*256) + (i.inner*16)) + 2)
+              compute_5[cse_var_4] = (compute_5[cse_var_4] + (placeholder_1[(((placeholder_3[i0.outer.i1.outer.fused]*16) + (elem_idx*16)) + 2)]*max(placeholder[(((i.outer.inner*4096) + (i.inner*256)) + placeholder_2[(placeholder_3[i0.outer.i1.outer.fused] + elem_idx)])], 0f32)))
+            }
+            if @tir.likely((elem_idx &lt; (placeholder_3[(i0.outer.i1.outer.fused + 1)] - placeholder_3[i0.outer.i1.outer.fused])), dtype=bool) {
+              let cse_var_5: int32 = (((i.outer.inner*256) + (i.inner*16)) + 3)
+              compute_5[cse_var_5] = (compute_5[cse_var_5] + (placeholder_1[(((placeholder_3[i0.outer.i1.outer.fused]*16) + (elem_idx*16)) + 3)]*max(placeholder[(((i.outer.inner*4096) + (i.inner*256)) + placeholder_2[(placeholder_3[i0.outer.i1.outer.fused] + elem_idx)])], 0f32)))
+            }
+            if @tir.likely((elem_idx &lt; (placeholder_3[(i0.outer.i1.outer.fused + 1)] - placeholder_3[i0.outer.i1.outer.fused])), dtype=bool) {
+              let cse_var_6: int32 = (((i.outer.inner*256) + (i.inner*16)) + 4)
+              compute_5[cse_var_6] = (compute_5[cse_var_6] + (placeholder_1[(((placeholder_3[i0.outer.i1.outer.fused]*16) + (elem_idx*16)) + 4)]*max(placeholder[(((i.outer.inner*4096) + (i.inner*256)) + placeholder_2[(placeholder_3[i0.outer.i1.outer.fused] + elem_idx)])], 0f32)))
+            }
+            if @tir.likely((elem_idx &lt; (placeholder_3[(i0.outer.i1.outer.fused + 1)] - placeholder_3[i0.outer.i1.outer.fused])), dtype=bool) {
+              let cse_var_7: int32 = (((i.outer.inner*256) + (i.inner*16)) + 5)
+              compute_5[cse_var_7] = (compute_5[cse_var_7] + (placeholder_1[(((placeholder_3[i0.outer.i1.outer.fused]*16) + (elem_idx*16)) + 5)]*max(placeholder[(((i.outer.inner*4096) + (i.inner*256)) + placeholder_2[(placeholder_3[i0.outer.i1.outer.fused] + elem_idx)])], 0f32)))
+            }
+            if @tir.likely((elem_idx &lt; (placeholder_3[(i0.outer.i1.outer.fused + 1)] - placeholder_3[i0.outer.i1.outer.fused])), dtype=bool) {
+              let cse_var_8: int32 = (((i.outer.inner*256) + (i.inner*16)) + 6)
+              compute_5[cse_var_8] = (compute_5[cse_var_8] + (placeholder_1[(((placeholder_3[i0.outer.i1.outer.fused]*16) + (elem_idx*16)) + 6)]*max(placeholder[(((i.outer.inner*4096) + (i.inner*256)) + placeholder_2[(placeholder_3[i0.outer.i1.outer.fused] + elem_idx)])], 0f32)))
+            }
+            if @tir.likely((elem_idx &lt; (placeholder_3[(i0.outer.i1.outer.fused + 1)] - placeholder_3[i0.outer.i1.outer.fused])), dtype=bool) {
+              let cse_var_9: int32 = (((i.outer.inner*256) + (i.inner*16)) + 7)
+              compute_5[cse_var_9] = (compute_5[cse_var_9] + (placeholder_1[(((placeholder_3[i0.outer.i1.outer.fused]*16) + (elem_idx*16)) + 7)]*max(placeholder[(((i.outer.inner*4096) + (i.inner*256)) + placeholder_2[(placeholder_3[i0.outer.i1.outer.fused] + elem_idx)])], 0f32)))
+            }
+            if @tir.likely((elem_idx &lt; (placeholder_3[(i0.outer.i1.outer.fused + 1)] - placeholder_3[i0.outer.i1.outer.fused])), dtype=bool) {
+              let cse_var_10: int32 = (((i.outer.inner*256) + (i.inner*16)) + 8)
+              compute_5[cse_var_10] = (compute_5[cse_var_10] + (placeholder_1[(((placeholder_3[i0.outer.i1.outer.fused]*16) + (elem_idx*16)) + 8)]*max(placeholder[(((i.outer.inner*4096) + (i.inner*256)) + placeholder_2[(placeholder_3[i0.outer.i1.outer.fused] + elem_idx)])], 0f32)))
+            }
+            if @tir.likely((elem_idx &lt; (placeholder_3[(i0.outer.i1.outer.fused + 1)] - placeholder_3[i0.outer.i1.outer.fused])), dtype=bool) {
+              let cse_var_11: int32 = (((i.outer.inner*256) + (i.inner*16)) + 9)
+              compute_5[cse_var_11] = (compute_5[cse_var_11] + (placeholder_1[(((placeholder_3[i0.outer.i1.outer.fused]*16) + (elem_idx*16)) + 9)]*max(placeholder[(((i.outer.inner*4096) + (i.inner*256)) + placeholder_2[(placeholder_3[i0.outer.i1.outer.fused] + elem_idx)])], 0f32)))
+            }
+            if @tir.likely((elem_idx &lt; (placeholder_3[(i0.outer.i1.outer.fused + 1)] - placeholder_3[i0.outer.i1.outer.fused])), dtype=bool) {
+              let cse_var_12: int32 = (((i.outer.inner*256) + (i.inner*16)) + 10)
+              compute_5[cse_var_12] = (compute_5[cse_var_12] + (placeholder_1[(((placeholder_3[i0.outer.i1.outer.fused]*16) + (elem_idx*16)) + 10)]*max(placeholder[(((i.outer.inner*4096) + (i.inner*256)) + placeholder_2[(placeholder_3[i0.outer.i1.outer.fused] + elem_idx)])], 0f32)))
+            }
+            if @tir.likely((elem_idx &lt; (placeholder_3[(i0.outer.i1.outer.fused + 1)] - placeholder_3[i0.outer.i1.outer.fused])), dtype=bool) {
+              let cse_var_13: int32 = (((i.outer.inner*256) + (i.inner*16)) + 11)
+              compute_5[cse_var_13] = (compute_5[cse_var_13] + (placeholder_1[(((placeholder_3[i0.outer.i1.outer.fused]*16) + (elem_idx*16)) + 11)]*max(placeholder[(((i.outer.inner*4096) + (i.inner*256)) + placeholder_2[(placeholder_3[i0.outer.i1.outer.fused] + elem_idx)])], 0f32)))
+            }
+            if @tir.likely((elem_idx &lt; (placeholder_3[(i0.outer.i1.outer.fused + 1)] - placeholder_3[i0.outer.i1.outer.fused])), dtype=bool) {
+              let cse_var_14: int32 = (((i.outer.inner*256) + (i.inner*16)) + 12)
+              compute_5[cse_var_14] = (compute_5[cse_var_14] + (placeholder_1[(((placeholder_3[i0.outer.i1.outer.fused]*16) + (elem_idx*16)) + 12)]*max(placeholder[(((i.outer.inner*4096) + (i.inner*256)) + placeholder_2[(placeholder_3[i0.outer.i1.outer.fused] + elem_idx)])], 0f32)))
+            }
+            if @tir.likely((elem_idx &lt; (placeholder_3[(i0.outer.i1.outer.fused + 1)] - placeholder_3[i0.outer.i1.outer.fused])), dtype=bool) {
+              let cse_var_15: int32 = (((i.outer.inner*256) + (i.inner*16)) + 13)
+              compute_5[cse_var_15] = (compute_5[cse_var_15] + (placeholder_1[(((placeholder_3[i0.outer.i1.outer.fused]*16) + (elem_idx*16)) + 13)]*max(placeholder[(((i.outer.inner*4096) + (i.inner*256)) + placeholder_2[(placeholder_3[i0.outer.i1.outer.fused] + elem_idx)])], 0f32)))
+            }
+            if @tir.likely((elem_idx &lt; (placeholder_3[(i0.outer.i1.outer.fused + 1)] - placeholder_3[i0.outer.i1.outer.fused])), dtype=bool) {
+              let cse_var_16: int32 = (((i.outer.inner*256) + (i.inner*16)) + 14)
+              compute_5[cse_var_16] = (compute_5[cse_var_16] + (placeholder_1[(((placeholder_3[i0.outer.i1.outer.fused]*16) + (elem_idx*16)) + 14)]*max(placeholder[(((i.outer.inner*4096) + (i.inner*256)) + placeholder_2[(placeholder_3[i0.outer.i1.outer.fused] + elem_idx)])], 0f32)))
+            }
+            if @tir.likely((elem_idx &lt; (placeholder_3[(i0.outer.i1.outer.fused + 1)] - placeholder_3[i0.outer.i1.outer.fused])), dtype=bool) {
+              let cse_var_17: int32 = (((i.outer.inner*256) + (i.inner*16)) + 15)
+              compute_5[cse_var_17] = (compute_5[cse_var_17] + (placeholder_1[(((placeholder_3[i0.outer.i1.outer.fused]*16) + (elem_idx*16)) + 15)]*max(placeholder[(((i.outer.inner*4096) + (i.inner*256)) + placeholder_2[(placeholder_3[i0.outer.i1.outer.fused] + elem_idx)])], 0f32)))
             }
           }
         }
       }
       for (i0.inner: int32, 0, 128) {
-        let cse_var_4: int32 = ((i0.inner*512) + (i0.outer.i1.outer.fused*32))
-        compute[ramp(cse_var_4, 1, 32)] = max((compute_5[ramp((i0.inner*32), 1, 32)] + placeholder_4[ramp(cse_var_4, 1, 32)]), broadcast(0f32, 32))
+        let cse_var_18: int32 = ((i0.inner*512) + (i0.outer.i1.outer.fused*16))
+        compute[ramp(cse_var_18, 1, 16)] = max((compute_5[ramp((i0.inner*16), 1, 16)] + placeholder_4[ramp(cse_var_18, 1, 16)]), broadcast(0f32, 16))
       }
     }
   }
@@ -686,7 +759,7 @@ layout transformation, parallelization, vectorization, unrolling, and operator f
 <span class="p">)</span>
 </pre></div>
 </div>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Execution time of this operator: 1.841 ms
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Execution time of this operator: 1.694 ms
 </pre></div>
 </div>
 <div class="admonition note">
diff --git a/docs/how_to/tune_with_autotvm/sg_execution_times.html b/docs/how_to/tune_with_autotvm/sg_execution_times.html
index c2e205d2e..fad177897 100644
--- a/docs/how_to/tune_with_autotvm/sg_execution_times.html
+++ b/docs/how_to/tune_with_autotvm/sg_execution_times.html
@@ -327,7 +327,7 @@
             
   <div class="section" id="computation-times">
 <span id="sphx-glr-how-to-tune-with-autotvm-sg-execution-times"></span><h1>Computation times<a class="headerlink" href="#computation-times" title="Permalink to this headline">¶</a></h1>
-<p><strong>00:46.176</strong> total execution time for <strong>how_to_tune_with_autotvm</strong> files:</p>
+<p><strong>00:45.912</strong> total execution time for <strong>how_to_tune_with_autotvm</strong> files:</p>
 <table class="docutils align-default">
 <colgroup>
 <col style="width: 84%" />
@@ -336,11 +336,11 @@
 </colgroup>
 <tbody>
 <tr class="row-odd"><td><p><a class="reference internal" href="tune_conv2d_cuda.html#sphx-glr-how-to-tune-with-autotvm-tune-conv2d-cuda-py"><span class="std std-ref">Tuning High Performance Convolution on NVIDIA GPUs</span></a> (<code class="docutils literal notranslate"><span class="pre">tune_conv2d_cuda.py</span></code>)</p></td>
-<td><p>00:46.140</p></td>
+<td><p>00:45.877</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="tune_relay_x86.html#sphx-glr-how-to-tune-with-autotvm-tune-relay-x86-py"><span class="std std-ref">Auto-tuning a Convolutional Network for x86 CPU</span></a> (<code class="docutils literal notranslate"><span class="pre">tune_relay_x86.py</span></code>)</p></td>
-<td><p>00:00.021</p></td>
+<td><p>00:00.020</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-odd"><td><p><a class="reference internal" href="tune_relay_cuda.html#sphx-glr-how-to-tune-with-autotvm-tune-relay-cuda-py"><span class="std std-ref">Auto-tuning a Convolutional Network for NVIDIA GPU</span></a> (<code class="docutils literal notranslate"><span class="pre">tune_relay_cuda.py</span></code>)</p></td>
diff --git a/docs/how_to/tune_with_autotvm/tune_conv2d_cuda.html b/docs/how_to/tune_with_autotvm/tune_conv2d_cuda.html
index 1cc81e4e4..042ba5d9d 100644
--- a/docs/how_to/tune_with_autotvm/tune_conv2d_cuda.html
+++ b/docs/how_to/tune_with_autotvm/tune_conv2d_cuda.html
@@ -1436,8 +1436,8 @@ No: 8   GFLOPS: 0.00/0.00       result: Traceback (most recent call last):
 TimeoutError
 
         [(&#39;tile_f&#39;, [-1, 2, 1, 64]), (&#39;tile_y&#39;, [-1, 1, 1, 7]), (&#39;tile_x&#39;, [-1, 1, 7, 1]), (&#39;tile_rc&#39;, [-1, 1, 4]), (&#39;tile_ry&#39;, [-1, 3, 1]), (&#39;tile_rx&#39;, [-1, 1, 3]), (&#39;auto_unroll_max_step&#39;, 1500), (&#39;unroll_explicit&#39;, 0)],None,4909501
-No: 9   GFLOPS: 202.51/202.51   result: MeasureResult(costs=(0.0011431864111111111,), error_no=MeasureErrorNo.NO_ERROR, all_cost=2.0515146255493164, timestamp=1663471066.990349)       [(&#39;tile_f&#39;, [-1, 1, 4, 8]), (&#39;tile_y&#39;, [-1, 7, 1, 1]), (&#39;tile_x&#39;, [-1, 1, 1, 1]), (&#39;tile_rc&#39;, [-1, 2, 2]), (&#39;tile_ry&#39;, [-1, 1, 3]), (&#39;tile_rx&#39;, [-1, 1, 3]), (&#39;auto_unroll_max_step&#39;, 1500), (&#39;unroll_explicit&#39;, 0)],None,5072689
-No: 10  GFLOPS: 0.00/202.51     result: Traceback (most recent call last):
+No: 9   GFLOPS: 80.82/80.82     result: MeasureResult(costs=(0.002864252542857143,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.8780179023742676, timestamp=1663472071.364252)        [(&#39;tile_f&#39;, [-1, 1, 4, 8]), (&#39;tile_y&#39;, [-1, 7, 1, 1]), (&#39;tile_x&#39;, [-1, 1, 1, 1]), (&#39;tile_rc&#39;, [-1, 2, 2]), (&#39;tile_ry&#39;, [-1, 1, 3]), (&#39;tile_rx&#39;, [-1, 1, 3]), (&#39;auto_unroll_max_step&#39;, 1500), (&#39;unroll_explicit&#39;, 0)],None,5072689
+No: 10  GFLOPS: 0.00/80.82      result: Traceback (most recent call last):
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 588, in __call__
     func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 540, in _build_func_common
@@ -1560,8 +1560,8 @@ Traceback (most recent call last):
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 871, in verify_pass
     raise InstantiationError(&quot;Skipped because of invalid gpu kernel&quot;)
 tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [(&#39;tile_f&#39;, [-1, 4, 4, 8]), (&#39;tile_y&#39;, [-1, 1, 1, 1]), (&#39;tile_x&#39;, [-1, 1, 1, 7]), (&#39;tile_rc&#39;, [-1, 64, 2]), (&#39;tile_ry&#39;, [-1, 1, 3]), (&#39;tile_rx&#39;, [-1, 1, 3]), (&#39;auto_unroll_max_step&#39;, 1500), (&#39;unroll_explicit&#39;, 0)],None,5092711
-No: 11  GFLOPS: 260.13/260.13   result: MeasureResult(costs=(0.0008899435966850829,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.7576069831848145, timestamp=1663471067.895412)       [(&#39;tile_f&#39;, [-1, 8, 2, 1]), (&#39;tile_y&#39;, [-1, 7, 1, 1]), (&#39;tile_x&#39;, [-1, 1, 7, 1]), (&#39;tile_rc&#39;, [-1, 2, 1]), (&#39;tile_ry&#39;, [-1, 3, 1]), (&#39;tile_rx&#39;, [-1, 3, 1]), (&#39;auto_unroll_max_step&#39;, 1500), (&#39;unroll_explicit&#39;, 0)],None,4264713
-No: 12  GFLOPS: 0.00/260.13     result: Traceback (most recent call last):
+No: 11  GFLOPS: 258.99/258.99   result: MeasureResult(costs=(0.0008938525178571429,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.6819677352905273, timestamp=1663472072.175398)       [(&#39;tile_f&#39;, [-1, 8, 2, 1]), (&#39;tile_y&#39;, [-1, 7, 1, 1]), (&#39;tile_x&#39;, [-1, 1, 7, 1]), (&#39;tile_rc&#39;, [-1, 2, 1]), (&#39;tile_ry&#39;, [-1, 3, 1]), (&#39;tile_rx&#39;, [-1, 3, 1]), (&#39;auto_unroll_max_step&#39;, 1500), (&#39;unroll_explicit&#39;, 0)],None,4264713
+No: 12  GFLOPS: 0.00/258.99     result: Traceback (most recent call last):
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 588, in __call__
     func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 540, in _build_func_common
@@ -1684,7 +1684,7 @@ Traceback (most recent call last):
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 871, in verify_pass
     raise InstantiationError(&quot;Skipped because of invalid gpu kernel&quot;)
 tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [(&#39;tile_f&#39;, [-1, 128, 1, 2]), (&#39;tile_y&#39;, [-1, 1, 7, 1]), (&#39;tile_x&#39;, [-1, 1, 1, 1]), (&#39;tile_rc&#39;, [-1, 1, 256]), (&#39;tile_ry&#39;, [-1, 1, 1]), (&#39;tile_rx&#39;, [-1, 1, 1]), (&#39;auto_unroll_max_step&#39;, 0), (&#39;unroll_explicit&#39;, 0)],None,183542
-No: 13  GFLOPS: 0.00/260.13     result: Traceback (most recent call last):
+No: 13  GFLOPS: 0.00/258.99     result: Traceback (most recent call last):
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 588, in __call__
     func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 540, in _build_func_common
@@ -1807,7 +1807,7 @@ Traceback (most recent call last):
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 871, in verify_pass
     raise InstantiationError(&quot;Skipped because of invalid gpu kernel&quot;)
 tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [(&#39;tile_f&#39;, [-1, 4, 8, 8]), (&#39;tile_y&#39;, [-1, 1, 7, 1]), (&#39;tile_x&#39;, [-1, 1, 1, 1]), (&#39;tile_rc&#39;, [-1, 1, 64]), (&#39;tile_ry&#39;, [-1, 1, 1]), (&#39;tile_rx&#39;, [-1, 3, 1]), (&#39;auto_unroll_max_step&#39;, 512), (&#39;unroll_explicit&#39;, 0)],None,2482196
-No: 14  GFLOPS: 0.00/260.13     result: Traceback (most recent call last):
+No: 14  GFLOPS: 0.00/258.99     result: Traceback (most recent call last):
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 588, in __call__
     func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 540, in _build_func_common
@@ -1930,9 +1930,9 @@ Traceback (most recent call last):
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 871, in verify_pass
     raise InstantiationError(&quot;Skipped because of invalid gpu kernel&quot;)
 tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [(&#39;tile_f&#39;, [-1, 64, 1, 4]), (&#39;tile_y&#39;, [-1, 1, 7, 1]), (&#39;tile_x&#39;, [-1, 1, 1, 7]), (&#39;tile_rc&#39;, [-1, 4, 2]), (&#39;tile_ry&#39;, [-1, 1, 3]), (&#39;tile_rx&#39;, [-1, 1, 3]), (&#39;auto_unroll_max_step&#39;, 1500), (&#39;unroll_explicit&#39;, 1)],None,10306226
-No: 15  GFLOPS: 5.31/260.13     result: MeasureResult(costs=(0.043591854750000006,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.8104641437530518, timestamp=1663471072.469813)        [(&#39;tile_f&#39;, [-1, 2, 2, 8]), (&#39;tile_y&#39;, [-1, 1, 1, 7]), (&#39;tile_x&#39;, [-1, 7, 1, 1]), (&#39;tile_rc&#39;, [-1, 4, 8]), (&#39;tile_ry&#39;, [-1, 1, 1]), (&#39;tile_rx&#39;, [-1, 1, 1]), (&#39;auto_unroll_max_step&#39;, 0), (&#39;unroll_explicit&#39;, 1)],None,5330964
-No: 16  GFLOPS: 3.36/260.13     result: MeasureResult(costs=(0.06895347475,), error_no=MeasureErrorNo.NO_ERROR, all_cost=4.553717136383057, timestamp=1663471073.6994028)       [(&#39;tile_f&#39;, [-1, 8, 4, 4]), (&#39;tile_y&#39;, [-1, 1, 1, 7]), (&#39;tile_x&#39;, [-1, 1, 1, 7]), (&#39;tile_rc&#39;, [-1, 4, 1]), (&#39;tile_ry&#39;, [-1, 1, 3]), (&#39;tile_rx&#39;, [-1, 1, 1]), (&#39;auto_unroll_max_step&#39;, 512), (&#39;unroll_explicit&#39;, 0)],None,2140058
-No: 17  GFLOPS: 0.00/260.13     result: Traceback (most recent call last):
+No: 15  GFLOPS: 5.48/258.99     result: MeasureResult(costs=(0.042214929750000005,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.8499467372894287, timestamp=1663472076.7767456)       [(&#39;tile_f&#39;, [-1, 2, 2, 8]), (&#39;tile_y&#39;, [-1, 1, 1, 7]), (&#39;tile_x&#39;, [-1, 7, 1, 1]), (&#39;tile_rc&#39;, [-1, 4, 8]), (&#39;tile_ry&#39;, [-1, 1, 1]), (&#39;tile_rx&#39;, [-1, 1, 1]), (&#39;auto_unroll_max_step&#39;, 0), (&#39;unroll_explicit&#39;, 1)],None,5330964
+No: 16  GFLOPS: 3.36/258.99     result: MeasureResult(costs=(0.068974594,), error_no=MeasureErrorNo.NO_ERROR, all_cost=4.585432291030884, timestamp=1663472078.0168946) [(&#39;tile_f&#39;, [-1, 8, 4, 4]), (&#39;tile_y&#39;, [-1, 1, 1, 7]), (&#39;tile_x&#39;, [-1, 1, 1, 7]), (&#39;tile_rc&#39;, [-1, 4, 1]), (&#39;tile_ry&#39;, [-1, 1, 3]), (&#39;tile_rx&#39;, [-1, 1, 1]), (&#39;auto_unroll_max_step&#39;, 512), (&#39;unroll_explicit&#39;, 0)],None,2140058
+No: 17  GFLOPS: 0.00/258.99     result: Traceback (most recent call last):
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 142, in build
     res = future.result()
   File &quot;/usr/lib/python3.7/concurrent/futures/_base.py&quot;, line 435, in result
@@ -1950,8 +1950,8 @@ No: 17  GFLOPS: 0.00/260.13     result: Traceback (most recent call last):
 TimeoutError
 
         [(&#39;tile_f&#39;, [-1, 2, 2, 1]), (&#39;tile_y&#39;, [-1, 1, 7, 1]), (&#39;tile_x&#39;, [-1, 7, 1, 1]), (&#39;tile_rc&#39;, [-1, 4, 16]), (&#39;tile_ry&#39;, [-1, 3, 1]), (&#39;tile_rx&#39;, [-1, 1, 3]), (&#39;auto_unroll_max_step&#39;, 1500), (&#39;unroll_explicit&#39;, 1)],None,10195251
-No: 18  GFLOPS: 28.32/260.13    result: MeasureResult(costs=(0.008175491785714285,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.3032119274139404, timestamp=1663471084.760921)        [(&#39;tile_f&#39;, [-1, 4, 8, 4]), (&#39;tile_y&#39;, [-1, 1, 1, 1]), (&#39;tile_x&#39;, [-1, 1, 1, 1]), (&#39;tile_rc&#39;, [-1, 1, 4]), (&#39;tile_ry&#39;, [-1, 3, 1]), (&#39;tile_rx&#39;, [-1, 3, 1]), (&#39;auto_unroll_max_step&#39;, 0), (&#39;unroll_explicit&#39;, 1)],None,6068603
-No: 19  GFLOPS: 0.00/260.13     result: Traceback (most recent call last):
+No: 18  GFLOPS: 25.46/258.99    result: MeasureResult(costs=(0.009093943545454545,), error_no=MeasureErrorNo.NO_ERROR, all_cost=1.2622807025909424, timestamp=1663472089.016531)        [(&#39;tile_f&#39;, [-1, 4, 8, 4]), (&#39;tile_y&#39;, [-1, 1, 1, 1]), (&#39;tile_x&#39;, [-1, 1, 1, 1]), (&#39;tile_rc&#39;, [-1, 1, 4]), (&#39;tile_ry&#39;, [-1, 3, 1]), (&#39;tile_rx&#39;, [-1, 3, 1]), (&#39;auto_unroll_max_step&#39;, 0), (&#39;unroll_explicit&#39;, 1)],None,6068603
+No: 19  GFLOPS: 0.00/258.99     result: Traceback (most recent call last):
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 588, in __call__
     func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 540, in _build_func_common
@@ -2074,7 +2074,7 @@ Traceback (most recent call last):
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 871, in verify_pass
     raise InstantiationError(&quot;Skipped because of invalid gpu kernel&quot;)
 tvm.autotvm.task.space.InstantiationError: Skipped because of invalid gpu kernel        [(&#39;tile_f&#39;, [-1, 16, 4, 8]), (&#39;tile_y&#39;, [-1, 1, 7, 1]), (&#39;tile_x&#39;, [-1, 7, 1, 1]), (&#39;tile_rc&#39;, [-1, 4, 128]), (&#39;tile_ry&#39;, [-1, 1, 3]), (&#39;tile_rx&#39;, [-1, 1, 3]), (&#39;auto_unroll_max_step&#39;, 0), (&#39;unroll_explicit&#39;, 1)],None,6956993
-No: 20  GFLOPS: 0.00/260.13     result: Traceback (most recent call last):
+No: 20  GFLOPS: 0.00/258.99     result: Traceback (most recent call last):
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 588, in __call__
     func, arg_info = _build_func_common(measure_input, self.runtime, **kwargs)
   File &quot;/workspace/python/tvm/autotvm/measure/measure_methods.py&quot;, line 540, in _build_func_common
@@ -2237,7 +2237,7 @@ and measure running time.</p>
 Best config:
 [(&#39;tile_f&#39;, [-1, 8, 2, 1]), (&#39;tile_y&#39;, [-1, 7, 1, 1]), (&#39;tile_x&#39;, [-1, 1, 7, 1]), (&#39;tile_rc&#39;, [-1, 2, 1]), (&#39;tile_ry&#39;, [-1, 3, 1]), (&#39;tile_rx&#39;, [-1, 3, 1]), (&#39;auto_unroll_max_step&#39;, 1500), (&#39;unroll_explicit&#39;, 0)],None,4264713
 Finish loading 20 records
-Time cost of this operator: 0.001274
+Time cost of this operator: 0.001258
 </pre></div>
 </div>
 <div class="sphx-glr-footer sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-tune-with-autotvm-tune-conv2d-cuda-py">
diff --git a/docs/how_to/work_with_microtvm/micro_autotune.html b/docs/how_to/work_with_microtvm/micro_autotune.html
index e27e0fcb8..60a132e59 100644
--- a/docs/how_to/work_with_microtvm/micro_autotune.html
+++ b/docs/how_to/work_with_microtvm/micro_autotune.html
@@ -583,9 +583,9 @@ the tuned operator.</p>
 Node Name                                     Ops                                           Time(us)  Time(%)  Shape              Inputs  Outputs  Measurements(us)
 ---------                                     ---                                           --------  -------  -----              ------  -------  ----------------
 tvmgen_default_fused_nn_contrib_conv2d_NCHWc  tvmgen_default_fused_nn_contrib_conv2d_NCHWc  313.7     98.727   (1, 2, 10, 10, 3)  2       1        [313.7]
-tvmgen_default_fused_layout_transform_1       tvmgen_default_fused_layout_transform_1       3.063     0.964    (1, 6, 10, 10)     1       1        [3.063]
-tvmgen_default_fused_layout_transform         tvmgen_default_fused_layout_transform         0.983     0.309    (1, 1, 10, 10, 3)  1       1        [0.983]
-Total_time                                    -                                             317.746   -        -                  -       -        -
+tvmgen_default_fused_layout_transform_1       tvmgen_default_fused_layout_transform_1       3.072     0.967    (1, 6, 10, 10)     1       1        [3.072]
+tvmgen_default_fused_layout_transform         tvmgen_default_fused_layout_transform         0.972     0.306    (1, 1, 10, 10, 3)  1       1        [0.972]
+Total_time                                    -                                             317.744   -        -                  -       -        -
 </pre></div>
 </div>
 </div>
@@ -636,10 +636,10 @@ Total_time                                    -
 <div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>########## Build with Autotuning ##########
 Node Name                                     Ops                                           Time(us)  Time(%)  Shape              Inputs  Outputs  Measurements(us)
 ---------                                     ---                                           --------  -------  -----              ------  -------  ----------------
-tvmgen_default_fused_nn_contrib_conv2d_NCHWc  tvmgen_default_fused_nn_contrib_conv2d_NCHWc  81.938    96.755   (1, 6, 10, 10, 1)  2       1        [81.938]
-tvmgen_default_fused_layout_transform_1       tvmgen_default_fused_layout_transform_1       1.777     2.099    (1, 6, 10, 10)     1       1        [1.777]
-tvmgen_default_fused_layout_transform         tvmgen_default_fused_layout_transform         0.971     1.147    (1, 1, 10, 10, 3)  1       1        [0.971]
-Total_time                                    -                                             84.686    -        -                  -       -        -
+tvmgen_default_fused_nn_contrib_conv2d_NCHWc  tvmgen_default_fused_nn_contrib_conv2d_NCHWc  218.7     98.616   (1, 1, 10, 10, 6)  2       1        [218.7]
+tvmgen_default_fused_layout_transform_1       tvmgen_default_fused_layout_transform_1       2.22      1.001    (1, 6, 10, 10)     1       1        [2.22]
+tvmgen_default_fused_layout_transform         tvmgen_default_fused_layout_transform         0.849     0.383    (1, 3, 10, 10, 1)  1       1        [0.849]
+Total_time                                    -                                             221.769   -        -                  -       -        -
 </pre></div>
 </div>
 <div class="sphx-glr-footer sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-work-with-microtvm-micro-autotune-py">
diff --git a/docs/how_to/work_with_microtvm/micro_train.html b/docs/how_to/work_with_microtvm/micro_train.html
index 2ef24a21d..de12e4c70 100644
--- a/docs/how_to/work_with_microtvm/micro_train.html
+++ b/docs/how_to/work_with_microtvm/micro_train.html
@@ -516,7 +516,7 @@ take about <strong>2 minutes</strong> to download the Stanford Cars, while COCO
 <a href="https://docs.python.org/3/library/shutil.html#shutil.move" title="shutil.move" class="sphx-glr-backref-module-shutil sphx-glr-backref-type-py-function"><span class="n">shutil</span><span class="o">.</span><span class="n">move</span></a><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;</span><span class="si">{</span><a href="https://docs.python.org/3/library/stdtypes.html#str" title="builtins.str" class="sphx-glr-backref-module-builtins sphx-glr-backref-typ [...]
 </pre></div>
 </div>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>&#39;/tmp/tmp29e4vrgb/images/random&#39;
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>&#39;/tmp/tmp6lkx6c2o/images/random&#39;
 </pre></div>
 </div>
 </div>
@@ -576,8 +576,8 @@ objects to other stuff? We can display some examples from our datasets using <co
     <span class="n">plt</span><span class="o">.</span><span class="n">axis</span><span class="p">(</span><span class="s2">&quot;off&quot;</span><span class="p">)</span>
 </pre></div>
 </div>
-<img src="../../_images/sphx_glr_micro_train_001.png" srcset="../../_images/sphx_glr_micro_train_001.png" alt="[1.0, 0.0], [1.0, 0.0], [1.0, 0.0], [0.0, 1.0], [0.0, 1.0], [0.0, 1.0], [0.0, 1.0], [1.0, 0.0], [0.0, 1.0], [1.0, 0.0]" class = "sphx-glr-single-img"/><div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>/tmp/tmp29e4vrgb/images/target contains 8144 images
-/tmp/tmp29e4vrgb/images/random contains 5000 images
+<img src="../../_images/sphx_glr_micro_train_001.png" srcset="../../_images/sphx_glr_micro_train_001.png" alt="[1.0, 0.0], [1.0, 0.0], [1.0, 0.0], [0.0, 1.0], [0.0, 1.0], [0.0, 1.0], [0.0, 1.0], [1.0, 0.0], [0.0, 1.0], [1.0, 0.0]" class = "sphx-glr-single-img"/><div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>/tmp/tmp6lkx6c2o/images/target contains 8144 images
+/tmp/tmp6lkx6c2o/images/random contains 5000 images
 </pre></div>
 </div>
 </div>
@@ -689,13 +689,13 @@ the time on our validation set).</p>
 </pre></div>
 </div>
 <div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Epoch 1/3
-328/328 - 47s - loss: 0.2257 - accuracy: 0.9245 - val_loss: 0.1414 - val_accuracy: 0.9573 - 47s/epoch - 142ms/step
+328/328 - 47s - loss: 0.2045 - accuracy: 0.9274 - val_loss: 0.1374 - val_accuracy: 0.9581 - 47s/epoch - 143ms/step
 Epoch 2/3
-328/328 - 43s - loss: 0.1025 - accuracy: 0.9611 - val_loss: 0.1262 - val_accuracy: 0.9645 - 43s/epoch - 133ms/step
+328/328 - 44s - loss: 0.0973 - accuracy: 0.9636 - val_loss: 0.1150 - val_accuracy: 0.9660 - 44s/epoch - 133ms/step
 Epoch 3/3
-328/328 - 43s - loss: 0.0719 - accuracy: 0.9718 - val_loss: 0.1210 - val_accuracy: 0.9607 - 43s/epoch - 132ms/step
+328/328 - 43s - loss: 0.0651 - accuracy: 0.9781 - val_loss: 0.1138 - val_accuracy: 0.9641 - 43s/epoch - 132ms/step
 
-&lt;keras.callbacks.History object at 0x7f472191bb90&gt;
+&lt;keras.callbacks.History object at 0x7f0a7fc98b50&gt;
 </pre></div>
 </div>
 </div>
@@ -957,7 +957,7 @@ as intended.</p>
 <p>From here, we could modify the model to read live images from the camera - we have another
 Arduino tutorial for how to do that <a class="reference external" href="https://github.com/guberti/tvm-arduino-demos/tree/master/examples/person_detection">on GitHub</a>. Alternatively, we could also
 <a class="reference external" href="https://tvm.apache.org/docs/how_to/work_with_microtvm/micro_autotune.html">use TVM’s autotuning capabilities</a> to dramatically improve the model’s performance.</p>
-<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 4 minutes  32.163 seconds)</p>
+<p class="sphx-glr-timing"><strong>Total running time of the script:</strong> ( 4 minutes  23.590 seconds)</p>
 <div class="sphx-glr-footer sphx-glr-footer-example docutils container" id="sphx-glr-download-how-to-work-with-microtvm-micro-train-py">
 <div class="sphx-glr-download sphx-glr-download-python docutils container">
 <p><a class="reference download internal" download="" href="../../_downloads/b52cec46baf4f78d6bcd94cbe269c8a6/micro_train.py"><code class="xref download docutils literal notranslate"><span class="pre">Download</span> <span class="pre">Python</span> <span class="pre">source</span> <span class="pre">code:</span> <span class="pre">micro_train.py</span></code></a></p>
diff --git a/docs/how_to/work_with_microtvm/sg_execution_times.html b/docs/how_to/work_with_microtvm/sg_execution_times.html
index d9248f7ac..f7eb072af 100644
--- a/docs/how_to/work_with_microtvm/sg_execution_times.html
+++ b/docs/how_to/work_with_microtvm/sg_execution_times.html
@@ -327,7 +327,7 @@
             
   <div class="section" id="computation-times">
 <span id="sphx-glr-how-to-work-with-microtvm-sg-execution-times"></span><h1>Computation times<a class="headerlink" href="#computation-times" title="Permalink to this headline">¶</a></h1>
-<p><strong>05:26.298</strong> total execution time for <strong>how_to_work_with_microtvm</strong> files:</p>
+<p><strong>05:18.025</strong> total execution time for <strong>how_to_work_with_microtvm</strong> files:</p>
 <table class="docutils align-default">
 <colgroup>
 <col style="width: 83%" />
@@ -336,19 +336,19 @@
 </colgroup>
 <tbody>
 <tr class="row-odd"><td><p><a class="reference internal" href="micro_train.html#sphx-glr-how-to-work-with-microtvm-micro-train-py"><span class="std std-ref">Training Vision Models for microTVM on Arduino</span></a> (<code class="docutils literal notranslate"><span class="pre">micro_train.py</span></code>)</p></td>
-<td><p>04:32.163</p></td>
+<td><p>04:23.590</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="micro_autotune.html#sphx-glr-how-to-work-with-microtvm-micro-autotune-py"><span class="std std-ref">Autotuning with microTVM</span></a> (<code class="docutils literal notranslate"><span class="pre">micro_autotune.py</span></code>)</p></td>
-<td><p>00:42.803</p></td>
+<td><p>00:42.921</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-odd"><td><p><a class="reference internal" href="micro_aot.html#sphx-glr-how-to-work-with-microtvm-micro-aot-py"><span class="std std-ref">microTVM Host-Driven AoT</span></a> (<code class="docutils literal notranslate"><span class="pre">micro_aot.py</span></code>)</p></td>
-<td><p>00:07.932</p></td>
+<td><p>00:08.131</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="micro_tflite.html#sphx-glr-how-to-work-with-microtvm-micro-tflite-py"><span class="std std-ref">microTVM with TFLite Models</span></a> (<code class="docutils literal notranslate"><span class="pre">micro_tflite.py</span></code>)</p></td>
-<td><p>00:03.397</p></td>
+<td><p>00:03.381</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-odd"><td><p><a class="reference internal" href="micro_ethosu.html#sphx-glr-how-to-work-with-microtvm-micro-ethosu-py"><span class="std std-ref">Running TVM on bare metal Arm(R) Cortex(R)-M55 CPU and Ethos(TM)-U55 NPU with CMSIS-NN</span></a> (<code class="docutils literal notranslate"><span class="pre">micro_ethosu.py</span></code>)</p></td>
diff --git a/docs/how_to/work_with_relay/sg_execution_times.html b/docs/how_to/work_with_relay/sg_execution_times.html
index 94f77cb28..a5a4dae25 100644
--- a/docs/how_to/work_with_relay/sg_execution_times.html
+++ b/docs/how_to/work_with_relay/sg_execution_times.html
@@ -327,7 +327,7 @@
             
   <div class="section" id="computation-times">
 <span id="sphx-glr-how-to-work-with-relay-sg-execution-times"></span><h1>Computation times<a class="headerlink" href="#computation-times" title="Permalink to this headline">¶</a></h1>
-<p><strong>00:43.321</strong> total execution time for <strong>how_to_work_with_relay</strong> files:</p>
+<p><strong>00:43.343</strong> total execution time for <strong>how_to_work_with_relay</strong> files:</p>
 <table class="docutils align-default">
 <colgroup>
 <col style="width: 84%" />
@@ -336,15 +336,15 @@
 </colgroup>
 <tbody>
 <tr class="row-odd"><td><p><a class="reference internal" href="using_pipeline_executor.html#sphx-glr-how-to-work-with-relay-using-pipeline-executor-py"><span class="std std-ref">Using Pipeline Executor in Relay</span></a> (<code class="docutils literal notranslate"><span class="pre">using_pipeline_executor.py</span></code>)</p></td>
-<td><p>00:31.757</p></td>
+<td><p>00:31.820</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="using_external_lib.html#sphx-glr-how-to-work-with-relay-using-external-lib-py"><span class="std std-ref">Using External Libraries in Relay</span></a> (<code class="docutils literal notranslate"><span class="pre">using_external_lib.py</span></code>)</p></td>
-<td><p>00:09.962</p></td>
+<td><p>00:09.836</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-odd"><td><p><a class="reference internal" href="build_gcn.html#sphx-glr-how-to-work-with-relay-build-gcn-py"><span class="std std-ref">Building a Graph Convolutional Network</span></a> (<code class="docutils literal notranslate"><span class="pre">build_gcn.py</span></code>)</p></td>
-<td><p>00:01.594</p></td>
+<td><p>00:01.680</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="using_relay_viz.html#sphx-glr-how-to-work-with-relay-using-relay-viz-py"><span class="std std-ref">Use Relay Visualizer to Visualize Relay</span></a> (<code class="docutils literal notranslate"><span class="pre">using_relay_viz.py</span></code>)</p></td>
diff --git a/docs/how_to/work_with_schedules/intrin_math.html b/docs/how_to/work_with_schedules/intrin_math.html
index 330ac7516..e8ee70730 100644
--- a/docs/how_to/work_with_schedules/intrin_math.html
+++ b/docs/how_to/work_with_schedules/intrin_math.html
@@ -522,7 +522,7 @@ The following example customizes CUDA lowering rule for <code class="code docuti
 <a href="../../reference/api/python/ir.html#tvm.ir.register_intrin_lowering" title="tvm.ir.register_intrin_lowering" class="sphx-glr-backref-module-tvm-ir sphx-glr-backref-type-py-function"><span class="n">register_intrin_lowering</span></a><span class="p">(</span><span class="s2">&quot;tir.exp&quot;</span><span class="p">,</span> <span class="n">target</span><span class="o">=</span><span class="s2">&quot;cuda&quot;</span><span class="p">,</span> <span class="n">f</span><span class="o">= [...]
 </pre></div>
 </div>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>&lt;function my_cuda_math_rule at 0x7f469a5749e0&gt;
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>&lt;function my_cuda_math_rule at 0x7f0a231c99e0&gt;
 </pre></div>
 </div>
 <p>Register the rule to TVM with override option to override existing rule.
diff --git a/docs/how_to/work_with_schedules/sg_execution_times.html b/docs/how_to/work_with_schedules/sg_execution_times.html
index 8a6e6427a..0cc040269 100644
--- a/docs/how_to/work_with_schedules/sg_execution_times.html
+++ b/docs/how_to/work_with_schedules/sg_execution_times.html
@@ -327,7 +327,7 @@
             
   <div class="section" id="computation-times">
 <span id="sphx-glr-how-to-work-with-schedules-sg-execution-times"></span><h1>Computation times<a class="headerlink" href="#computation-times" title="Permalink to this headline">¶</a></h1>
-<p><strong>00:07.937</strong> total execution time for <strong>how_to_work_with_schedules</strong> files:</p>
+<p><strong>00:07.499</strong> total execution time for <strong>how_to_work_with_schedules</strong> files:</p>
 <table class="docutils align-default">
 <colgroup>
 <col style="width: 83%" />
@@ -336,11 +336,11 @@
 </colgroup>
 <tbody>
 <tr class="row-odd"><td><p><a class="reference internal" href="intrin_math.html#sphx-glr-how-to-work-with-schedules-intrin-math-py"><span class="std std-ref">Intrinsics and Math Functions</span></a> (<code class="docutils literal notranslate"><span class="pre">intrin_math.py</span></code>)</p></td>
-<td><p>00:05.684</p></td>
+<td><p>00:05.280</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="tensorize.html#sphx-glr-how-to-work-with-schedules-tensorize-py"><span class="std std-ref">Use Tensorize to Leverage Hardware Intrinsics</span></a> (<code class="docutils literal notranslate"><span class="pre">tensorize.py</span></code>)</p></td>
-<td><p>00:00.991</p></td>
+<td><p>00:00.952</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-odd"><td><p><a class="reference internal" href="reduction.html#sphx-glr-how-to-work-with-schedules-reduction-py"><span class="std std-ref">Reduction</span></a> (<code class="docutils literal notranslate"><span class="pre">reduction.py</span></code>)</p></td>
@@ -348,15 +348,15 @@
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="scan.html#sphx-glr-how-to-work-with-schedules-scan-py"><span class="std std-ref">Scan and Recurrent Kernel</span></a> (<code class="docutils literal notranslate"><span class="pre">scan.py</span></code>)</p></td>
-<td><p>00:00.529</p></td>
+<td><p>00:00.532</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-odd"><td><p><a class="reference internal" href="extern_op.html#sphx-glr-how-to-work-with-schedules-extern-op-py"><span class="std std-ref">External Tensor Functions</span></a> (<code class="docutils literal notranslate"><span class="pre">extern_op.py</span></code>)</p></td>
-<td><p>00:00.100</p></td>
+<td><p>00:00.101</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="schedule_primitives.html#sphx-glr-how-to-work-with-schedules-schedule-primitives-py"><span class="std std-ref">Schedule Primitives in TVM</span></a> (<code class="docutils literal notranslate"><span class="pre">schedule_primitives.py</span></code>)</p></td>
-<td><p>00:00.041</p></td>
+<td><p>00:00.042</p></td>
 <td><p>0.0 MB</p></td>
 </tr>
 <tr class="row-odd"><td><p><a class="reference internal" href="tedd.html#sphx-glr-how-to-work-with-schedules-tedd-py"><span class="std std-ref">Use Tensor Expression Debug Display (TEDD) for Visualization</span></a> (<code class="docutils literal notranslate"><span class="pre">tedd.py</span></code>)</p></td>
diff --git a/docs/how_to/work_with_schedules/tensorize.html b/docs/how_to/work_with_schedules/tensorize.html
index a10bc4e4e..833da644b 100644
--- a/docs/how_to/work_with_schedules/tensorize.html
+++ b/docs/how_to/work_with_schedules/tensorize.html
@@ -577,7 +577,7 @@ The importing needs to happen before the tensorized GEMV being executed.</p>
              C: Buffer(C_2: Pointer(float32), float32, [524288], [])}
   buffer_map = {A_1: A, B_1: B, C_1: C}
   preflattened_buffer_map = {A_1: A_3: Buffer(A_2, float32, [1024, 64], []), B_1: B_3: Buffer(B_2, float32, [512, 64], []), C_1: C_3: Buffer(C_2, float32, [1024, 512], [])} {
-  attr [IterVar(i: int32, (nullptr), &quot;DataPar&quot;, &quot;&quot;)] &quot;pragma_import_llvm&quot; = &quot;; ModuleID = &#39;/tmp/tmptj4j9rlc/input0.cc&#39;\nsource_filename = \&quot;/tmp/tmptj4j9rlc/input0.cc\&quot;\ntarget datalayout = \&quot;e-m:e-i64:64-f80:128-n8:16:32:64-S128\&quot;\ntarget triple = \&quot;x86_64-pc-linux-gnu\&quot;\n\n; Function Attrs: noinline nounwind optnone uwtable\ndefine dso_local i32 @gemv_update(float*, float*, float*, i32, i32, i32) #0 {\n  %7 = allo [...]
+  attr [IterVar(i: int32, (nullptr), &quot;DataPar&quot;, &quot;&quot;)] &quot;pragma_import_llvm&quot; = &quot;; ModuleID = &#39;/tmp/tmp8cc6zqi1/input0.cc&#39;\nsource_filename = \&quot;/tmp/tmp8cc6zqi1/input0.cc\&quot;\ntarget datalayout = \&quot;e-m:e-i64:64-f80:128-n8:16:32:64-S128\&quot;\ntarget triple = \&quot;x86_64-pc-linux-gnu\&quot;\n\n; Function Attrs: noinline nounwind optnone uwtable\ndefine dso_local i32 @gemv_update(float*, float*, float*, i32, i32, i32) #0 {\n  %7 = allo [...]
   for (i, 0, 1024) {
     for (j.outer: int32, 0, 32) {
       @tir.call_extern(&quot;gemv_update&quot;, @tir.tvm_access_ptr(@tir.type_annotation(, dtype=float32), C_2, ((i*512) + (j.outer*16)), 16, 2, dtype=handle), @tir.tvm_access_ptr(@tir.type_annotation(, dtype=float32), A_2, (i*64), 64, 1, dtype=handle), @tir.tvm_access_ptr(@tir.type_annotation(, dtype=float32), B_2, (j.outer*1024), 1024, 1, dtype=handle), 16, 64, 64, dtype=int32)
diff --git a/docs/reference/api/doxygen/annotated.html b/docs/reference/api/doxygen/annotated.html
index b02b87a53..4aed48241 100644
--- a/docs/reference/api/doxygen/annotated.html
+++ b/docs/reference/api/doxygen/annotated.html
@@ -687,17 +687,24 @@ $(function() {
 <tr id="row_1_8_0_1_0_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1ir_1_1IRModuleFrame.html" target="_self">IRModuleFrame</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1ir_1_1IRModuleFrameNode.html" title="A frame that represents the IRModule frame with f [...]
 <tr id="row_1_8_0_1_1_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1ir_1_1IRModuleFrameNode.html" target="_self">IRModuleFrameNode</a></td><td class="desc">A frame that represents the <a class="el" href="classtvm_1_1IRModule.html" title="Managed reference class to IRModuleNode. ">IRModule</a> frame with functio [...]
 <tr id="row_1_8_0_2_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span id="arr_1_8_0_2_" class="arrow" onclick="toggleFolder('1_8_0_2_')">&#9658;</span><span class="icona"><span class="icon">N</span></span><a class="el" href="namespacetvm_1_1script_1_1ir__builder_1_1tir.html" target="_self">tir</a></td><td class="desc"></td></tr>
-<tr id="row_1_8_0_2_0_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1AssertFrameNode.html" target="_self">AssertFrameNode</a></td><td class="desc">A frame that represents the assert statement. Proceeds if the condition is true, otherwise aborts with the message </td></tr>
-<tr id="row_1_8_0_2_1_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1BlockFrame.html" target="_self">BlockFrame</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1BlockFrameNode.html" title="A frame that represents the block. ">BlockFrameNode</a>  [...]
-<tr id="row_1_8_0_2_2_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1BlockFrameNode.html" target="_self">BlockFrameNode</a></td><td class="desc">A frame that represents the block </td></tr>
-<tr id="row_1_8_0_2_3_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1BlockInitFrame.html" target="_self">BlockInitFrame</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1BlockInitFrameNode.html" title="A frame that represents the block initializa [...]
-<tr id="row_1_8_0_2_4_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1BlockInitFrameNode.html" target="_self">BlockInitFrameNode</a></td><td class="desc">A frame that represents the block initialization statment </td></tr>
-<tr id="row_1_8_0_2_5_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1ForFrame.html" target="_self">ForFrame</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1ForFrameNode.html" title="A frame that represents the for loop. ">ForFrameNode</a> </td></tr>
-<tr id="row_1_8_0_2_6_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1ForFrameNode.html" target="_self">ForFrameNode</a></td><td class="desc">A frame that represents the for loop </td></tr>
-<tr id="row_1_8_0_2_7_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1PrimFuncFrame.html" target="_self">PrimFuncFrame</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1PrimFuncFrameNode.html" title="A frame that represents the PrimFunc containing [...]
-<tr id="row_1_8_0_2_8_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1PrimFuncFrameNode.html" target="_self">PrimFuncFrameNode</a></td><td class="desc">A frame that represents the PrimFunc containing TIR statements </td></tr>
-<tr id="row_1_8_0_2_9_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame.html" target="_self">TIRFrame</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrameNode.html" title="A base frame that represents the TIR fame with body of stateme [...]
-<tr id="row_1_8_0_2_10_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrameNode.html" target="_self">TIRFrameNode</a></td><td class="desc">A base frame that represents the TIR fame with body of statements </td></tr>
+<tr id="row_1_8_0_2_0_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1AssertFrame.html" target="_self">AssertFrame</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1AssertFrameNode.html" title="A frame that represents the assert statement. Proceed [...]
+<tr id="row_1_8_0_2_1_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1AssertFrameNode.html" target="_self">AssertFrameNode</a></td><td class="desc">A frame that represents the assert statement. Proceeds if the condition is true, otherwise aborts with the message </td></tr>
+<tr id="row_1_8_0_2_2_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1BlockFrame.html" target="_self">BlockFrame</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1BlockFrameNode.html" title="A frame that represents the block. ">BlockFrameNode</a>  [...]
+<tr id="row_1_8_0_2_3_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1BlockFrameNode.html" target="_self">BlockFrameNode</a></td><td class="desc">A frame that represents the block </td></tr>
+<tr id="row_1_8_0_2_4_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1BlockInitFrame.html" target="_self">BlockInitFrame</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1BlockInitFrameNode.html" title="A frame that represents the block initializa [...]
+<tr id="row_1_8_0_2_5_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1BlockInitFrameNode.html" target="_self">BlockInitFrameNode</a></td><td class="desc">A frame that represents the block initialization statment </td></tr>
+<tr id="row_1_8_0_2_6_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1ForFrame.html" target="_self">ForFrame</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1ForFrameNode.html" title="A frame that represents the for loop. ">ForFrameNode</a> </td></tr>
+<tr id="row_1_8_0_2_7_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1ForFrameNode.html" target="_self">ForFrameNode</a></td><td class="desc">A frame that represents the for loop </td></tr>
+<tr id="row_1_8_0_2_8_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrame.html" target="_self">LaunchThreadFrame</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrameNode.html" title="The LaunchThreadFrameNode. ">Launch [...]
+<tr id="row_1_8_0_2_9_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrameNode.html" target="_self">LaunchThreadFrameNode</a></td><td class="desc">The <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrameNode.html" title="The LaunchThreadFrameNode. ">LaunchThreadFra [...]
+<tr id="row_1_8_0_2_10_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LetFrame.html" target="_self">LetFrame</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LetFrameNode.html" title="A frame represents the let binding expression, which binds a  [...]
+<tr id="row_1_8_0_2_11_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LetFrameNode.html" target="_self">LetFrameNode</a></td><td class="desc">A frame represents the let binding expression, which binds a var </td></tr>
+<tr id="row_1_8_0_2_12_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1PrimFuncFrame.html" target="_self">PrimFuncFrame</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1PrimFuncFrameNode.html" title="A frame that represents the PrimFunc containin [...]
+<tr id="row_1_8_0_2_13_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1PrimFuncFrameNode.html" target="_self">PrimFuncFrameNode</a></td><td class="desc">A frame that represents the PrimFunc containing TIR statements </td></tr>
+<tr id="row_1_8_0_2_14_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1RealizeFrame.html" target="_self">RealizeFrame</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1RealizeFrameNode.html" title="A frame that represents realization. ">RealizeFra [...]
+<tr id="row_1_8_0_2_15_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1RealizeFrameNode.html" target="_self">RealizeFrameNode</a></td><td class="desc">A frame that represents realization </td></tr>
+<tr id="row_1_8_0_2_16_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame.html" target="_self">TIRFrame</a></td><td class="desc">Managed reference to <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrameNode.html" title="A base frame that represents the TIR fame with body of statem [...]
+<tr id="row_1_8_0_2_17_" class="even" style="display:none;"><td class="entry"><span style="width:80px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrameNode.html" target="_self">TIRFrameNode</a></td><td class="desc">A base frame that represents the TIR fame with body of statements </td></tr>
 <tr id="row_1_8_0_3_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilder.html" target="_self">IRBuilder</a></td><td class="desc">Managed reference to an <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderNode.html" title="A dialect-agnostic IRBuilder that constructs any IR of TVM. An idiomatic [...]
 <tr id="row_1_8_0_4_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html" target="_self">IRBuilderFrame</a></td><td class="desc">Managed reference to an <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrameNode.html">IRBuilderFrameNode</a> </td></tr>
 <tr id="row_1_8_0_5_" class="even" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrameNode.html" target="_self">IRBuilderFrameNode</a></td><td class="desc"></td></tr>
diff --git a/docs/reference/api/doxygen/classes.html b/docs/reference/api/doxygen/classes.html
index 49b5eb0e0..541c7b073 100644
--- a/docs/reference/api/doxygen/classes.html
+++ b/docs/reference/api/doxygen/classes.html
@@ -65,256 +65,257 @@ $(function() {
 <div class="qindex"><a class="qindex" href="#letter_a">a</a>&#160;|&#160;<a class="qindex" href="#letter_b">b</a>&#160;|&#160;<a class="qindex" href="#letter_c">c</a>&#160;|&#160;<a class="qindex" href="#letter_d">d</a>&#160;|&#160;<a class="qindex" href="#letter_e">e</a>&#160;|&#160;<a class="qindex" href="#letter_f">f</a>&#160;|&#160;<a class="qindex" href="#letter_g">g</a>&#160;|&#160;<a class="qindex" href="#letter_h">h</a>&#160;|&#160;<a class="qindex" href="#letter_i">i</a>&#160;|& [...]
 <table class="classindex">
 <tr><td rowspan="2" valign="bottom"><a name="letter_a"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;a&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1CorrelationAttrs.html">CorrelationAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1IRModuleNode.html">IRModuleNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1Postproc.html">Postproc</a> (<a class="el" href="namespacetvm_1_1meta__sch [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1CostModel.html">CostModel</a> (<a class="el" href="namespacetvm_1_1meta__schedule.html">tvm::meta_schedule</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1detail_1_1is__specialized.html">is_specialized</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1PostprocNode.html">PostprocNod [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1AccessAnalyzer.html">AccessAnalyzer</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1CostModel.html">CostModel</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1detail_1_1is__specia [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1AccessAnalyzerNode.html">AccessAnalyzerNode</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1CostModelNode.html">CostModelNode</a> (<a class="el" href="namespacetvm_1_1meta__schedule.html">tvm::meta_schedule</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_ [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1AdaptivePool1DAttrs.html">AdaptivePool1DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1CostModelNode.html">CostModelNode</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1Map_1_1iterator.html [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1AdaptivePool2DAttrs.html">AdaptivePool2DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1profiling_1_1CountNode.html">CountNode</a> (<a class="el" href="namespacetvm_1_1runtime_1_1profiling.html">tvm::runtime::profiling</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1MapNode_1_1ite [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1AdaptivePool3DAttrs.html">AdaptivePool3DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1CropAndResizeAttrs.html">CropAndResizeAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1Iterator.html">Iterator</a> (< [...]
+</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1CorrelationAttrs.html">CorrelationAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1detail_1_1is__specialized.html">is_specialized</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1PoolInfoProperties.html">PoolInfoProperties</a> (<a class= [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1CostModel.html">CostModel</a> (<a class="el" href="namespacetvm_1_1meta__schedule.html">tvm::meta_schedule</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1detail_1_1is__specialized_3_01Container_3_01Args_8_8_8_01_4_00_01Container_01_4.html">is_specialized&lt; Container&lt; Args... &gt;, Container &gt;</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;< [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1AccessAnalyzer.html">AccessAnalyzer</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1CostModel.html">CostModel</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1IterAdapte [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1AccessAnalyzerNode.html">AccessAnalyzerNode</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1CostModelNode.html">CostModelNode</a> (<a class="el" href="namespacetvm_1_1meta__schedule.html">tvm::meta_schedule</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_ [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1AdaptivePool1DAttrs.html">AdaptivePool1DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1CostModelNode.html">CostModelNode</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1Map_1_1iterator.html [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1AdaptivePool2DAttrs.html">AdaptivePool2DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1profiling_1_1CountNode.html">CountNode</a> (<a class="el" href="namespacetvm_1_1runtime_1_1profiling.html">tvm::runtime::profiling</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1Iterat [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1AdaptivePool3DAttrs.html">AdaptivePool3DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1CropAndResizeAttrs.html">CropAndResizeAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1support_1_1Span_1_1iterator__base.html">Span::ite [...]
 <tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Add.html">Add</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_d"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;d&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="classtvm_1_1support_1_1Span_1_1iterator__base.html">Span::iterator_base</a> (<a class="el" href="namespacetvm_1_1support.html">tvm::support</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1PreloadMeasuredStatesNode.html">PreloadMeasuredStatesNode</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1 [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1AddNode.html">AddNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1IteratorNode.html">IteratorNode</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1PReluAttrs.html">PReluAttrs</a> (<a class="el" href="n [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1ADT.html">ADT</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1Database.html">Database</a> (<a class="el" href="namespacetvm_1_1meta__schedule.html">tvm::meta_schedule</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1auto__scheduler_1_1AttachMapNode_1_1IterKeyHash.html">AttachMapNode::I [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1ADTObj.html">ADTObj</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1DatabaseNode.html">DatabaseNode</a> (<a class="el" href="namespacetvm_1_1meta__schedule.html">tvm::meta_schedule</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IterMapExpr.html">IterMapExpr</a> (<a class="el" [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1AffineGridAttrs.html">AffineGridAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1DataProducer.html">DataProducer</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IterMapExprNode.html">IterMapExprNode</a> (<a class="el" href="name [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1AffineType.html">AffineType</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1DataProducerNode.html">DataProducerNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IterMapResult.html">IterMapResult</a> (<a class="el" href="namespacetvm_1_1arith.html">tvm::ari [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1AffineTypeNode.html">AffineTypeNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1DataType.html">DataType</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IterMapResultNode.html">IterMapResultNode</a> (<a class="el" href="namespacetvm_1_1arith.ht [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1AllClassNonMaximumSuppressionAttrs.html">AllClassNonMaximumSuppressionAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1DataTypePattern.html">DataTypePattern</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IterMark.html">It [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Allocate.html">Allocate</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1DataTypePatternNode.html">DataTypePatternNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IterMarkNode.html">IterMarkNode</a> (<a class="el" href="namespacetv [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1AllocateConst.html">AllocateConst</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1DebugAttrs.html">DebugAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IterSplitExpr.html">IterSplitExpr</a> (<a class="el" href="namespacetvm_1_1 [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1AllocateConstNode.html">AllocateConstNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1DeclBuffer.html">DeclBuffer</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IterSplitExprNode.html">IterSplitExprNode</a> (<a class="el" href="namespa [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1usmp_1_1AllocatedPoolInfo.html">AllocatedPoolInfo</a> (<a class="el" href="namespacetvm_1_1tir_1_1usmp.html">tvm::tir::usmp</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1DeclBufferNode.html">DeclBufferNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IterSumExpr.html">IterSumExpr</a> (<a class= [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1tir_1_1usmp_1_1AllocatedPoolInfoNode.html">AllocatedPoolInfoNode</a> (<a class="el" href="namespacetvm_1_1tir_1_1usmp.html">tvm::tir::usmp</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1DeformableConv2DAttrs.html">DeformableConv2DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IterSumExprNod [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1AllocateNode.html">AllocateNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1DenseAttrs.html">DenseAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1IterVar.html">IterVar</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::t [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1vm_1_1Allocator.html">Allocator</a> (<a class="el" href="namespacetvm_1_1runtime_1_1vm.html">tvm::runtime::vm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1DenseMapNode.html">DenseMapNode</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1IterVarAttr.html">IterVarAttr</a> (<a class="el"  [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1AllocStorageAttrs.html">AllocStorageAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1DensePackAttrs.html">DensePackAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1IterVarAttrNode.html">IterVarAttrNode</a> (<a class="el [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1AllocTensorAttrs.html">AllocTensorAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Dependency.html">Dependency</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1IterVarNode.html">IterVarNode</a> (<a class="el" href="namespacetvm_1_1 [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1relay_1_1AltPattern.html">AltPattern</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1DependencyNode.html">DependencyNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1IterVarRelation.html">IterVarRelation</a> (<a class="el" href="namespacetvm_1 [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1relay_1_1AltPatternNode.html">AltPatternNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1qnn_1_1DequantizeAttrs.html">DequantizeAttrs</a> (<a class="el" href="namespacetvm_1_1relay_1_1qnn.html">tvm::relay::qnn</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1IterVarRelationNode.html">IterVarRelation [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1arith_1_1Analyzer.html">Analyzer</a> (<a class="el" href="namespacetvm_1_1arith.html">tvm::arith</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1DeviceAPI.html">DeviceAPI</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_l"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160 [...]
-</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1ProgramBuilder.html">ProgramBuilder</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1StringImm.html">StringImm</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1And.html">And</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1DeviceCopyAttrs.html">DeviceCopyAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1ProgramBuilderNode.html">ProgramBuilderNode</a> (<a class="el" href="namesp [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1AndNode.html">AndNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1profiling_1_1DeviceWrapper.html">DeviceWrapper</a> (<a class="el" href="namespacetvm_1_1runtime_1_1profiling.html">tvm::runtime::profiling</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1L2NormalizeAttrs.html">L2NormalizeAttr [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1AnnotationStep.html">AnnotationStep</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1runtime_1_1profiling_1_1DeviceWrapperNode.html">DeviceWrapperNode</a> (<a class="el" href="namespacetvm_1_1runtime_1_1profiling.html">tvm::runtime::profiling</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="cl [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1AnnotationStepNode.html">AnnotationStepNode</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1DFPattern.html">DFPattern</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1LambdaDocNode.html">L [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Any.html">Any</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1DFPatternCallback.html">DFPatternCallback</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1LayerNormAttrs.html">LayerNormAttrs</a> (<a class="el" href="namespacetvm_1_1rela [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1AnyNode.html">AnyNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1DFPatternCallbackNode.html">DFPatternCallbackNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Layout.html">Layout</a> (<a class="el" href="namespacetvm_1_1tir.htm [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1ArangeAttrs.html">ArangeAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1DFPatternFunctor.html">DFPatternFunctor</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1LayoutAxis.html">LayoutAxis</a> (<a class="el" href="namespacet [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1ArgInfo.html">ArgInfo</a> (<a class="el" href="namespacetvm_1_1meta__schedule.html">tvm::meta_schedule</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1DFPatternFunctor_3_01R_07const_01DFPattern_01_6n_00_01Args_8_8_8_08_4.html">DFPatternFunctor&lt; R(const DFPattern &amp;n, Args...)&gt;</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td va [...]
+</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1IteratorNode.html">IteratorNode</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1PrefetchNode.html">PrefetchNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Stmt.html">Stmt</a> (<a class="el" href="names [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1AddNode.html">AddNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1auto__scheduler_1_1AttachMapNode_1_1IterKeyHash.html">AttachMapNode::IterKeyHash</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1PreloadMeasure [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1ADT.html">ADT</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1Database.html">Database</a> (<a class="el" href="namespacetvm_1_1meta__schedule.html">tvm::meta_schedule</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IterMapExpr.html">IterMapExpr</a> (<a class="el" href="namespa [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1ADTObj.html">ADTObj</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1DatabaseNode.html">DatabaseNode</a> (<a class="el" href="namespacetvm_1_1meta__schedule.html">tvm::meta_schedule</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IterMapExprNode.html">IterMapExprNode</a> (<a cl [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1AffineGridAttrs.html">AffineGridAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1DataProducer.html">DataProducer</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IterMapResult.html">IterMapResult</a> (<a class="el" href="namespac [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1AffineType.html">AffineType</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1DataProducerNode.html">DataProducerNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IterMapResultNode.html">IterMapResultNode</a> (<a class="el" href="namespacetvm_1_1arith.html"> [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1AffineTypeNode.html">AffineTypeNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1DataType.html">DataType</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IterMark.html">IterMark</a> (<a class="el" href="namespacetvm_1_1arith.html">tvm::arith</a> [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1AllClassNonMaximumSuppressionAttrs.html">AllClassNonMaximumSuppressionAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1DataTypePattern.html">DataTypePattern</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IterMarkNode.html [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Allocate.html">Allocate</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1DataTypePatternNode.html">DataTypePatternNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IterSplitExpr.html">IterSplitExpr</a> (<a class="el" href="namespace [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1AllocateConst.html">AllocateConst</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1DebugAttrs.html">DebugAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IterSplitExprNode.html">IterSplitExprNode</a> (<a class="el" href="namespac [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1AllocateConstNode.html">AllocateConstNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1DeclBuffer.html">DeclBuffer</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IterSumExpr.html">IterSumExpr</a> (<a class="el" href="namespacetvm_1_1ari [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1usmp_1_1AllocatedPoolInfo.html">AllocatedPoolInfo</a> (<a class="el" href="namespacetvm_1_1tir_1_1usmp.html">tvm::tir::usmp</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1DeclBufferNode.html">DeclBufferNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IterSumExprNode.html">IterSumExprNode</a> (< [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1tir_1_1usmp_1_1AllocatedPoolInfoNode.html">AllocatedPoolInfoNode</a> (<a class="el" href="namespacetvm_1_1tir_1_1usmp.html">tvm::tir::usmp</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1DeformableConv2DAttrs.html">DeformableConv2DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1IterVar.html">It [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1AllocateNode.html">AllocateNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1DenseAttrs.html">DenseAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1IterVarAttr.html">IterVarAttr</a> (<a class="el" href="namespacetvm_1_1te.html"> [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1vm_1_1Allocator.html">Allocator</a> (<a class="el" href="namespacetvm_1_1runtime_1_1vm.html">tvm::runtime::vm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1DenseMapNode.html">DenseMapNode</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1IterVarAttrNode.html">IterVarAttrNode</a> (<a cla [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1AllocStorageAttrs.html">AllocStorageAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1DensePackAttrs.html">DensePackAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1IterVarNode.html">IterVarNode</a> (<a class="el" href= [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1AllocTensorAttrs.html">AllocTensorAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Dependency.html">Dependency</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1IterVarRelation.html">IterVarRelation</a> (<a class="el" href="namespace [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1relay_1_1AltPattern.html">AltPattern</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1DependencyNode.html">DependencyNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1IterVarRelationNode.html">IterVarRelationNode</a> (<a class="el" href="namesp [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1relay_1_1AltPatternNode.html">AltPatternNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1qnn_1_1DequantizeAttrs.html">DequantizeAttrs</a> (<a class="el" href="namespacetvm_1_1relay_1_1qnn.html">tvm::relay::qnn</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_l"></a><table border="0" cellspacing="0" cellpad [...]
+</td><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1Profiler.html">Profiler</a> (<a class="el" href="namespacetvm_1_1meta__schedule.html">tvm::meta_schedule</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Store.html">Store</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="classtvm_1_1arith_1_1Analyzer.html">Analyzer</a> (<a class="el" href="namespacetvm_1_1arith.html">tvm::arith</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1DeviceAPI.html">DeviceAPI</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1profiling_1_1Profiler.html">Profiler</a> (<a class="el" href="namespacetvm [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1And.html">And</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1DeviceCopyAttrs.html">DeviceCopyAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1L2NormalizeAttrs.html">L2NormalizeAttrs</a> (<a class="el" href="namespacetvm_1_1rel [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1AndNode.html">AndNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1profiling_1_1DeviceWrapper.html">DeviceWrapper</a> (<a class="el" href="namespacetvm_1_1runtime_1_1profiling.html">tvm::runtime::profiling</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1LambdaDoc.html">LambdaDoc</ [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1AnnotationStep.html">AnnotationStep</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1runtime_1_1profiling_1_1DeviceWrapperNode.html">DeviceWrapperNode</a> (<a class="el" href="namespacetvm_1_1runtime_1_1profiling.html">tvm::runtime::profiling</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="cl [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1AnnotationStepNode.html">AnnotationStepNode</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1DFPattern.html">DFPattern</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThre [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Any.html">Any</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1DFPatternCallback.html">DFPatternCallback</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrameNode.html">LaunchThreadFrameNode</a> (<a c [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1AnyNode.html">AnyNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1DFPatternCallbackNode.html">DFPatternCallbackNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1LayerNormAttrs.html">LayerNormAttrs</a> (<a class="el" href="name [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1ArangeAttrs.html">ArangeAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1DFPatternFunctor.html">DFPatternFunctor</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Layout.html">Layout</a> (<a class="el" href="namespacetvm_1_1ti [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1ArgInfo.html">ArgInfo</a> (<a class="el" href="namespacetvm_1_1meta__schedule.html">tvm::meta_schedule</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1DFPatternFunctor_3_01R_07const_01DFPattern_01_6n_00_01Args_8_8_8_08_4.html">DFPatternFunctor&lt; R(const DFPattern &amp;n, Args...)&gt;</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td va [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1ArgInfoNode.html">ArgInfoNode</a> (<a class="el" href="namespacetvm_1_1meta__schedule.html">tvm::meta_schedule</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1DFPatternNode.html">DFPatternNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1LayoutNode.html">LayoutNode</a> (<a class="e [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1ArgReduceAttrs.html">ArgReduceAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1DFPatternVisitor.html">DFPatternVisitor</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1LayoutTransformAttrs.html">LayoutTransformAttrs</a> (< [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1ArgsortAttrs.html">ArgsortAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1Diagnostic.html">Diagnostic</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1LE.html">LE</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td [...]
 </td></tr>
-<tr><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1ArgInfoNode.html">ArgInfoNode</a> (<a class="el" href="namespacetvm_1_1meta__schedule.html">tvm::meta_schedule</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1DFPatternNode.html">DFPatternNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1LayoutTransformAttrs.html">LayoutTransfor [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1ArgReduceAttrs.html">ArgReduceAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1DFPatternVisitor.html">DFPatternVisitor</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1LE.html">LE</a> (<a class="el" href="namespacetvm_1_1tir. [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1ArgsortAttrs.html">ArgsortAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1Diagnostic.html">Diagnostic</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1LeakyReluAttrs.html">LeakyReluAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::r [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1Array.html">Array</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1DiagnosticBuilder.html">DiagnosticBuilder</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1tir_1_1LENode.html">LENode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&# [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1metadata_1_1ArrayAccessor.html">ArrayAccessor</a> (<a class="el" href="namespacetvm_1_1runtime_1_1metadata.html">tvm::runtime::metadata</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1DiagnosticContext.html">DiagnosticContext</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Let.html">Let</a> (<a class="el" href="name [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1metadata_1_1ArrayAccessor_3_01const_01char_01_5_00_01_1_1tvm_1_1runtime_1_1String_01_4.html">ArrayAccessor&lt; const char *, ::tvm::runtime::String &gt;</a> (<a class="el" href="namespacetvm_1_1runtime_1_1metadata.html">tvm::runtime::metadata</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1DiagnosticContextNode.html">DiagnosticContextNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;& [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1SimpleObjAllocator_1_1ArrayHandler.html">SimpleObjAllocator::ArrayHandler</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1DiagnosticNode.html">DiagnosticNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1LetNode.html">LetNode</a> (<a class="el" hr [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1ArrayIndexPath.html">ArrayIndexPath</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1DiagnosticRenderer.html">DiagnosticRenderer</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1LetNode.html">LetNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160; [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1ArrayIndexPathNode.html">ArrayIndexPathNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1DiagnosticRendererNode.html">DiagnosticRendererNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1LetPattern.html">LetPattern</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm:: [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1metadata_1_1ArrayIterator.html">ArrayIterator</a> (<a class="el" href="namespacetvm_1_1runtime_1_1metadata.html">tvm::runtime::metadata</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1DictAttrs.html">DictAttrs</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1LetPatternNode.html">LetPatternNode</a> (<a class="el" hr [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1ArrayNode.html">ArrayNode</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1DictAttrsNode.html">DictAttrsNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1LetStmt.html">LetStmt</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;& [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1AssertDoc.html">AssertDoc</a> (<a class="el" href="namespacetvm_1_1script_1_1printer.html">tvm::script::printer</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1DictDoc.html">DictDoc</a> (<a class="el" href="namespacetvm_1_1script_1_1printer.html">tvm::script::printer</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1LetStmtNode.html"> [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1AssertDocNode.html">AssertDocNode</a> (<a class="el" href="namespacetvm_1_1script_1_1printer.html">tvm::script::printer</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1DictDocNode.html">DictDocNode</a> (<a class="el" href="namespacetvm_1_1script_1_1printer.html">tvm::script::printer</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1support_1 [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1AssertFrameNode.html">AssertFrameNode</a> (<a class="el" href="namespacetvm_1_1script_1_1ir__builder_1_1tir.html">tvm::script::ir_builder::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1DilateAttrs.html">DilateAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1 [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1AssertStmt.html">AssertStmt</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1Dilation2DAttrs.html">Dilation2DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1ListDocNode.html">ListDocNode</a> (<a class="el" href="name [...]
-</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1TempExprNode.html">TempExprNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1AssertStmtNode.html">AssertStmtNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Div.html">Div</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDoc.html">LiteralDoc</a> (<a class="el" href="namespacetvm_1_1script_1_1pri [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1AssignDoc.html">AssignDoc</a> (<a class="el" href="namespacetvm_1_1script_1_1printer.html">tvm::script::printer</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1DivNode.html">DivNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDocNode.html">LiteralDocNode</a> (<a  [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1AssignDocNode.html">AssignDocNode</a> (<a class="el" href="namespacetvm_1_1script_1_1printer.html">tvm::script::printer</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1Doc.html">Doc</a> (<a class="el" href="namespacetvm_1_1script_1_1printer.html">tvm::script::printer</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Load.html">Load</a [...]
-</td><td valign="top"><a class="el" href="classtvm_1_1TensorAffineTypeNode.html">TensorAffineTypeNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1AttachMap.html">AttachMap</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1DocNode.html">DocNode</a> (<a class="el" href="namespacetvm_1_1script_1_1printer.html">tvm::script::printer</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1LoadNode.html">LoadNode [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1AttachMapNode.html">AttachMapNode</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1DominatorPattern.html">DominatorPattern</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1LocalBuilder.html"> [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1AttrAccessDoc.html">AttrAccessDoc</a> (<a class="el" href="namespacetvm_1_1script_1_1printer.html">tvm::script::printer</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1DominatorPatternNode.html">DominatorPatternNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1LocalB [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1AttrAccessDocNode.html">AttrAccessDocNode</a> (<a class="el" href="namespacetvm_1_1script_1_1printer.html">tvm::script::printer</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1DropoutAttrs.html">DropoutAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1LocalRunner.h [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1detail_1_1AttrDocEntry.html">AttrDocEntry</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1profiling_1_1DurationNode.html">DurationNode</a> (<a class="el" href="namespacetvm_1_1runtime_1_1profiling.html">tvm::runtime::profiling</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1LocalRunnerN [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1detail_1_1AttrDocVisitor.html">AttrDocVisitor</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1DynExpandDimsAttrs.html">DynExpandDimsAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1LoopRV.html">LoopRV</a> (<a class="el" href="names [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1AttrError.html">AttrError</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_e"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;e&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1LoopRVNode.html">LoopRVNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1RangeNode.html">RangeNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1metadata_1_1TensorInfoNode.html">TensorInfoNode</a> (<a class="el" href="namespacetvm_1_1runtime_1_1metada [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1detail_1_1AttrExistVisitor.html">AttrExistVisitor</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1LRNAttrs.html">LRNAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1profiling_1_1RatioNode.html">RatioNode</a> (<a class="el" href [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1AttrFieldInfo.html">AttrFieldInfo</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1EinsumAttrs.html">EinsumAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1LT.html">LT</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160; [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1AttrFieldInfoNode.html">AttrFieldInfoNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1EnvFunc.html">EnvFunc</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1LTNode.html">LTNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="t [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1AttributeAccessPath.html">AttributeAccessPath</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1EnvFuncNode.html">EnvFuncNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_m"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;m&#160;&#160;</div></td [...]
-</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1RecClosure.html">RecClosure</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1TensorIntrinCallNode.html">TensorIntrinCallNode</a> (<a class="el" href="namespacetvm_1_1te.html">tvm::te</a>)&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="classtvm_1_1AttributeAccessPathNode.html">AttributeAccessPathNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1EQ.html">EQ</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1RecClosureObj.html">RecClosureObj</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1detail_1_1AttrInitEntry.html">AttrInitEntry</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1EQNode.html">EQNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1Map.html">Map</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runt [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1detail_1_1AttrInitVisitor.html">AttrInitVisitor</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1ErrorBuilder.html">ErrorBuilder</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1MapNode.html">MapNode</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm: [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1detail_1_1AttrNonDefaultVisitor.html">AttrNonDefaultVisitor</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1ErrorReporter.html">ErrorReporter</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1MapValuePath.html">MapValuePath</a> (<a class="el" href="namespacetvm.html">tvm [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1detail_1_1AttrNopEntry.html">AttrNopEntry</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Evaluate.html">Evaluate</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1MapValuePathNode.html">MapValuePathNode</a> (<a class="el" href="namespacetvm.html">tvm [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1detail_1_1AttrNormalVisitor.html">AttrNormalVisitor</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1EvaluateNode.html">EvaluateNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1Match.html">Match</a> (<a class="el" href="namespacetvm_1_1re [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1relay_1_1AttrPattern.html">AttrPattern</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1vm_1_1Executable.html">Executable</a> (<a class="el" href="namespacetvm_1_1runtime_1_1vm.html">tvm::runtime::vm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1MatchBufferRegion.html">MatchBufferRegion</a> (<a clas [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1relay_1_1AttrPatternNode.html">AttrPatternNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1Executor.html">Executor</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1MatchBufferRegionNode.html">MatchBufferRegionNode</a> (<a class="el" hre [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1AttrRegistry.html">AttrRegistry</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1ExecutorNode.html">ExecutorNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1MatchNode.html">MatchNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a> [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1AttrRegistryMap.html">AttrRegistryMap</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1ExecutorRegEntry.html">ExecutorRegEntry</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1MatmulAttrs.html">MatmulAttrs</a> (<a class="el" href="namespacetvm_1_1relay.h [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1AttrRegistryMapContainerMap.html">AttrRegistryMapContainerMap</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1ExpandDimsAttrs.html">ExpandDimsAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1MatrixSetDiagAttrs.html">MatrixSetDiagAttrs</a> (<a cla [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1Attrs.html">Attrs</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1tir_1_1ExprDeepEqual.html">ExprDeepEqual</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Max.html">Max</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign= [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1AttrsNode.html">AttrsNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1ExprDoc.html">ExprDoc</a> (<a class="el" href="namespacetvm_1_1script_1_1printer.html">tvm::script::printer</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1MaxNode.html">MaxNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm: [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1detail_1_1AttrsSEqualVisitor.html">AttrsSEqualVisitor</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1ExprDocNode.html">ExprDocNode</a> (<a class="el" href="namespacetvm_1_1script_1_1printer.html">tvm::script::printer</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1MaxPool1DAttrs.html" [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1detail_1_1AttrsSHashVisitor.html">AttrsSHashVisitor</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1ExprFunctor.html">ExprFunctor</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1MaxPool2DAttrs.html">MaxPool2DAttrs</a> (<a class="el" href="n [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1AttrStmt.html">AttrStmt</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1ExprFunctor.html">ExprFunctor</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1MaxPool3DAttrs.html">MaxPool3DAttrs</a> (<a class="el" href="namespacetvm_1_1relay. [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1AttrStmtNode.html">AttrStmtNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1ExprFunctor_3_01R_07const_01Expr_01_6n_00_01Args_8_8_8_08_4.html">ExprFunctor&lt; R(const Expr &amp;n, Args...)&gt;</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_ [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1detail_1_1AttrTriggerNonDefaultEntry.html">AttrTriggerNonDefaultEntry</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1ExprFunctor_3_01R_07const_01PrimExpr_01_6n_00_01Args_8_8_8_08_4.html">ExprFunctor&lt; R(const PrimExpr &amp;n, Args...)&gt;</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td vali [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1AttrVisitor.html">AttrVisitor</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1ExprMutator.html">ExprMutator</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1MeasureCallbackNode.html">MeasureCallbackNode</a> (<a class="el" href="namespacetvm_1_1meta__s [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1AutoSchedulerLayoutTransformAttrs.html">AutoSchedulerLayoutTransformAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1ExprMutator.html">ExprMutator</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1MeasureCallbackNo [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1AvgPool1DAttrs.html">AvgPool1DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1ExprPattern.html">ExprPattern</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1MeasureCandidate.html">MeasureCandidate</a> (<a class="e [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1AvgPool2DAttrs.html">AvgPool2DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1ExprPatternNode.html">ExprPatternNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1MeasureCandidateNode.html">MeasureCandidateNode< [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1AvgPool3DAttrs.html">AvgPool3DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1ExprRewriter.html">ExprRewriter</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1MeasureInput.html">MeasureInput</a> (<a class="el" hr [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1Array.html">Array</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1DiagnosticBuilder.html">DiagnosticBuilder</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1LeakyReluAttrs.html">LeakyReluAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">t [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1metadata_1_1ArrayAccessor.html">ArrayAccessor</a> (<a class="el" href="namespacetvm_1_1runtime_1_1metadata.html">tvm::runtime::metadata</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1DiagnosticContext.html">DiagnosticContext</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1tir_1_1LENode.html">LENode</a> (<a class="el" hre [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1metadata_1_1ArrayAccessor_3_01const_01char_01_5_00_01_1_1tvm_1_1runtime_1_1String_01_4.html">ArrayAccessor&lt; const char *, ::tvm::runtime::String &gt;</a> (<a class="el" href="namespacetvm_1_1runtime_1_1metadata.html">tvm::runtime::metadata</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1DiagnosticContextNode.html">DiagnosticContextNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;& [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1SimpleObjAllocator_1_1ArrayHandler.html">SimpleObjAllocator::ArrayHandler</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1DiagnosticNode.html">DiagnosticNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1Let.html">Let</a> (<a class="el" href="na [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1ArrayIndexPath.html">ArrayIndexPath</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1DiagnosticRenderer.html">DiagnosticRenderer</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LetFrame.html">LetFrame</a> (<a class="el" href="namespacetvm_1_1script_1_1ir__ [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1ArrayIndexPathNode.html">ArrayIndexPathNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1DiagnosticRendererNode.html">DiagnosticRendererNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LetFrameNode.html">LetFrameNode</a> (<a class="el" href="namesp [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1metadata_1_1ArrayIterator.html">ArrayIterator</a> (<a class="el" href="namespacetvm_1_1runtime_1_1metadata.html">tvm::runtime::metadata</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1DictAttrs.html">DictAttrs</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1LetNode.html">LetNode</a> (<a class="el" href="namespacetvm [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1ArrayNode.html">ArrayNode</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1DictAttrsNode.html">DictAttrsNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1LetNode.html">LetNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)& [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1AssertDoc.html">AssertDoc</a> (<a class="el" href="namespacetvm_1_1script_1_1printer.html">tvm::script::printer</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1DictDoc.html">DictDoc</a> (<a class="el" href="namespacetvm_1_1script_1_1printer.html">tvm::script::printer</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1LetPattern.html" [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1AssertDocNode.html">AssertDocNode</a> (<a class="el" href="namespacetvm_1_1script_1_1printer.html">tvm::script::printer</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1DictDocNode.html">DictDocNode</a> (<a class="el" href="namespacetvm_1_1script_1_1printer.html">tvm::script::printer</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1 [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1AssertFrame.html">AssertFrame</a> (<a class="el" href="namespacetvm_1_1script_1_1ir__builder_1_1tir.html">tvm::script::ir_builder::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1DilateAttrs.html">DilateAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1LetStmt.h [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1AssertFrameNode.html">AssertFrameNode</a> (<a class="el" href="namespacetvm_1_1script_1_1ir__builder_1_1tir.html">tvm::script::ir_builder::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1Dilation2DAttrs.html">Dilation2DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1 [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1AssertStmt.html">AssertStmt</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Div.html">Div</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1support_1_1LinearCongruentialEngine.html">LinearCongruentialEngine</a> (<a class="el" href="namespacetvm_1_1sup [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1AssertStmtNode.html">AssertStmtNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1DivNode.html">DivNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1ListDoc.html">ListDoc</a> (<a class="el" href="namespacetvm_1_1script_1_1p [...]
+</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1TempExpr.html">TempExpr</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1AssignDoc.html">AssignDoc</a> (<a class="el" href="namespacetvm_1_1script_1_1printer.html">tvm::script::printer</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1Doc.html">Doc</a> (<a class="el" href="namespacetvm_1_1script_1_1printer.html">tvm::script::printer</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1ListDocNode. [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1AssignDocNode.html">AssignDocNode</a> (<a class="el" href="namespacetvm_1_1script_1_1printer.html">tvm::script::printer</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1DocNode.html">DocNode</a> (<a class="el" href="namespacetvm_1_1script_1_1printer.html">tvm::script::printer</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1AttachMap.html">AttachMap</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1DominatorPattern.html">DominatorPattern</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1LiteralDocNode.html">Lite [...]
+</td><td valign="top"><a class="el" href="classtvm_1_1TensorAffineType.html">TensorAffineType</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1AttachMapNode.html">AttachMapNode</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1DominatorPatternNode.html">DominatorPatternNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Load.html">Load</a> (<a [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1AttrAccessDoc.html">AttrAccessDoc</a> (<a class="el" href="namespacetvm_1_1script_1_1printer.html">tvm::script::printer</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1DropoutAttrs.html">DropoutAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1LoadNode.html">LoadNode</a> (<a c [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1AttrAccessDocNode.html">AttrAccessDocNode</a> (<a class="el" href="namespacetvm_1_1script_1_1printer.html">tvm::script::printer</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1profiling_1_1DurationNode.html">DurationNode</a> (<a class="el" href="namespacetvm_1_1runtime_1_1profiling.html">tvm::runtime::profiling</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="cl [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1detail_1_1AttrDocEntry.html">AttrDocEntry</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1DynExpandDimsAttrs.html">DynExpandDimsAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1LocalBuilderNode.html">LocalBuilderNode</a [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1detail_1_1AttrDocVisitor.html">AttrDocVisitor</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_e"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;e&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1LocalRunner.html">LocalRunner</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1RandomModelNode.html">RandomModelNode</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1met [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1AttrError.html">AttrError</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1LocalRunnerNode.html">LocalRunnerNode</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1Range.html">Range</a> (<a class="el" href="namespacetvm.html">tvm</a>)&# [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1detail_1_1AttrExistVisitor.html">AttrExistVisitor</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1EinsumAttrs.html">EinsumAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1LoopRV.html">LoopRV</a> (<a class="el" href="namespacetvm_1_ [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1AttrFieldInfo.html">AttrFieldInfo</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1EnvFunc.html">EnvFunc</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1LoopRVNode.html">LoopRVNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="t [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1AttrFieldInfoNode.html">AttrFieldInfoNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1EnvFuncNode.html">EnvFuncNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1LRNAttrs.html">LRNAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160 [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1AttributeAccessPath.html">AttributeAccessPath</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1EQ.html">EQ</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1LT.html">LT</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td vali [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1AttributeAccessPathNode.html">AttributeAccessPathNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1EQNode.html">EQNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1LTNode.html">LTNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;& [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1detail_1_1AttrInitEntry.html">AttrInitEntry</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1ErrorBuilder.html">ErrorBuilder</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_m"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;m&# [...]
+</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1RebaseNode.html">RebaseNode</a> (<a class="el" href="namespacetvm_1_1te.html">tvm::te</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1TensorIntrinCallNode.html">TensorIntrinCallNode</a> (<a class="el" href="namespacetvm_1_1te.html">tvm::te</a>)&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="classtvm_1_1detail_1_1AttrInitVisitor.html">AttrInitVisitor</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1ErrorReporter.html">ErrorReporter</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1RecClosure.html">RecClosure</a> (<a class="el" href="namespacetvm_1_1relay.html">t [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1detail_1_1AttrNonDefaultVisitor.html">AttrNonDefaultVisitor</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Evaluate.html">Evaluate</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1Map.html">Map</a> (<a class="el" href="namespacetvm_1_1runt [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1detail_1_1AttrNopEntry.html">AttrNopEntry</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1EvaluateNode.html">EvaluateNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1MapNode.html">MapNode</a> (<a class="el" href="namespacetvm_1_1runti [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1detail_1_1AttrNormalVisitor.html">AttrNormalVisitor</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1vm_1_1Executable.html">Executable</a> (<a class="el" href="namespacetvm_1_1runtime_1_1vm.html">tvm::runtime::vm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1MapValuePath.html">MapValuePath</a> (<a class= [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1relay_1_1AttrPattern.html">AttrPattern</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1Executor.html">Executor</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1MapValuePathNode.html">MapValuePathNode</a> (<a class="el" href="namespacetvm.html">tvm [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1relay_1_1AttrPatternNode.html">AttrPatternNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1ExecutorNode.html">ExecutorNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1Match.html">Match</a> (<a class="el" href="namespacetvm_1_1rel [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1AttrRegistry.html">AttrRegistry</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1ExecutorRegEntry.html">ExecutorRegEntry</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1MatchBufferRegion.html">MatchBufferRegion</a> (<a class="el" href="namespacetvm_1_1tir. [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1AttrRegistryMap.html">AttrRegistryMap</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1ExpandDimsAttrs.html">ExpandDimsAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1MatchBufferRegionNode.html">MatchBufferRegionNode</a> (<a class="el" href="namespa [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1AttrRegistryMapContainerMap.html">AttrRegistryMapContainerMap</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1tir_1_1ExprDeepEqual.html">ExprDeepEqual</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1MatchNode.html">MatchNode</a> (<a class="el" href="namespacetvm_1_ [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1Attrs.html">Attrs</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1ExprDoc.html">ExprDoc</a> (<a class="el" href="namespacetvm_1_1script_1_1printer.html">tvm::script::printer</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1MatmulAttrs.html">MatmulAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html" [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1AttrsNode.html">AttrsNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1ExprDocNode.html">ExprDocNode</a> (<a class="el" href="namespacetvm_1_1script_1_1printer.html">tvm::script::printer</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1MatrixSetDiagAttrs.html">MatrixSetDiagAttrs</a> (<a class="el" hre [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1detail_1_1AttrsSEqualVisitor.html">AttrsSEqualVisitor</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1ExprFunctor.html">ExprFunctor</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Max.html">Max</a> (<a class="el" href="namespacetvm_1_1tir.html [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1detail_1_1AttrsSHashVisitor.html">AttrsSHashVisitor</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1ExprFunctor.html">ExprFunctor</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1MaxNode.html">MaxNode</a> (<a class="el" href="namespacetvm [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1AttrStmt.html">AttrStmt</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1ExprFunctor_3_01R_07const_01Expr_01_6n_00_01Args_8_8_8_08_4.html">ExprFunctor&lt; R(const Expr &amp;n, Args...)&gt;</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_ [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1AttrStmtNode.html">AttrStmtNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1ExprFunctor_3_01R_07const_01PrimExpr_01_6n_00_01Args_8_8_8_08_4.html">ExprFunctor&lt; R(const PrimExpr &amp;n, Args...)&gt;</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1detail_1_1AttrTriggerNonDefaultEntry.html">AttrTriggerNonDefaultEntry</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1ExprMutator.html">ExprMutator</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1MaxPool3DAttrs.html">MaxPool3DAttrs</a> (<a [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1AttrVisitor.html">AttrVisitor</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1ExprMutator.html">ExprMutator</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1MeasureCallback.html">MeasureCallback</a> (<a class="el" href="namespacetvm_1_1meta__sch [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1AutoSchedulerLayoutTransformAttrs.html">AutoSchedulerLayoutTransformAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1ExprPattern.html">ExprPattern</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1MeasureCallback.h [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1AvgPool1DAttrs.html">AvgPool1DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1ExprPatternNode.html">ExprPatternNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1MeasureCallbackNode.html">MeasureCallbackNode</a [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1AvgPool2DAttrs.html">AvgPool2DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1ExprRewriter.html">ExprRewriter</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1MeasureCallbackNode.html">MeasureCallbackNode</a> (<a [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1AvgPool3DAttrs.html">AvgPool3DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1ExprStmtDoc.html">ExprStmtDoc</a> (<a class="el" href="namespacetvm_1_1script_1_1printer.html">tvm::script::printer</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1MeasureCandidate.html" [...]
 <tr><td rowspan="2" valign="bottom"><a name="letter_b"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;b&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1ExprStmtDoc.html">ExprStmtDoc</a> (<a class="el" href="namespacetvm_1_1script_1_1printer.html">tvm::script::printer</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1MeasureInputNode.html">MeasureInputNode</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1RelayRe [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1ExprStmtDocNode.html">ExprStmtDocNode</a> (<a class="el" href="namespacetvm_1_1script_1_1printer.html">tvm::script::printer</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1MeasureResult.html">MeasureResult</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1RelayR [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1BaseAttrsNode.html">BaseAttrsNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1ExprVisitor.html">ExprVisitor</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1MeasureResultNode.html">MeasureResultNode</a> (<a class="el" href="namespacetvm_1_1auto__ [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1te_1_1BaseComputeOpNode.html">BaseComputeOpNode</a> (<a class="el" href="namespacetvm_1_1te.html">tvm::te</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1ExprVisitor.html">ExprVisitor</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1MemoryInfo.html">MemoryInfo</a> (<a class="el" href="namespacetvm.html">tvm</a [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1BaseExpr.html">BaseExpr</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1ExternOp.html">ExternOp</a> (<a class="el" href="namespacetvm_1_1te.html">tvm::te</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1MemoryInfoNode.html">MemoryInfoNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top" [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1BaseExprNode.html">BaseExprNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1ExternOpNode.html">ExternOpNode</a> (<a class="el" href="namespacetvm_1_1te.html">tvm::te</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1vm_1_1MemoryManager.html">MemoryManager</a> (<a class="el" href="namespacetvm_1_1runtime_1_1vm.html" [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1BaseFunc.html">BaseFunc</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1ExtractedTask.html">ExtractedTask</a> (<a class="el" href="namespacetvm_1_1meta__schedule.html">tvm::meta_schedule</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structMemoryManagerInterface.html">MemoryManagerInterface</a>&#160;&#160;&#160;</td><td valign [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1BaseFuncNode.html">BaseFuncNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1ExtractedTaskNode.html">ExtractedTaskNode</a> (<a class="el" href="namespacetvm_1_1meta__schedule.html">tvm::meta_schedule</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1MeshgridAttrs.html">MeshgridAttrs</a> (<a class="el" hre [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1BaseTensorType.html">BaseTensorType</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1runtime_1_1PackedFuncObj_1_1Extractor.html">PackedFuncObj::Extractor</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1metadata_1_1Metadata.html">Metadata</a> (<a class="el" [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1BaseTensorTypeNode.html">BaseTensorTypeNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_f"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;f&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1metadata_1_1MetadataArray.html">MetadataArray</a> (<a class="el" href="namespacetvm_1_1runtime_1_1metadata.html">tvm::runtime::metadata</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1ReshapeAttrs.html">ReshapeAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1TriluAttrs.html">TriluA [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1BaseValueEqual.html">BaseValueEqual</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1metadata_1_1MetadataArrayNode.html">MetadataArrayNode</a> (<a class="el" href="namespacetvm_1_1runtime_1_1metadata.html">tvm::runtime::metadata</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1ReshapeLikeAttrs.html">ReshapeLikeAttr [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1BaseValueHash.html">BaseValueHash</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1FeatureExtractor.html">FeatureExtractor</a> (<a class="el" href="namespacetvm_1_1meta__schedule.html">tvm::meta_schedule</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1metadata_1_1MetadataBase.html">MetadataBase</a> (<a cla [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1BatchMatmulAttrs.html">BatchMatmulAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1FeatureExtractorNode.html">FeatureExtractorNode</a> (<a class="el" href="namespacetvm_1_1meta__schedule.html">tvm::meta_schedule</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1metadata_1_1Met [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1BatchNormAttrs.html">BatchNormAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1FeatureSet.html">FeatureSet</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1MetadataFrame.html">MetadataFrame</a> (<a class="el" hr [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1BatchToSpaceNDAttrs.html">BatchToSpaceNDAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1FIFOBufferAttrs.html">FIFOBufferAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1MetadataFrameNode.html">MetadataFr [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1BiasAddAttrs.html">BiasAddAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1FixedPointMultiplyAttrs.html">FixedPointMultiplyAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1metadata_1_1MetadataNode.html">MetadataNod [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BijectiveLayout.html">BijectiveLayout</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1SeqStmt_1_1Flattener.html">SeqStmt::Flattener</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1MetaScheduleLayoutTransformAttrs.html">MetaScheduleLayoutTr [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BijectiveLayoutNode.html">BijectiveLayoutNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1FloatImm.html">FloatImm</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1profiling_1_1MetricCollector.html">MetricCollector</a> (<a class="el" href="namespacetvm_1_ [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1BinaryConv2DAttrs.html">BinaryConv2DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1FloatImmNode.html">FloatImmNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1profiling_1_1MetricCollectorNode.html">MetricCollectorNode</a> (<a class="el" hr [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1BinaryDenseAttrs.html">BinaryDenseAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1FloorDiv.html">FloorDiv</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Min.html">Min</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</ [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BinaryOpNode.html">BinaryOpNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1FloorDivNode.html">FloorDivNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1MinNode.html">MinNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir< [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1BitPackAttrs.html">BitPackAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1FloorMod.html">FloorMod</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1MirrorPadAttrs.html">MirrorPadAttrs</a> (<a class="el" href="namespacetvm_1_1rel [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Block.html">Block</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1FloorModNode.html">FloorModNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1MissingArrayElementPath.html">MissingArrayElementPath</a> (<a class="el" href="namespacetvm.html">tvm</ [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1BlockFrame.html">BlockFrame</a> (<a class="el" href="namespacetvm_1_1script_1_1ir__builder_1_1tir.html">tvm::script::ir_builder::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1FollowFusedSplitStep.html">FollowFusedSplitStep</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a c [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1BlockFrameNode.html">BlockFrameNode</a> (<a class="el" href="namespacetvm_1_1script_1_1ir__builder_1_1tir.html">tvm::script::ir_builder::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1FollowFusedSplitStepNode.html">FollowFusedSplitStepNode</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td v [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1tir_1_1BlockInfo.html">BlockInfo</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1FollowSplitStep.html">FollowSplitStep</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1MissingMapEntryPathNode.html">MissingMapEntryPathNode [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1BlockInitFrame.html">BlockInitFrame</a> (<a class="el" href="namespacetvm_1_1script_1_1ir__builder_1_1tir.html">tvm::script::ir_builder::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1FollowSplitStepNode.html">FollowSplitStepNode</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1BlockInitFrameNode.html">BlockInitFrameNode</a> (<a class="el" href="namespacetvm_1_1script_1_1ir__builder_1_1tir.html">tvm::script::ir_builder::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1For.html">For</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1MixedModeVisitor [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BlockNode.html">BlockNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1ForDoc.html">ForDoc</a> (<a class="el" href="namespacetvm_1_1script_1_1printer.html">tvm::script::printer</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Mod.html">Mod</a> (<a class="el" href="namespacetvm_1_1tir.h [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BlockRealize.html">BlockRealize</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1ForDocNode.html">ForDocNode</a> (<a class="el" href="namespacetvm_1_1script_1_1printer.html">tvm::script::printer</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1ModNode.html">ModNode</a> (<a class="el" href= [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BlockRealizeNode.html">BlockRealizeNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1ForFrame.html">ForFrame</a> (<a class="el" href="namespacetvm_1_1script_1_1ir__builder_1_1tir.html">tvm::script::ir_builder::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1ModularSet [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BlockRV.html">BlockRV</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1ForFrameNode.html">ForFrameNode</a> (<a class="el" href="namespacetvm_1_1script_1_1ir__builder_1_1tir.html">tvm::script::ir_builder::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1ModularSetAnalyzer.h [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BlockRVNode.html">BlockRVNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1ForNode.html">ForNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1ModularSetNode.html">ModularSetNode</a> (<a class="el" href="namespacetvm_1_1arith.html">tvm [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BlockScope.html">BlockScope</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1Frame.html">Frame</a> (<a class="el" href="namespacetvm_1_1script_1_1printer.html">tvm::script::printer</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1Module.html">Module</a> (<a class="el" href="namespacetv [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BlockScopeNode.html">BlockScopeNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1micro__rpc_1_1FrameBuffer.html">FrameBuffer</a> (<a class="el" href="namespacetvm_1_1runtime_1_1micro__rpc.html">tvm::runtime::micro_rpc</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1ModuleNode.html">ModuleNo [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1Bool.html">Bool</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1FrameNode.html">FrameNode</a> (<a class="el" href="namespacetvm_1_1script_1_1printer.html">tvm::script::printer</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Mul.html">Mul</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160 [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Broadcast.html">Broadcast</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1micro__rpc_1_1Framer.html">Framer</a> (<a class="el" href="namespacetvm_1_1runtime_1_1micro__rpc.html">tvm::runtime::micro_rpc</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1MulNode.html">MulNode</a> (<a class="el" href="na [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1qnn_1_1BroadcastAttrs.html">BroadcastAttrs</a> (<a class="el" href="namespacetvm_1_1relay_1_1qnn.html">tvm::relay::qnn</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1ShapeTupleObj_1_1FromStd.html">ShapeTupleObj::FromStd</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1MultiBoxPriorAt [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BroadcastNode.html">BroadcastNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1StringObj_1_1FromStd.html">StringObj::FromStd</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1MultiBoxTransformLocAttrs.html">MultiBoxTransformLo [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1runtime_1_1vm_1_1Buffer.html">Buffer</a> (<a class="el" href="namespacetvm_1_1runtime_1_1vm.html">tvm::runtime::vm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1Function.html">Function</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1MultinomialAttrs.html">MultinomialAttrs</a> (<a class="el" href= [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Buffer.html">Buffer</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1FunctionDoc.html">FunctionDoc</a> (<a class="el" href="namespacetvm_1_1script_1_1printer.html">tvm::script::printer</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1Mutator.html">Mutator</a> (<a class="el" href [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1usmp_1_1BufferInfo.html">BufferInfo</a> (<a class="el" href="namespacetvm_1_1tir_1_1usmp.html">tvm::tir::usmp</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1FunctionDocNode.html">FunctionDocNode</a> (<a class="el" href="namespacetvm_1_1script_1_1printer.html">tvm::script::printer</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1Mutator [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1usmp_1_1BufferInfoAnalysis.html">BufferInfoAnalysis</a> (<a class="el" href="namespacetvm_1_1tir_1_1usmp.html">tvm::tir::usmp</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1FunctionNode.html">FunctionNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_n"></a><table border="0" cellspacing="0" cellpaddi [...]
-</td><td rowspan="2" valign="bottom"><a name="letter_s"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;s&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1TVMMovableArgValue__.html">TVMMovableArgValue_</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="structtvm_1_1tir_1_1usmp_1_1BufferInfoAnalysisNode.html">BufferInfoAnalysisNode</a> (<a class="el" href="namespacetvm_1_1tir_1_1usmp.html">tvm::tir::usmp</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1FunctionPattern.html">FunctionPattern</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1TVMMovableArgValueWithC [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1tir_1_1usmp_1_1BufferInfoNode.html">BufferInfoNode</a> (<a class="el" href="namespacetvm_1_1tir_1_1usmp.html">tvm::tir::usmp</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1FunctionPatternNode.html">FunctionPatternNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1details_1_1Namer. [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BufferLoad.html">BufferLoad</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1FuncType.html">FuncType</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1NameSupply.html">NameSupply</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"> [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BufferLoadNode.html">BufferLoadNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1FuncTypeNode.html">FuncTypeNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1NameSupplyNode.html">NameSupplyNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#16 [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BufferNode.html">BufferNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1Fuse.html">Fuse</a> (<a class="el" href="namespacetvm_1_1te.html">tvm::te</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1NDArray.html">NDArray</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;& [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BufferRealize.html">BufferRealize</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1FuseNode.html">FuseNode</a> (<a class="el" href="namespacetvm_1_1te.html">tvm::te</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1NDArrayContainerTrait.html">NDArrayContainerTrait</a> (<a class="el" href="namespacetvm.html">tvm [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BufferRealizeNode.html">BufferRealizeNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1FuseStep.html">FuseStep</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1NdarraySizeAttrs.html">NdarraySizeAttrs</a [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BufferRegion.html">BufferRegion</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1FuseStepNode.html">FuseStepNode</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1NE.html">NE</a> (<a class="el" href="namespacet [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BufferRegionNode.html">BufferRegionNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_g"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;g&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1NENode.html">NENode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1Schedule.html">Schedule</a> (<a class="el" href="namespacetvm_1_1te.html">tvm::te</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="unionTVMValue.html">TVMValue</a>&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BufferStore.html">BufferStore</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1NLLLossAttrs.html">NLLLossAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1ScheduleNode.html">ScheduleNode</a> (<a class="el" href="namespacetvm_1_1tir. [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BufferStoreNode.html">BufferStoreNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1GatherAttrs.html">GatherAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1NodeFunctor.html">NodeFunctor</a> (<a class="el" href="namespacetvm.html">tvm< [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1Builder.html">Builder</a> (<a class="el" href="namespacetvm_1_1meta__schedule.html">tvm::meta_schedule</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1GatherNDAttrs.html">GatherNDAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1NodeFunctor_3_01R_07const_01ObjectRef_01_6n_00_01Args_8_8_ [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1BuilderInput.html">BuilderInput</a> (<a class="el" href="namespacetvm_1_1meta__schedule.html">tvm::meta_schedule</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1GE.html">GE</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1NonMaximumSuppressionAttrs.html">NonMaximumSuppressionAttrs</a> (<a [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1BuilderInputNode.html">BuilderInputNode</a> (<a class="el" href="namespacetvm_1_1meta__schedule.html">tvm::meta_schedule</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1GenericFunc.html">GenericFunc</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1NormalAttrs.html">NormalAttrs</a> (<a class="el" href="names [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1BuilderNode.html">BuilderNode</a> (<a class="el" href="namespacetvm_1_1meta__schedule.html">tvm::meta_schedule</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1GenericFuncNode.html">GenericFuncNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Not.html">Not</a> (<a class="el" href="namespacetvm_1_1tir.html"> [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1BuilderResult.html">BuilderResult</a> (<a class="el" href="namespacetvm_1_1meta__schedule.html">tvm::meta_schedule</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1GENode.html">GENode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1NotNode.html">NotNode</a> (<a class="el" href="namespacetvm_ [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1BuilderResultNode.html">BuilderResultNode</a> (<a class="el" href="namespacetvm_1_1meta__schedule.html">tvm::meta_schedule</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1GetValidCountsAttrs.html">GetValidCountsAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1runtime_1_1NullOptType.ht [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1BuildResult.html">BuildResult</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1GlobalPool2DAttrs.html">GlobalPool2DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_o"></a><table border="0" cellspacing="0" [...]
-</td><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1ScopedTimer.html">ScopedTimer</a> (<a class="el" href="namespacetvm_1_1meta__schedule.html">tvm::meta_schedule</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1TypedEnvFunc_3_01R_07Args_8_8_8_08_4.html">TypedEnvFunc&lt; R(Args...)&gt;</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1BuildResultNode.html">BuildResultNode</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1GlobalTypeVar.html">GlobalTypeVar</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1hexagon_1_1SDLTensor.html">SDLTensor</a> (<a class="el [...]
+</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1ExprStmtDocNode.html">ExprStmtDocNode</a> (<a class="el" href="namespacetvm_1_1script_1_1printer.html">tvm::script::printer</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1MeasureCandidateNode.html">MeasureCandidateNode</a> (<a class="el" href="namespacetvm_1_1meta__schedule.html">tvm::meta_schedule</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classt [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1ExprVisitor.html">ExprVisitor</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1MeasureInput.html">MeasureInput</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1RelayExprNode.html">RelayExprNode</a> (<a class="el" hre [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1BaseAttrsNode.html">BaseAttrsNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1ExprVisitor.html">ExprVisitor</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1MeasureInputNode.html">MeasureInputNode</a> (<a class="el" href="namespacetvm_1_1au [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1te_1_1BaseComputeOpNode.html">BaseComputeOpNode</a> (<a class="el" href="namespacetvm_1_1te.html">tvm::te</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1ExternOp.html">ExternOp</a> (<a class="el" href="namespacetvm_1_1te.html">tvm::te</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1MeasureResult.html">MeasureResult</a> (<a class="el" href="namespacetvm_1_ [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1BaseExpr.html">BaseExpr</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1ExternOpNode.html">ExternOpNode</a> (<a class="el" href="namespacetvm_1_1te.html">tvm::te</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1MeasureResultNode.html">MeasureResultNode</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.h [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1BaseExprNode.html">BaseExprNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1ExtractedTask.html">ExtractedTask</a> (<a class="el" href="namespacetvm_1_1meta__schedule.html">tvm::meta_schedule</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1MemoryInfo.html">MemoryInfo</a> (<a class="el" href="namespacetvm.html">tv [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1BaseFunc.html">BaseFunc</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1ExtractedTaskNode.html">ExtractedTaskNode</a> (<a class="el" href="namespacetvm_1_1meta__schedule.html">tvm::meta_schedule</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1MemoryInfoNode.html">MemoryInfoNode</a> (<a class="el" href="namespacetvm. [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1BaseFuncNode.html">BaseFuncNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1runtime_1_1PackedFuncObj_1_1Extractor.html">PackedFuncObj::Extractor</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1vm_1_1MemoryManager.html">MemoryManager</a> (<a class="el" [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1BaseTensorType.html">BaseTensorType</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_f"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;f&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="structMemoryManagerInterface.html">MemoryManagerInterface</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1profiling_1_1Report.html">Report</a> (<a class="el" href="namespacetvm_1_1runtime_1_1profiling.html">tvm::runtime::profiling</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1Transform.html">Transform</a> (<a class="el" href="namespacetvm_1_1te.html">tvm::te</a>)&#160;&#160 [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1BaseTensorTypeNode.html">BaseTensorTypeNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1MeshgridAttrs.html">MeshgridAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1profiling_1_1ReportNode.html">ReportNode</a> (<a class="el" href="namespacet [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1BaseValueEqual.html">BaseValueEqual</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1FeatureExtractor.html">FeatureExtractor</a> (<a class="el" href="namespacetvm_1_1meta__schedule.html">tvm::meta_schedule</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1metadata_1_1Metadata.html">Metadata</a> (<a class="el [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1BaseValueHash.html">BaseValueHash</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1FeatureExtractorNode.html">FeatureExtractorNode</a> (<a class="el" href="namespacetvm_1_1meta__schedule.html">tvm::meta_schedule</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1metadata_1_1MetadataArray.html">MetadataArray</ [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1BatchMatmulAttrs.html">BatchMatmulAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1FeatureSet.html">FeatureSet</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1metadata_1_1MetadataArrayNode.html">MetadataArrayNode</a> (<a [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1BatchNormAttrs.html">BatchNormAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1FIFOBufferAttrs.html">FIFOBufferAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1metadata_1_1MetadataBase.html">MetadataBase</a> (<a cl [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1BatchToSpaceNDAttrs.html">BatchToSpaceNDAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1FixedPointMultiplyAttrs.html">FixedPointMultiplyAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1metadata_1_1MetadataBaseNode [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1BiasAddAttrs.html">BiasAddAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1SeqStmt_1_1Flattener.html">SeqStmt::Flattener</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1MetadataFrame.html">MetadataFrame</a> (<a class [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BijectiveLayout.html">BijectiveLayout</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1FloatImm.html">FloatImm</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1MetadataFrameNode.html">MetadataFrameNode</a> (<a class="el" href="namespacetvm_1_1script [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BijectiveLayoutNode.html">BijectiveLayoutNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1FloatImmNode.html">FloatImmNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1metadata_1_1MetadataNode.html">MetadataNode</a> (<a class="el" href="namespacetvm_1 [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1BinaryConv2DAttrs.html">BinaryConv2DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1FloorDiv.html">FloorDiv</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1MetaScheduleLayoutTransformAttrs.html">MetaScheduleLayoutTransformAttr [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1BinaryDenseAttrs.html">BinaryDenseAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1FloorDivNode.html">FloorDivNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1profiling_1_1MetricCollector.html">MetricCollector</a> (<a clas [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BinaryOpNode.html">BinaryOpNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1FloorMod.html">FloorMod</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1profiling_1_1MetricCollectorNode.html">MetricCollectorNode</a> (<a class="el" href="na [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1BitPackAttrs.html">BitPackAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1FloorModNode.html">FloorModNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Min.html">Min</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</ [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Block.html">Block</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1FollowFusedSplitStep.html">FollowFusedSplitStep</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1MinNode.html">MinNode</a> (<a class="el" href [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1BlockFrame.html">BlockFrame</a> (<a class="el" href="namespacetvm_1_1script_1_1ir__builder_1_1tir.html">tvm::script::ir_builder::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1FollowFusedSplitStepNode.html">FollowFusedSplitStepNode</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="t [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1BlockFrameNode.html">BlockFrameNode</a> (<a class="el" href="namespacetvm_1_1script_1_1ir__builder_1_1tir.html">tvm::script::ir_builder::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1FollowSplitStep.html">FollowSplitStep</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a cla [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1tir_1_1BlockInfo.html">BlockInfo</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1FollowSplitStepNode.html">FollowSplitStepNode</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1MissingArrayElementPathNode.html">MissingArra [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1BlockInitFrame.html">BlockInitFrame</a> (<a class="el" href="namespacetvm_1_1script_1_1ir__builder_1_1tir.html">tvm::script::ir_builder::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1For.html">For</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1MissingMapEntryPath.html">Missing [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1BlockInitFrameNode.html">BlockInitFrameNode</a> (<a class="el" href="namespacetvm_1_1script_1_1ir__builder_1_1tir.html">tvm::script::ir_builder::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1ForDoc.html">ForDoc</a> (<a class="el" href="namespacetvm_1_1script_1_1printer.html">tvm::script::printer</a>)&#160;&#160;&#160;</td><td valign="top"><a class="e [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BlockNode.html">BlockNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1ForDocNode.html">ForDocNode</a> (<a class="el" href="namespacetvm_1_1script_1_1printer.html">tvm::script::printer</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1MixedModeMutator.html">MixedModeMutator</a> (<a cl [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BlockRealize.html">BlockRealize</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1ForFrame.html">ForFrame</a> (<a class="el" href="namespacetvm_1_1script_1_1ir__builder_1_1tir.html">tvm::script::ir_builder::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1MixedModeVisitor.h [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BlockRealizeNode.html">BlockRealizeNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1ForFrameNode.html">ForFrameNode</a> (<a class="el" href="namespacetvm_1_1script_1_1ir__builder_1_1tir.html">tvm::script::ir_builder::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Mod. [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BlockRV.html">BlockRV</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1ForNode.html">ForNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1ModNode.html">ModNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#16 [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BlockRVNode.html">BlockRVNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1Frame.html">Frame</a> (<a class="el" href="namespacetvm_1_1script_1_1printer.html">tvm::script::printer</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1ModularSet.html">ModularSet</a> (<a class="el" href="nam [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BlockScope.html">BlockScope</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1micro__rpc_1_1FrameBuffer.html">FrameBuffer</a> (<a class="el" href="namespacetvm_1_1runtime_1_1micro__rpc.html">tvm::runtime::micro_rpc</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1ModularSetAnalyzer.html">ModularSet [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BlockScopeNode.html">BlockScopeNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1FrameNode.html">FrameNode</a> (<a class="el" href="namespacetvm_1_1script_1_1printer.html">tvm::script::printer</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1ModularSetNode.html">ModularSetNode</a> (< [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1Bool.html">Bool</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1micro__rpc_1_1Framer.html">Framer</a> (<a class="el" href="namespacetvm_1_1runtime_1_1micro__rpc.html">tvm::runtime::micro_rpc</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1Module.html">Module</a> (<a class="el" href="namespacetvm_1_1runtime.html" [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Broadcast.html">Broadcast</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1StringObj_1_1FromStd.html">StringObj::FromStd</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1ModuleNode.html">ModuleNode</a> (<a class="el" href="names [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1qnn_1_1BroadcastAttrs.html">BroadcastAttrs</a> (<a class="el" href="namespacetvm_1_1relay_1_1qnn.html">tvm::relay::qnn</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1ShapeTupleObj_1_1FromStd.html">ShapeTupleObj::FromStd</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Mul.html">Mul</a>  [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BroadcastNode.html">BroadcastNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1Function.html">Function</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1MulNode.html">MulNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir< [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1runtime_1_1vm_1_1Buffer.html">Buffer</a> (<a class="el" href="namespacetvm_1_1runtime_1_1vm.html">tvm::runtime::vm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1FunctionDoc.html">FunctionDoc</a> (<a class="el" href="namespacetvm_1_1script_1_1printer.html">tvm::script::printer</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1MultiBoxPriorAttrs.html" [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Buffer.html">Buffer</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1FunctionDocNode.html">FunctionDocNode</a> (<a class="el" href="namespacetvm_1_1script_1_1printer.html">tvm::script::printer</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1MultiBoxTransformLocAttrs.html">MultiBoxTrans [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1usmp_1_1BufferInfo.html">BufferInfo</a> (<a class="el" href="namespacetvm_1_1tir_1_1usmp.html">tvm::tir::usmp</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1FunctionNode.html">FunctionNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1MultinomialAttrs.html">MultinomialAttrs</a> (<a class=" [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1usmp_1_1BufferInfoAnalysis.html">BufferInfoAnalysis</a> (<a class="el" href="namespacetvm_1_1tir_1_1usmp.html">tvm::tir::usmp</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1FunctionPattern.html">FunctionPattern</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1Mutator.html">Mutator</a> [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1tir_1_1usmp_1_1BufferInfoAnalysisNode.html">BufferInfoAnalysisNode</a> (<a class="el" href="namespacetvm_1_1tir_1_1usmp.html">tvm::tir::usmp</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1FunctionPatternNode.html">FunctionPatternNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1MutatorN [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1tir_1_1usmp_1_1BufferInfoNode.html">BufferInfoNode</a> (<a class="el" href="namespacetvm_1_1tir_1_1usmp.html">tvm::tir::usmp</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1FuncType.html">FuncType</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_n"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#1 [...]
+</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1RuntimeRegEntry.html">RuntimeRegEntry</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1TVMMovableArgValue__.html">TVMMovableArgValue_</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BufferLoad.html">BufferLoad</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1FuncTypeNode.html">FuncTypeNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_s"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;s&#160;&#160;</div>< [...]
+</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1TVMMovableArgValueWithContext__.html">TVMMovableArgValueWithContext_</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BufferLoadNode.html">BufferLoadNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1Fuse.html">Fuse</a> (<a class="el" href="namespacetvm_1_1te.html">tvm::te</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1details_1_1Namer.html">Namer</a> (<a class="el" href="namespacetvm_1_1script_1_ [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BufferNode.html">BufferNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1FuseNode.html">FuseNode</a> (<a class="el" href="namespacetvm_1_1te.html">tvm::te</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1NameSupply.html">NameSupply</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td>< [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BufferRealize.html">BufferRealize</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1FuseStep.html">FuseStep</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1NameSupplyNode.html">NameSupplyNode</a> (<a class="el" href= [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BufferRealizeNode.html">BufferRealizeNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1FuseStepNode.html">FuseStepNode</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1NDArray.html">NDArray</a> (<a cla [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BufferRegion.html">BufferRegion</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_g"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;g&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="structtvm_1_1NDArrayContainerTrait.html">NDArrayContainerTrait</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1ScatterAddAttrs.html">ScatterAddAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1TVMPODValue__.html">TVMPODValue_</a> (<a class="el" href="namesp [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BufferRegionNode.html">BufferRegionNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1NdarraySizeAttrs.html">NdarraySizeAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1ScatterAttrs.html">ScatterAttrs</a> (<a class="el" href= [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BufferStore.html">BufferStore</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1GatherAttrs.html">GatherAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1NE.html">NE</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#1 [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1BufferStoreNode.html">BufferStoreNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1GatherNDAttrs.html">GatherNDAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1NENode.html">NENode</a> (<a class="el" href="namespacetvm_1_1tir.ht [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1Builder.html">Builder</a> (<a class="el" href="namespacetvm_1_1meta__schedule.html">tvm::meta_schedule</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1GE.html">GE</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1NLLLossAttrs.html">NLLLossAttrs</a> (<a class="el" href="namespacetvm_1_1rela [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1BuilderInput.html">BuilderInput</a> (<a class="el" href="namespacetvm_1_1meta__schedule.html">tvm::meta_schedule</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1GenericFunc.html">GenericFunc</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1NodeFunctor.html">NodeFunctor</a> (<a class="el" href="namespacetvm.html">tvm< [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1BuilderInputNode.html">BuilderInputNode</a> (<a class="el" href="namespacetvm_1_1meta__schedule.html">tvm::meta_schedule</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1GenericFuncNode.html">GenericFuncNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1NodeFunctor_3_01R_07const_01ObjectRef_01_6n_00_01Args_8_8_8_08 [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1BuilderNode.html">BuilderNode</a> (<a class="el" href="namespacetvm_1_1meta__schedule.html">tvm::meta_schedule</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1GENode.html">GENode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1NonMaximumSuppressionAttrs.html">NonMaximumSuppressionAttrs</ [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1BuilderResult.html">BuilderResult</a> (<a class="el" href="namespacetvm_1_1meta__schedule.html">tvm::meta_schedule</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1GetValidCountsAttrs.html">GetValidCountsAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1NormalAttrs.html">Normal [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1BuilderResultNode.html">BuilderResultNode</a> (<a class="el" href="namespacetvm_1_1meta__schedule.html">tvm::meta_schedule</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1GlobalPool2DAttrs.html">GlobalPool2DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Not.html">Not</a> (<a c [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1BuildResult.html">BuildResult</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1GlobalTypeVar.html">GlobalTypeVar</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1NotNode.html">NotNode</a> (<a class="el" href="namespacetvm_1_1tir [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1BuildResultNode.html">BuildResultNode</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1GlobalTypeVarNode.html">GlobalTypeVarNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1runtime_1_1NullOptType.html">NullOptType</a> (<a class=" [...]
 <tr><td rowspan="2" valign="bottom"><a name="letter_c"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;c&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="classtvm_1_1GlobalTypeVarNode.html">GlobalTypeVarNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1ObjAllocatorBase.html">ObjAllocatorBase</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1SearchCallback.html">SearchCallback</a> (<a class="el" hre [...]
-<tr><td valign="top"><a class="el" href="classGlobalVar.html">GlobalVar</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1Object.html">Object</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1SearchCallbackNode.html">SearchCallbackNode</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</ [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1CacheReadStep.html">CacheReadStep</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1GlobalVar.html">GlobalVar</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1runtime_1_1ObjectEqual.html">ObjectEqual</a> (<a class="el" href="namespacet [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1CacheReadStepNode.html">CacheReadStepNode</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1GlobalVarNode.html">GlobalVarNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1runtime_1_1ObjectHash.html">ObjectHash</a> (<a class="el" hr [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1CacheWriteStep.html">CacheWriteStep</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1GlobalVarSupply.html">GlobalVarSupply</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1ObjectPath.html">ObjectPath</a> (<a class="el" href="namespacet [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1CacheWriteStepNode.html">CacheWriteStepNode</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1GlobalVarSupplyNode.html">GlobalVarSupplyNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1ObjectPathNode.html">ObjectPathNode</a> (<a cla [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Call.html">Call</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1usmp_1_1algo_1_1GreedyBase.html">GreedyBase</a> (<a class="el" href="namespacetvm_1_1tir_1_1usmp_1_1algo.html">tvm::tir::usmp::algo</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1ObjectPathPair.html">ObjectPathPair</a> (<a class="el" href="name [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1relay_1_1Call.html">Call</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1GridSampleAttrs.html">GridSampleAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1ObjectPathPairNode.html">ObjectPathPairNode</a> (<a class="el" href="namespacetvm.html [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1CallDoc.html">CallDoc</a> (<a class="el" href="namespacetvm_1_1script_1_1printer.html">tvm::script::printer</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1GroupNormAttrs.html">GroupNormAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1ObjectPtr.html">ObjectPtr</a> (<a cla [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1CallDocNode.html">CallDocNode</a> (<a class="el" href="namespacetvm_1_1script_1_1printer.html">tvm::script::printer</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1GT.html">GT</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1runtime_1_1ObjectPtrEqual.html">ObjectPtrEqual</a> (<a class="el" href [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1runtime_1_1profiling_1_1CallFrame.html">CallFrame</a> (<a class="el" href="namespacetvm_1_1runtime_1_1profiling.html">tvm::runtime::profiling</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1GTNode.html">GTNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1runtime_1_1ObjectPtrHash.html">ObjectPtrHash</a> (<a cla [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1CallLoweredAttrs.html">CallLoweredAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_h"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;h&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">ObjectRef</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1SelectNode.html">SelectNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1detail_1_1TypeName_3_01uint64__t_01_4.html">TypeName&lt; uint64_t &gt;</a> (<a class= [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1CallNode.html">CallNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1runtime_1_1ObjectTypeChecker.html">ObjectTypeChecker</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1detail_1_1SelectSEqualReduce.html">SelectSEqualReduce</a> (<a class="el"  [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1relay_1_1CallNode.html">CallNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1SimpleObjAllocator_1_1Handler.html">SimpleObjAllocator::Handler</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1runtime_1_1ObjectTypeChecker_3_01Array_3_01T_0 [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1relay_1_1CallPattern.html">CallPattern</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1SHashReducer_1_1Handler.html">SHashReducer::Handler</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1runtime_1_1ObjectTypeChecker_3_01Map_3_01K_00_01V_01_4_01_4.html">ObjectTypeChecker [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1relay_1_1CallPatternNode.html">CallPatternNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1SEqualReducer_1_1Handler.html">SEqualReducer::Handler</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1OnDeviceAttrs.html">OnDeviceAttrs</a> (<a class="el" href="names [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1arith_1_1CanonicalSimplifier.html">CanonicalSimplifier</a> (<a class="el" href="namespacetvm_1_1arith.html">tvm::arith</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structdmlc_1_1serializer_1_1Handler_3_01DLDataType_01_4.html">Handler&lt; DLDataType &gt;</a> (<a class="el" href="namespacedmlc_1_1serializer.html">dmlc::serializer</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1OneH [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Cast.html">Cast</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structdmlc_1_1serializer_1_1Handler_3_01DLDevice_01_4.html">Handler&lt; DLDevice &gt;</a> (<a class="el" href="namespacedmlc_1_1serializer.html">dmlc::serializer</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1Op.html">Op</a> (<a class="el" href="namespacetvm.html [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1CastAttrs.html">CastAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1HardwareParams.html">HardwareParams</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1OpAttrMap.html">OpAttrMap</a> (<a class="el" href [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1CastHintAttrs.html">CastHintAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1HardwareParamsNode.html">HardwareParamsNode</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1Operation.html">Operation</ [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1CastNode.html">CastNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1HybridOp.html">HybridOp</a> (<a class="el" href="namespacetvm_1_1te.html">tvm::te</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1OperationDoc.html">OperationDoc</a> (<a class="el" href="namespacetvm_1_1script_1_1prin [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1ClassDoc.html">ClassDoc</a> (<a class="el" href="namespacetvm_1_1script_1_1printer.html">tvm::script::printer</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1HybridOpNode.html">HybridOpNode</a> (<a class="el" href="namespacetvm_1_1te.html">tvm::te</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1OperationDocNode.html">OperationDocNode [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1ClassDocNode.html">ClassDocNode</a> (<a class="el" href="namespacetvm_1_1script_1_1printer.html">tvm::script::printer</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_i"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;i&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1OperationNode.html">OperationNode</a> (<a class="el" href="namespacetvm_1_1te.html">tvm::te</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1transform_1_1Sequential.html">Sequential</a> (<a class="el" href="namespacetvm_1_1transform.html">tvm::transform</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1TypeVisitor.html">TypeVisitor</a> (<a class="el" href="namespacetvm.html">t [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1relay_1_1Clause.html">Clause</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1OpImplementation.html">OpImplementation</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1transform_1_1SequentialNode.html">SequentialNode</a> (<a class="el" href="namespa [...]
+</td><td valign="top"><a class="el" href="classGlobalVar.html">GlobalVar</a>&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_o"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;o&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1ScopeDocNode.html">ScopeDocNode</a> (<a class="el" href="namespacetvm_1_1script_1_1printer.html">tvm::script::printer</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1TypedEnvFunc_3_01R_07Args_8_8_8_08_4.html">TypedEnvFunc&lt; R(Args...)&gt;</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="classtvm_1_1GlobalVar.html">GlobalVar</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1ScopedTimer.html">ScopedTimer</a> (<a class="el" href="namespacetvm_1_1meta__schedule.html">tvm::meta_schedule</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1TypedPackedFunc.html">TypedPackedFunc</a> (<a class="el" href="namespacet [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1CacheReadStep.html">CacheReadStep</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1GlobalVarNode.html">GlobalVarNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1ObjAllocatorBase.html">ObjAllocatorBase</a> (<a class="el" [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1CacheReadStepNode.html">CacheReadStepNode</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1GlobalVarSupply.html">GlobalVarSupply</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1Object.html">Object</a> (<a class="el" href="n [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1CacheWriteStep.html">CacheWriteStep</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1GlobalVarSupplyNode.html">GlobalVarSupplyNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1runtime_1_1ObjectEqual.html">ObjectEqual</a> (<a class [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1CacheWriteStepNode.html">CacheWriteStepNode</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1usmp_1_1algo_1_1GreedyBase.html">GreedyBase</a> (<a class="el" href="namespacetvm_1_1tir_1_1usmp_1_1algo.html">tvm::tir::usmp::algo</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1r [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Call.html">Call</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1GridSampleAttrs.html">GridSampleAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1ObjectPath.html">ObjectPath</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160; [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1relay_1_1Call.html">Call</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1GroupNormAttrs.html">GroupNormAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1ObjectPathNode.html">ObjectPathNode</a> (<a class="el" href="namespacetvm.html">tvm</a>) [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1CallDoc.html">CallDoc</a> (<a class="el" href="namespacetvm_1_1script_1_1printer.html">tvm::script::printer</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1GT.html">GT</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1ObjectPathPair.html">ObjectPathPair</a> (<a class="el" href="namespacetvm.html" [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1CallDocNode.html">CallDocNode</a> (<a class="el" href="namespacetvm_1_1script_1_1printer.html">tvm::script::printer</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1GTNode.html">GTNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1ObjectPathPairNode.html">ObjectPathPairNode</a> (<a class="el"  [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1runtime_1_1profiling_1_1CallFrame.html">CallFrame</a> (<a class="el" href="namespacetvm_1_1runtime_1_1profiling.html">tvm::runtime::profiling</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_h"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;h&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1ObjectPtr.html">ObjectPtr</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1meta__schedule_1_1SearchStrategyNode.html">SearchStrategyNode</a> (<a class="el" href="namespacetvm_1_1meta__schedule.html">tvm::meta_schedule</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1detail_1_1TypeName_3_01double_01_4.ht [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1CallLoweredAttrs.html">CallLoweredAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1runtime_1_1ObjectPtrEqual.html">ObjectPtrEqual</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1SearchTask.html">SearchTask</a> (<a cl [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1CallNode.html">CallNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1SimpleObjAllocator_1_1Handler.html">SimpleObjAllocator::Handler</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1runtime_1_1ObjectPtrHash.html">ObjectPtrHash</a> (<a [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1relay_1_1CallNode.html">CallNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1SEqualReducer_1_1Handler.html">SEqualReducer::Handler</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">ObjectRef</a> (<a class="el" href="namespacetvm_1_1runtime.ht [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1relay_1_1CallPattern.html">CallPattern</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1SHashReducer_1_1Handler.html">SHashReducer::Handler</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1runtime_1_1ObjectTypeChecker.html">ObjectTypeChecker</a> (<a class="el" href="names [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1relay_1_1CallPatternNode.html">CallPatternNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structdmlc_1_1serializer_1_1Handler_3_01DLDataType_01_4.html">Handler&lt; DLDataType &gt;</a> (<a class="el" href="namespacedmlc_1_1serializer.html">dmlc::serializer</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1runtime_1_1ObjectType [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1arith_1_1CanonicalSimplifier.html">CanonicalSimplifier</a> (<a class="el" href="namespacetvm_1_1arith.html">tvm::arith</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structdmlc_1_1serializer_1_1Handler_3_01DLDevice_01_4.html">Handler&lt; DLDevice &gt;</a> (<a class="el" href="namespacedmlc_1_1serializer.html">dmlc::serializer</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1runtime_1_1Object [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Cast.html">Cast</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1HardwareParams.html">HardwareParams</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1OnDeviceAttrs.html">OnDeviceAttrs</a> (<a class="el" hre [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1CastAttrs.html">CastAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1HardwareParamsNode.html">HardwareParamsNode</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1OneHotAttrs.html">OneHotAttrs</ [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1CastHintAttrs.html">CastHintAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1HybridOp.html">HybridOp</a> (<a class="el" href="namespacetvm_1_1te.html">tvm::te</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1Op.html">Op</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td  [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1CastNode.html">CastNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1HybridOpNode.html">HybridOpNode</a> (<a class="el" href="namespacetvm_1_1te.html">tvm::te</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1OpAttrMap.html">OpAttrMap</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1ClassDoc.html">ClassDoc</a> (<a class="el" href="namespacetvm_1_1script_1_1printer.html">tvm::script::printer</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_i"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;i&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1Operation.html">Operation</a> (<a class="el" href="namespacetvm_1_1te.html">tvm::te</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1SeqStmt.html">SeqStmt</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1TypeReporterNode.html">TypeReporterNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#1 [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1ClassDocNode.html">ClassDocNode</a> (<a class="el" href="namespacetvm_1_1script_1_1printer.html">tvm::script::printer</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1OperationDoc.html">OperationDoc</a> (<a class="el" href="namespacetvm_1_1script_1_1printer.html">tvm::script::printer</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Se [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1relay_1_1Clause.html">Clause</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1Id.html">Id</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1OperationDocNode.html">OperationDocNode</a> (<a class="el" href="namespacetvm_1_1script_ [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1relay_1_1ClauseNode.html">ClauseNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1IdDoc.html">IdDoc</a> (<a class="el" href="namespacetvm_1_1script_1_1printer.html">tvm::script::printer</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1OperationNode.html">OperationNode</a> (<a class="el" hr [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1ClipAttrs.html">ClipAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1IdDocNode.html">IdDocNode</a> (<a class="el" href="namespacetvm_1_1script_1_1printer.html">tvm::script::printer</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1OpImplementation.html">OpImplementation</a> ( [...]
 </td></tr>
-<tr><td valign="top"><a class="el" href="classtvm_1_1relay_1_1ClauseNode.html">ClauseNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1Id.html">Id</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1OpImplementationNode.html">OpImplementationNode</a> (<a class="el" href="namespacetvm_1_1rel [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1ClipAttrs.html">ClipAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1IdDoc.html">IdDoc</a> (<a class="el" href="namespacetvm_1_1script_1_1printer.html">tvm::script::printer</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1OpNode.html">OpNode</a> (<a class="el" href="namespacetvm.html [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1Closure.html">Closure</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1IdDocNode.html">IdDocNode</a> (<a class="el" href="namespacetvm_1_1script_1_1printer.html">tvm::script::printer</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1OpRegEntry.html">OpRegEntry</a> (<a class="el" href=" [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1ClosureObj.html">ClosureObj</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1IdNode.html">IdNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1OpSpecialization.html">OpSpecialization</a> (<a class="el" href="namespacetvm_ [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1CmpOpNode.html">CmpOpNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1If.html">If</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1OpSpecializationNode.html">OpSpecializationNode</a> (<a class="el" href="namespacetvm_1_1relay.html" [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1CommReducer.html">CommReducer</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1IfDoc.html">IfDoc</a> (<a class="el" href="namespacetvm_1_1script_1_1printer.html">tvm::script::printer</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1OpStrategy.html">OpStrategy</a> (<a class="el" href="nam [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1CommReducerNode.html">CommReducerNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1IfDocNode.html">IfDocNode</a> (<a class="el" href="namespacetvm_1_1script_1_1printer.html">tvm::script::printer</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1OpStrategyNode.html">OpStrategyNode</a>  [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1CompilationConfig.html">CompilationConfig</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1IfNode.html">IfNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1Optional.html">Optional</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</ [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1CompilationConfigNode.html">CompilationConfigNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1IfPattern.html">IfPattern</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Or.html">Or</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;& [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1Closure.html">Closure</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1IdNode.html">IdNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1OpImplementationNode.html">OpImplementationNode</a> (<a class="el" href="namespacetv [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1ClosureObj.html">ClosureObj</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1If.html">If</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1OpNode.html">OpNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td> [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1CmpOpNode.html">CmpOpNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1IfDoc.html">IfDoc</a> (<a class="el" href="namespacetvm_1_1script_1_1printer.html">tvm::script::printer</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1OpRegEntry.html">OpRegEntry</a> (<a class="el" href="namespacetvm.htm [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1CommReducer.html">CommReducer</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1IfDocNode.html">IfDocNode</a> (<a class="el" href="namespacetvm_1_1script_1_1printer.html">tvm::script::printer</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1OpSpecialization.html">OpSpecialization</a> (<a  [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1tir_1_1CommReducerNode.html">CommReducerNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1IfNode.html">IfNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1OpSpecializationNode.html">OpSpecializationNode</a> (<a class="el" href="namespa [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1CompilationConfig.html">CompilationConfig</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1IfPattern.html">IfPattern</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1OpStrategy.html">OpStrategy</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::rel [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1CompilationConfigNode.html">CompilationConfigNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1IfPatternNode.html">IfPatternNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1OpStrategyNode.html">OpStrategyNode</a> (<a class="el" href="namespacetvm [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1CompileError.html">CompileError</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1IfThenElse.html">IfThenElse</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1Optional.html">Optional</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160 [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1CompilerAttrs.html">CompilerAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1IfThenElseNode.html">IfThenElseNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Or.html">Or</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::t [...]
 </td></tr>
-<tr><td valign="top"><a class="el" href="classtvm_1_1CompileError.html">CompileError</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1IfPatternNode.html">IfPatternNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1OrNode.html">OrNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#1 [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1CompilerAttrs.html">CompilerAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1IfThenElse.html">IfThenElse</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_p"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#16 [...]
-</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1ShuffleNode.html">ShuffleNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1v__info.html">v_info</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1ComputeAtStep.html">ComputeAtStep</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1IfThenElseNode.html">IfThenElseNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1runtime_1_1SignaturePrinter.html">SignaturePrin [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1ComputeAtStepNode.html">ComputeAtStepNode</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1detail_1_1ImplSEqualReduce.html">ImplSEqualReduce</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1PackedFunc.html [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1ComputeDAG.html">ComputeDAG</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1detail_1_1ImplSEqualReduce_3_01T_00_01true_01_4.html">ImplSEqualReduce&lt; T, true &gt;</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1ru [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1ComputeDAGNode.html">ComputeDAGNode</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1detail_1_1ImplSHashReduce.html">ImplSHashReduce</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1PackedFuncSubObj.html"> [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1ComputeInlineStep.html">ComputeInlineStep</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1detail_1_1ImplSHashReduce_3_01T_00_01true_01_4.html">ImplSHashReduce&lt; T, true &gt;</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="st [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1ComputeInlineStepNode.html">ComputeInlineStepNode</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1detail_1_1ImplVisitAttrs.html">ImplVisitAttrs</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1runtime_1_1PackedFunc [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1te_1_1ComputeOp.html">ComputeOp</a> (<a class="el" href="namespacetvm_1_1te.html">tvm::te</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1detail_1_1ImplVisitAttrs_3_01T_00_01true_01_4.html">ImplVisitAttrs&lt; T, true &gt;</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1runtime_1_1PackedFuncValueConverter_3_01PrimE [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1te_1_1ComputeOpNode.html">ComputeOpNode</a> (<a class="el" href="namespacetvm_1_1te.html">tvm::te</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1IncompleteType.html">IncompleteType</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1runtime_1_1PackedFuncValueConverter_3_01tvm_1_1Bool_01_4.html">PackedFuncValueConverter&lt; tvm::Bool &g [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1ComputeRootStep.html">ComputeRootStep</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1IncompleteTypeNode.html">IncompleteTypeNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1runtime_1_1PackedFuncValueConverter_3_01tvm_1_1Integer [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1ComputeRootStepNode.html">ComputeRootStepNode</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1IndexDoc.html">IndexDoc</a> (<a class="el" href="namespacetvm_1_1script_1_1printer.html">tvm::script::printer</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1runtime [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1ConcatenateAttrs.html">ConcatenateAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1IndexDocNode.html">IndexDocNode</a> (<a class="el" href="namespacetvm_1_1script_1_1printer.html">tvm::script::printer</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1micro__rpc_1_1PacketFie [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1relay_1_1Constant.html">Constant</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1IndexMap.html">IndexMap</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1PadAttrs.html">PadAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</ [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1ConstantInfo.html">ConstantInfo</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1IndexMapNode.html">IndexMapNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1transform_1_1Pass.html">Pass</a> (<a class="el" href="namespacetvm_1_1transform.html">tvm::transform</a>)&#1 [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1metadata_1_1ConstantInfoMetadata.html">ConstantInfoMetadata</a> (<a class="el" href="namespacetvm_1_1runtime_1_1metadata.html">tvm::runtime::metadata</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1InitOpAttrs.html">InitOpAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1transform_1_1PassConte [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1metadata_1_1ConstantInfoMetadataNode.html">ConstantInfoMetadataNode</a> (<a class="el" href="namespacetvm_1_1runtime_1_1metadata.html">tvm::runtime::metadata</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1InplaceArrayBase.html">InplaceArrayBase</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_ [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1ConstantInfoNode.html">ConstantInfoNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1InstanceNormAttrs.html">InstanceNormAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1transform_1_1PassInfo.html">PassInfo</a> (<a class="el" href="namespacetvm_1_1tran [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1ConstantMemoryPools.html">ConstantMemoryPools</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Instruction.html">Instruction</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1transform_1_1PassInfoNode.html">PassInfoNode</a> (<a class="el" href="namespacetvm_1_1transform. [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1ConstantMemoryPoolsNode.html">ConstantMemoryPoolsNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1runtime_1_1vm_1_1Instruction.html">Instruction</a> (<a class="el" href="namespacetvm_1_1runtime_1_1vm.html">tvm::runtime::vm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1instrument_1_1PassInstrument.html">PassInstrument</a> (<a  [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1relay_1_1ConstantNode.html">ConstantNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1InstructionKind.html">InstructionKind</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1instrument_1_1PassInstrumentNode.html">PassInstrumentNode</a> (<a class="el"  [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1relay_1_1ConstantPattern.html">ConstantPattern</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1InstructionKindNode.html">InstructionKindNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1transform_1_1PassNode.html">PassNode</a> (<a class="el" href="n [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1relay_1_1ConstantPatternNode.html">ConstantPatternNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1InstructionKindRegEntry.html">InstructionKindRegEntry</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1Pattern.html">Pattern</a> (<a class="e [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1ConstantPoolInfo.html">ConstantPoolInfo</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1InstructionNode.html">InstructionNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1PatternConstructor.html">PatternConstructor</a> (<a class="el" href="namespacetvm_1_1 [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1ComputeAtStep.html">ComputeAtStep</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1detail_1_1ImplSEqualReduce.html">ImplSEqualReduce</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1OrNode.html">OrNode</a> (<a [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1ComputeAtStepNode.html">ComputeAtStepNode</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1detail_1_1ImplSEqualReduce_3_01T_00_01true_01_4.html">ImplSEqualReduce&lt; T, true &gt;</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a na [...]
+</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Shuffle.html">Shuffle</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1v__info.html">v_info</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1ComputeDAG.html">ComputeDAG</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1detail_1_1ImplSHashReduce.html">ImplSHashReduce</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1ShuffleNode.html">ShuffleNode</a> ( [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1ComputeDAGNode.html">ComputeDAGNode</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1detail_1_1ImplSHashReduce_3_01T_00_01true_01_4.html">ImplSHashReduce&lt; T, true &gt;</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1ComputeInlineStep.html">ComputeInlineStep</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1detail_1_1ImplVisitAttrs.html">ImplVisitAttrs</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1PackedFuncObj.html" [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1ComputeInlineStepNode.html">ComputeInlineStepNode</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1detail_1_1ImplVisitAttrs_3_01T_00_01true_01_4.html">ImplVisitAttrs&lt; T, true &gt;</a> (<a class="el" href="namespacetvm_1_1detail.html">tvm::detail</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" hr [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1te_1_1ComputeOp.html">ComputeOp</a> (<a class="el" href="namespacetvm_1_1te.html">tvm::te</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1IncompleteType.html">IncompleteType</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1runtime_1_1PackedFuncValueConverter.html">PackedFuncValueConverter</a> (<a class="el" href="namespacetvm_1_1runt [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1te_1_1ComputeOpNode.html">ComputeOpNode</a> (<a class="el" href="namespacetvm_1_1te.html">tvm::te</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1IncompleteTypeNode.html">IncompleteTypeNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1runtime_1_1PackedFuncValueConverter_3_01Optional_3_01T_01_4_01_4.html">PackedFuncValueConverter& [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1ComputeRootStep.html">ComputeRootStep</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1IndexDoc.html">IndexDoc</a> (<a class="el" href="namespacetvm_1_1script_1_1printer.html">tvm::script::printer</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1runtime_1_1Pack [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1auto__scheduler_1_1ComputeRootStepNode.html">ComputeRootStepNode</a> (<a class="el" href="namespacetvm_1_1auto__scheduler.html">tvm::auto_scheduler</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1IndexDocNode.html">IndexDocNode</a> (<a class="el" href="namespacetvm_1_1script_1_1printer.html">tvm::script::printer</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_ [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1ConcatenateAttrs.html">ConcatenateAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1IndexMap.html">IndexMap</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1runtime_1_1PackedFuncValueConverter_3_01tvm_1_1Integer_01_4.html">PackedFuncValue [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1relay_1_1Constant.html">Constant</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1IndexMapNode.html">IndexMapNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1runtime_1_1PackedFuncValueConverter_3_1_1tvm_1_1runtime_1_1String_01_4.html">PackedFuncVal [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1ConstantInfo.html">ConstantInfo</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1InitOpAttrs.html">InitOpAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1micro__rpc_1_1PacketFieldSizeBytes.html">PacketFieldSizeBytes</a> (<a class="el" href="names [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1metadata_1_1ConstantInfoMetadata.html">ConstantInfoMetadata</a> (<a class="el" href="namespacetvm_1_1runtime_1_1metadata.html">tvm::runtime::metadata</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1InplaceArrayBase.html">InplaceArrayBase</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_ [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1metadata_1_1ConstantInfoMetadataNode.html">ConstantInfoMetadataNode</a> (<a class="el" href="namespacetvm_1_1runtime_1_1metadata.html">tvm::runtime::metadata</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1relay_1_1InstanceNormAttrs.html">InstanceNormAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tr [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1ConstantInfoNode.html">ConstantInfoNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1Instruction.html">Instruction</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1transform_1_1PassContext.html">PassContext</a> (<a class="el" href="namespacetvm_1_1transform.html">t [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1ConstantMemoryPools.html">ConstantMemoryPools</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1runtime_1_1vm_1_1Instruction.html">Instruction</a> (<a class="el" href="namespacetvm_1_1runtime_1_1vm.html">tvm::runtime::vm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1transform_1_1PassContextNode.html">PassContextNode</a> (<a class="e [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1ConstantMemoryPoolsNode.html">ConstantMemoryPoolsNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1InstructionKind.html">InstructionKind</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1transform_1_1PassInfo.html">PassInfo</a> (<a class="el" href="namespacetvm_1_1t [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1relay_1_1ConstantNode.html">ConstantNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1InstructionKindNode.html">InstructionKindNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1transform_1_1PassInfoNode.html">PassInfoNode</a> (<a class="el" href= [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1relay_1_1ConstantPattern.html">ConstantPattern</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1InstructionKindRegEntry.html">InstructionKindRegEntry</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1instrument_1_1PassInstrument.html">PassInstrument</a> ( [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1relay_1_1ConstantPatternNode.html">ConstantPatternNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1InstructionNode.html">InstructionNode</a> (<a class="el" href="namespacetvm_1_1tir.html">tvm::tir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1instrument_1_1PassInstrumentNode.html">PassInstrumentNode</a> ( [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1ConstantPoolInfo.html">ConstantPoolInfo</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IntConstraints.html">IntConstraints</a> (<a class="el" href="namespacetvm_1_1arith.html">tvm::arith</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1transform_1_1PassNode.html">PassNode</a> (<a class="el" href="namespacetvm_1_1transform.ht [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1ConstantPoolInfoNode.html">ConstantPoolInfoNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IntConstraintsNode.html">IntConstraintsNode</a> (<a class="el" href="namespacetvm_1_1arith.html">tvm::arith</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1Pattern.html">Pattern</a> (<a class="el" href="namespacetvm_1_1r [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1arith_1_1ConstIntBound.html">ConstIntBound</a> (<a class="el" href="namespacetvm_1_1arith.html">tvm::arith</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IntConstraintsTransform.html">IntConstraintsTransform</a> (<a class="el" href="namespacetvm_1_1arith.html">tvm::arith</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1PatternConstructor.html">PatternConstructor< [...]
 </td></tr>
-<tr><td valign="top"><a class="el" href="structtvm_1_1ConstantPoolInfoNode.html">ConstantPoolInfoNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IntConstraints.html">IntConstraints</a> (<a class="el" href="namespacetvm_1_1arith.html">tvm::arith</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1PatternConstructorNode.html">PatternConstructorNode</a> (<a class="el" h [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1arith_1_1ConstIntBound.html">ConstIntBound</a> (<a class="el" href="namespacetvm_1_1arith.html">tvm::arith</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IntConstraintsNode.html">IntConstraintsNode</a> (<a class="el" href="namespacetvm_1_1arith.html">tvm::arith</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1PatternFunctor.html">PatternFunctor</a> (<a class="el" [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1arith_1_1ConstIntBoundAnalyzer.html">ConstIntBoundAnalyzer</a> (<a class="el" href="namespacetvm_1_1arith.html">tvm::arith</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IntConstraintsTransform.html">IntConstraintsTransform</a> (<a class="el" href="namespacetvm_1_1arith.html">tvm::arith</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1PatternFunctor_3_01R_07const [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1arith_1_1ConstIntBoundNode.html">ConstIntBoundNode</a> (<a class="el" href="namespacetvm_1_1arith.html">tvm::arith</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IntConstraintsTransformNode.html">IntConstraintsTransformNode</a> (<a class="el" href="namespacetvm_1_1arith.html">tvm::arith</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1PatternMutator.html">Pattern [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1arith_1_1ConstraintContext.html">ConstraintContext</a> (<a class="el" href="namespacetvm_1_1arith.html">tvm::arith</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1Integer.html">Integer</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1PatternNode.html">PatternNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1Constructor.html">Constructor</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1InterpreterClosure.html">InterpreterClosure</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1PatternTuple.html">PatternTuple</a> (<a class="el" href="namespacetvm_1_1relay.html [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1ConstructorNode.html">ConstructorNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1InterpreterClosureObj.html">InterpreterClosureObj</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1PatternTupleNode.html">PatternTupleNode</a> (<a class="el" href="name [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1relay_1_1ConstructorValue.html">ConstructorValue</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IntGroupBounds.html">IntGroupBounds</a> (<a class="el" href="namespacetvm_1_1arith.html">tvm::arith</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1PatternVar.html">PatternVar</a> (<a class="el" href="nam [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1ConstructorValueObj.html">ConstructorValueObj</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IntGroupBoundsNode.html">IntGroupBoundsNode</a> (<a class="el" href="namespacetvm_1_1arith.html">tvm::arith</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1PatternVarNode.html">PatternVarNode</a> ( [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1NDArray_1_1Container.html">NDArray::Container</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1IntImm.html">IntImm</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1PatternVisitor.html">PatternVisitor</a> (<a class="el" href="namespacetvm_1_1relay.ht [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1NDArray_1_1ContainerBase.html">NDArray::ContainerBase</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1IntImmNode.html">IntImmNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1PatternWildcard.html">PatternWildcard</a> (<a class="el" href="namesp [...]
-<tr><td valign="top"><a class="el" href="classtvm_1_1ContextManager.html">ContextManager</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IntSet.html">IntSet</a> (<a class="el" href="namespacetvm_1_1arith.html">tvm::arith</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1PatternWildcardNode.html">PatternWildcardNode</a> (<a class="el" href="namespacetvm_1_1relay.html">tv [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1Conv1DAttrs.html">Conv1DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IntSetAnalyzer.html">IntSetAnalyzer</a> (<a class="el" href="namespacetvm_1_1arith.html">tvm::arith</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1profiling_1_1PercentNode.html">PercentNode</a> (<a class="el" h [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1Conv1DTransposeAttrs.html">Conv1DTransposeAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IntSetNode.html">IntSetNode</a> (<a class="el" href="namespacetvm_1_1arith.html">tvm::arith</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1PlaceholderOp.html">PlaceholderOp</a> (<a class="el" href= [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1Conv2DAttrs.html">Conv2DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilder.html">IRBuilder</a> (<a class="el" href="namespacetvm_1_1script_1_1ir__builder.html">tvm::script::ir_builder</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1PlaceholderOpNode.html">Placehold [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1Conv2DTransposeAttrs.html">Conv2DTransposeAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html">IRBuilderFrame</a> (<a class="el" href="namespacetvm_1_1script_1_1ir__builder.html">tvm::script::ir_builder</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1PointerType [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1Conv2DWinogradAttrs.html">Conv2DWinogradAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrameNode.html">IRBuilderFrameNode</a> (<a class="el" href="namespacetvm_1_1script_1_1ir__builder.html">tvm::script::ir_builder</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1Point [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1Conv2DWinogradNNPACKWeightTransformAttrs.html">Conv2DWinogradNNPACKWeightTransformAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderNode.html">IRBuilderNode</a> (<a class="el" href="namespacetvm_1_1script_1_1ir__builder.html">tvm::script::ir_builder</a>)&#160;&#160;&#160;</td><td valign="top"><a cl [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1arith_1_1ConstIntBoundAnalyzer.html">ConstIntBoundAnalyzer</a> (<a class="el" href="namespacetvm_1_1arith.html">tvm::arith</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IntConstraintsTransformNode.html">IntConstraintsTransformNode</a> (<a class="el" href="namespacetvm_1_1arith.html">tvm::arith</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1PatternConstructorNo [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1arith_1_1ConstIntBoundNode.html">ConstIntBoundNode</a> (<a class="el" href="namespacetvm_1_1arith.html">tvm::arith</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1Integer.html">Integer</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1PatternFunctor.html">PatternFunctor</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm: [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1arith_1_1ConstraintContext.html">ConstraintContext</a> (<a class="el" href="namespacetvm_1_1arith.html">tvm::arith</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1InterpreterClosure.html">InterpreterClosure</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1PatternFunctor_3_01R_07const_01Pattern_01_6n_0 [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1Constructor.html">Constructor</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1InterpreterClosureObj.html">InterpreterClosureObj</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1PatternMutator.html">PatternMutator</a> (<a class="el" href="namespacetvm_1_1 [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1ConstructorNode.html">ConstructorNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IntGroupBounds.html">IntGroupBounds</a> (<a class="el" href="namespacetvm_1_1arith.html">tvm::arith</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1PatternNode.html">PatternNode</a> (<a class="el" href="namespacetvm_1_1relay.html"> [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1relay_1_1ConstructorValue.html">ConstructorValue</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IntGroupBoundsNode.html">IntGroupBoundsNode</a> (<a class="el" href="namespacetvm_1_1arith.html">tvm::arith</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1PatternTuple.html">PatternTuple</a> (<a class="e [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1ConstructorValueObj.html">ConstructorValueObj</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1IntImm.html">IntImm</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1PatternTupleNode.html">PatternTupleNode</a> (<a class="el" href="namespacetvm_1_1relay.htm [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1NDArray_1_1Container.html">NDArray::Container</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1IntImmNode.html">IntImmNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1PatternVar.html">PatternVar</a> (<a class="el" href="namespacetvm_1_1relay.ht [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1NDArray_1_1ContainerBase.html">NDArray::ContainerBase</a> (<a class="el" href="namespacetvm_1_1runtime.html">tvm::runtime</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IntSet.html">IntSet</a> (<a class="el" href="namespacetvm_1_1arith.html">tvm::arith</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1PatternVarNode.html">PatternVarNode</a> (<a class="e [...]
+<tr><td valign="top"><a class="el" href="classtvm_1_1ContextManager.html">ContextManager</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IntSetAnalyzer.html">IntSetAnalyzer</a> (<a class="el" href="namespacetvm_1_1arith.html">tvm::arith</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1PatternVisitor.html">PatternVisitor</a> (<a class="el" href="namespacetvm_1_1relay.ht [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1Conv1DAttrs.html">Conv1DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1arith_1_1IntSetNode.html">IntSetNode</a> (<a class="el" href="namespacetvm_1_1arith.html">tvm::arith</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1PatternWildcard.html">PatternWildcard</a> (<a class="el" href="namespacet [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1Conv1DTransposeAttrs.html">Conv1DTransposeAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilder.html">IRBuilder</a> (<a class="el" href="namespacetvm_1_1script_1_1ir__builder.html">tvm::script::ir_builder</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1relay_1_1PatternWildc [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1Conv2DAttrs.html">Conv2DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html">IRBuilderFrame</a> (<a class="el" href="namespacetvm_1_1script_1_1ir__builder.html">tvm::script::ir_builder</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1runtime_1_1profiling_1_1Perce [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1Conv2DTransposeAttrs.html">Conv2DTransposeAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrameNode.html">IRBuilderFrameNode</a> (<a class="el" href="namespacetvm_1_1script_1_1ir__builder.html">tvm::script::ir_builder</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_ [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1Conv2DWinogradAttrs.html">Conv2DWinogradAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderNode.html">IRBuilderNode</a> (<a class="el" href="namespacetvm_1_1script_1_1ir__builder.html">tvm::script::ir_builder</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1te_1_1Placehold [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1Conv2DWinogradNNPACKWeightTransformAttrs.html">Conv2DWinogradNNPACKWeightTransformAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1IRDocsifier.html">IRDocsifier</a> (<a class="el" href="namespacetvm_1_1script_1_1printer.html">tvm::script::printer</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href=" [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1Conv3DAttrs.html">Conv3DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1IRDocsifierNode.html">IRDocsifierNode</a> (<a class="el" href="namespacetvm_1_1script_1_1printer.html">tvm::script::printer</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1PointerTypeNode.html">PointerTypeNode< [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1Conv3DTransposeAttrs.html">Conv3DTransposeAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1IRModule.html">IRModule</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1tir_1_1usmp_1_1PoolAllocation.html">PoolAllocation</a> (<a class="el" href="namespacetvm_1_1t [...]
 </td></tr>
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1Conv3DAttrs.html">Conv3DAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1IRDocsifier.html">IRDocsifier</a> (<a class="el" href="namespacetvm_1_1script_1_1printer.html">tvm::script::printer</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1tir_1_1usmp_1_1PoolAllocationNode.html">PoolA [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1Conv3DTransposeAttrs.html">Conv3DTransposeAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1printer_1_1IRDocsifierNode.html">IRDocsifierNode</a> (<a class="el" href="namespacetvm_1_1script_1_1printer.html">tvm::script::printer</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1PoolInfo.html">PoolI [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1Conv3DWinogradAttrs.html">Conv3DWinogradAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1IRModule.html">IRModule</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1PoolInfoNode.html">PoolInfoNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#16 [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1ConvGemmWeightTransformAttrs.html">ConvGemmWeightTransformAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1ir_1_1IRModuleFrame.html">IRModuleFrame</a> (<a class="el" href="namespacetvm_1_1script_1_1ir__builder_1_1ir.html">tvm::script::ir_builder::ir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" [...]
-<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1ConvWinogradWeightTransformAttrs.html">ConvWinogradWeightTransformAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1ir_1_1IRModuleFrameNode.html">IRModuleFrameNode</a> (<a class="el" href="namespacetvm_1_1script_1_1ir__builder_1_1ir.html">tvm::script::ir_builder::ir</a>)&#160;&#160;&#160;</td><td valign="to [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1Conv3DWinogradAttrs.html">Conv3DWinogradAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1ir_1_1IRModuleFrame.html">IRModuleFrame</a> (<a class="el" href="namespacetvm_1_1script_1_1ir__builder_1_1ir.html">tvm::script::ir_builder::ir</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1 [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1ConvGemmWeightTransformAttrs.html">ConvGemmWeightTransformAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1ir_1_1IRModuleFrameNode.html">IRModuleFrameNode</a> (<a class="el" href="namespacetvm_1_1script_1_1ir__builder_1_1ir.html">tvm::script::ir_builder::ir</a>)&#160;&#160;&#160;</td><td valign="top"><a cl [...]
+<tr><td valign="top"><a class="el" href="structtvm_1_1relay_1_1ConvWinogradWeightTransformAttrs.html">ConvWinogradWeightTransformAttrs</a> (<a class="el" href="namespacetvm_1_1relay.html">tvm::relay</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classtvm_1_1IRModuleNode.html">IRModuleNode</a> (<a class="el" href="namespacetvm.html">tvm</a>)&#160;&#160;&#160;</td><td valign="top"><a class="el" href="structtvm_1_1PoolInfoNode.html">PoolInfoNode</a> (<a class="el" href="nam [...]
 <tr><td></td><td></td><td></td><td></td><td></td></tr>
 </table>
 <div class="qindex"><a class="qindex" href="#letter_a">a</a>&#160;|&#160;<a class="qindex" href="#letter_b">b</a>&#160;|&#160;<a class="qindex" href="#letter_c">c</a>&#160;|&#160;<a class="qindex" href="#letter_d">d</a>&#160;|&#160;<a class="qindex" href="#letter_e">e</a>&#160;|&#160;<a class="qindex" href="#letter_f">f</a>&#160;|&#160;<a class="qindex" href="#letter_g">g</a>&#160;|&#160;<a class="qindex" href="#letter_h">h</a>&#160;|&#160;<a class="qindex" href="#letter_i">i</a>&#160;|& [...]
diff --git a/docs/reference/api/doxygen/classtvm_1_1runtime_1_1ObjectRef__coll__graph.svg b/docs/reference/api/doxygen/classtvm_1_1runtime_1_1ObjectRef__coll__graph.svg
index ec1673c13..072d2e997 100644
--- a/docs/reference/api/doxygen/classtvm_1_1runtime_1_1ObjectRef__coll__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1runtime_1_1ObjectRef__coll__graph.svg
@@ -9,9 +9,9 @@
 <g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 453)">
 <title>tvm::runtime::ObjectRef</title>
 <polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-453 144,-453 144,4 -4,4"/>
-<!-- Node473 -->
+<!-- Node477 -->
 <g id="node1" class="node">
-<title>Node473</title>
+<title>Node477</title>
 <polygon fill="#bfbfbf" stroke="#000000" points="3,-.5 3,-222.5 137,-222.5 137,-.5 3,-.5"/>
 <text text-anchor="middle" x="70" y="-210.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectRef</text>
 <polyline fill="none" stroke="#000000" points="3,-203.5 137,-203.5 "/>
@@ -34,9 +34,9 @@
 <text text-anchor="start" x="11" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># FFIClearAfterMove()</text>
 <text text-anchor="start" x="11" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># GetDataPtr()</text>
 </g>
-<!-- Node474 -->
+<!-- Node478 -->
 <g id="node2" class="node">
-<title>Node474</title>
+<title>Node478</title>
 <g id="a_node2"><a xlink:href="classtvm_1_1runtime_1_1ObjectPtr.html" target="_top" xlink:title="{tvm::runtime::ObjectPtr\l\&lt; tvm::runtime::Object \&gt;\n||+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ~ObjectPtr()\l+ swap()\l+ get()\l+ operator&#45;\&gt;()\land 11 more...\l}">
 <polygon fill="#ffffff" stroke="#000000" points="0,-270.5 0,-448.5 140,-448.5 140,-270.5 0,-270.5"/>
 <text text-anchor="start" x="8" y="-436.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectPtr</text>
@@ -58,9 +58,9 @@
 </a>
 </g>
 </g>
-<!-- Node474&#45;&gt;Node473 -->
+<!-- Node478&#45;&gt;Node477 -->
 <g id="edge1" class="edge">
-<title>Node474&#45;&gt;Node473</title>
+<title>Node478&#45;&gt;Node477</title>
 <path fill="none" stroke="#404040" d="M70,-270.3167C70,-258.8765 70,-247.0062 70,-235.1402"/>
 <polygon fill="none" stroke="#404040" points="70.0001,-234.7944 66,-228.7944 70,-222.7944 74,-228.7943 70.0001,-234.7944"/>
 <text text-anchor="middle" x="89.5" y="-244" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> #data_</text>
diff --git a/docs/reference/api/doxygen/classtvm_1_1runtime_1_1Object__coll__graph.svg b/docs/reference/api/doxygen/classtvm_1_1runtime_1_1Object__coll__graph.svg
index 5f19afa5d..5f249c7d7 100644
--- a/docs/reference/api/doxygen/classtvm_1_1runtime_1_1Object__coll__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1runtime_1_1Object__coll__graph.svg
@@ -9,9 +9,9 @@
 <g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 392)">
 <title>tvm::runtime::Object</title>
 <polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-392 257,-392 257,4 -4,4"/>
-<!-- Node674 -->
+<!-- Node677 -->
 <g id="node1" class="node">
-<title>Node674</title>
+<title>Node677</title>
 <polygon fill="#bfbfbf" stroke="#000000" points="0,-.5 0,-387.5 183,-387.5 183,-.5 0,-.5"/>
 <text text-anchor="middle" x="91.5" y="-375.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Object</text>
 <polyline fill="none" stroke="#000000" points="0,-368.5 183,-368.5 "/>
@@ -49,9 +49,9 @@
 <text text-anchor="start" x="8" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># DecRef()</text>
 <text text-anchor="start" x="8" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># GetOrAllocRuntimeTypeIndex()</text>
 </g>
-<!-- Node674&#45;&gt;Node674 -->
+<!-- Node677&#45;&gt;Node677 -->
 <g id="edge1" class="edge">
-<title>Node674&#45;&gt;Node674</title>
+<title>Node677&#45;&gt;Node677</title>
 <path fill="none" stroke="#404040" d="M183.3625,-256.0888C194.0482,-244.6299 201,-223.9336 201,-194 201,-171.3159 197.0077,-153.9367 190.4236,-141.8623"/>
 <polygon fill="none" stroke="#404040" points="190.3069,-141.6977 183.5725,-139.1192 183.3625,-131.9112 190.0969,-134.4897 190.3069,-141.6977"/>
 <text text-anchor="middle" x="227" y="-191.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> #deleter_</text>
diff --git a/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html b/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html
index e1d816996..325aefed9 100644
--- a/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html
+++ b/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html
@@ -78,7 +78,7 @@ $(function() {
 <div class="dynheader">
 Inheritance diagram for tvm::script::ir_builder::IRBuilderFrame:</div>
 <div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame__inherit__graph.svg" width="830" height="904"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
+<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame__inherit__graph.svg" width="1672" height="904"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
 </div>
 </div>
 <div class="dynheader">
diff --git a/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrameNode.html b/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrameNode.html
index ea7af2f9a..2b2bdc57f 100644
--- a/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrameNode.html
+++ b/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrameNode.html
@@ -76,7 +76,7 @@ $(function() {
 <div class="dynheader">
 Inheritance diagram for tvm::script::ir_builder::IRBuilderFrameNode:</div>
 <div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrameNode__inherit__graph.svg" width="1500" height="1300"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
+<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrameNode__inherit__graph.svg" width="2408" height="1300"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
 </div>
 </div>
 <div class="dynheader">
@@ -313,7 +313,7 @@ Additional Inherited Members</h2></td></tr>
 <p>The method called when exiting RAII scope. </p>
 <dl class="section see"><dt>See also</dt><dd>tvm::support::With </dd></dl>
 
-<p>Reimplemented in <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1AssertFrameNode.html#ad934bf1ff350bb1d57daafbe6588f53e">tvm::script::ir_builder::tir::AssertFrameNode</a>, <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1ForFrameNode.html#ac9884ffecf5a3bc87d910724544055f4">tvm::script::ir_builder::tir::ForFrameNode</a>, <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1BlockInitFrameNode.html#a8fe8ee378871bf06818b3366b33a5637">tvm::script:: [...]
+<p>Reimplemented in <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1RealizeFrameNode.html#a4dbd37f6a859cbabbab7f0d3c1091b57">tvm::script::ir_builder::tir::RealizeFrameNode</a>, <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrameNode.html#a84e172554aead3e2c50e28a20d2a14ce">tvm::script::ir_builder::tir::LaunchThreadFrameNode</a>, <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LetFrameNode.html#aae8b7c9383f7e0eb4ce7467094fcb06d" [...]
 <dl><dt><b>Examples: </b></dt><dd><a class="el" href="_2workspace_2include_2tvm_2script_2ir_builder_2base_8h-example.html#a8">/workspace/include/tvm/script/ir_builder/base.h</a>.</dd>
 </dl>
 </div>
diff --git a/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrameNode__coll__graph.svg b/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrameNode__coll__graph.svg
index 6878a010c..b7aa052e2 100644
--- a/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrameNode__coll__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrameNode__coll__graph.svg
@@ -9,9 +9,9 @@
 <g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 564)">
 <title>tvm::script::ir_builder::IRBuilderFrameNode</title>
 <polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-564 269,-564 269,4 -4,4"/>
-<!-- Node9 -->
+<!-- Node12 -->
 <g id="node1" class="node">
-<title>Node9</title>
+<title>Node12</title>
 <polygon fill="#bfbfbf" stroke="#000000" points="0,-.5 0,-134.5 207,-134.5 207,-.5 0,-.5"/>
 <text text-anchor="start" x="8" y="-122.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::ir_builder</text>
 <text text-anchor="middle" x="103.5" y="-111.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::IRBuilderFrameNode</text>
@@ -26,9 +26,9 @@
 <text text-anchor="start" x="8" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ExitWithScope()</text>
 <text text-anchor="start" x="8" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ AddCallback()</text>
 </g>
-<!-- Node10 -->
+<!-- Node13 -->
 <g id="node2" class="node">
-<title>Node10</title>
+<title>Node13</title>
 <g id="a_node2"><a xlink:href="classtvm_1_1runtime_1_1Object.html" target="_top" xlink:title="base class of all object containers. ">
 <polygon fill="#ffffff" stroke="#000000" points="12,-172.5 12,-559.5 195,-559.5 195,-172.5 12,-172.5"/>
 <text text-anchor="middle" x="103.5" y="-547.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Object</text>
@@ -69,15 +69,15 @@
 </a>
 </g>
 </g>
-<!-- Node10&#45;&gt;Node9 -->
+<!-- Node13&#45;&gt;Node12 -->
 <g id="edge1" class="edge">
-<title>Node10&#45;&gt;Node9</title>
+<title>Node13&#45;&gt;Node12</title>
 <path fill="none" stroke="#191970" d="M103.5,-162.2336C103.5,-152.6671 103.5,-143.4471 103.5,-134.7639"/>
 <polygon fill="none" stroke="#191970" points="100.0001,-162.3202 103.5,-172.3202 107.0001,-162.3202 100.0001,-162.3202"/>
 </g>
-<!-- Node10&#45;&gt;Node10 -->
+<!-- Node13&#45;&gt;Node13 -->
 <g id="edge2" class="edge">
-<title>Node10&#45;&gt;Node10</title>
+<title>Node13&#45;&gt;Node13</title>
 <path fill="none" stroke="#404040" d="M195.3625,-399.9248C206.0482,-393.6637 213,-382.3555 213,-366 213,-355.0112 209.8618,-346.3007 204.5615,-339.8687"/>
 <polygon fill="none" stroke="#404040" points="204.5184,-339.8322 197.3548,-339.0056 195.3625,-332.0752 202.5261,-332.9017 204.5184,-339.8322"/>
 <text text-anchor="middle" x="239" y="-363.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> #deleter_</text>
diff --git a/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrameNode__inherit__graph.svg b/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrameNode__inherit__graph.svg
index d9e69d498..87bab023d 100644
--- a/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrameNode__inherit__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrameNode__inherit__graph.svg
@@ -4,123 +4,123 @@
 <!-- Generated by graphviz version 2.40.1 (20161225.0304)
  -->
 <!-- Title: tvm::script::ir_builder::IRBuilderFrameNode Pages: 1 -->
-<svg width="1125pt" height="975pt"
- viewBox="0.00 0.00 1125.00 975.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<svg width="1806pt" height="975pt"
+ viewBox="0.00 0.00 1806.00 975.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
 <g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 971)">
 <title>tvm::script::ir_builder::IRBuilderFrameNode</title>
-<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-971 1121,-971 1121,4 -4,4"/>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-971 1802,-971 1802,4 -4,4"/>
 <!-- Node0 -->
 <g id="node1" class="node">
 <title>Node0</title>
-<polygon fill="#bfbfbf" stroke="#000000" points="342,-397.5 342,-531.5 549,-531.5 549,-397.5 342,-397.5"/>
-<text text-anchor="start" x="350" y="-519.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::ir_builder</text>
-<text text-anchor="middle" x="445.5" y="-508.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::IRBuilderFrameNode</text>
-<polyline fill="none" stroke="#000000" points="342,-501.5 549,-501.5 "/>
-<text text-anchor="start" x="350" y="-489.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ callbacks</text>
-<text text-anchor="start" x="350" y="-478.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_key</text>
-<polyline fill="none" stroke="#000000" points="342,-471.5 549,-471.5 "/>
-<text text-anchor="start" x="350" y="-459.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ VisitAttrs()</text>
-<text text-anchor="start" x="350" y="-448.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DECLARE_BASE_OBJECT_INFO()</text>
-<text text-anchor="start" x="350" y="-437.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ~IRBuilderFrameNode()</text>
-<text text-anchor="start" x="350" y="-426.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ EnterWithScope()</text>
-<text text-anchor="start" x="350" y="-415.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ExitWithScope()</text>
-<text text-anchor="start" x="350" y="-404.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ AddCallback()</text>
+<polygon fill="#bfbfbf" stroke="#000000" points="682,-397.5 682,-531.5 889,-531.5 889,-397.5 682,-397.5"/>
+<text text-anchor="start" x="690" y="-519.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::ir_builder</text>
+<text text-anchor="middle" x="785.5" y="-508.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::IRBuilderFrameNode</text>
+<polyline fill="none" stroke="#000000" points="682,-501.5 889,-501.5 "/>
+<text text-anchor="start" x="690" y="-489.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ callbacks</text>
+<text text-anchor="start" x="690" y="-478.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_key</text>
+<polyline fill="none" stroke="#000000" points="682,-471.5 889,-471.5 "/>
+<text text-anchor="start" x="690" y="-459.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ VisitAttrs()</text>
+<text text-anchor="start" x="690" y="-448.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DECLARE_BASE_OBJECT_INFO()</text>
+<text text-anchor="start" x="690" y="-437.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ~IRBuilderFrameNode()</text>
+<text text-anchor="start" x="690" y="-426.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ EnterWithScope()</text>
+<text text-anchor="start" x="690" y="-415.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ExitWithScope()</text>
+<text text-anchor="start" x="690" y="-404.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ AddCallback()</text>
 </g>
 <!-- Node2 -->
 <g id="node3" class="node">
 <title>Node2</title>
 <g id="a_node3"><a xlink:href="classtvm_1_1script_1_1ir__builder_1_1ir_1_1IRModuleFrameNode.html" target="_top" xlink:title="A frame that represents the IRModule frame with functions and global variables. ">
-<polygon fill="#ffffff" stroke="#000000" points="228,-248.5 228,-360.5 437,-360.5 437,-248.5 228,-248.5"/>
-<text text-anchor="start" x="236" y="-348.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::ir_builder</text>
-<text text-anchor="middle" x="332.5" y="-337.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::ir::IRModuleFrameNode</text>
-<polyline fill="none" stroke="#000000" points="228,-330.5 437,-330.5 "/>
-<text text-anchor="start" x="236" y="-318.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ global_vars</text>
-<text text-anchor="start" x="236" y="-307.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ functions</text>
-<text text-anchor="start" x="236" y="-296.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_key</text>
-<polyline fill="none" stroke="#000000" points="228,-289.5 437,-289.5 "/>
-<text text-anchor="start" x="236" y="-277.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ VisitAttrs()</text>
-<text text-anchor="start" x="236" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DECLARE_FINAL_OBJECT_INFO()</text>
-<text text-anchor="start" x="236" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ExitWithScope()</text>
+<polygon fill="#ffffff" stroke="#000000" points="568,-248.5 568,-360.5 777,-360.5 777,-248.5 568,-248.5"/>
+<text text-anchor="start" x="576" y="-348.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::ir_builder</text>
+<text text-anchor="middle" x="672.5" y="-337.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::ir::IRModuleFrameNode</text>
+<polyline fill="none" stroke="#000000" points="568,-330.5 777,-330.5 "/>
+<text text-anchor="start" x="576" y="-318.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ global_vars</text>
+<text text-anchor="start" x="576" y="-307.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ functions</text>
+<text text-anchor="start" x="576" y="-296.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_key</text>
+<polyline fill="none" stroke="#000000" points="568,-289.5 777,-289.5 "/>
+<text text-anchor="start" x="576" y="-277.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ VisitAttrs()</text>
+<text text-anchor="start" x="576" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DECLARE_FINAL_OBJECT_INFO()</text>
+<text text-anchor="start" x="576" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ExitWithScope()</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node2 -->
 <g id="edge2" class="edge">
 <title>Node0&#45;&gt;Node2</title>
-<path fill="none" stroke="#191970" d="M392.0502,-388.8188C385.3599,-379.3459 378.6124,-369.7919 372.1844,-360.6903"/>
-<polygon fill="none" stroke="#191970" points="389.2776,-390.9601 397.9053,-397.1093 394.9954,-386.9219 389.2776,-390.9601"/>
+<path fill="none" stroke="#191970" d="M732.0502,-388.8188C725.3599,-379.3459 718.6124,-369.7919 712.1844,-360.6903"/>
+<polygon fill="none" stroke="#191970" points="729.2776,-390.9601 737.9053,-397.1093 734.9954,-386.9219 729.2776,-390.9601"/>
 </g>
 <!-- Node3 -->
 <g id="node4" class="node">
 <title>Node3</title>
 <g id="a_node4"><a xlink:href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrameNode.html" target="_top" xlink:title="A base frame that represents the TIR fame with body of statements. ">
-<polygon fill="#ffffff" stroke="#000000" points="455,-259.5 455,-349.5 662,-349.5 662,-259.5 455,-259.5"/>
-<text text-anchor="start" x="463" y="-337.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::ir_builder</text>
-<text text-anchor="middle" x="558.5" y="-326.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::tir::TIRFrameNode</text>
-<polyline fill="none" stroke="#000000" points="455,-319.5 662,-319.5 "/>
-<text text-anchor="start" x="463" y="-307.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ stmts</text>
-<text text-anchor="start" x="463" y="-296.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_key</text>
-<polyline fill="none" stroke="#000000" points="455,-289.5 662,-289.5 "/>
-<text text-anchor="start" x="463" y="-277.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ VisitAttrs()</text>
-<text text-anchor="start" x="463" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DECLARE_BASE_OBJECT_INFO()</text>
+<polygon fill="#ffffff" stroke="#000000" points="795,-259.5 795,-349.5 1002,-349.5 1002,-259.5 795,-259.5"/>
+<text text-anchor="start" x="803" y="-337.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::ir_builder</text>
+<text text-anchor="middle" x="898.5" y="-326.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::tir::TIRFrameNode</text>
+<polyline fill="none" stroke="#000000" points="795,-319.5 1002,-319.5 "/>
+<text text-anchor="start" x="803" y="-307.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ stmts</text>
+<text text-anchor="start" x="803" y="-296.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_key</text>
+<polyline fill="none" stroke="#000000" points="795,-289.5 1002,-289.5 "/>
+<text text-anchor="start" x="803" y="-277.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ VisitAttrs()</text>
+<text text-anchor="start" x="803" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DECLARE_BASE_OBJECT_INFO()</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node3 -->
 <g id="edge3" class="edge">
 <title>Node0&#45;&gt;Node3</title>
-<path fill="none" stroke="#191970" d="M498.9755,-388.7824C508.4596,-375.3537 518.0576,-361.7635 526.6966,-349.5314"/>
-<polygon fill="none" stroke="#191970" points="496.0046,-386.9219 493.0947,-397.1093 501.7224,-390.9601 496.0046,-386.9219"/>
+<path fill="none" stroke="#191970" d="M838.9755,-388.7824C848.4596,-375.3537 858.0576,-361.7635 866.6966,-349.5314"/>
+<polygon fill="none" stroke="#191970" points="836.0046,-386.9219 833.0947,-397.1093 841.7224,-390.9601 836.0046,-386.9219"/>
 </g>
 <!-- Node1 -->
 <g id="node2" class="node">
 <title>Node1</title>
 <g id="a_node2"><a xlink:href="classtvm_1_1runtime_1_1Object.html" target="_top" xlink:title="base class of all object containers. ">
-<polygon fill="#ffffff" stroke="#000000" points="354,-568.5 354,-966.5 537,-966.5 537,-568.5 354,-568.5"/>
-<text text-anchor="middle" x="445.5" y="-954.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Object</text>
-<polyline fill="none" stroke="#000000" points="354,-947.5 537,-947.5 "/>
-<text text-anchor="start" x="362" y="-935.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_key</text>
-<text text-anchor="start" x="362" y="-924.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_final</text>
-<text text-anchor="start" x="362" y="-913.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_child_slots</text>
-<text text-anchor="start" x="362" y="-902.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_child_slots_can</text>
-<text text-anchor="start" x="362" y="-891.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_overflow</text>
-<text text-anchor="start" x="362" y="-880.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_has_method_visit</text>
-<text text-anchor="start" x="362" y="-869.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_attrs</text>
-<text text-anchor="start" x="362" y="-858.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_has_method_sequal</text>
-<text text-anchor="start" x="362" y="-847.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_reduce</text>
-<text text-anchor="start" x="362" y="-836.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_has_method_shash</text>
-<text text-anchor="start" x="362" y="-825.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_reduce</text>
-<text text-anchor="start" x="362" y="-814.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_index</text>
-<text text-anchor="start" x="362" y="-803.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># type_index_</text>
-<text text-anchor="start" x="362" y="-792.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># ref_counter_</text>
-<text text-anchor="start" x="362" y="-781.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># deleter_</text>
-<polyline fill="none" stroke="#000000" points="354,-774.5 537,-774.5 "/>
-<text text-anchor="start" x="362" y="-762.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ type_index()</text>
-<text text-anchor="start" x="362" y="-751.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ GetTypeKey()</text>
-<text text-anchor="start" x="362" y="-740.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ GetTypeKeyHash()</text>
-<text text-anchor="start" x="362" y="-729.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ IsInstance()</text>
-<text text-anchor="start" x="362" y="-718.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ unique()</text>
-<text text-anchor="start" x="362" y="-707.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Object()</text>
-<text text-anchor="start" x="362" y="-696.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Object()</text>
-<text text-anchor="start" x="362" y="-685.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Object()</text>
-<text text-anchor="start" x="362" y="-674.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
-<text text-anchor="start" x="362" y="-663.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
-<text text-anchor="start" x="362" y="-652.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TypeIndex2Key()</text>
-<text text-anchor="start" x="362" y="-641.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TypeIndex2KeyHash()</text>
-<text text-anchor="start" x="362" y="-630.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TypeKey2Index()</text>
-<text text-anchor="start" x="362" y="-619.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _GetOrAllocRuntimeTypeIndex()</text>
-<text text-anchor="start" x="362" y="-608.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ RuntimeTypeIndex()</text>
-<text text-anchor="start" x="362" y="-597.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># IncRef()</text>
-<text text-anchor="start" x="362" y="-586.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># DecRef()</text>
-<text text-anchor="start" x="362" y="-575.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># GetOrAllocRuntimeTypeIndex()</text>
+<polygon fill="#ffffff" stroke="#000000" points="694,-568.5 694,-966.5 877,-966.5 877,-568.5 694,-568.5"/>
+<text text-anchor="middle" x="785.5" y="-954.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Object</text>
+<polyline fill="none" stroke="#000000" points="694,-947.5 877,-947.5 "/>
+<text text-anchor="start" x="702" y="-935.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_key</text>
+<text text-anchor="start" x="702" y="-924.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_final</text>
+<text text-anchor="start" x="702" y="-913.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_child_slots</text>
+<text text-anchor="start" x="702" y="-902.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_child_slots_can</text>
+<text text-anchor="start" x="702" y="-891.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_overflow</text>
+<text text-anchor="start" x="702" y="-880.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_has_method_visit</text>
+<text text-anchor="start" x="702" y="-869.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_attrs</text>
+<text text-anchor="start" x="702" y="-858.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_has_method_sequal</text>
+<text text-anchor="start" x="702" y="-847.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_reduce</text>
+<text text-anchor="start" x="702" y="-836.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_has_method_shash</text>
+<text text-anchor="start" x="702" y="-825.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_reduce</text>
+<text text-anchor="start" x="702" y="-814.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_index</text>
+<text text-anchor="start" x="702" y="-803.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># type_index_</text>
+<text text-anchor="start" x="702" y="-792.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># ref_counter_</text>
+<text text-anchor="start" x="702" y="-781.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># deleter_</text>
+<polyline fill="none" stroke="#000000" points="694,-774.5 877,-774.5 "/>
+<text text-anchor="start" x="702" y="-762.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ type_index()</text>
+<text text-anchor="start" x="702" y="-751.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ GetTypeKey()</text>
+<text text-anchor="start" x="702" y="-740.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ GetTypeKeyHash()</text>
+<text text-anchor="start" x="702" y="-729.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ IsInstance()</text>
+<text text-anchor="start" x="702" y="-718.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ unique()</text>
+<text text-anchor="start" x="702" y="-707.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Object()</text>
+<text text-anchor="start" x="702" y="-696.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Object()</text>
+<text text-anchor="start" x="702" y="-685.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Object()</text>
+<text text-anchor="start" x="702" y="-674.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
+<text text-anchor="start" x="702" y="-663.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
+<text text-anchor="start" x="702" y="-652.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TypeIndex2Key()</text>
+<text text-anchor="start" x="702" y="-641.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TypeIndex2KeyHash()</text>
+<text text-anchor="start" x="702" y="-630.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TypeKey2Index()</text>
+<text text-anchor="start" x="702" y="-619.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _GetOrAllocRuntimeTypeIndex()</text>
+<text text-anchor="start" x="702" y="-608.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ RuntimeTypeIndex()</text>
+<text text-anchor="start" x="702" y="-597.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># IncRef()</text>
+<text text-anchor="start" x="702" y="-586.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># DecRef()</text>
+<text text-anchor="start" x="702" y="-575.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># GetOrAllocRuntimeTypeIndex()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node0 -->
 <g id="edge1" class="edge">
 <title>Node1&#45;&gt;Node0</title>
-<path fill="none" stroke="#191970" d="M445.5,-558.1914C445.5,-548.9431 445.5,-540.0329 445.5,-531.631"/>
-<polygon fill="none" stroke="#191970" points="442.0001,-558.3515 445.5,-568.3515 449.0001,-558.3515 442.0001,-558.3515"/>
+<path fill="none" stroke="#191970" d="M785.5,-558.1914C785.5,-548.9431 785.5,-540.0329 785.5,-531.631"/>
+<polygon fill="none" stroke="#191970" points="782.0001,-558.3515 785.5,-568.3515 789.0001,-558.3515 782.0001,-558.3515"/>
 </g>
 <!-- Node4 -->
 <g id="node5" class="node">
@@ -143,8 +143,8 @@
 <!-- Node3&#45;&gt;Node4 -->
 <g id="edge4" class="edge">
 <title>Node3&#45;&gt;Node4</title>
-<path fill="none" stroke="#191970" d="M466.9606,-255.502C460.1346,-252.7236 453.2696,-250.1802 446.5,-248 348.4327,-216.4164 310.06,-257.2479 217.5,-212 192.9719,-200.0095 170.1303,-180.8639 151.4936,-162.1219"/>
-<polygon fill="none" stroke="#191970" points="465.6583,-258.7514 476.2318,-259.4244 468.3858,-252.3046 465.6583,-258.7514"/>
+<path fill="none" stroke="#191970" d="M809.1964,-255.5561C801.6594,-252.629 794.0366,-250.0469 786.5,-248 664.232,-214.7925 333.7816,-262.3069 217.5,-212 191.9487,-200.9458 168.5875,-181.5036 149.822,-162.2628"/>
+<polygon fill="none" stroke="#191970" points="808.1034,-258.8904 818.6843,-259.434 810.7519,-252.4107 808.1034,-258.8904"/>
 </g>
 <!-- Node5 -->
 <g id="node6" class="node">
@@ -176,8 +176,8 @@
 <!-- Node3&#45;&gt;Node5 -->
 <g id="edge5" class="edge">
 <title>Node3&#45;&gt;Node5</title>
-<path fill="none" stroke="#191970" d="M494.0954,-252.9529C478.0551,-239.7949 461.0128,-225.5376 445.5,-212 442.4457,-209.3346 439.3579,-206.6176 436.2511,-203.8642"/>
-<polygon fill="none" stroke="#191970" points="491.9209,-255.6959 501.8781,-259.316 496.3517,-250.2766 491.9209,-255.6959"/>
+<path fill="none" stroke="#191970" d="M807.9482,-255.4465C800.8095,-252.6249 793.6104,-250.0912 786.5,-248 639.8705,-204.8747 583.4795,-275.5979 444.5,-212 441.6872,-210.7128 438.8991,-209.3274 436.1391,-207.8552"/>
+<polygon fill="none" stroke="#191970" points="807.0531,-258.864 817.6313,-259.4579 809.7322,-252.397 807.0531,-258.864"/>
 </g>
 <!-- Node6 -->
 <g id="node7" class="node">
@@ -199,8 +199,8 @@
 <!-- Node3&#45;&gt;Node6 -->
 <g id="edge6" class="edge">
 <title>Node3&#45;&gt;Node6</title>
-<path fill="none" stroke="#191970" d="M558.5,-249.1058C558.5,-220.1787 558.5,-185.0303 558.5,-156.8066"/>
-<polygon fill="none" stroke="#191970" points="555.0001,-249.4572 558.5,-259.4573 562.0001,-249.4573 555.0001,-249.4572"/>
+<path fill="none" stroke="#191970" d="M803.1956,-255.1204C797.5877,-252.6221 791.9948,-250.2285 786.5,-248 736.8695,-227.8715 717.7522,-239.0014 671.5,-212 646.4118,-197.3539 622.3802,-176.1997 602.9789,-156.6353"/>
+<polygon fill="none" stroke="#191970" points="802.0812,-258.4585 812.6329,-259.4131 804.9795,-252.0867 802.0812,-258.4585"/>
 </g>
 <!-- Node7 -->
 <g id="node8" class="node">
@@ -224,38 +224,112 @@
 <!-- Node3&#45;&gt;Node7 -->
 <g id="edge7" class="edge">
 <title>Node3&#45;&gt;Node7</title>
-<path fill="none" stroke="#191970" d="M623.5522,-253.0542C639.7325,-239.8939 656.9054,-225.6101 672.5,-212 688.6113,-197.9389 705.6137,-182.3885 721.3999,-167.6298"/>
-<polygon fill="none" stroke="#191970" points="621.2662,-250.4017 615.7001,-259.4167 625.6731,-255.8404 621.2662,-250.4017"/>
+<path fill="none" stroke="#191970" d="M867.8364,-250.6352C853.2691,-225.0457 835.7815,-194.3263 820.6767,-167.7928"/>
+<polygon fill="none" stroke="#191970" points="864.8696,-252.4983 872.8586,-259.4573 870.9529,-249.0352 864.8696,-252.4983"/>
 </g>
 <!-- Node8 -->
 <g id="node9" class="node">
 <title>Node8</title>
-<g id="a_node9"><a xlink:href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1PrimFuncFrameNode.html" target="_top" xlink:title="A frame that represents the PrimFunc containing TIR statements. ">
-<polygon fill="#ffffff" stroke="#000000" points="908,-17 908,-195 1117,-195 1117,-17 908,-17"/>
-<text text-anchor="start" x="916" y="-183" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::ir_builder</text>
-<text text-anchor="middle" x="1012.5" y="-172" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::tir::PrimFuncFrameNode</text>
-<polyline fill="none" stroke="#000000" points="908,-165 1117,-165 "/>
-<text text-anchor="start" x="916" y="-153" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ name</text>
-<text text-anchor="start" x="916" y="-142" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ args</text>
-<text text-anchor="start" x="916" y="-131" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ret_type</text>
-<text text-anchor="start" x="916" y="-120" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ buffer_map</text>
-<text text-anchor="start" x="916" y="-109" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ preflattened_buffer_map</text>
-<text text-anchor="start" x="916" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ attrs</text>
-<text text-anchor="start" x="916" y="-87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ env_threads</text>
-<text text-anchor="start" x="916" y="-76" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ root_alloc_buffers</text>
-<text text-anchor="start" x="916" y="-65" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_key</text>
-<polyline fill="none" stroke="#000000" points="908,-58 1117,-58 "/>
-<text text-anchor="start" x="916" y="-46" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ VisitAttrs()</text>
-<text text-anchor="start" x="916" y="-35" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DECLARE_FINAL_OBJECT_INFO()</text>
-<text text-anchor="start" x="916" y="-24" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ExitWithScope()</text>
+<g id="a_node9"><a xlink:href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrameNode.html" target="_top" xlink:title="The LaunchThreadFrameNode. ">
+<polygon fill="#ffffff" stroke="#000000" points="908,-44.5 908,-167.5 1117,-167.5 1117,-44.5 908,-44.5"/>
+<text text-anchor="start" x="916" y="-155.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::ir_builder</text>
+<text text-anchor="middle" x="1012.5" y="-144.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::tir::LaunchThreadFrameNode</text>
+<polyline fill="none" stroke="#000000" points="908,-137.5 1117,-137.5 "/>
+<text text-anchor="start" x="916" y="-125.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ extent</text>
+<text text-anchor="start" x="916" y="-114.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ attr_key</text>
+<text text-anchor="start" x="916" y="-103.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ iter_var</text>
+<text text-anchor="start" x="916" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_key</text>
+<polyline fill="none" stroke="#000000" points="908,-85.5 1117,-85.5 "/>
+<text text-anchor="start" x="916" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ VisitAttrs()</text>
+<text text-anchor="start" x="916" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DECLARE_FINAL_OBJECT_INFO()</text>
+<text text-anchor="start" x="916" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ExitWithScope()</text>
 </a>
 </g>
 </g>
 <!-- Node3&#45;&gt;Node8 -->
 <g id="edge8" class="edge">
 <title>Node3&#45;&gt;Node8</title>
-<path fill="none" stroke="#191970" d="M672.3605,-287.9819C741.296,-274.5775 829.1797,-251.2573 899.5,-212 908.3074,-207.0831 916.9593,-201.3322 925.3121,-195.0972"/>
-<polygon fill="none" stroke="#191970" points="671.5019,-284.5824 662.3315,-289.8884 672.8092,-291.4592 671.5019,-284.5824"/>
+<path fill="none" stroke="#191970" d="M929.435,-250.6352C944.1312,-225.0457 961.7736,-194.3263 977.012,-167.7928"/>
+<polygon fill="none" stroke="#191970" points="926.3135,-249.0425 924.3684,-259.4573 932.3837,-252.5287 926.3135,-249.0425"/>
+</g>
+<!-- Node9 -->
+<g id="node10" class="node">
+<title>Node9</title>
+<g id="a_node10"><a xlink:href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LetFrameNode.html" target="_top" xlink:title="A frame represents the let binding expression, which binds a var. ">
+<polygon fill="#ffffff" stroke="#000000" points="1135,-50 1135,-162 1344,-162 1344,-50 1135,-50"/>
+<text text-anchor="start" x="1143" y="-150" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::ir_builder</text>
+<text text-anchor="middle" x="1239.5" y="-139" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::tir::LetFrameNode</text>
+<polyline fill="none" stroke="#000000" points="1135,-132 1344,-132 "/>
+<text text-anchor="start" x="1143" y="-120" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ var</text>
+<text text-anchor="start" x="1143" y="-109" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ value</text>
+<text text-anchor="start" x="1143" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_key</text>
+<polyline fill="none" stroke="#000000" points="1135,-91 1344,-91 "/>
+<text text-anchor="start" x="1143" y="-79" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ VisitAttrs()</text>
+<text text-anchor="start" x="1143" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DECLARE_FINAL_OBJECT_INFO()</text>
+<text text-anchor="start" x="1143" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ExitWithScope()</text>
+</a>
+</g>
+</g>
+<!-- Node3&#45;&gt;Node9 -->
+<g id="edge9" class="edge">
+<title>Node3&#45;&gt;Node9</title>
+<path fill="none" stroke="#191970" d="M1011.613,-268.0576C1049.6104,-253.3961 1091.2612,-234.5585 1126.5,-212 1148.248,-198.0777 1169.5756,-179.6909 1187.7399,-162.1458"/>
+<polygon fill="none" stroke="#191970" points="1010.1429,-264.8719 1002.0375,-271.6948 1012.6286,-271.4157 1010.1429,-264.8719"/>
+</g>
+<!-- Node10 -->
+<g id="node11" class="node">
+<title>Node10</title>
+<g id="a_node11"><a xlink:href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1PrimFuncFrameNode.html" target="_top" xlink:title="A frame that represents the PrimFunc containing TIR statements. ">
+<polygon fill="#ffffff" stroke="#000000" points="1362,-17 1362,-195 1571,-195 1571,-17 1362,-17"/>
+<text text-anchor="start" x="1370" y="-183" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::ir_builder</text>
+<text text-anchor="middle" x="1466.5" y="-172" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::tir::PrimFuncFrameNode</text>
+<polyline fill="none" stroke="#000000" points="1362,-165 1571,-165 "/>
+<text text-anchor="start" x="1370" y="-153" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ name</text>
+<text text-anchor="start" x="1370" y="-142" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ args</text>
+<text text-anchor="start" x="1370" y="-131" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ret_type</text>
+<text text-anchor="start" x="1370" y="-120" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ buffer_map</text>
+<text text-anchor="start" x="1370" y="-109" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ preflattened_buffer_map</text>
+<text text-anchor="start" x="1370" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ attrs</text>
+<text text-anchor="start" x="1370" y="-87" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ env_threads</text>
+<text text-anchor="start" x="1370" y="-76" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ root_alloc_buffers</text>
+<text text-anchor="start" x="1370" y="-65" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_key</text>
+<polyline fill="none" stroke="#000000" points="1362,-58 1571,-58 "/>
+<text text-anchor="start" x="1370" y="-46" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ VisitAttrs()</text>
+<text text-anchor="start" x="1370" y="-35" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DECLARE_FINAL_OBJECT_INFO()</text>
+<text text-anchor="start" x="1370" y="-24" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ExitWithScope()</text>
+</a>
+</g>
+</g>
+<!-- Node3&#45;&gt;Node10 -->
+<g id="edge10" class="edge">
+<title>Node3&#45;&gt;Node10</title>
+<path fill="none" stroke="#191970" d="M1011.9095,-288.6886C1126.6354,-271.4152 1295.1374,-242.1623 1353.5,-212 1362.6999,-207.2454 1371.6885,-201.5234 1380.3211,-195.2326"/>
+<polygon fill="none" stroke="#191970" points="1011.3914,-285.2271 1002.0193,-290.1682 1012.4271,-292.1501 1011.3914,-285.2271"/>
+</g>
+<!-- Node11 -->
+<g id="node12" class="node">
+<title>Node11</title>
+<g id="a_node12"><a xlink:href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1RealizeFrameNode.html" target="_top" xlink:title="A frame that represents realization. ">
+<polygon fill="#ffffff" stroke="#000000" points="1589,-44.5 1589,-167.5 1798,-167.5 1798,-44.5 1589,-44.5"/>
+<text text-anchor="start" x="1597" y="-155.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::ir_builder</text>
+<text text-anchor="middle" x="1693.5" y="-144.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::tir::RealizeFrameNode</text>
+<polyline fill="none" stroke="#000000" points="1589,-137.5 1798,-137.5 "/>
+<text text-anchor="start" x="1597" y="-125.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ buffer_slice</text>
+<text text-anchor="start" x="1597" y="-114.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ storage_scope</text>
+<text text-anchor="start" x="1597" y="-103.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ condition</text>
+<text text-anchor="start" x="1597" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_key</text>
+<polyline fill="none" stroke="#000000" points="1589,-85.5 1798,-85.5 "/>
+<text text-anchor="start" x="1597" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ VisitAttrs()</text>
+<text text-anchor="start" x="1597" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DECLARE_FINAL_OBJECT_INFO()</text>
+<text text-anchor="start" x="1597" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ExitWithScope()</text>
+</a>
+</g>
+</g>
+<!-- Node3&#45;&gt;Node11 -->
+<g id="edge11" class="edge">
+<title>Node3&#45;&gt;Node11</title>
+<path fill="none" stroke="#191970" d="M1012.152,-297.4748C1179.3361,-285.735 1482.3647,-258.6959 1580.5,-212 1602.8459,-201.3671 1623.7246,-184.6867 1641.3048,-167.6786"/>
+<polygon fill="none" stroke="#191970" points="1011.8121,-293.9899 1002.079,-298.1752 1012.2977,-300.973 1011.8121,-293.9899"/>
 </g>
 </g>
 </svg>
diff --git a/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame__coll__graph.svg b/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame__coll__graph.svg
index eba2c21c4..23758d413 100644
--- a/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame__coll__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame__coll__graph.svg
@@ -9,9 +9,9 @@
 <g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 625)">
 <title>tvm::script::ir_builder::IRBuilderFrame</title>
 <polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-625 144,-625 144,4 -4,4"/>
-<!-- Node8 -->
+<!-- Node12 -->
 <g id="node1" class="node">
-<title>Node8</title>
+<title>Node12</title>
 <polygon fill="#bfbfbf" stroke="#000000" points="0,-.5 0,-134.5 140,-134.5 140,-.5 0,-.5"/>
 <text text-anchor="start" x="8" y="-122.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::ir_builder</text>
 <text text-anchor="middle" x="70" y="-111.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::IRBuilderFrame</text>
@@ -26,9 +26,9 @@
 <text text-anchor="start" x="8" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ExitWithScope()</text>
 <text text-anchor="start" x="8" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># IRBuilderFrame()</text>
 </g>
-<!-- Node9 -->
+<!-- Node13 -->
 <g id="node2" class="node">
-<title>Node9</title>
+<title>Node13</title>
 <g id="a_node2"><a xlink:href="classtvm_1_1runtime_1_1ObjectRef.html" target="_top" xlink:title="Base class of all object reference. ">
 <polygon fill="#ffffff" stroke="#000000" points="3,-172.5 3,-394.5 137,-394.5 137,-172.5 3,-172.5"/>
 <text text-anchor="middle" x="70" y="-382.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectRef</text>
@@ -54,15 +54,15 @@
 </a>
 </g>
 </g>
-<!-- Node9&#45;&gt;Node8 -->
+<!-- Node13&#45;&gt;Node12 -->
 <g id="edge1" class="edge">
-<title>Node9&#45;&gt;Node8</title>
+<title>Node13&#45;&gt;Node12</title>
 <path fill="none" stroke="#191970" d="M70,-162.1483C70,-152.7959 70,-143.5791 70,-134.7844"/>
 <polygon fill="none" stroke="#191970" points="66.5001,-162.3363 70,-172.3363 73.5001,-162.3364 66.5001,-162.3363"/>
 </g>
-<!-- Node10 -->
+<!-- Node14 -->
 <g id="node3" class="node">
-<title>Node10</title>
+<title>Node14</title>
 <g id="a_node3"><a xlink:href="classtvm_1_1runtime_1_1ObjectPtr.html" target="_top" xlink:title="{tvm::runtime::ObjectPtr\l\&lt; tvm::runtime::Object \&gt;\n||+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ~ObjectPtr()\l+ swap()\l+ get()\l+ operator&#45;\&gt;()\land 11 more...\l}">
 <polygon fill="#ffffff" stroke="#000000" points="0,-442.5 0,-620.5 140,-620.5 140,-442.5 0,-442.5"/>
 <text text-anchor="start" x="8" y="-608.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectPtr</text>
@@ -84,9 +84,9 @@
 </a>
 </g>
 </g>
-<!-- Node10&#45;&gt;Node9 -->
+<!-- Node14&#45;&gt;Node13 -->
 <g id="edge2" class="edge">
-<title>Node10&#45;&gt;Node9</title>
+<title>Node14&#45;&gt;Node13</title>
 <path fill="none" stroke="#404040" d="M70,-442.3167C70,-430.8765 70,-419.0062 70,-407.1402"/>
 <polygon fill="none" stroke="#404040" points="70.0001,-406.7944 66,-400.7944 70,-394.7944 74,-400.7943 70.0001,-406.7944"/>
 <text text-anchor="middle" x="89.5" y="-416" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> #data_</text>
diff --git a/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame__inherit__graph.svg b/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame__inherit__graph.svg
index 3ec7d8d80..ede8e044d 100644
--- a/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame__inherit__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame__inherit__graph.svg
@@ -4,115 +4,115 @@
 <!-- Generated by graphviz version 2.40.1 (20161225.0304)
  -->
 <!-- Title: tvm::script::ir_builder::IRBuilderFrame Pages: 1 -->
-<svg width="622pt" height="678pt"
- viewBox="0.00 0.00 622.00 678.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<svg width="1254pt" height="678pt"
+ viewBox="0.00 0.00 1254.00 678.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
 <g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 674)">
 <title>tvm::script::ir_builder::IRBuilderFrame</title>
-<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-674 618,-674 618,4 -4,4"/>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-674 1250,-674 1250,4 -4,4"/>
 <!-- Node0 -->
 <g id="node1" class="node">
 <title>Node0</title>
-<polygon fill="#bfbfbf" stroke="#000000" points="158,-265.5 158,-399.5 298,-399.5 298,-265.5 158,-265.5"/>
-<text text-anchor="start" x="166" y="-387.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::ir_builder</text>
-<text text-anchor="middle" x="228" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::IRBuilderFrame</text>
-<polyline fill="none" stroke="#000000" points="158,-369.5 298,-369.5 "/>
-<text text-anchor="middle" x="228" y="-357.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="158,-350.5 298,-350.5 "/>
-<text text-anchor="start" x="166" y="-338.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ~IRBuilderFrame()</text>
-<text text-anchor="start" x="166" y="-327.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_MUTABLE</text>
-<text text-anchor="start" x="166" y="-316.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_NOTNULLABLE_OBJECT</text>
-<text text-anchor="start" x="166" y="-305.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_REF_METHODS()</text>
-<text text-anchor="start" x="166" y="-294.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ EnterWithScope()</text>
-<text text-anchor="start" x="166" y="-283.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ExitWithScope()</text>
-<text text-anchor="start" x="166" y="-272.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># IRBuilderFrame()</text>
+<polygon fill="#bfbfbf" stroke="#000000" points="474,-265.5 474,-399.5 614,-399.5 614,-265.5 474,-265.5"/>
+<text text-anchor="start" x="482" y="-387.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::ir_builder</text>
+<text text-anchor="middle" x="544" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::IRBuilderFrame</text>
+<polyline fill="none" stroke="#000000" points="474,-369.5 614,-369.5 "/>
+<text text-anchor="middle" x="544" y="-357.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="474,-350.5 614,-350.5 "/>
+<text text-anchor="start" x="482" y="-338.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ~IRBuilderFrame()</text>
+<text text-anchor="start" x="482" y="-327.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_MUTABLE</text>
+<text text-anchor="start" x="482" y="-316.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_NOTNULLABLE_OBJECT</text>
+<text text-anchor="start" x="482" y="-305.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_REF_METHODS()</text>
+<text text-anchor="start" x="482" y="-294.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ EnterWithScope()</text>
+<text text-anchor="start" x="482" y="-283.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ExitWithScope()</text>
+<text text-anchor="start" x="482" y="-272.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># IRBuilderFrame()</text>
 </g>
 <!-- Node2 -->
 <g id="node3" class="node">
 <title>Node2</title>
 <g id="a_node3"><a xlink:href="classtvm_1_1script_1_1ir__builder_1_1ir_1_1IRModuleFrame.html" target="_top" xlink:title="Managed reference to IRModuleFrameNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="79,-133 79,-223 219,-223 219,-133 79,-133"/>
-<text text-anchor="start" x="87" y="-211" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::ir_builder</text>
-<text text-anchor="middle" x="149" y="-200" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::ir::IRModuleFrame</text>
-<polyline fill="none" stroke="#000000" points="79,-193 219,-193 "/>
-<text text-anchor="middle" x="149" y="-181" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="79,-174 219,-174 "/>
-<text text-anchor="start" x="87" y="-162" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_MUTABLE</text>
-<text text-anchor="start" x="87" y="-151" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_NOTNULLABLE_OBJECT</text>
-<text text-anchor="start" x="87" y="-140" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_REF_METHODS()</text>
+<polygon fill="#ffffff" stroke="#000000" points="395,-133 395,-223 535,-223 535,-133 395,-133"/>
+<text text-anchor="start" x="403" y="-211" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::ir_builder</text>
+<text text-anchor="middle" x="465" y="-200" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::ir::IRModuleFrame</text>
+<polyline fill="none" stroke="#000000" points="395,-193 535,-193 "/>
+<text text-anchor="middle" x="465" y="-181" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="395,-174 535,-174 "/>
+<text text-anchor="start" x="403" y="-162" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_MUTABLE</text>
+<text text-anchor="start" x="403" y="-151" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_NOTNULLABLE_OBJECT</text>
+<text text-anchor="start" x="403" y="-140" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_REF_METHODS()</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node2 -->
 <g id="edge2" class="edge">
 <title>Node0&#45;&gt;Node2</title>
-<path fill="none" stroke="#191970" d="M188.9794,-256.1875C183.2285,-244.9406 177.4641,-233.6671 172.1738,-223.3209"/>
-<polygon fill="none" stroke="#191970" points="185.9103,-257.8734 193.5793,-265.1835 192.1428,-254.6865 185.9103,-257.8734"/>
+<path fill="none" stroke="#191970" d="M504.9794,-256.1875C499.2285,-244.9406 493.4641,-233.6671 488.1738,-223.3209"/>
+<polygon fill="none" stroke="#191970" points="501.9103,-257.8734 509.5793,-265.1835 508.1428,-254.6865 501.9103,-257.8734"/>
 </g>
 <!-- Node3 -->
 <g id="node4" class="node">
 <title>Node3</title>
 <g id="a_node4"><a xlink:href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame.html" target="_top" xlink:title="Managed reference to TIRFrameNode. ">
-<polygon fill="#ffffff" stroke="#000000" points="237,-127.5 237,-228.5 377,-228.5 377,-127.5 237,-127.5"/>
-<text text-anchor="start" x="245" y="-216.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::ir_builder</text>
-<text text-anchor="middle" x="307" y="-205.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::tir::TIRFrame</text>
-<polyline fill="none" stroke="#000000" points="237,-198.5 377,-198.5 "/>
-<text text-anchor="middle" x="307" y="-186.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
-<polyline fill="none" stroke="#000000" points="237,-179.5 377,-179.5 "/>
-<text text-anchor="start" x="245" y="-167.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_MUTABLE</text>
-<text text-anchor="start" x="245" y="-156.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_NOTNULLABLE_OBJECT</text>
-<text text-anchor="start" x="245" y="-145.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_REF_METHODS()</text>
-<text text-anchor="start" x="245" y="-134.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># TIRFrame()</text>
+<polygon fill="#ffffff" stroke="#000000" points="553,-127.5 553,-228.5 693,-228.5 693,-127.5 553,-127.5"/>
+<text text-anchor="start" x="561" y="-216.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::ir_builder</text>
+<text text-anchor="middle" x="623" y="-205.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::tir::TIRFrame</text>
+<polyline fill="none" stroke="#000000" points="553,-198.5 693,-198.5 "/>
+<text text-anchor="middle" x="623" y="-186.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="553,-179.5 693,-179.5 "/>
+<text text-anchor="start" x="561" y="-167.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_MUTABLE</text>
+<text text-anchor="start" x="561" y="-156.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_NOTNULLABLE_OBJECT</text>
+<text text-anchor="start" x="561" y="-145.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_REF_METHODS()</text>
+<text text-anchor="start" x="561" y="-134.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># TIRFrame()</text>
 </a>
 </g>
 </g>
 <!-- Node0&#45;&gt;Node3 -->
 <g id="edge3" class="edge">
 <title>Node0&#45;&gt;Node3</title>
-<path fill="none" stroke="#191970" d="M266.9735,-256.2797C271.7347,-246.9682 276.5062,-237.6366 281.0111,-228.8265"/>
-<polygon fill="none" stroke="#191970" points="263.8572,-254.6865 262.4207,-265.1835 270.0897,-257.8734 263.8572,-254.6865"/>
+<path fill="none" stroke="#191970" d="M582.9735,-256.2797C587.7347,-246.9682 592.5062,-237.6366 597.0111,-228.8265"/>
+<polygon fill="none" stroke="#191970" points="579.8572,-254.6865 578.4207,-265.1835 586.0897,-257.8734 579.8572,-254.6865"/>
 </g>
 <!-- Node1 -->
 <g id="node2" class="node">
 <title>Node1</title>
 <g id="a_node2"><a xlink:href="classtvm_1_1runtime_1_1ObjectRef.html" target="_top" xlink:title="Base class of all object reference. ">
-<polygon fill="#ffffff" stroke="#000000" points="161,-436.5 161,-669.5 295,-669.5 295,-436.5 161,-436.5"/>
-<text text-anchor="middle" x="228" y="-657.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectRef</text>
-<polyline fill="none" stroke="#000000" points="161,-650.5 295,-650.5 "/>
-<text text-anchor="start" x="169" y="-638.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
-<text text-anchor="start" x="169" y="-627.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># data_</text>
-<polyline fill="none" stroke="#000000" points="161,-620.5 295,-620.5 "/>
-<text text-anchor="start" x="169" y="-608.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
-<text text-anchor="start" x="169" y="-597.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
-<text text-anchor="start" x="169" y="-586.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ same_as()</text>
-<text text-anchor="start" x="169" y="-575.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator==()</text>
-<text text-anchor="start" x="169" y="-564.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator!=()</text>
-<text text-anchor="start" x="169" y="-553.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&lt;()</text>
-<text text-anchor="start" x="169" y="-542.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ defined()</text>
-<text text-anchor="start" x="169" y="-531.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
-<text text-anchor="start" x="169" y="-520.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&#45;&gt;()</text>
-<text text-anchor="start" x="169" y="-509.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ unique()</text>
-<text text-anchor="start" x="169" y="-498.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ use_count()</text>
-<text text-anchor="start" x="169" y="-487.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ as()</text>
-<text text-anchor="start" x="169" y="-476.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># get_mutable()</text>
-<text text-anchor="start" x="169" y="-465.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># DowncastNoCheck()</text>
-<text text-anchor="start" x="169" y="-454.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># FFIClearAfterMove()</text>
-<text text-anchor="start" x="169" y="-443.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># GetDataPtr()</text>
+<polygon fill="#ffffff" stroke="#000000" points="477,-436.5 477,-669.5 611,-669.5 611,-436.5 477,-436.5"/>
+<text text-anchor="middle" x="544" y="-657.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectRef</text>
+<polyline fill="none" stroke="#000000" points="477,-650.5 611,-650.5 "/>
+<text text-anchor="start" x="485" y="-638.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
+<text text-anchor="start" x="485" y="-627.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># data_</text>
+<polyline fill="none" stroke="#000000" points="477,-620.5 611,-620.5 "/>
+<text text-anchor="start" x="485" y="-608.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
+<text text-anchor="start" x="485" y="-597.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
+<text text-anchor="start" x="485" y="-586.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ same_as()</text>
+<text text-anchor="start" x="485" y="-575.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator==()</text>
+<text text-anchor="start" x="485" y="-564.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator!=()</text>
+<text text-anchor="start" x="485" y="-553.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&lt;()</text>
+<text text-anchor="start" x="485" y="-542.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ defined()</text>
+<text text-anchor="start" x="485" y="-531.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
+<text text-anchor="start" x="485" y="-520.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&#45;&gt;()</text>
+<text text-anchor="start" x="485" y="-509.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ unique()</text>
+<text text-anchor="start" x="485" y="-498.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ use_count()</text>
+<text text-anchor="start" x="485" y="-487.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ as()</text>
+<text text-anchor="start" x="485" y="-476.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># get_mutable()</text>
+<text text-anchor="start" x="485" y="-465.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># DowncastNoCheck()</text>
+<text text-anchor="start" x="485" y="-454.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># FFIClearAfterMove()</text>
+<text text-anchor="start" x="485" y="-443.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># GetDataPtr()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node0 -->
 <g id="edge1" class="edge">
 <title>Node1&#45;&gt;Node0</title>
-<path fill="none" stroke="#191970" d="M228,-426.0779C228,-417.0753 228,-408.2246 228,-399.7733"/>
-<polygon fill="none" stroke="#191970" points="224.5001,-426.2933 228,-436.2933 231.5001,-426.2934 224.5001,-426.2933"/>
+<path fill="none" stroke="#191970" d="M544,-426.0779C544,-417.0753 544,-408.2246 544,-399.7733"/>
+<polygon fill="none" stroke="#191970" points="540.5001,-426.2933 544,-436.2933 547.5001,-426.2934 540.5001,-426.2933"/>
 </g>
 <!-- Node4 -->
 <g id="node5" class="node">
 <title>Node4</title>
-<g id="a_node5"><a xlink:href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1BlockFrame.html" target="_top" xlink:title="Managed reference to BlockFrameNode. ">
+<g id="a_node5"><a xlink:href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1AssertFrame.html" target="_top" xlink:title="Managed reference to AssertFrameNode. ">
 <polygon fill="#ffffff" stroke="#000000" points="0,-.5 0,-90.5 140,-90.5 140,-.5 0,-.5"/>
 <text text-anchor="start" x="8" y="-78.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::ir_builder</text>
-<text text-anchor="middle" x="70" y="-67.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::tir::BlockFrame</text>
+<text text-anchor="middle" x="70" y="-67.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::tir::AssertFrame</text>
 <polyline fill="none" stroke="#000000" points="0,-60.5 140,-60.5 "/>
 <text text-anchor="middle" x="70" y="-48.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
 <polyline fill="none" stroke="#000000" points="0,-41.5 140,-41.5 "/>
@@ -125,16 +125,16 @@
 <!-- Node3&#45;&gt;Node4 -->
 <g id="edge4" class="edge">
 <title>Node3&#45;&gt;Node4</title>
-<path fill="none" stroke="#191970" d="M227.7068,-127.0431C192.4088,-108.4131 180.7655,-107.3387 149,-91 146.0443,-89.4797 143.0419,-87.9027 140.0204,-86.2885"/>
-<polygon fill="none" stroke="#191970" points="226.2117,-130.2133 236.6748,-131.8791 229.5342,-124.0521 226.2117,-130.2133"/>
+<path fill="none" stroke="#191970" d="M543.1326,-127.1511C375.0729,-72.2592 313.9377,-143.2378 149,-91 146.1331,-90.092 143.2567,-89.0682 140.3878,-87.9507"/>
+<polygon fill="none" stroke="#191970" points="542.1864,-130.5255 552.7805,-130.401 544.421,-123.8918 542.1864,-130.5255"/>
 </g>
 <!-- Node5 -->
 <g id="node6" class="node">
 <title>Node5</title>
-<g id="a_node6"><a xlink:href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1BlockInitFrame.html" target="_top" xlink:title="Managed reference to BlockInitFrameNode. ">
+<g id="a_node6"><a xlink:href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1BlockFrame.html" target="_top" xlink:title="Managed reference to BlockFrameNode. ">
 <polygon fill="#ffffff" stroke="#000000" points="158,-.5 158,-90.5 298,-90.5 298,-.5 158,-.5"/>
 <text text-anchor="start" x="166" y="-78.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::ir_builder</text>
-<text text-anchor="middle" x="228" y="-67.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::tir::BlockInitFrame</text>
+<text text-anchor="middle" x="228" y="-67.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::tir::BlockFrame</text>
 <polyline fill="none" stroke="#000000" points="158,-60.5 298,-60.5 "/>
 <text text-anchor="middle" x="228" y="-48.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
 <polyline fill="none" stroke="#000000" points="158,-41.5 298,-41.5 "/>
@@ -147,16 +147,16 @@
 <!-- Node3&#45;&gt;Node5 -->
 <g id="edge5" class="edge">
 <title>Node3&#45;&gt;Node5</title>
-<path fill="none" stroke="#191970" d="M271.4375,-118.354C265.9189,-109.0981 260.2968,-99.6686 255.0078,-90.7978"/>
-<polygon fill="none" stroke="#191970" points="268.5551,-120.3542 276.6825,-127.151 274.5675,-116.7694 268.5551,-120.3542"/>
+<path fill="none" stroke="#191970" d="M543.0531,-127.0805C442.0766,-91.4383 404.5168,-125.1278 307,-91 304.0122,-89.9544 301.0091,-88.7944 298.0112,-87.5443"/>
+<polygon fill="none" stroke="#191970" points="542.1057,-130.4612 552.6993,-130.6255 544.5204,-123.8908 542.1057,-130.4612"/>
 </g>
 <!-- Node6 -->
 <g id="node7" class="node">
 <title>Node6</title>
-<g id="a_node7"><a xlink:href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1ForFrame.html" target="_top" xlink:title="Managed reference to ForFrameNode. ">
+<g id="a_node7"><a xlink:href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1BlockInitFrame.html" target="_top" xlink:title="Managed reference to BlockInitFrameNode. ">
 <polygon fill="#ffffff" stroke="#000000" points="316,-.5 316,-90.5 456,-90.5 456,-.5 316,-.5"/>
 <text text-anchor="start" x="324" y="-78.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::ir_builder</text>
-<text text-anchor="middle" x="386" y="-67.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::tir::ForFrame</text>
+<text text-anchor="middle" x="386" y="-67.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::tir::BlockInitFrame</text>
 <polyline fill="none" stroke="#000000" points="316,-60.5 456,-60.5 "/>
 <text text-anchor="middle" x="386" y="-48.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
 <polyline fill="none" stroke="#000000" points="316,-41.5 456,-41.5 "/>
@@ -169,16 +169,16 @@
 <!-- Node3&#45;&gt;Node6 -->
 <g id="edge6" class="edge">
 <title>Node3&#45;&gt;Node6</title>
-<path fill="none" stroke="#191970" d="M342.5625,-118.354C348.0811,-109.0981 353.7032,-99.6686 358.9922,-90.7978"/>
-<polygon fill="none" stroke="#191970" points="339.4325,-116.7694 337.3175,-127.151 345.4449,-120.3542 339.4325,-116.7694"/>
+<path fill="none" stroke="#191970" d="M543.7068,-127.0431C508.4088,-108.4131 496.7655,-107.3387 465,-91 462.0443,-89.4797 459.0419,-87.9027 456.0204,-86.2885"/>
+<polygon fill="none" stroke="#191970" points="542.2117,-130.2133 552.6748,-131.8791 545.5342,-124.0521 542.2117,-130.2133"/>
 </g>
 <!-- Node7 -->
 <g id="node8" class="node">
 <title>Node7</title>
-<g id="a_node8"><a xlink:href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1PrimFuncFrame.html" target="_top" xlink:title="Managed reference to PrimFuncFrameNode. ">
+<g id="a_node8"><a xlink:href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1ForFrame.html" target="_top" xlink:title="Managed reference to ForFrameNode. ">
 <polygon fill="#ffffff" stroke="#000000" points="474,-.5 474,-90.5 614,-90.5 614,-.5 474,-.5"/>
 <text text-anchor="start" x="482" y="-78.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::ir_builder</text>
-<text text-anchor="middle" x="544" y="-67.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::tir::PrimFuncFrame</text>
+<text text-anchor="middle" x="544" y="-67.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::tir::ForFrame</text>
 <polyline fill="none" stroke="#000000" points="474,-60.5 614,-60.5 "/>
 <text text-anchor="middle" x="544" y="-48.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
 <polyline fill="none" stroke="#000000" points="474,-41.5 614,-41.5 "/>
@@ -191,8 +191,96 @@
 <!-- Node3&#45;&gt;Node7 -->
 <g id="edge7" class="edge">
 <title>Node3&#45;&gt;Node7</title>
-<path fill="none" stroke="#191970" d="M385.985,-134.8962C411.2822,-120.9873 439.3731,-105.4336 465,-91 467.896,-89.3689 470.8485,-87.6992 473.8287,-86.0083"/>
-<polygon fill="none" stroke="#191970" points="384.2417,-131.8605 377.1622,-139.7429 387.612,-137.9958 384.2417,-131.8605"/>
+<path fill="none" stroke="#191970" d="M587.4375,-118.354C581.9189,-109.0981 576.2968,-99.6686 571.0078,-90.7978"/>
+<polygon fill="none" stroke="#191970" points="584.5551,-120.3542 592.6825,-127.151 590.5675,-116.7694 584.5551,-120.3542"/>
+</g>
+<!-- Node8 -->
+<g id="node9" class="node">
+<title>Node8</title>
+<g id="a_node9"><a xlink:href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrame.html" target="_top" xlink:title="Managed reference to LaunchThreadFrameNode. ">
+<polygon fill="#ffffff" stroke="#000000" points="632,-.5 632,-90.5 772,-90.5 772,-.5 632,-.5"/>
+<text text-anchor="start" x="640" y="-78.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::ir_builder</text>
+<text text-anchor="middle" x="702" y="-67.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::tir::LaunchThreadFrame</text>
+<polyline fill="none" stroke="#000000" points="632,-60.5 772,-60.5 "/>
+<text text-anchor="middle" x="702" y="-48.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="632,-41.5 772,-41.5 "/>
+<text text-anchor="start" x="640" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_MUTABLE</text>
+<text text-anchor="start" x="640" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_NOTNULLABLE_OBJECT</text>
+<text text-anchor="start" x="640" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_REF_METHODS()</text>
+</a>
+</g>
+</g>
+<!-- Node3&#45;&gt;Node8 -->
+<g id="edge8" class="edge">
+<title>Node3&#45;&gt;Node8</title>
+<path fill="none" stroke="#191970" d="M658.5625,-118.354C664.0811,-109.0981 669.7032,-99.6686 674.9922,-90.7978"/>
+<polygon fill="none" stroke="#191970" points="655.4325,-116.7694 653.3175,-127.151 661.4449,-120.3542 655.4325,-116.7694"/>
+</g>
+<!-- Node9 -->
+<g id="node10" class="node">
+<title>Node9</title>
+<g id="a_node10"><a xlink:href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LetFrame.html" target="_top" xlink:title="Managed reference to LetFrameNode. ">
+<polygon fill="#ffffff" stroke="#000000" points="790,-.5 790,-90.5 930,-90.5 930,-.5 790,-.5"/>
+<text text-anchor="start" x="798" y="-78.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::ir_builder</text>
+<text text-anchor="middle" x="860" y="-67.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::tir::LetFrame</text>
+<polyline fill="none" stroke="#000000" points="790,-60.5 930,-60.5 "/>
+<text text-anchor="middle" x="860" y="-48.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="790,-41.5 930,-41.5 "/>
+<text text-anchor="start" x="798" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_MUTABLE</text>
+<text text-anchor="start" x="798" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_NOTNULLABLE_OBJECT</text>
+<text text-anchor="start" x="798" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_REF_METHODS()</text>
+</a>
+</g>
+</g>
+<!-- Node3&#45;&gt;Node9 -->
+<g id="edge9" class="edge">
+<title>Node3&#45;&gt;Node9</title>
+<path fill="none" stroke="#191970" d="M701.985,-134.8962C727.2822,-120.9873 755.3731,-105.4336 781,-91 783.896,-89.3689 786.8485,-87.6992 789.8287,-86.0083"/>
+<polygon fill="none" stroke="#191970" points="700.2417,-131.8605 693.1622,-139.7429 703.612,-137.9958 700.2417,-131.8605"/>
+</g>
+<!-- Node10 -->
+<g id="node11" class="node">
+<title>Node10</title>
+<g id="a_node11"><a xlink:href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1PrimFuncFrame.html" target="_top" xlink:title="Managed reference to PrimFuncFrameNode. ">
+<polygon fill="#ffffff" stroke="#000000" points="948,-.5 948,-90.5 1088,-90.5 1088,-.5 948,-.5"/>
+<text text-anchor="start" x="956" y="-78.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::ir_builder</text>
+<text text-anchor="middle" x="1018" y="-67.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::tir::PrimFuncFrame</text>
+<polyline fill="none" stroke="#000000" points="948,-60.5 1088,-60.5 "/>
+<text text-anchor="middle" x="1018" y="-48.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="948,-41.5 1088,-41.5 "/>
+<text text-anchor="start" x="956" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_MUTABLE</text>
+<text text-anchor="start" x="956" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_NOTNULLABLE_OBJECT</text>
+<text text-anchor="start" x="956" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_REF_METHODS()</text>
+</a>
+</g>
+</g>
+<!-- Node3&#45;&gt;Node10 -->
+<g id="edge10" class="edge">
+<title>Node3&#45;&gt;Node10</title>
+<path fill="none" stroke="#191970" d="M702.8998,-161.9133C767.9323,-147.4306 861.3377,-123.4334 939,-91 941.921,-89.7801 944.8678,-88.4732 947.8185,-87.1001"/>
+<polygon fill="none" stroke="#191970" points="702.1279,-158.4993 693.1148,-164.0683 703.6336,-165.3355 702.1279,-158.4993"/>
+</g>
+<!-- Node11 -->
+<g id="node12" class="node">
+<title>Node11</title>
+<g id="a_node12"><a xlink:href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1RealizeFrame.html" target="_top" xlink:title="Managed reference to RealizeFrameNode. ">
+<polygon fill="#ffffff" stroke="#000000" points="1106,-.5 1106,-90.5 1246,-90.5 1246,-.5 1106,-.5"/>
+<text text-anchor="start" x="1114" y="-78.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::ir_builder</text>
+<text text-anchor="middle" x="1176" y="-67.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::tir::RealizeFrame</text>
+<polyline fill="none" stroke="#000000" points="1106,-60.5 1246,-60.5 "/>
+<text text-anchor="middle" x="1176" y="-48.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="1106,-41.5 1246,-41.5 "/>
+<text text-anchor="start" x="1114" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_MUTABLE</text>
+<text text-anchor="start" x="1114" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_NOTNULLABLE_OBJECT</text>
+<text text-anchor="start" x="1114" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_REF_METHODS()</text>
+</a>
+</g>
+</g>
+<!-- Node3&#45;&gt;Node11 -->
+<g id="edge11" class="edge">
+<title>Node3&#45;&gt;Node11</title>
+<path fill="none" stroke="#191970" d="M703.4739,-171.6339C799.5756,-162.1401 964.0161,-139.8499 1097,-91 1099.9714,-89.9085 1102.9606,-88.7099 1105.9468,-87.4274"/>
+<polygon fill="none" stroke="#191970" points="702.8632,-168.1764 693.2459,-172.6213 703.536,-175.144 702.8632,-168.1764"/>
 </g>
 </g>
 </svg>
diff --git a/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1AssertFrame-members.html b/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1AssertFrame-members.html
new file mode 100644
index 000000000..1a72fedef
--- /dev/null
+++ b/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1AssertFrame-members.html
@@ -0,0 +1,107 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>tvm: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">tvm
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespacetvm.html">tvm</a></li><li class="navelem"><a class="el" href="namespacetvm_1_1script.html">script</a></li><li class="navelem"><a class="el" href="namespacetvm_1_1script_1_1ir__builder.html">ir_builder</a></li><li class="navelem"><a class="el" href="namespacetvm_1_1script_1_1ir__builder_1_1tir.html">tir</a></li><li class="navelem"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1AssertFrame.html">AssertFrame</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">tvm::script::ir_builder::tir::AssertFrame Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1AssertFrame.html">tvm::script::ir_builder::tir::AssertFrame</a>, including all inherited members.</p>
+<table class="directory">
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a3e9b0901b6e01257b060a45e159cc37e">_type_is_nullable</a></td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a2d76fa1fb628ff276a284e61123589c5">as</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#aa5c355fbb7d2f7402ee360dba8a52cdd">ContainerType</a> typedef</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#ac261cdb80487fb29ac42b28678f8cbef">data_</a></td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a17d8d5ad92691f9e18e3e0ae8ef69e4f">defined</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#acd04bb22a6861e9952c344ee8547411f">DowncastNoCheck</a>(ObjectRef ref)</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html#a06a9c6f3c686c68da8ca2c707b13a751">EnterWithScope</a>()</td><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html">tvm::script::ir_builder::IRBuilderFrame</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html#a8ca5afe93534c3bf7e521609d5654ac3">ExitWithScope</a>()</td><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html">tvm::script::ir_builder::IRBuilderFrame</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a22e5bb9d64dbc773bb9263b70882239e">FFIClearAfterMove</a>(ObjectRef *ref)</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#aadbc0886ffa80162ff31eefd0431ba09">get</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#ae423057ecf93c18714d17f53cd1d318f">get_mutable</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#aed593996e4076632450de8fde776707c">GetDataPtr</a>(const ObjectRef &amp;ref)</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html#a4ab7fb335968d6947f88b7b934c56354">IRBuilderFrame</a>()=default</td><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html">tvm::script::ir_builder::IRBuilderFrame</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#aa07c1f6d66a438ea950637d13ed09471">ObjectRef</a>()=default</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a6a7dd7404edf1c26f8dbd9bd92d03a02">ObjectRef</a>(ObjectPtr&lt; Object &gt; data)</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#aa1bd13a7185cb4b2b6bdde49416e8aa4">operator!=</a>(const ObjectRef &amp;other) const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a3deeeac5827a88f375b8c6ae1039c219">operator-&gt;</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a4744bf4a1b48f202d41b51dc5e08e6ee">operator&lt;</a>(const ObjectRef &amp;other) const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#affdf1b8cdb36e140de7b3ad7064e4617">operator==</a>(const ObjectRef &amp;other) const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#ae31a5b9f40781d60a2901994ead700e8">same_as</a>(const ObjectRef &amp;other) const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame.html#a70e34dbed98c143d552dff607368d8a6">TIRFrame</a>()=default</td><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame.html">tvm::script::ir_builder::tir::TIRFrame</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1AssertFrame.html#a9172bd20b60e2103454328c9724e5329">TVM_DEFINE_MUTABLE_NOTNULLABLE_OBJECT_REF_METHODS</a>(AssertFrame, TIRFrame, AssertFrameNode)</td><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1AssertFrame.html">tvm::script::ir_builder::tir::AssertFrame</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame.html#a981032a8339da455ed51f1f1dc6cfebc">tvm::script::ir_builder::tir::TIRFrame::TVM_DEFINE_MUTABLE_NOTNULLABLE_OBJECT_REF_METHODS</a>(TIRFrame, IRBuilderFrame, TIRFrameNode)</td><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame.html">tvm::script::ir_builder::tir::TIRFrame</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html#ad4a36a9c72d592d40b02548864e149a8">tvm::script::ir_builder::IRBuilderFrame::TVM_DEFINE_MUTABLE_NOTNULLABLE_OBJECT_REF_METHODS</a>(IRBuilderFrame, ObjectRef, IRBuilderFrameNode)</td><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html">tvm::script::ir_builder::IRBuilderFrame</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a4e7cdb1574b93a59e784d70aa47b8da7">unique</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a0ae0da21d247cd87ea94fe3777c4405e">use_count</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html#ae9333580d4c7e8211eae6e27080ba0bb">~IRBuilderFrame</a>()=default</td><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html">tvm::script::ir_builder::IRBuilderFrame</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.13
+</small></address>
+</body>
+</html>
diff --git a/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame.html b/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1AssertFrame.html
similarity index 85%
copy from docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame.html
copy to docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1AssertFrame.html
index 6becacade..1bdd78263 100644
--- a/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame.html
+++ b/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1AssertFrame.html
@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.13"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>tvm: tvm::script::ir_builder::tir::TIRFrame Class Reference</title>
+<title>tvm: tvm::script::ir_builder::tir::AssertFrame Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -58,40 +58,42 @@ $(function() {
 
 <div id="nav-path" class="navpath">
   <ul>
-<li class="navelem"><a class="el" href="namespacetvm.html">tvm</a></li><li class="navelem"><a class="el" href="namespacetvm_1_1script.html">script</a></li><li class="navelem"><a class="el" href="namespacetvm_1_1script_1_1ir__builder.html">ir_builder</a></li><li class="navelem"><a class="el" href="namespacetvm_1_1script_1_1ir__builder_1_1tir.html">tir</a></li><li class="navelem"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame.html">TIRFrame</a></li>  </ul>
+<li class="navelem"><a class="el" href="namespacetvm.html">tvm</a></li><li class="navelem"><a class="el" href="namespacetvm_1_1script.html">script</a></li><li class="navelem"><a class="el" href="namespacetvm_1_1script_1_1ir__builder.html">ir_builder</a></li><li class="navelem"><a class="el" href="namespacetvm_1_1script_1_1ir__builder_1_1tir.html">tir</a></li><li class="navelem"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1AssertFrame.html">AssertFrame</a></li>  </ul>
 </div>
 </div><!-- top -->
 <div class="header">
   <div class="summary">
 <a href="#pub-methods">Public Member Functions</a> &#124;
-<a href="#pro-methods">Protected Member Functions</a> &#124;
-<a href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame-members.html">List of all members</a>  </div>
+<a href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1AssertFrame-members.html">List of all members</a>  </div>
   <div class="headertitle">
-<div class="title">tvm::script::ir_builder::tir::TIRFrame Class Reference</div>  </div>
+<div class="title">tvm::script::ir_builder::tir::AssertFrame Class Reference</div>  </div>
 </div><!--header-->
 <div class="contents">
 
-<p>Managed reference to <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrameNode.html" title="A base frame that represents the TIR fame with body of statements. ">TIRFrameNode</a>.  
- <a href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame.html#details">More...</a></p>
+<p>Managed reference to <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1AssertFrameNode.html" title="A frame that represents the assert statement. Proceeds if the condition is true, otherwise aborts wit...">AssertFrameNode</a>.  
+ <a href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1AssertFrame.html#details">More...</a></p>
 
 <p><code>#include &lt;<a class="el" href="ir__builder_2tir_2frame_8h_source.html">frame.h</a>&gt;</code></p>
 <div class="dynheader">
-Inheritance diagram for tvm::script::ir_builder::tir::TIRFrame:</div>
+Inheritance diagram for tvm::script::ir_builder::tir::AssertFrame:</div>
 <div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame__inherit__graph.svg" width="830" height="904"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
+<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1script_1_1ir__builder_1_1tir_1_1AssertFrame__inherit__graph.svg" width="198" height="904"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
 </div>
 </div>
 <div class="dynheader">
-Collaboration diagram for tvm::script::ir_builder::tir::TIRFrame:</div>
+Collaboration diagram for tvm::script::ir_builder::tir::AssertFrame:</div>
 <div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame__coll__graph.svg" width="198" height="1024"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
+<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1script_1_1ir__builder_1_1tir_1_1AssertFrame__coll__graph.svg" width="198" height="1195"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
 </div>
 </div>
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
 Public Member Functions</h2></td></tr>
-<tr class="memitem:a981032a8339da455ed51f1f1dc6cfebc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame.html#a981032a8339da455ed51f1f1dc6cfebc">TVM_DEFINE_MUTABLE_NOTNULLABLE_OBJECT_REF_METHODS</a> (<a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame.html">TIRFrame</a>, <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.ht [...]
-<tr class="separator:a981032a8339da455ed51f1f1dc6cfebc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9172bd20b60e2103454328c9724e5329"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1AssertFrame.html#a9172bd20b60e2103454328c9724e5329">TVM_DEFINE_MUTABLE_NOTNULLABLE_OBJECT_REF_METHODS</a> (<a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1AssertFrame.html">AssertFrame</a>, <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1T [...]
+<tr class="separator:a9172bd20b60e2103454328c9724e5329"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame.html">tvm::script::ir_builder::tir::TIRFrame</a></td></tr>
+<tr class="memitem:a981032a8339da455ed51f1f1dc6cfebc inherit pub_methods_classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame.html#a981032a8339da455ed51f1f1dc6cfebc">TVM_DEFINE_MUTABLE_NOTNULLABLE_OBJECT_REF_METHODS</a> (<a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame.html">TIRFrame</a>, < [...]
+<tr class="separator:a981032a8339da455ed51f1f1dc6cfebc inherit pub_methods_classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="inherit_header pub_methods_classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html">tvm::script::ir_builder::IRBuilderFrame</a></td></tr>
 <tr class="memitem:ae9333580d4c7e8211eae6e27080ba0bb inherit pub_methods_classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html#ae9333580d4c7e8211eae6e27080ba0bb">~IRBuilderFrame</a> ()=default</td></tr>
 <tr class="memdesc:ae9333580d4c7e8211eae6e27080ba0bb inherit pub_methods_classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default destructor.  <a href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html#ae9333580d4c7e8211eae6e27080ba0bb">More...</a><br /></td></tr>
@@ -138,18 +140,6 @@ Public Member Functions</h2></td></tr>
 <tr class="memdesc:a2d76fa1fb628ff276a284e61123589c5 inherit pub_methods_classtvm_1_1runtime_1_1ObjectRef"><td class="mdescLeft">&#160;</td><td class="mdescRight">Try to downcast the internal <a class="el" href="classtvm_1_1runtime_1_1Object.html" title="base class of all object containers. ">Object</a> to a raw pointer of a corresponding type.  <a href="classtvm_1_1runtime_1_1ObjectRef.html#a2d76fa1fb628ff276a284e61123589c5">More...</a><br /></td></tr>
 <tr class="separator:a2d76fa1fb628ff276a284e61123589c5 inherit pub_methods_classtvm_1_1runtime_1_1ObjectRef"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
-Protected Member Functions</h2></td></tr>
-<tr class="memitem:a70e34dbed98c143d552dff607368d8a6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame.html#a70e34dbed98c143d552dff607368d8a6">TIRFrame</a> ()=default</td></tr>
-<tr class="separator:a70e34dbed98c143d552dff607368d8a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="inherit_header pro_methods_classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html">tvm::script::ir_builder::IRBuilderFrame</a></td></tr>
-<tr class="memitem:a4ab7fb335968d6947f88b7b934c56354 inherit pro_methods_classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html#a4ab7fb335968d6947f88b7b934c56354">IRBuilderFrame</a> ()=default</td></tr>
-<tr class="memdesc:a4ab7fb335968d6947f88b7b934c56354 inherit pro_methods_classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disallow direct construction of this object.  <a href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html#a4ab7fb335968d6947f88b7b934c56354">More...</a><br /></td></tr>
-<tr class="separator:a4ab7fb335968d6947f88b7b934c56354 inherit pro_methods_classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="inherit_header pro_methods_classtvm_1_1runtime_1_1ObjectRef"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classtvm_1_1runtime_1_1ObjectRef')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td></tr>
-<tr class="memitem:ae423057ecf93c18714d17f53cd1d318f inherit pro_methods_classtvm_1_1runtime_1_1ObjectRef"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classtvm_1_1runtime_1_1Object.html">Object</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#ae423057ecf93c18714d17f53cd1d318f">get_mutable</a> () const</td></tr>
-<tr class="separator:ae423057ecf93c18714d17f53cd1d318f inherit pro_methods_classtvm_1_1runtime_1_1ObjectRef"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
 Additional Inherited Members</h2></td></tr>
 <tr class="inherit_header pub_types_classtvm_1_1runtime_1_1ObjectRef"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classtvm_1_1runtime_1_1ObjectRef')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td></tr>
@@ -159,6 +149,16 @@ Additional Inherited Members</h2></td></tr>
 <tr class="inherit_header pub_static_attribs_classtvm_1_1runtime_1_1ObjectRef"><td colspan="2" onclick="javascript:toggleInherit('pub_static_attribs_classtvm_1_1runtime_1_1ObjectRef')"><img src="closed.png" alt="-"/>&#160;Static Public Attributes inherited from <a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td></tr>
 <tr class="memitem:a3e9b0901b6e01257b060a45e159cc37e inherit pub_static_attribs_classtvm_1_1runtime_1_1ObjectRef"><td class="memItemLeft" align="right" valign="top">static constexpr bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a3e9b0901b6e01257b060a45e159cc37e">_type_is_nullable</a> = true</td></tr>
 <tr class="separator:a3e9b0901b6e01257b060a45e159cc37e inherit pub_static_attribs_classtvm_1_1runtime_1_1ObjectRef"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame.html">tvm::script::ir_builder::tir::TIRFrame</a></td></tr>
+<tr class="memitem:a70e34dbed98c143d552dff607368d8a6 inherit pro_methods_classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame.html#a70e34dbed98c143d552dff607368d8a6">TIRFrame</a> ()=default</td></tr>
+<tr class="separator:a70e34dbed98c143d552dff607368d8a6 inherit pro_methods_classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html">tvm::script::ir_builder::IRBuilderFrame</a></td></tr>
+<tr class="memitem:a4ab7fb335968d6947f88b7b934c56354 inherit pro_methods_classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html#a4ab7fb335968d6947f88b7b934c56354">IRBuilderFrame</a> ()=default</td></tr>
+<tr class="memdesc:a4ab7fb335968d6947f88b7b934c56354 inherit pro_methods_classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disallow direct construction of this object.  <a href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html#a4ab7fb335968d6947f88b7b934c56354">More...</a><br /></td></tr>
+<tr class="separator:a4ab7fb335968d6947f88b7b934c56354 inherit pro_methods_classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classtvm_1_1runtime_1_1ObjectRef"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classtvm_1_1runtime_1_1ObjectRef')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td></tr>
+<tr class="memitem:ae423057ecf93c18714d17f53cd1d318f inherit pro_methods_classtvm_1_1runtime_1_1ObjectRef"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classtvm_1_1runtime_1_1Object.html">Object</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#ae423057ecf93c18714d17f53cd1d318f">get_mutable</a> () const</td></tr>
+<tr class="separator:ae423057ecf93c18714d17f53cd1d318f inherit pro_methods_classtvm_1_1runtime_1_1ObjectRef"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="inherit_header pro_static_methods_classtvm_1_1runtime_1_1ObjectRef"><td colspan="2" onclick="javascript:toggleInherit('pro_static_methods_classtvm_1_1runtime_1_1ObjectRef')"><img src="closed.png" alt="-"/>&#160;Static Protected Member Functions inherited from <a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td></tr>
 <tr class="memitem:acd04bb22a6861e9952c344ee8547411f inherit pro_static_methods_classtvm_1_1runtime_1_1ObjectRef"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
 <tr class="memitem:acd04bb22a6861e9952c344ee8547411f inherit pro_static_methods_classtvm_1_1runtime_1_1ObjectRef"><td class="memTemplItemLeft" align="right" valign="top">static T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#acd04bb22a6861e9952c344ee8547411f">DowncastNoCheck</a> (<a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">ObjectRef</a> ref)</td></tr>
@@ -177,57 +177,31 @@ Additional Inherited Members</h2></td></tr>
 <tr class="separator:ac261cdb80487fb29ac42b28678f8cbef inherit pro_attribs_classtvm_1_1runtime_1_1ObjectRef"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>Managed reference to <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrameNode.html" title="A base frame that represents the TIR fame with body of statements. ">TIRFrameNode</a>. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrameNode.html" title="A base frame that represents the TIR fame with body of statements. ">TIRFrameNode</a> </dd></dl>
-</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
-<a id="a70e34dbed98c143d552dff607368d8a6"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a70e34dbed98c143d552dff607368d8a6">&#9670;&nbsp;</a></span>TIRFrame()</h2>
-
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
-  <tr>
-  <td class="mlabels-left">
-      <table class="memname">
-        <tr>
-          <td class="memname">tvm::script::ir_builder::tir::TIRFrame::TIRFrame </td>
-          <td>(</td>
-          <td class="paramname"></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-  </td>
-  <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">default</span></span>  </td>
-  </tr>
-</table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<h2 class="groupheader">Member Function Documentation</h2>
-<a id="a981032a8339da455ed51f1f1dc6cfebc"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a981032a8339da455ed51f1f1dc6cfebc">&#9670;&nbsp;</a></span>TVM_DEFINE_MUTABLE_NOTNULLABLE_OBJECT_REF_METHODS()</h2>
+<div class="textblock"><p>Managed reference to <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1AssertFrameNode.html" title="A frame that represents the assert statement. Proceeds if the condition is true, otherwise aborts wit...">AssertFrameNode</a>. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1AssertFrameNode.html" title="A frame that represents the assert statement. Proceeds if the condition is true, otherwise aborts wit...">AssertFrameNode</a> </dd></dl>
+</div><h2 class="groupheader">Member Function Documentation</h2>
+<a id="a9172bd20b60e2103454328c9724e5329"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a9172bd20b60e2103454328c9724e5329">&#9670;&nbsp;</a></span>TVM_DEFINE_MUTABLE_NOTNULLABLE_OBJECT_REF_METHODS()</h2>
 
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">tvm::script::ir_builder::tir::TIRFrame::TVM_DEFINE_MUTABLE_NOTNULLABLE_OBJECT_REF_METHODS </td>
+          <td class="memname">tvm::script::ir_builder::tir::AssertFrame::TVM_DEFINE_MUTABLE_NOTNULLABLE_OBJECT_REF_METHODS </td>
           <td>(</td>
-          <td class="paramtype"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame.html">TIRFrame</a>&#160;</td>
+          <td class="paramtype"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1AssertFrame.html">AssertFrame</a>&#160;</td>
           <td class="paramname">, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html">IRBuilderFrame</a>&#160;</td>
+          <td class="paramtype"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame.html">TIRFrame</a>&#160;</td>
           <td class="paramname">, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrameNode.html">TIRFrameNode</a>&#160;</td>
+          <td class="paramtype"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1AssertFrameNode.html">AssertFrameNode</a>&#160;</td>
           <td class="paramname">&#160;</td>
         </tr>
         <tr>
diff --git a/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1AssertFrameNode.html b/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1AssertFrameNode.html
index 12091b654..d5c6a2667 100644
--- a/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1AssertFrameNode.html
+++ b/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1AssertFrameNode.html
@@ -231,7 +231,7 @@ Additional Inherited Members</h2></td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
 <div class="textblock"><p>A frame that represents the assert statement. Proceeds if the condition is true, otherwise aborts with the message. </p>
-<dl class="section see"><dt>See also</dt><dd>AssertFrame </dd></dl>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1AssertFrame.html" title="Managed reference to AssertFrameNode. ">AssertFrame</a> </dd></dl>
 </div><h2 class="groupheader">Member Function Documentation</h2>
 <a id="ad934bf1ff350bb1d57daafbe6588f53e"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ad934bf1ff350bb1d57daafbe6588f53e">&#9670;&nbsp;</a></span>ExitWithScope()</h2>
diff --git a/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1AssertFrame__coll__graph.svg b/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1AssertFrame__coll__graph.svg
new file mode 100644
index 000000000..9496ef92f
--- /dev/null
+++ b/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1AssertFrame__coll__graph.svg
@@ -0,0 +1,140 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.40.1 (20161225.0304)
+ -->
+<!-- Title: tvm::script::ir_builder::tir::AssertFrame Pages: 1 -->
+<svg width="148pt" height="896pt"
+ viewBox="0.00 0.00 148.00 896.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 892)">
+<title>tvm::script::ir_builder::tir::AssertFrame</title>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-892 144,-892 144,4 -4,4"/>
+<!-- Node4 -->
+<g id="node1" class="node">
+<title>Node4</title>
+<polygon fill="#bfbfbf" stroke="#000000" points="0,-.5 0,-90.5 140,-90.5 140,-.5 0,-.5"/>
+<text text-anchor="start" x="8" y="-78.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::ir_builder</text>
+<text text-anchor="middle" x="70" y="-67.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::tir::AssertFrame</text>
+<polyline fill="none" stroke="#000000" points="0,-60.5 140,-60.5 "/>
+<text text-anchor="middle" x="70" y="-48.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="0,-41.5 140,-41.5 "/>
+<text text-anchor="start" x="8" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_MUTABLE</text>
+<text text-anchor="start" x="8" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_NOTNULLABLE_OBJECT</text>
+<text text-anchor="start" x="8" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_REF_METHODS()</text>
+</g>
+<!-- Node5 -->
+<g id="node2" class="node">
+<title>Node5</title>
+<g id="a_node2"><a xlink:href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame.html" target="_top" xlink:title="Managed reference to TIRFrameNode. ">
+<polygon fill="#ffffff" stroke="#000000" points="0,-128.5 0,-229.5 140,-229.5 140,-128.5 0,-128.5"/>
+<text text-anchor="start" x="8" y="-217.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::ir_builder</text>
+<text text-anchor="middle" x="70" y="-206.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::tir::TIRFrame</text>
+<polyline fill="none" stroke="#000000" points="0,-199.5 140,-199.5 "/>
+<text text-anchor="middle" x="70" y="-187.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="0,-180.5 140,-180.5 "/>
+<text text-anchor="start" x="8" y="-168.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_MUTABLE</text>
+<text text-anchor="start" x="8" y="-157.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_NOTNULLABLE_OBJECT</text>
+<text text-anchor="start" x="8" y="-146.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_REF_METHODS()</text>
+<text text-anchor="start" x="8" y="-135.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># TIRFrame()</text>
+</a>
+</g>
+</g>
+<!-- Node5&#45;&gt;Node4 -->
+<g id="edge1" class="edge">
+<title>Node5&#45;&gt;Node4</title>
+<path fill="none" stroke="#191970" d="M70,-117.8576C70,-108.6556 70,-99.3105 70,-90.5283"/>
+<polygon fill="none" stroke="#191970" points="66.5001,-118.1485 70,-128.1485 73.5001,-118.1486 66.5001,-118.1485"/>
+</g>
+<!-- Node6 -->
+<g id="node3" class="node">
+<title>Node6</title>
+<g id="a_node3"><a xlink:href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html" target="_top" xlink:title="Managed reference to an IRBuilderFrameNode. ">
+<polygon fill="#ffffff" stroke="#000000" points="0,-267.5 0,-401.5 140,-401.5 140,-267.5 0,-267.5"/>
+<text text-anchor="start" x="8" y="-389.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::ir_builder</text>
+<text text-anchor="middle" x="70" y="-378.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::IRBuilderFrame</text>
+<polyline fill="none" stroke="#000000" points="0,-371.5 140,-371.5 "/>
+<text text-anchor="middle" x="70" y="-359.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="0,-352.5 140,-352.5 "/>
+<text text-anchor="start" x="8" y="-340.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ~IRBuilderFrame()</text>
+<text text-anchor="start" x="8" y="-329.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_MUTABLE</text>
+<text text-anchor="start" x="8" y="-318.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_NOTNULLABLE_OBJECT</text>
+<text text-anchor="start" x="8" y="-307.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_REF_METHODS()</text>
+<text text-anchor="start" x="8" y="-296.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ EnterWithScope()</text>
+<text text-anchor="start" x="8" y="-285.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ExitWithScope()</text>
+<text text-anchor="start" x="8" y="-274.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># IRBuilderFrame()</text>
+</a>
+</g>
+</g>
+<!-- Node6&#45;&gt;Node5 -->
+<g id="edge2" class="edge">
+<title>Node6&#45;&gt;Node5</title>
+<path fill="none" stroke="#191970" d="M70,-257.0731C70,-247.7148 70,-238.3502 70,-229.5216"/>
+<polygon fill="none" stroke="#191970" points="66.5001,-257.1998 70,-267.1998 73.5001,-257.1999 66.5001,-257.1998"/>
+</g>
+<!-- Node7 -->
+<g id="node4" class="node">
+<title>Node7</title>
+<g id="a_node4"><a xlink:href="classtvm_1_1runtime_1_1ObjectRef.html" target="_top" xlink:title="Base class of all object reference. ">
+<polygon fill="#ffffff" stroke="#000000" points="3,-439.5 3,-661.5 137,-661.5 137,-439.5 3,-439.5"/>
+<text text-anchor="middle" x="70" y="-649.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectRef</text>
+<polyline fill="none" stroke="#000000" points="3,-642.5 137,-642.5 "/>
+<text text-anchor="start" x="11" y="-630.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
+<polyline fill="none" stroke="#000000" points="3,-623.5 137,-623.5 "/>
+<text text-anchor="start" x="11" y="-611.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
+<text text-anchor="start" x="11" y="-600.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
+<text text-anchor="start" x="11" y="-589.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ same_as()</text>
+<text text-anchor="start" x="11" y="-578.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator==()</text>
+<text text-anchor="start" x="11" y="-567.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator!=()</text>
+<text text-anchor="start" x="11" y="-556.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&lt;()</text>
+<text text-anchor="start" x="11" y="-545.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ defined()</text>
+<text text-anchor="start" x="11" y="-534.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
+<text text-anchor="start" x="11" y="-523.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&#45;&gt;()</text>
+<text text-anchor="start" x="11" y="-512.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ unique()</text>
+<text text-anchor="start" x="11" y="-501.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ use_count()</text>
+<text text-anchor="start" x="11" y="-490.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ as()</text>
+<text text-anchor="start" x="11" y="-479.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># get_mutable()</text>
+<text text-anchor="start" x="11" y="-468.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># DowncastNoCheck()</text>
+<text text-anchor="start" x="11" y="-457.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># FFIClearAfterMove()</text>
+<text text-anchor="start" x="11" y="-446.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># GetDataPtr()</text>
+</a>
+</g>
+</g>
+<!-- Node7&#45;&gt;Node6 -->
+<g id="edge3" class="edge">
+<title>Node7&#45;&gt;Node6</title>
+<path fill="none" stroke="#191970" d="M70,-429.1483C70,-419.7959 70,-410.5791 70,-401.7844"/>
+<polygon fill="none" stroke="#191970" points="66.5001,-429.3363 70,-439.3363 73.5001,-429.3364 66.5001,-429.3363"/>
+</g>
+<!-- Node8 -->
+<g id="node5" class="node">
+<title>Node8</title>
+<g id="a_node5"><a xlink:href="classtvm_1_1runtime_1_1ObjectPtr.html" target="_top" xlink:title="{tvm::runtime::ObjectPtr\l\&lt; tvm::runtime::Object \&gt;\n||+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ~ObjectPtr()\l+ swap()\l+ get()\l+ operator&#45;\&gt;()\land 11 more...\l}">
+<polygon fill="#ffffff" stroke="#000000" points="0,-709.5 0,-887.5 140,-887.5 140,-709.5 0,-709.5"/>
+<text text-anchor="start" x="8" y="-875.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectPtr</text>
+<text text-anchor="middle" x="70" y="-864.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::runtime::Object &gt;</text>
+<polyline fill="none" stroke="#000000" points="0,-857.5 140,-857.5 "/>
+<text text-anchor="middle" x="70" y="-845.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="0,-838.5 140,-838.5 "/>
+<text text-anchor="start" x="8" y="-826.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
+<text text-anchor="start" x="8" y="-815.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
+<text text-anchor="start" x="8" y="-804.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
+<text text-anchor="start" x="8" y="-793.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
+<text text-anchor="start" x="8" y="-782.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
+<text text-anchor="start" x="8" y="-771.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
+<text text-anchor="start" x="8" y="-760.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ~ObjectPtr()</text>
+<text text-anchor="start" x="8" y="-749.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ swap()</text>
+<text text-anchor="start" x="8" y="-738.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
+<text text-anchor="start" x="8" y="-727.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&#45;&gt;()</text>
+<text text-anchor="start" x="8" y="-716.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 11 more...</text>
+</a>
+</g>
+</g>
+<!-- Node8&#45;&gt;Node7 -->
+<g id="edge4" class="edge">
+<title>Node8&#45;&gt;Node7</title>
+<path fill="none" stroke="#404040" d="M70,-709.3167C70,-697.8765 70,-686.0062 70,-674.1402"/>
+<polygon fill="none" stroke="#404040" points="70.0001,-673.7944 66,-667.7944 70,-661.7944 74,-667.7943 70.0001,-673.7944"/>
+<text text-anchor="middle" x="89.5" y="-683" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> #data_</text>
+</g>
+</g>
+</svg>
diff --git a/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1AssertFrame__inherit__graph.svg b/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1AssertFrame__inherit__graph.svg
new file mode 100644
index 000000000..9ded1e74a
--- /dev/null
+++ b/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1AssertFrame__inherit__graph.svg
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.40.1 (20161225.0304)
+ -->
+<!-- Title: tvm::script::ir_builder::tir::AssertFrame Pages: 1 -->
+<svg width="148pt" height="678pt"
+ viewBox="0.00 0.00 148.00 678.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 674)">
+<title>tvm::script::ir_builder::tir::AssertFrame</title>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-674 144,-674 144,4 -4,4"/>
+<!-- Node0 -->
+<g id="node1" class="node">
+<title>Node0</title>
+<polygon fill="#bfbfbf" stroke="#000000" points="0,-.5 0,-90.5 140,-90.5 140,-.5 0,-.5"/>
+<text text-anchor="start" x="8" y="-78.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::ir_builder</text>
+<text text-anchor="middle" x="70" y="-67.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::tir::AssertFrame</text>
+<polyline fill="none" stroke="#000000" points="0,-60.5 140,-60.5 "/>
+<text text-anchor="middle" x="70" y="-48.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="0,-41.5 140,-41.5 "/>
+<text text-anchor="start" x="8" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_MUTABLE</text>
+<text text-anchor="start" x="8" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_NOTNULLABLE_OBJECT</text>
+<text text-anchor="start" x="8" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_REF_METHODS()</text>
+</g>
+<!-- Node1 -->
+<g id="node2" class="node">
+<title>Node1</title>
+<g id="a_node2"><a xlink:href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame.html" target="_top" xlink:title="Managed reference to TIRFrameNode. ">
+<polygon fill="#ffffff" stroke="#000000" points="0,-127.5 0,-228.5 140,-228.5 140,-127.5 0,-127.5"/>
+<text text-anchor="start" x="8" y="-216.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::ir_builder</text>
+<text text-anchor="middle" x="70" y="-205.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::tir::TIRFrame</text>
+<polyline fill="none" stroke="#000000" points="0,-198.5 140,-198.5 "/>
+<text text-anchor="middle" x="70" y="-186.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="0,-179.5 140,-179.5 "/>
+<text text-anchor="start" x="8" y="-167.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_MUTABLE</text>
+<text text-anchor="start" x="8" y="-156.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_NOTNULLABLE_OBJECT</text>
+<text text-anchor="start" x="8" y="-145.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_REF_METHODS()</text>
+<text text-anchor="start" x="8" y="-134.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># TIRFrame()</text>
+</a>
+</g>
+</g>
+<!-- Node1&#45;&gt;Node0 -->
+<g id="edge1" class="edge">
+<title>Node1&#45;&gt;Node0</title>
+<path fill="none" stroke="#191970" d="M70,-116.9214C70,-108.1275 70,-99.2114 70,-90.7978"/>
+<polygon fill="none" stroke="#191970" points="66.5001,-117.1509 70,-127.151 73.5001,-117.151 66.5001,-117.1509"/>
+</g>
+<!-- Node2 -->
+<g id="node3" class="node">
+<title>Node2</title>
+<g id="a_node3"><a xlink:href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html" target="_top" xlink:title="Managed reference to an IRBuilderFrameNode. ">
+<polygon fill="#ffffff" stroke="#000000" points="0,-265.5 0,-399.5 140,-399.5 140,-265.5 0,-265.5"/>
+<text text-anchor="start" x="8" y="-387.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::ir_builder</text>
+<text text-anchor="middle" x="70" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::IRBuilderFrame</text>
+<polyline fill="none" stroke="#000000" points="0,-369.5 140,-369.5 "/>
+<text text-anchor="middle" x="70" y="-357.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="0,-350.5 140,-350.5 "/>
+<text text-anchor="start" x="8" y="-338.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ~IRBuilderFrame()</text>
+<text text-anchor="start" x="8" y="-327.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_MUTABLE</text>
+<text text-anchor="start" x="8" y="-316.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_NOTNULLABLE_OBJECT</text>
+<text text-anchor="start" x="8" y="-305.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_REF_METHODS()</text>
+<text text-anchor="start" x="8" y="-294.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ EnterWithScope()</text>
+<text text-anchor="start" x="8" y="-283.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ExitWithScope()</text>
+<text text-anchor="start" x="8" y="-272.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># IRBuilderFrame()</text>
+</a>
+</g>
+</g>
+<!-- Node2&#45;&gt;Node1 -->
+<g id="edge2" class="edge">
+<title>Node2&#45;&gt;Node1</title>
+<path fill="none" stroke="#191970" d="M70,-255.1277C70,-246.1994 70,-237.2733 70,-228.8265"/>
+<polygon fill="none" stroke="#191970" points="66.5001,-255.1835 70,-265.1835 73.5001,-255.1835 66.5001,-255.1835"/>
+</g>
+<!-- Node3 -->
+<g id="node4" class="node">
+<title>Node3</title>
+<g id="a_node4"><a xlink:href="classtvm_1_1runtime_1_1ObjectRef.html" target="_top" xlink:title="Base class of all object reference. ">
+<polygon fill="#ffffff" stroke="#000000" points="3,-436.5 3,-669.5 137,-669.5 137,-436.5 3,-436.5"/>
+<text text-anchor="middle" x="70" y="-657.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectRef</text>
+<polyline fill="none" stroke="#000000" points="3,-650.5 137,-650.5 "/>
+<text text-anchor="start" x="11" y="-638.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
+<text text-anchor="start" x="11" y="-627.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># data_</text>
+<polyline fill="none" stroke="#000000" points="3,-620.5 137,-620.5 "/>
+<text text-anchor="start" x="11" y="-608.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
+<text text-anchor="start" x="11" y="-597.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
+<text text-anchor="start" x="11" y="-586.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ same_as()</text>
+<text text-anchor="start" x="11" y="-575.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator==()</text>
+<text text-anchor="start" x="11" y="-564.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator!=()</text>
+<text text-anchor="start" x="11" y="-553.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&lt;()</text>
+<text text-anchor="start" x="11" y="-542.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ defined()</text>
+<text text-anchor="start" x="11" y="-531.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
+<text text-anchor="start" x="11" y="-520.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&#45;&gt;()</text>
+<text text-anchor="start" x="11" y="-509.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ unique()</text>
+<text text-anchor="start" x="11" y="-498.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ use_count()</text>
+<text text-anchor="start" x="11" y="-487.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ as()</text>
+<text text-anchor="start" x="11" y="-476.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># get_mutable()</text>
+<text text-anchor="start" x="11" y="-465.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># DowncastNoCheck()</text>
+<text text-anchor="start" x="11" y="-454.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># FFIClearAfterMove()</text>
+<text text-anchor="start" x="11" y="-443.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># GetDataPtr()</text>
+</a>
+</g>
+</g>
+<!-- Node3&#45;&gt;Node2 -->
+<g id="edge3" class="edge">
+<title>Node3&#45;&gt;Node2</title>
+<path fill="none" stroke="#191970" d="M70,-426.0779C70,-417.0753 70,-408.2246 70,-399.7733"/>
+<polygon fill="none" stroke="#191970" points="66.5001,-426.2933 70,-436.2933 73.5001,-426.2934 66.5001,-426.2933"/>
+</g>
+</g>
+</svg>
diff --git a/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrame-members.html b/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrame-members.html
new file mode 100644
index 000000000..78a96c1a2
--- /dev/null
+++ b/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrame-members.html
@@ -0,0 +1,107 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>tvm: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">tvm
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespacetvm.html">tvm</a></li><li class="navelem"><a class="el" href="namespacetvm_1_1script.html">script</a></li><li class="navelem"><a class="el" href="namespacetvm_1_1script_1_1ir__builder.html">ir_builder</a></li><li class="navelem"><a class="el" href="namespacetvm_1_1script_1_1ir__builder_1_1tir.html">tir</a></li><li class="navelem"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrame.html">LaunchThreadFrame</a></ [...]
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">tvm::script::ir_builder::tir::LaunchThreadFrame Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrame.html">tvm::script::ir_builder::tir::LaunchThreadFrame</a>, including all inherited members.</p>
+<table class="directory">
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a3e9b0901b6e01257b060a45e159cc37e">_type_is_nullable</a></td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a2d76fa1fb628ff276a284e61123589c5">as</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#aa5c355fbb7d2f7402ee360dba8a52cdd">ContainerType</a> typedef</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#ac261cdb80487fb29ac42b28678f8cbef">data_</a></td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a17d8d5ad92691f9e18e3e0ae8ef69e4f">defined</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#acd04bb22a6861e9952c344ee8547411f">DowncastNoCheck</a>(ObjectRef ref)</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html#a06a9c6f3c686c68da8ca2c707b13a751">EnterWithScope</a>()</td><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html">tvm::script::ir_builder::IRBuilderFrame</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html#a8ca5afe93534c3bf7e521609d5654ac3">ExitWithScope</a>()</td><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html">tvm::script::ir_builder::IRBuilderFrame</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a22e5bb9d64dbc773bb9263b70882239e">FFIClearAfterMove</a>(ObjectRef *ref)</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#aadbc0886ffa80162ff31eefd0431ba09">get</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#ae423057ecf93c18714d17f53cd1d318f">get_mutable</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#aed593996e4076632450de8fde776707c">GetDataPtr</a>(const ObjectRef &amp;ref)</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html#a4ab7fb335968d6947f88b7b934c56354">IRBuilderFrame</a>()=default</td><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html">tvm::script::ir_builder::IRBuilderFrame</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#aa07c1f6d66a438ea950637d13ed09471">ObjectRef</a>()=default</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a6a7dd7404edf1c26f8dbd9bd92d03a02">ObjectRef</a>(ObjectPtr&lt; Object &gt; data)</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#aa1bd13a7185cb4b2b6bdde49416e8aa4">operator!=</a>(const ObjectRef &amp;other) const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a3deeeac5827a88f375b8c6ae1039c219">operator-&gt;</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a4744bf4a1b48f202d41b51dc5e08e6ee">operator&lt;</a>(const ObjectRef &amp;other) const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#affdf1b8cdb36e140de7b3ad7064e4617">operator==</a>(const ObjectRef &amp;other) const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#ae31a5b9f40781d60a2901994ead700e8">same_as</a>(const ObjectRef &amp;other) const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame.html#a70e34dbed98c143d552dff607368d8a6">TIRFrame</a>()=default</td><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame.html">tvm::script::ir_builder::tir::TIRFrame</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrame.html#a5b01c1a06b5b80935219f1782617916d">TVM_DEFINE_MUTABLE_NOTNULLABLE_OBJECT_REF_METHODS</a>(LaunchThreadFrame, TIRFrame, LaunchThreadFrameNode)</td><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrame.html">tvm::script::ir_builder::tir::LaunchThreadFrame</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame.html#a981032a8339da455ed51f1f1dc6cfebc">tvm::script::ir_builder::tir::TIRFrame::TVM_DEFINE_MUTABLE_NOTNULLABLE_OBJECT_REF_METHODS</a>(TIRFrame, IRBuilderFrame, TIRFrameNode)</td><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame.html">tvm::script::ir_builder::tir::TIRFrame</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html#ad4a36a9c72d592d40b02548864e149a8">tvm::script::ir_builder::IRBuilderFrame::TVM_DEFINE_MUTABLE_NOTNULLABLE_OBJECT_REF_METHODS</a>(IRBuilderFrame, ObjectRef, IRBuilderFrameNode)</td><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html">tvm::script::ir_builder::IRBuilderFrame</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a4e7cdb1574b93a59e784d70aa47b8da7">unique</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a0ae0da21d247cd87ea94fe3777c4405e">use_count</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html#ae9333580d4c7e8211eae6e27080ba0bb">~IRBuilderFrame</a>()=default</td><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html">tvm::script::ir_builder::IRBuilderFrame</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.13
+</small></address>
+</body>
+</html>
diff --git a/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame.html b/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrame.html
similarity index 85%
copy from docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame.html
copy to docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrame.html
index 6becacade..1a0cea836 100644
--- a/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame.html
+++ b/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrame.html
@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.13"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>tvm: tvm::script::ir_builder::tir::TIRFrame Class Reference</title>
+<title>tvm: tvm::script::ir_builder::tir::LaunchThreadFrame Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -58,40 +58,42 @@ $(function() {
 
 <div id="nav-path" class="navpath">
   <ul>
-<li class="navelem"><a class="el" href="namespacetvm.html">tvm</a></li><li class="navelem"><a class="el" href="namespacetvm_1_1script.html">script</a></li><li class="navelem"><a class="el" href="namespacetvm_1_1script_1_1ir__builder.html">ir_builder</a></li><li class="navelem"><a class="el" href="namespacetvm_1_1script_1_1ir__builder_1_1tir.html">tir</a></li><li class="navelem"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame.html">TIRFrame</a></li>  </ul>
+<li class="navelem"><a class="el" href="namespacetvm.html">tvm</a></li><li class="navelem"><a class="el" href="namespacetvm_1_1script.html">script</a></li><li class="navelem"><a class="el" href="namespacetvm_1_1script_1_1ir__builder.html">ir_builder</a></li><li class="navelem"><a class="el" href="namespacetvm_1_1script_1_1ir__builder_1_1tir.html">tir</a></li><li class="navelem"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrame.html">LaunchThreadFrame</a></ [...]
 </div>
 </div><!-- top -->
 <div class="header">
   <div class="summary">
 <a href="#pub-methods">Public Member Functions</a> &#124;
-<a href="#pro-methods">Protected Member Functions</a> &#124;
-<a href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame-members.html">List of all members</a>  </div>
+<a href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrame-members.html">List of all members</a>  </div>
   <div class="headertitle">
-<div class="title">tvm::script::ir_builder::tir::TIRFrame Class Reference</div>  </div>
+<div class="title">tvm::script::ir_builder::tir::LaunchThreadFrame Class Reference</div>  </div>
 </div><!--header-->
 <div class="contents">
 
-<p>Managed reference to <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrameNode.html" title="A base frame that represents the TIR fame with body of statements. ">TIRFrameNode</a>.  
- <a href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame.html#details">More...</a></p>
+<p>Managed reference to <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrameNode.html" title="The LaunchThreadFrameNode. ">LaunchThreadFrameNode</a>.  
+ <a href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrame.html#details">More...</a></p>
 
 <p><code>#include &lt;<a class="el" href="ir__builder_2tir_2frame_8h_source.html">frame.h</a>&gt;</code></p>
 <div class="dynheader">
-Inheritance diagram for tvm::script::ir_builder::tir::TIRFrame:</div>
+Inheritance diagram for tvm::script::ir_builder::tir::LaunchThreadFrame:</div>
 <div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame__inherit__graph.svg" width="830" height="904"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
+<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrame__inherit__graph.svg" width="198" height="904"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
 </div>
 </div>
 <div class="dynheader">
-Collaboration diagram for tvm::script::ir_builder::tir::TIRFrame:</div>
+Collaboration diagram for tvm::script::ir_builder::tir::LaunchThreadFrame:</div>
 <div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame__coll__graph.svg" width="198" height="1024"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
+<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrame__coll__graph.svg" width="198" height="1195"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
 </div>
 </div>
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
 Public Member Functions</h2></td></tr>
-<tr class="memitem:a981032a8339da455ed51f1f1dc6cfebc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame.html#a981032a8339da455ed51f1f1dc6cfebc">TVM_DEFINE_MUTABLE_NOTNULLABLE_OBJECT_REF_METHODS</a> (<a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame.html">TIRFrame</a>, <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.ht [...]
-<tr class="separator:a981032a8339da455ed51f1f1dc6cfebc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a5b01c1a06b5b80935219f1782617916d"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrame.html#a5b01c1a06b5b80935219f1782617916d">TVM_DEFINE_MUTABLE_NOTNULLABLE_OBJECT_REF_METHODS</a> (<a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrame.html">LaunchThreadFrame</a>, <a class="el" href="classtvm_1_1script_1_1ir__b [...]
+<tr class="separator:a5b01c1a06b5b80935219f1782617916d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame.html">tvm::script::ir_builder::tir::TIRFrame</a></td></tr>
+<tr class="memitem:a981032a8339da455ed51f1f1dc6cfebc inherit pub_methods_classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame.html#a981032a8339da455ed51f1f1dc6cfebc">TVM_DEFINE_MUTABLE_NOTNULLABLE_OBJECT_REF_METHODS</a> (<a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame.html">TIRFrame</a>, < [...]
+<tr class="separator:a981032a8339da455ed51f1f1dc6cfebc inherit pub_methods_classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="inherit_header pub_methods_classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html">tvm::script::ir_builder::IRBuilderFrame</a></td></tr>
 <tr class="memitem:ae9333580d4c7e8211eae6e27080ba0bb inherit pub_methods_classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html#ae9333580d4c7e8211eae6e27080ba0bb">~IRBuilderFrame</a> ()=default</td></tr>
 <tr class="memdesc:ae9333580d4c7e8211eae6e27080ba0bb inherit pub_methods_classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default destructor.  <a href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html#ae9333580d4c7e8211eae6e27080ba0bb">More...</a><br /></td></tr>
@@ -138,18 +140,6 @@ Public Member Functions</h2></td></tr>
 <tr class="memdesc:a2d76fa1fb628ff276a284e61123589c5 inherit pub_methods_classtvm_1_1runtime_1_1ObjectRef"><td class="mdescLeft">&#160;</td><td class="mdescRight">Try to downcast the internal <a class="el" href="classtvm_1_1runtime_1_1Object.html" title="base class of all object containers. ">Object</a> to a raw pointer of a corresponding type.  <a href="classtvm_1_1runtime_1_1ObjectRef.html#a2d76fa1fb628ff276a284e61123589c5">More...</a><br /></td></tr>
 <tr class="separator:a2d76fa1fb628ff276a284e61123589c5 inherit pub_methods_classtvm_1_1runtime_1_1ObjectRef"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
-Protected Member Functions</h2></td></tr>
-<tr class="memitem:a70e34dbed98c143d552dff607368d8a6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame.html#a70e34dbed98c143d552dff607368d8a6">TIRFrame</a> ()=default</td></tr>
-<tr class="separator:a70e34dbed98c143d552dff607368d8a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="inherit_header pro_methods_classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html">tvm::script::ir_builder::IRBuilderFrame</a></td></tr>
-<tr class="memitem:a4ab7fb335968d6947f88b7b934c56354 inherit pro_methods_classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html#a4ab7fb335968d6947f88b7b934c56354">IRBuilderFrame</a> ()=default</td></tr>
-<tr class="memdesc:a4ab7fb335968d6947f88b7b934c56354 inherit pro_methods_classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disallow direct construction of this object.  <a href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html#a4ab7fb335968d6947f88b7b934c56354">More...</a><br /></td></tr>
-<tr class="separator:a4ab7fb335968d6947f88b7b934c56354 inherit pro_methods_classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="inherit_header pro_methods_classtvm_1_1runtime_1_1ObjectRef"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classtvm_1_1runtime_1_1ObjectRef')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td></tr>
-<tr class="memitem:ae423057ecf93c18714d17f53cd1d318f inherit pro_methods_classtvm_1_1runtime_1_1ObjectRef"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classtvm_1_1runtime_1_1Object.html">Object</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#ae423057ecf93c18714d17f53cd1d318f">get_mutable</a> () const</td></tr>
-<tr class="separator:ae423057ecf93c18714d17f53cd1d318f inherit pro_methods_classtvm_1_1runtime_1_1ObjectRef"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
 Additional Inherited Members</h2></td></tr>
 <tr class="inherit_header pub_types_classtvm_1_1runtime_1_1ObjectRef"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classtvm_1_1runtime_1_1ObjectRef')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td></tr>
@@ -159,6 +149,16 @@ Additional Inherited Members</h2></td></tr>
 <tr class="inherit_header pub_static_attribs_classtvm_1_1runtime_1_1ObjectRef"><td colspan="2" onclick="javascript:toggleInherit('pub_static_attribs_classtvm_1_1runtime_1_1ObjectRef')"><img src="closed.png" alt="-"/>&#160;Static Public Attributes inherited from <a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td></tr>
 <tr class="memitem:a3e9b0901b6e01257b060a45e159cc37e inherit pub_static_attribs_classtvm_1_1runtime_1_1ObjectRef"><td class="memItemLeft" align="right" valign="top">static constexpr bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a3e9b0901b6e01257b060a45e159cc37e">_type_is_nullable</a> = true</td></tr>
 <tr class="separator:a3e9b0901b6e01257b060a45e159cc37e inherit pub_static_attribs_classtvm_1_1runtime_1_1ObjectRef"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame.html">tvm::script::ir_builder::tir::TIRFrame</a></td></tr>
+<tr class="memitem:a70e34dbed98c143d552dff607368d8a6 inherit pro_methods_classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame.html#a70e34dbed98c143d552dff607368d8a6">TIRFrame</a> ()=default</td></tr>
+<tr class="separator:a70e34dbed98c143d552dff607368d8a6 inherit pro_methods_classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html">tvm::script::ir_builder::IRBuilderFrame</a></td></tr>
+<tr class="memitem:a4ab7fb335968d6947f88b7b934c56354 inherit pro_methods_classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html#a4ab7fb335968d6947f88b7b934c56354">IRBuilderFrame</a> ()=default</td></tr>
+<tr class="memdesc:a4ab7fb335968d6947f88b7b934c56354 inherit pro_methods_classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disallow direct construction of this object.  <a href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html#a4ab7fb335968d6947f88b7b934c56354">More...</a><br /></td></tr>
+<tr class="separator:a4ab7fb335968d6947f88b7b934c56354 inherit pro_methods_classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classtvm_1_1runtime_1_1ObjectRef"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classtvm_1_1runtime_1_1ObjectRef')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td></tr>
+<tr class="memitem:ae423057ecf93c18714d17f53cd1d318f inherit pro_methods_classtvm_1_1runtime_1_1ObjectRef"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classtvm_1_1runtime_1_1Object.html">Object</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#ae423057ecf93c18714d17f53cd1d318f">get_mutable</a> () const</td></tr>
+<tr class="separator:ae423057ecf93c18714d17f53cd1d318f inherit pro_methods_classtvm_1_1runtime_1_1ObjectRef"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="inherit_header pro_static_methods_classtvm_1_1runtime_1_1ObjectRef"><td colspan="2" onclick="javascript:toggleInherit('pro_static_methods_classtvm_1_1runtime_1_1ObjectRef')"><img src="closed.png" alt="-"/>&#160;Static Protected Member Functions inherited from <a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td></tr>
 <tr class="memitem:acd04bb22a6861e9952c344ee8547411f inherit pro_static_methods_classtvm_1_1runtime_1_1ObjectRef"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
 <tr class="memitem:acd04bb22a6861e9952c344ee8547411f inherit pro_static_methods_classtvm_1_1runtime_1_1ObjectRef"><td class="memTemplItemLeft" align="right" valign="top">static T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#acd04bb22a6861e9952c344ee8547411f">DowncastNoCheck</a> (<a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">ObjectRef</a> ref)</td></tr>
@@ -177,57 +177,31 @@ Additional Inherited Members</h2></td></tr>
 <tr class="separator:ac261cdb80487fb29ac42b28678f8cbef inherit pro_attribs_classtvm_1_1runtime_1_1ObjectRef"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>Managed reference to <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrameNode.html" title="A base frame that represents the TIR fame with body of statements. ">TIRFrameNode</a>. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrameNode.html" title="A base frame that represents the TIR fame with body of statements. ">TIRFrameNode</a> </dd></dl>
-</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
-<a id="a70e34dbed98c143d552dff607368d8a6"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a70e34dbed98c143d552dff607368d8a6">&#9670;&nbsp;</a></span>TIRFrame()</h2>
-
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
-  <tr>
-  <td class="mlabels-left">
-      <table class="memname">
-        <tr>
-          <td class="memname">tvm::script::ir_builder::tir::TIRFrame::TIRFrame </td>
-          <td>(</td>
-          <td class="paramname"></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-  </td>
-  <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">default</span></span>  </td>
-  </tr>
-</table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<h2 class="groupheader">Member Function Documentation</h2>
-<a id="a981032a8339da455ed51f1f1dc6cfebc"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a981032a8339da455ed51f1f1dc6cfebc">&#9670;&nbsp;</a></span>TVM_DEFINE_MUTABLE_NOTNULLABLE_OBJECT_REF_METHODS()</h2>
+<div class="textblock"><p>Managed reference to <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrameNode.html" title="The LaunchThreadFrameNode. ">LaunchThreadFrameNode</a>. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrameNode.html" title="The LaunchThreadFrameNode. ">LaunchThreadFrameNode</a> </dd></dl>
+</div><h2 class="groupheader">Member Function Documentation</h2>
+<a id="a5b01c1a06b5b80935219f1782617916d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a5b01c1a06b5b80935219f1782617916d">&#9670;&nbsp;</a></span>TVM_DEFINE_MUTABLE_NOTNULLABLE_OBJECT_REF_METHODS()</h2>
 
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">tvm::script::ir_builder::tir::TIRFrame::TVM_DEFINE_MUTABLE_NOTNULLABLE_OBJECT_REF_METHODS </td>
+          <td class="memname">tvm::script::ir_builder::tir::LaunchThreadFrame::TVM_DEFINE_MUTABLE_NOTNULLABLE_OBJECT_REF_METHODS </td>
           <td>(</td>
-          <td class="paramtype"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame.html">TIRFrame</a>&#160;</td>
+          <td class="paramtype"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrame.html">LaunchThreadFrame</a>&#160;</td>
           <td class="paramname">, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html">IRBuilderFrame</a>&#160;</td>
+          <td class="paramtype"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame.html">TIRFrame</a>&#160;</td>
           <td class="paramname">, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrameNode.html">TIRFrameNode</a>&#160;</td>
+          <td class="paramtype"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrameNode.html">LaunchThreadFrameNode</a>&#160;</td>
           <td class="paramname">&#160;</td>
         </tr>
         <tr>
diff --git a/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrameNode-members.html b/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrameNode-members.html
new file mode 100644
index 000000000..2a62a89ca
--- /dev/null
+++ b/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrameNode-members.html
@@ -0,0 +1,124 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>tvm: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">tvm
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespacetvm.html">tvm</a></li><li class="navelem"><a class="el" href="namespacetvm_1_1script.html">script</a></li><li class="navelem"><a class="el" href="namespacetvm_1_1script_1_1ir__builder.html">ir_builder</a></li><li class="navelem"><a class="el" href="namespacetvm_1_1script_1_1ir__builder_1_1tir.html">tir</a></li><li class="navelem"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrameNode.html">LaunchThreadFrameNo [...]
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">tvm::script::ir_builder::tir::LaunchThreadFrameNode Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrameNode.html">tvm::script::ir_builder::tir::LaunchThreadFrameNode</a>, including all inherited members.</p>
+<table class="directory">
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#a5fbebc47be111ecc1d5869bcc0476e21">_GetOrAllocRuntimeTypeIndex</a>()</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#a14b234a745215da158b2386bbb34bd70">_type_child_slots</a></td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#a05ece7bcb6bf73e88765c1f193a489ce">_type_child_slots_can_overflow</a></td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#a55cb618bd4bbcd49317b35ea8e2996be">_type_final</a></td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#a92fe62494027b70af1f7696d611c21b6">_type_has_method_sequal_reduce</a></td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#ac97054694d03dc5eac58315fb569ef88">_type_has_method_shash_reduce</a></td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#a74e9f076b50b8b335b4a321e9b0bf03c">_type_has_method_visit_attrs</a></td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#af6aed95d70af7e44ce376a8d7be6c5f1">_type_index</a></td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrameNode.html#ad718b05fe088744ff16bc0ef3985962e">_type_key</a></td><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrameNode.html">tvm::script::ir_builder::tir::LaunchThreadFrameNode</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrameNode.html#a08e6e65098b35e2908e774de3ab970f3">AddCallback</a>(runtime::TypedPackedFunc&lt; void()&gt; callback)</td><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrameNode.html">tvm::script::ir_builder::IRBuilderFrameNode</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrameNode.html#af38ccc4c1f57838f02111756cfc3f69d">attr_key</a></td><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrameNode.html">tvm::script::ir_builder::tir::LaunchThreadFrameNode</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrameNode.html#aa21f554fdcf6ab78c55cb54cdc69c0c2">callbacks</a></td><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrameNode.html">tvm::script::ir_builder::IRBuilderFrameNode</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#a70fb5361147634605d6595bb89381f03">DecRef</a>()</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#af4407d2b59132e803ff791482dbe0145">deleter_</a></td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrameNode.html#ab3aaced994da313ebabad6b955332f14">EnterWithScope</a>()</td><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrameNode.html">tvm::script::ir_builder::IRBuilderFrameNode</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrameNode.html#a84e172554aead3e2c50e28a20d2a14ce">ExitWithScope</a>() final</td><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrameNode.html">tvm::script::ir_builder::tir::LaunchThreadFrameNode</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrameNode.html#afacff22429bac19053107c1024c3b91c">extent</a></td><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrameNode.html">tvm::script::ir_builder::tir::LaunchThreadFrameNode</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#a9e84841ca982bff376a978ade0132631">FDeleter</a> typedef</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#a726972ff315c446192df94027ddea032">GetOrAllocRuntimeTypeIndex</a>(const std::string &amp;key, uint32_t static_tindex, uint32_t parent_tindex, uint32_t type_child_slots, bool type_child_slots_can_overflow)</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span [...]
+  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#a4d951e51832081b85875669eac90e940">GetTypeKey</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#a5693cbadcc1168b96db7b1cc5c200b86">GetTypeKeyHash</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#ac9e5eed7719e322117bde996a171e33a">IncRef</a>()</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#a90e90b3f4ba8a590baff78c75807bbc7">IsInstance</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrameNode.html#a84f72325f3fe12915183c5581d125d3f">iter_var</a></td><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrameNode.html">tvm::script::ir_builder::tir::LaunchThreadFrameNode</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#a133436a9ec5c4a768b94102bf95a660b">Object</a>()</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#ab7968feb6ad38ecaffc320e13819d826">Object</a>(const Object &amp;other)</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#aa1612f69ea5b4225d4cda759cd517323">Object</a>(Object &amp;&amp;other)</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#a69c32fbd96181f5c21d2c878ab285e4f">operator=</a>(const Object &amp;other)</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#ae341e561272ff43cdcbc927bc29ac50d">operator=</a>(Object &amp;&amp;other)</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#a0d492efee331e2239a093f4b2017c10f">ref_counter_</a></td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#a55549a6c23987890246248682560a03d">RefCounterType</a> typedef</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#ad94d79729ac85aa7c976e23d39066383">RuntimeTypeIndex</a>()</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrameNode.html#a13776bb5c2e5403138fbee06d4fdad40">stmts</a></td><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrameNode.html">tvm::script::ir_builder::tir::TIRFrameNode</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrameNode.html#a4caa65dc8a549ed58fcb1d47964734d8">TVM_DECLARE_BASE_OBJECT_INFO</a>(TIRFrameNode, IRBuilderFrameNode)</td><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrameNode.html">tvm::script::ir_builder::tir::TIRFrameNode</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrameNode.html#a290e180b9b57d3e133874fc0343a0453">tvm::script::ir_builder::IRBuilderFrameNode::TVM_DECLARE_BASE_OBJECT_INFO</a>(IRBuilderFrameNode, runtime::Object)</td><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrameNode.html">tvm::script::ir_builder::IRBuilderFrameNode</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrameNode.html#ab5d42ea024ccdecbe8d3f48c465597fa">TVM_DECLARE_FINAL_OBJECT_INFO</a>(LaunchThreadFrameNode, TIRFrameNode)</td><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrameNode.html">tvm::script::ir_builder::tir::LaunchThreadFrameNode</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#a481f01923b14e1851ebd38506e9c66ea">type_index</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#a4bfc2586cb55f2af47728187b3256255">type_index_</a></td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#a817ba6c23b7ee1821c48a75edf255a30">TypeIndex2Key</a>(uint32_t tindex)</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#a6ee32a02dd44257da105fbbe5d9c8622">TypeIndex2KeyHash</a>(uint32_t tindex)</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#a6841f97e06e6614dd7e82c6dd41b818a">TypeKey2Index</a>(const std::string &amp;key)</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#afd548730a6139d19fe24473ad66026d7">unique</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrameNode.html#a0ffcce48abdef993fb15efca1558a212">VisitAttrs</a>(tvm::AttrVisitor *v)</td><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrameNode.html">tvm::script::ir_builder::tir::LaunchThreadFrameNode</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrameNode.html#a8e61799eac4e806aef5a87d07943883d">~IRBuilderFrameNode</a>()=default</td><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrameNode.html">tvm::script::ir_builder::IRBuilderFrameNode</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.13
+</small></address>
+</body>
+</html>
diff --git a/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1AssertFrameNode.html b/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrameNode.html
similarity index 85%
copy from docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1AssertFrameNode.html
copy to docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrameNode.html
index 12091b654..e70523cf7 100644
--- a/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1AssertFrameNode.html
+++ b/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrameNode.html
@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.13"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>tvm: tvm::script::ir_builder::tir::AssertFrameNode Class Reference</title>
+<title>tvm: tvm::script::ir_builder::tir::LaunchThreadFrameNode Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -58,7 +58,7 @@ $(function() {
 
 <div id="nav-path" class="navpath">
   <ul>
-<li class="navelem"><a class="el" href="namespacetvm.html">tvm</a></li><li class="navelem"><a class="el" href="namespacetvm_1_1script.html">script</a></li><li class="navelem"><a class="el" href="namespacetvm_1_1script_1_1ir__builder.html">ir_builder</a></li><li class="navelem"><a class="el" href="namespacetvm_1_1script_1_1ir__builder_1_1tir.html">tir</a></li><li class="navelem"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1AssertFrameNode.html">AssertFrameNode</a></li>  </ul>
+<li class="navelem"><a class="el" href="namespacetvm.html">tvm</a></li><li class="navelem"><a class="el" href="namespacetvm_1_1script.html">script</a></li><li class="navelem"><a class="el" href="namespacetvm_1_1script_1_1ir__builder.html">ir_builder</a></li><li class="navelem"><a class="el" href="namespacetvm_1_1script_1_1ir__builder_1_1tir.html">tir</a></li><li class="navelem"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrameNode.html">LaunchThreadFrameNo [...]
 </div>
 </div><!-- top -->
 <div class="header">
@@ -66,38 +66,38 @@ $(function() {
 <a href="#pub-methods">Public Member Functions</a> &#124;
 <a href="#pub-attribs">Public Attributes</a> &#124;
 <a href="#pub-static-attribs">Static Public Attributes</a> &#124;
-<a href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1AssertFrameNode-members.html">List of all members</a>  </div>
+<a href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrameNode-members.html">List of all members</a>  </div>
   <div class="headertitle">
-<div class="title">tvm::script::ir_builder::tir::AssertFrameNode Class Reference</div>  </div>
+<div class="title">tvm::script::ir_builder::tir::LaunchThreadFrameNode Class Reference</div>  </div>
 </div><!--header-->
 <div class="contents">
 
-<p>A frame that represents the assert statement. Proceeds if the condition is true, otherwise aborts with the message.  
- <a href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1AssertFrameNode.html#details">More...</a></p>
+<p>The <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrameNode.html" title="The LaunchThreadFrameNode. ">LaunchThreadFrameNode</a>.  
+ <a href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrameNode.html#details">More...</a></p>
 
 <p><code>#include &lt;<a class="el" href="ir__builder_2tir_2frame_8h_source.html">frame.h</a>&gt;</code></p>
 <div class="dynheader">
-Inheritance diagram for tvm::script::ir_builder::tir::AssertFrameNode:</div>
+Inheritance diagram for tvm::script::ir_builder::tir::LaunchThreadFrameNode:</div>
 <div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1script_1_1ir__builder_1_1tir_1_1AssertFrameNode__inherit__graph.svg" width="290" height="1139"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
+<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrameNode__inherit__graph.svg" width="290" height="1154"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
 </div>
 </div>
 <div class="dynheader">
-Collaboration diagram for tvm::script::ir_builder::tir::AssertFrameNode:</div>
+Collaboration diagram for tvm::script::ir_builder::tir::LaunchThreadFrameNode:</div>
 <div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1script_1_1ir__builder_1_1tir_1_1AssertFrameNode__coll__graph.svg" width="692" height="1515"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
+<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrameNode__coll__graph.svg" width="867" height="1739"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
 </div>
 </div>
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
 Public Member Functions</h2></td></tr>
-<tr class="memitem:a4a64aa6a7b28fe39ad7aa93e7710fd73"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1AssertFrameNode.html#a4a64aa6a7b28fe39ad7aa93e7710fd73">VisitAttrs</a> (<a class="el" href="classtvm_1_1AttrVisitor.html">tvm::AttrVisitor</a> *v)</td></tr>
-<tr class="separator:a4a64aa6a7b28fe39ad7aa93e7710fd73"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a504727ca3244bf3d89abfc07e0d48e13"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1AssertFrameNode.html#a504727ca3244bf3d89abfc07e0d48e13">TVM_DECLARE_FINAL_OBJECT_INFO</a> (<a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1AssertFrameNode.html">AssertFrameNode</a>, <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrameN [...]
-<tr class="separator:a504727ca3244bf3d89abfc07e0d48e13"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ad934bf1ff350bb1d57daafbe6588f53e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1AssertFrameNode.html#ad934bf1ff350bb1d57daafbe6588f53e">ExitWithScope</a> () final</td></tr>
-<tr class="memdesc:ad934bf1ff350bb1d57daafbe6588f53e"><td class="mdescLeft">&#160;</td><td class="mdescRight">The method called when exiting RAII scope.  <a href="#ad934bf1ff350bb1d57daafbe6588f53e">More...</a><br /></td></tr>
-<tr class="separator:ad934bf1ff350bb1d57daafbe6588f53e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0ffcce48abdef993fb15efca1558a212"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrameNode.html#a0ffcce48abdef993fb15efca1558a212">VisitAttrs</a> (<a class="el" href="classtvm_1_1AttrVisitor.html">tvm::AttrVisitor</a> *v)</td></tr>
+<tr class="separator:a0ffcce48abdef993fb15efca1558a212"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab5d42ea024ccdecbe8d3f48c465597fa"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrameNode.html#ab5d42ea024ccdecbe8d3f48c465597fa">TVM_DECLARE_FINAL_OBJECT_INFO</a> (<a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrameNode.html">LaunchThreadFrameNode</a>, <a class="el" href="classtvm_1_1script_1_1ir__builder_1 [...]
+<tr class="separator:ab5d42ea024ccdecbe8d3f48c465597fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a84e172554aead3e2c50e28a20d2a14ce"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrameNode.html#a84e172554aead3e2c50e28a20d2a14ce">ExitWithScope</a> () final</td></tr>
+<tr class="memdesc:a84e172554aead3e2c50e28a20d2a14ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">The method called when exiting RAII scope.  <a href="#a84e172554aead3e2c50e28a20d2a14ce">More...</a><br /></td></tr>
+<tr class="separator:a84e172554aead3e2c50e28a20d2a14ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="inherit_header pub_methods_classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrameNode"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrameNode')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrameNode.html">tvm::script::ir_builder::tir::TIRFrameNode</a></td></tr>
 <tr class="memitem:a66267c80c4042b46ea86449d27dba61a inherit pub_methods_classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrameNode"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrameNode.html#a66267c80c4042b46ea86449d27dba61a">VisitAttrs</a> (<a class="el" href="classtvm_1_1AttrVisitor.html">tvm::AttrVisitor</a> *v)</td></tr>
 <tr class="separator:a66267c80c4042b46ea86449d27dba61a inherit pub_methods_classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrameNode"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -142,12 +142,15 @@ Public Member Functions</h2></td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
 Public Attributes</h2></td></tr>
-<tr class="memitem:ac12d20c9bd45d6f617e61d1f852325ff"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classtvm_1_1PrimExpr.html">PrimExpr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1AssertFrameNode.html#ac12d20c9bd45d6f617e61d1f852325ff">condition</a></td></tr>
-<tr class="memdesc:ac12d20c9bd45d6f617e61d1f852325ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">The <a class="el" href="classtvm_1_1PrimExpr.html" title="Reference to PrimExprNode. ">PrimExpr</a> to test.  <a href="#ac12d20c9bd45d6f617e61d1f852325ff">More...</a><br /></td></tr>
-<tr class="separator:ac12d20c9bd45d6f617e61d1f852325ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ac09145556c669b415d7ccfa3c67aa6da"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classtvm_1_1PrimExpr.html">PrimExpr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1AssertFrameNode.html#ac09145556c669b415d7ccfa3c67aa6da">message</a></td></tr>
-<tr class="memdesc:ac09145556c669b415d7ccfa3c67aa6da"><td class="mdescLeft">&#160;</td><td class="mdescRight">The output error message when the assertion failed.  <a href="#ac09145556c669b415d7ccfa3c67aa6da">More...</a><br /></td></tr>
-<tr class="separator:ac09145556c669b415d7ccfa3c67aa6da"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afacff22429bac19053107c1024c3b91c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classtvm_1_1PrimExpr.html">PrimExpr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrameNode.html#afacff22429bac19053107c1024c3b91c">extent</a></td></tr>
+<tr class="memdesc:afacff22429bac19053107c1024c3b91c"><td class="mdescLeft">&#160;</td><td class="mdescRight">The extent of environment thread.  <a href="#afacff22429bac19053107c1024c3b91c">More...</a><br /></td></tr>
+<tr class="separator:afacff22429bac19053107c1024c3b91c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af38ccc4c1f57838f02111756cfc3f69d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classtvm_1_1runtime_1_1String.html">String</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrameNode.html#af38ccc4c1f57838f02111756cfc3f69d">attr_key</a></td></tr>
+<tr class="memdesc:af38ccc4c1f57838f02111756cfc3f69d"><td class="mdescLeft">&#160;</td><td class="mdescRight">The attribute key, could be either virtual_thread or thread_extent.  <a href="#af38ccc4c1f57838f02111756cfc3f69d">More...</a><br /></td></tr>
+<tr class="separator:af38ccc4c1f57838f02111756cfc3f69d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a84f72325f3fe12915183c5581d125d3f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classtvm_1_1tir_1_1IterVar.html">tvm::tir::IterVar</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrameNode.html#a84f72325f3fe12915183c5581d125d3f">iter_var</a></td></tr>
+<tr class="memdesc:a84f72325f3fe12915183c5581d125d3f"><td class="mdescLeft">&#160;</td><td class="mdescRight">The iteration variable.  <a href="#a84f72325f3fe12915183c5581d125d3f">More...</a><br /></td></tr>
+<tr class="separator:a84f72325f3fe12915183c5581d125d3f"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="inherit_header pub_attribs_classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrameNode"><td colspan="2" onclick="javascript:toggleInherit('pub_attribs_classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrameNode')"><img src="closed.png" alt="-"/>&#160;Public Attributes inherited from <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrameNode.html">tvm::script::ir_builder::tir::TIRFrameNode</a></td></tr>
 <tr class="memitem:a13776bb5c2e5403138fbee06d4fdad40 inherit pub_attribs_classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrameNode"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classtvm_1_1runtime_1_1Array.html">Array</a>&lt; <a class="el" href="classtvm_1_1tir_1_1Stmt.html">tvm::tir::Stmt</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrameNode.html#a13776bb5c2e5403138fbee06d4fdad40" [...]
 <tr class="memdesc:a13776bb5c2e5403138fbee06d4fdad40 inherit pub_attribs_classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrameNode"><td class="mdescLeft">&#160;</td><td class="mdescRight">The Stmt within in this frame.  <a href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrameNode.html#a13776bb5c2e5403138fbee06d4fdad40">More...</a><br /></td></tr>
@@ -159,8 +162,8 @@ Public Attributes</h2></td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-attribs"></a>
 Static Public Attributes</h2></td></tr>
-<tr class="memitem:aed11d15aed07834b8783aca42dbcb4bd"><td class="memItemLeft" align="right" valign="top">static constexpr const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1AssertFrameNode.html#aed11d15aed07834b8783aca42dbcb4bd">_type_key</a> = &quot;script.ir_builder.tir.AssertFrame&quot;</td></tr>
-<tr class="separator:aed11d15aed07834b8783aca42dbcb4bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad718b05fe088744ff16bc0ef3985962e"><td class="memItemLeft" align="right" valign="top">static constexpr const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrameNode.html#ad718b05fe088744ff16bc0ef3985962e">_type_key</a> = &quot;script.ir_builder.tir.LaunchThreadFrame&quot;</td></tr>
+<tr class="separator:ad718b05fe088744ff16bc0ef3985962e"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="inherit_header pub_static_attribs_classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrameNode"><td colspan="2" onclick="javascript:toggleInherit('pub_static_attribs_classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrameNode')"><img src="closed.png" alt="-"/>&#160;Static Public Attributes inherited from <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrameNode.html">tvm::script::ir_builder::tir::TIRFrameNode</a></td></tr>
 <tr class="memitem:adbdac768a6410779001c35b40141ab51 inherit pub_static_attribs_classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrameNode"><td class="memItemLeft" align="right" valign="top">static constexpr const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrameNode.html#adbdac768a6410779001c35b40141ab51">_type_key</a> = &quot;script.ir_builder.tir.TIRFrame&quot;</td></tr>
 <tr class="separator:adbdac768a6410779001c35b40141ab51 inherit pub_static_attribs_classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrameNode"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -230,11 +233,11 @@ Additional Inherited Members</h2></td></tr>
 <tr class="separator:af4407d2b59132e803ff791482dbe0145 inherit pro_attribs_classtvm_1_1runtime_1_1Object"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>A frame that represents the assert statement. Proceeds if the condition is true, otherwise aborts with the message. </p>
-<dl class="section see"><dt>See also</dt><dd>AssertFrame </dd></dl>
+<div class="textblock"><p>The <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrameNode.html" title="The LaunchThreadFrameNode. ">LaunchThreadFrameNode</a>. </p>
+<dl class="section note"><dt>Note</dt><dd>It is used only inside a PrimFunc. </dd></dl>
 </div><h2 class="groupheader">Member Function Documentation</h2>
-<a id="ad934bf1ff350bb1d57daafbe6588f53e"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ad934bf1ff350bb1d57daafbe6588f53e">&#9670;&nbsp;</a></span>ExitWithScope()</h2>
+<a id="a84e172554aead3e2c50e28a20d2a14ce"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a84e172554aead3e2c50e28a20d2a14ce">&#9670;&nbsp;</a></span>ExitWithScope()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -243,7 +246,7 @@ Additional Inherited Members</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname">void tvm::script::ir_builder::tir::AssertFrameNode::ExitWithScope </td>
+          <td class="memname">void tvm::script::ir_builder::tir::LaunchThreadFrameNode::ExitWithScope </td>
           <td>(</td>
           <td class="paramname"></td><td>)</td>
           <td></td>
@@ -263,16 +266,16 @@ Additional Inherited Members</h2></td></tr>
 
 </div>
 </div>
-<a id="a504727ca3244bf3d89abfc07e0d48e13"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a504727ca3244bf3d89abfc07e0d48e13">&#9670;&nbsp;</a></span>TVM_DECLARE_FINAL_OBJECT_INFO()</h2>
+<a id="ab5d42ea024ccdecbe8d3f48c465597fa"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab5d42ea024ccdecbe8d3f48c465597fa">&#9670;&nbsp;</a></span>TVM_DECLARE_FINAL_OBJECT_INFO()</h2>
 
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">tvm::script::ir_builder::tir::AssertFrameNode::TVM_DECLARE_FINAL_OBJECT_INFO </td>
+          <td class="memname">tvm::script::ir_builder::tir::LaunchThreadFrameNode::TVM_DECLARE_FINAL_OBJECT_INFO </td>
           <td>(</td>
-          <td class="paramtype"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1AssertFrameNode.html">AssertFrameNode</a>&#160;</td>
+          <td class="paramtype"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrameNode.html">LaunchThreadFrameNode</a>&#160;</td>
           <td class="paramname">, </td>
         </tr>
         <tr>
@@ -291,8 +294,8 @@ Additional Inherited Members</h2></td></tr>
 
 </div>
 </div>
-<a id="a4a64aa6a7b28fe39ad7aa93e7710fd73"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a4a64aa6a7b28fe39ad7aa93e7710fd73">&#9670;&nbsp;</a></span>VisitAttrs()</h2>
+<a id="a0ffcce48abdef993fb15efca1558a212"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0ffcce48abdef993fb15efca1558a212">&#9670;&nbsp;</a></span>VisitAttrs()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -301,7 +304,7 @@ Additional Inherited Members</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname">void tvm::script::ir_builder::tir::AssertFrameNode::VisitAttrs </td>
+          <td class="memname">void tvm::script::ir_builder::tir::LaunchThreadFrameNode::VisitAttrs </td>
           <td>(</td>
           <td class="paramtype"><a class="el" href="classtvm_1_1AttrVisitor.html">tvm::AttrVisitor</a> *&#160;</td>
           <td class="paramname"><em>v</em></td><td>)</td>
@@ -318,8 +321,8 @@ Additional Inherited Members</h2></td></tr>
 </div>
 </div>
 <h2 class="groupheader">Member Data Documentation</h2>
-<a id="aed11d15aed07834b8783aca42dbcb4bd"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#aed11d15aed07834b8783aca42dbcb4bd">&#9670;&nbsp;</a></span>_type_key</h2>
+<a id="ad718b05fe088744ff16bc0ef3985962e"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad718b05fe088744ff16bc0ef3985962e">&#9670;&nbsp;</a></span>_type_key</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -328,7 +331,7 @@ Additional Inherited Members</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname">constexpr const char* tvm::script::ir_builder::tir::AssertFrameNode::_type_key = &quot;script.ir_builder.tir.AssertFrame&quot;</td>
+          <td class="memname">constexpr const char* tvm::script::ir_builder::tir::LaunchThreadFrameNode::_type_key = &quot;script.ir_builder.tir.LaunchThreadFrame&quot;</td>
         </tr>
       </table>
   </td>
@@ -340,35 +343,51 @@ Additional Inherited Members</h2></td></tr>
 
 </div>
 </div>
-<a id="ac12d20c9bd45d6f617e61d1f852325ff"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ac12d20c9bd45d6f617e61d1f852325ff">&#9670;&nbsp;</a></span>condition</h2>
+<a id="af38ccc4c1f57838f02111756cfc3f69d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af38ccc4c1f57838f02111756cfc3f69d">&#9670;&nbsp;</a></span>attr_key</h2>
 
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="classtvm_1_1PrimExpr.html">PrimExpr</a> tvm::script::ir_builder::tir::AssertFrameNode::condition</td>
+          <td class="memname"><a class="el" href="classtvm_1_1runtime_1_1String.html">String</a> tvm::script::ir_builder::tir::LaunchThreadFrameNode::attr_key</td>
         </tr>
       </table>
 </div><div class="memdoc">
 
-<p>The <a class="el" href="classtvm_1_1PrimExpr.html" title="Reference to PrimExprNode. ">PrimExpr</a> to test. </p>
+<p>The attribute key, could be either virtual_thread or thread_extent. </p>
 
 </div>
 </div>
-<a id="ac09145556c669b415d7ccfa3c67aa6da"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ac09145556c669b415d7ccfa3c67aa6da">&#9670;&nbsp;</a></span>message</h2>
+<a id="afacff22429bac19053107c1024c3b91c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#afacff22429bac19053107c1024c3b91c">&#9670;&nbsp;</a></span>extent</h2>
 
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="classtvm_1_1PrimExpr.html">PrimExpr</a> tvm::script::ir_builder::tir::AssertFrameNode::message</td>
+          <td class="memname"><a class="el" href="classtvm_1_1PrimExpr.html">PrimExpr</a> tvm::script::ir_builder::tir::LaunchThreadFrameNode::extent</td>
         </tr>
       </table>
 </div><div class="memdoc">
 
-<p>The output error message when the assertion failed. </p>
+<p>The extent of environment thread. </p>
+
+</div>
+</div>
+<a id="a84f72325f3fe12915183c5581d125d3f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a84f72325f3fe12915183c5581d125d3f">&#9670;&nbsp;</a></span>iter_var</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname"><a class="el" href="classtvm_1_1tir_1_1IterVar.html">tvm::tir::IterVar</a> tvm::script::ir_builder::tir::LaunchThreadFrameNode::iter_var</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
+<p>The iteration variable. </p>
 
 </div>
 </div>
diff --git a/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrameNode__coll__graph.svg b/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrameNode__coll__graph.svg
new file mode 100644
index 000000000..0dc10fbfd
--- /dev/null
+++ b/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrameNode__coll__graph.svg
@@ -0,0 +1,344 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.40.1 (20161225.0304)
+ -->
+<!-- Title: tvm::script::ir_builder::tir::LaunchThreadFrameNode Pages: 1 -->
+<svg width="650pt" height="1304pt"
+ viewBox="0.00 0.00 649.50 1304.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1300)">
+<title>tvm::script::ir_builder::tir::LaunchThreadFrameNode</title>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-1300 645.5,-1300 645.5,4 -4,4"/>
+<!-- Node4 -->
+<g id="node1" class="node">
+<title>Node4</title>
+<polygon fill="#bfbfbf" stroke="#000000" points="267,-.5 267,-90.5 476,-90.5 476,-.5 267,-.5"/>
+<text text-anchor="start" x="275" y="-78.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::ir_builder</text>
+<text text-anchor="middle" x="371.5" y="-67.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::tir::LaunchThreadFrameNode</text>
+<polyline fill="none" stroke="#000000" points="267,-60.5 476,-60.5 "/>
+<text text-anchor="start" x="275" y="-48.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_key</text>
+<polyline fill="none" stroke="#000000" points="267,-41.5 476,-41.5 "/>
+<text text-anchor="start" x="275" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ VisitAttrs()</text>
+<text text-anchor="start" x="275" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DECLARE_FINAL_OBJECT_INFO()</text>
+<text text-anchor="start" x="275" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ExitWithScope()</text>
+</g>
+<!-- Node5 -->
+<g id="node2" class="node">
+<title>Node5</title>
+<g id="a_node2"><a xlink:href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrameNode.html" target="_top" xlink:title="A base frame that represents the TIR fame with body of statements. ">
+<polygon fill="#ffffff" stroke="#000000" points="84,-149.5 84,-228.5 291,-228.5 291,-149.5 84,-149.5"/>
+<text text-anchor="start" x="92" y="-216.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::ir_builder</text>
+<text text-anchor="middle" x="187.5" y="-205.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::tir::TIRFrameNode</text>
+<polyline fill="none" stroke="#000000" points="84,-198.5 291,-198.5 "/>
+<text text-anchor="start" x="92" y="-186.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_key</text>
+<polyline fill="none" stroke="#000000" points="84,-179.5 291,-179.5 "/>
+<text text-anchor="start" x="92" y="-167.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ VisitAttrs()</text>
+<text text-anchor="start" x="92" y="-156.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DECLARE_BASE_OBJECT_INFO()</text>
+</a>
+</g>
+</g>
+<!-- Node5&#45;&gt;Node4 -->
+<g id="edge1" class="edge">
+<title>Node5&#45;&gt;Node4</title>
+<path fill="none" stroke="#191970" d="M246.3798,-143.0801C267.9394,-126.266 292.2995,-107.2678 313.7585,-90.5321"/>
+<polygon fill="none" stroke="#191970" points="243.9989,-140.4984 238.2659,-149.4081 248.3038,-146.0182 243.9989,-140.4984"/>
+</g>
+<!-- Node6 -->
+<g id="node3" class="node">
+<title>Node6</title>
+<g id="a_node3"><a xlink:href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrameNode.html" target="_top" xlink:title="{tvm::script::ir_builder\l::IRBuilderFrameNode\n|+ callbacks\l+ _type_key\l|+ VisitAttrs()\l+ TVM_DECLARE_BASE_OBJECT_INFO()\l+ ~IRBuilderFrameNode()\l+ EnterWithScope()\l+ ExitWithScope()\l+ AddCallback()\l}">
+<polygon fill="#ffffff" stroke="#000000" points="0,-488.5 0,-622.5 207,-622.5 207,-488.5 0,-488.5"/>
+<text text-anchor="start" x="8" y="-610.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::ir_builder</text>
+<text text-anchor="middle" x="103.5" y="-599.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::IRBuilderFrameNode</text>
+<polyline fill="none" stroke="#000000" points="0,-592.5 207,-592.5 "/>
+<text text-anchor="start" x="8" y="-580.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ callbacks</text>
+<text text-anchor="start" x="8" y="-569.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_key</text>
+<polyline fill="none" stroke="#000000" points="0,-562.5 207,-562.5 "/>
+<text text-anchor="start" x="8" y="-550.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ VisitAttrs()</text>
+<text text-anchor="start" x="8" y="-539.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DECLARE_BASE_OBJECT_INFO()</text>
+<text text-anchor="start" x="8" y="-528.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ~IRBuilderFrameNode()</text>
+<text text-anchor="start" x="8" y="-517.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ EnterWithScope()</text>
+<text text-anchor="start" x="8" y="-506.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ExitWithScope()</text>
+<text text-anchor="start" x="8" y="-495.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ AddCallback()</text>
+</a>
+</g>
+</g>
+<!-- Node6&#45;&gt;Node5 -->
+<g id="edge2" class="edge">
+<title>Node6&#45;&gt;Node5</title>
+<path fill="none" stroke="#191970" d="M121.2093,-478.2327C138.7015,-401.9123 164.7594,-288.2196 178.4107,-228.6574"/>
+<polygon fill="none" stroke="#191970" points="117.7295,-477.7491 118.9069,-488.2783 124.5525,-479.3129 117.7295,-477.7491"/>
+</g>
+<!-- Node7 -->
+<g id="node4" class="node">
+<title>Node7</title>
+<g id="a_node4"><a xlink:href="classtvm_1_1runtime_1_1Object.html" target="_top" xlink:title="base class of all object containers. ">
+<polygon fill="#ffffff" stroke="#000000" points="12,-682.5 12,-1069.5 195,-1069.5 195,-682.5 12,-682.5"/>
+<text text-anchor="middle" x="103.5" y="-1057.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Object</text>
+<polyline fill="none" stroke="#000000" points="12,-1050.5 195,-1050.5 "/>
+<text text-anchor="start" x="20" y="-1038.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_key</text>
+<text text-anchor="start" x="20" y="-1027.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_final</text>
+<text text-anchor="start" x="20" y="-1016.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_child_slots</text>
+<text text-anchor="start" x="20" y="-1005.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_child_slots_can</text>
+<text text-anchor="start" x="20" y="-994.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_overflow</text>
+<text text-anchor="start" x="20" y="-983.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_has_method_visit</text>
+<text text-anchor="start" x="20" y="-972.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_attrs</text>
+<text text-anchor="start" x="20" y="-961.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_has_method_sequal</text>
+<text text-anchor="start" x="20" y="-950.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_reduce</text>
+<text text-anchor="start" x="20" y="-939.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_has_method_shash</text>
+<text text-anchor="start" x="20" y="-928.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_reduce</text>
+<text text-anchor="start" x="20" y="-917.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_index</text>
+<text text-anchor="start" x="20" y="-906.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># type_index_</text>
+<text text-anchor="start" x="20" y="-895.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># ref_counter_</text>
+<polyline fill="none" stroke="#000000" points="12,-888.5 195,-888.5 "/>
+<text text-anchor="start" x="20" y="-876.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ type_index()</text>
+<text text-anchor="start" x="20" y="-865.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ GetTypeKey()</text>
+<text text-anchor="start" x="20" y="-854.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ GetTypeKeyHash()</text>
+<text text-anchor="start" x="20" y="-843.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ IsInstance()</text>
+<text text-anchor="start" x="20" y="-832.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ unique()</text>
+<text text-anchor="start" x="20" y="-821.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Object()</text>
+<text text-anchor="start" x="20" y="-810.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Object()</text>
+<text text-anchor="start" x="20" y="-799.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Object()</text>
+<text text-anchor="start" x="20" y="-788.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
+<text text-anchor="start" x="20" y="-777.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
+<text text-anchor="start" x="20" y="-766.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TypeIndex2Key()</text>
+<text text-anchor="start" x="20" y="-755.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TypeIndex2KeyHash()</text>
+<text text-anchor="start" x="20" y="-744.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TypeKey2Index()</text>
+<text text-anchor="start" x="20" y="-733.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _GetOrAllocRuntimeTypeIndex()</text>
+<text text-anchor="start" x="20" y="-722.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ RuntimeTypeIndex()</text>
+<text text-anchor="start" x="20" y="-711.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># IncRef()</text>
+<text text-anchor="start" x="20" y="-700.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># DecRef()</text>
+<text text-anchor="start" x="20" y="-689.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># GetOrAllocRuntimeTypeIndex()</text>
+</a>
+</g>
+</g>
+<!-- Node7&#45;&gt;Node6 -->
+<g id="edge3" class="edge">
+<title>Node7&#45;&gt;Node6</title>
+<path fill="none" stroke="#191970" d="M103.5,-671.7972C103.5,-654.3163 103.5,-637.5917 103.5,-622.547"/>
+<polygon fill="none" stroke="#191970" points="100.0001,-672.1701 103.5,-682.1701 107.0001,-672.1701 100.0001,-672.1701"/>
+</g>
+<!-- Node7&#45;&gt;Node7 -->
+<g id="edge4" class="edge">
+<title>Node7&#45;&gt;Node7</title>
+<path fill="none" stroke="#404040" d="M195.3625,-909.9248C206.0482,-903.6637 213,-892.3555 213,-876 213,-865.0112 209.8618,-856.3007 204.5615,-849.8687"/>
+<polygon fill="none" stroke="#404040" points="204.5184,-849.8322 197.3548,-849.0056 195.3625,-842.0752 202.5261,-842.9017 204.5184,-849.8322"/>
+<text text-anchor="middle" x="239" y="-873.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> #deleter_</text>
+</g>
+<!-- Node8 -->
+<g id="node5" class="node">
+<title>Node8</title>
+<g id="a_node5"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title="{tvm::runtime::Array\l\&lt; tvm::tir::Stmt \&gt;\n||+ Array()\l+ Array()\l+ Array()\l+ Array()\l+ Array()\l+ Array()\l+ Array()\l+ Array()\l+ operator=()\l+ operator=()\land 24 more...\l}">
+<polygon fill="#ffffff" stroke="#000000" points="225,-466.5 225,-644.5 338,-644.5 338,-466.5 225,-466.5"/>
+<text text-anchor="start" x="233" y="-632.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="middle" x="281.5" y="-621.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::tir::Stmt &gt;</text>
+<polyline fill="none" stroke="#000000" points="225,-614.5 338,-614.5 "/>
+<text text-anchor="middle" x="281.5" y="-602.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="225,-595.5 338,-595.5 "/>
+<text text-anchor="start" x="233" y="-583.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
+<text text-anchor="start" x="233" y="-572.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
+<text text-anchor="start" x="233" y="-561.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
+<text text-anchor="start" x="233" y="-550.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
+<text text-anchor="start" x="233" y="-539.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
+<text text-anchor="start" x="233" y="-528.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
+<text text-anchor="start" x="233" y="-517.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
+<text text-anchor="start" x="233" y="-506.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
+<text text-anchor="start" x="233" y="-495.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
+<text text-anchor="start" x="233" y="-484.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
+<text text-anchor="start" x="233" y="-473.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 24 more...</text>
+</a>
+</g>
+</g>
+<!-- Node8&#45;&gt;Node5 -->
+<g id="edge5" class="edge">
+<title>Node8&#45;&gt;Node5</title>
+<path fill="none" stroke="#404040" d="M228.4919,-466.3145C225.8831,-460.2235 223.5158,-454.0869 221.5,-448 198.5335,-378.6498 191.0078,-294.0258 188.5844,-240.8088"/>
+<polygon fill="none" stroke="#404040" points="188.5773,-240.6297 184.3392,-234.7954 188.0946,-228.6394 192.3327,-234.4736 188.5773,-240.6297"/>
+<text text-anchor="middle" x="241.5" y="-350.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +stmts</text>
+</g>
+<!-- Node9 -->
+<g id="node6" class="node">
+<title>Node9</title>
+<g id="a_node6"><a xlink:href="classtvm_1_1runtime_1_1ObjectRef.html" target="_top" xlink:title="Base class of all object reference. ">
+<polygon fill="#ffffff" stroke="#000000" points="332.5,-765 332.5,-987 466.5,-987 466.5,-765 332.5,-765"/>
+<text text-anchor="middle" x="399.5" y="-975" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectRef</text>
+<polyline fill="none" stroke="#000000" points="332.5,-968 466.5,-968 "/>
+<text text-anchor="start" x="340.5" y="-956" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
+<polyline fill="none" stroke="#000000" points="332.5,-949 466.5,-949 "/>
+<text text-anchor="start" x="340.5" y="-937" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
+<text text-anchor="start" x="340.5" y="-926" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
+<text text-anchor="start" x="340.5" y="-915" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ same_as()</text>
+<text text-anchor="start" x="340.5" y="-904" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator==()</text>
+<text text-anchor="start" x="340.5" y="-893" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator!=()</text>
+<text text-anchor="start" x="340.5" y="-882" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&lt;()</text>
+<text text-anchor="start" x="340.5" y="-871" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ defined()</text>
+<text text-anchor="start" x="340.5" y="-860" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
+<text text-anchor="start" x="340.5" y="-849" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&#45;&gt;()</text>
+<text text-anchor="start" x="340.5" y="-838" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ unique()</text>
+<text text-anchor="start" x="340.5" y="-827" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ use_count()</text>
+<text text-anchor="start" x="340.5" y="-816" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ as()</text>
+<text text-anchor="start" x="340.5" y="-805" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># get_mutable()</text>
+<text text-anchor="start" x="340.5" y="-794" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># DowncastNoCheck()</text>
+<text text-anchor="start" x="340.5" y="-783" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># FFIClearAfterMove()</text>
+<text text-anchor="start" x="340.5" y="-772" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># GetDataPtr()</text>
+</a>
+</g>
+</g>
+<!-- Node9&#45;&gt;Node8 -->
+<g id="edge6" class="edge">
+<title>Node9&#45;&gt;Node8</title>
+<path fill="none" stroke="#191970" d="M354.9674,-755.0448C341.4599,-718.3571 326.8742,-678.7409 314.2866,-644.5518"/>
+<polygon fill="none" stroke="#191970" points="351.8209,-756.6292 358.5605,-764.8041 358.3899,-754.2107 351.8209,-756.6292"/>
+</g>
+<!-- Node11 -->
+<g id="node8" class="node">
+<title>Node11</title>
+<g id="a_node8"><a xlink:href="classtvm_1_1tir_1_1IterVar.html" target="_top" xlink:title="Iteration Variable, represents an iteration over an integer interval. ">
+<polygon fill="#ffffff" stroke="#000000" points="270.5,-297 270.5,-409 424.5,-409 424.5,-297 270.5,-297"/>
+<text text-anchor="middle" x="347.5" y="-397" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::IterVar</text>
+<polyline fill="none" stroke="#000000" points="270.5,-390 424.5,-390 "/>
+<text text-anchor="middle" x="347.5" y="-378" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="270.5,-371 424.5,-371 "/>
+<text text-anchor="start" x="278.5" y="-359" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ IterVar()</text>
+<text text-anchor="start" x="278.5" y="-348" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator PrimExpr()</text>
+<text text-anchor="start" x="278.5" y="-337" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="278.5" y="-326" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
+<text text-anchor="start" x="278.5" y="-315" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="278.5" y="-304" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_COW_METHOD()</text>
+</a>
+</g>
+</g>
+<!-- Node9&#45;&gt;Node11 -->
+<g id="edge9" class="edge">
+<title>Node9&#45;&gt;Node11</title>
+<path fill="none" stroke="#191970" d="M387.4418,-754.7223C376.6338,-646.0191 361.2619,-491.4126 353.0986,-409.3094"/>
+<polygon fill="none" stroke="#191970" points="383.968,-755.1605 388.4403,-764.7652 390.9337,-754.4679 383.968,-755.1605"/>
+</g>
+<!-- Node13 -->
+<g id="node10" class="node">
+<title>Node13</title>
+<g id="a_node10"><a xlink:href="classtvm_1_1BaseExpr.html" target="_top" xlink:title="Managed reference to BaseExprNode. ">
+<polygon fill="#ffffff" stroke="#000000" points="394.5,-521.5 394.5,-589.5 548.5,-589.5 548.5,-521.5 394.5,-521.5"/>
+<text text-anchor="middle" x="471.5" y="-577.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::BaseExpr</text>
+<polyline fill="none" stroke="#000000" points="394.5,-570.5 548.5,-570.5 "/>
+<text text-anchor="middle" x="471.5" y="-558.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="394.5,-551.5 548.5,-551.5 "/>
+<text text-anchor="start" x="402.5" y="-539.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="402.5" y="-528.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
+</a>
+</g>
+</g>
+<!-- Node9&#45;&gt;Node13 -->
+<g id="edge12" class="edge">
+<title>Node9&#45;&gt;Node13</title>
+<path fill="none" stroke="#191970" d="M426.6833,-754.9964C439.9793,-695.811 454.985,-629.0148 463.8214,-589.6805"/>
+<polygon fill="none" stroke="#191970" points="423.2571,-754.2801 424.48,-764.8041 430.0869,-755.8145 423.2571,-754.2801"/>
+</g>
+<!-- Node14 -->
+<g id="node11" class="node">
+<title>Node14</title>
+<g id="a_node11"><a xlink:href="classtvm_1_1runtime_1_1String.html" target="_top" xlink:title="Reference to string objects. ">
+<polygon fill="#ffffff" stroke="#000000" points="524.5,-258.5 524.5,-447.5 640.5,-447.5 640.5,-258.5 524.5,-258.5"/>
+<text text-anchor="middle" x="582.5" y="-435.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::String</text>
+<polyline fill="none" stroke="#000000" points="524.5,-428.5 640.5,-428.5 "/>
+<text text-anchor="middle" x="582.5" y="-416.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="524.5,-409.5 640.5,-409.5 "/>
+<text text-anchor="start" x="532.5" y="-397.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ String()</text>
+<text text-anchor="start" x="532.5" y="-386.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ String()</text>
+<text text-anchor="start" x="532.5" y="-375.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ String()</text>
+<text text-anchor="start" x="532.5" y="-364.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ String()</text>
+<text text-anchor="start" x="532.5" y="-353.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
+<text text-anchor="start" x="532.5" y="-342.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
+<text text-anchor="start" x="532.5" y="-331.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ compare()</text>
+<text text-anchor="start" x="532.5" y="-320.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ compare()</text>
+<text text-anchor="start" x="532.5" y="-309.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ compare()</text>
+<text text-anchor="start" x="532.5" y="-298.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ c_str()</text>
+<text text-anchor="start" x="532.5" y="-287.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 6 more...</text>
+<text text-anchor="start" x="532.5" y="-276.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ CanConvertFrom()</text>
+<text text-anchor="start" x="532.5" y="-265.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ HashBytes()</text>
+</a>
+</g>
+</g>
+<!-- Node9&#45;&gt;Node14 -->
+<g id="edge14" class="edge">
+<title>Node9&#45;&gt;Node14</title>
+<path fill="none" stroke="#191970" d="M472.9587,-791.4484C504.614,-750.0822 538.6372,-697.8781 557.5,-645 580.0653,-581.7428 586.0069,-506.0858 586.4685,-447.6344"/>
+<polygon fill="none" stroke="#191970" points="470.0213,-789.5251 466.6644,-799.5741 475.5552,-793.8118 470.0213,-789.5251"/>
+</g>
+<!-- Node10 -->
+<g id="node7" class="node">
+<title>Node10</title>
+<g id="a_node7"><a xlink:href="classtvm_1_1runtime_1_1ObjectPtr.html" target="_top" xlink:title="{tvm::runtime::ObjectPtr\l\&lt; tvm::runtime::Object \&gt;\n||+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ~ObjectPtr()\l+ swap()\l+ get()\l+ operator&#45;\&gt;()\land 11 more...\l}">
+<polygon fill="#ffffff" stroke="#000000" points="329.5,-1117.5 329.5,-1295.5 469.5,-1295.5 469.5,-1117.5 329.5,-1117.5"/>
+<text text-anchor="start" x="337.5" y="-1283.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectPtr</text>
+<text text-anchor="middle" x="399.5" y="-1272.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::runtime::Object &gt;</text>
+<polyline fill="none" stroke="#000000" points="329.5,-1265.5 469.5,-1265.5 "/>
+<text text-anchor="middle" x="399.5" y="-1253.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="329.5,-1246.5 469.5,-1246.5 "/>
+<text text-anchor="start" x="337.5" y="-1234.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
+<text text-anchor="start" x="337.5" y="-1223.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
+<text text-anchor="start" x="337.5" y="-1212.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
+<text text-anchor="start" x="337.5" y="-1201.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
+<text text-anchor="start" x="337.5" y="-1190.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
+<text text-anchor="start" x="337.5" y="-1179.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
+<text text-anchor="start" x="337.5" y="-1168.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ~ObjectPtr()</text>
+<text text-anchor="start" x="337.5" y="-1157.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ swap()</text>
+<text text-anchor="start" x="337.5" y="-1146.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
+<text text-anchor="start" x="337.5" y="-1135.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&#45;&gt;()</text>
+<text text-anchor="start" x="337.5" y="-1124.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 11 more...</text>
+</a>
+</g>
+</g>
+<!-- Node10&#45;&gt;Node9 -->
+<g id="edge7" class="edge">
+<title>Node10&#45;&gt;Node9</title>
+<path fill="none" stroke="#404040" d="M399.5,-1117.4973C399.5,-1081.1115 399.5,-1038.409 399.5,-999.1129"/>
+<polygon fill="none" stroke="#404040" points="399.5001,-999.0376 395.5,-993.0377 399.5,-987.0376 403.5,-993.0376 399.5001,-999.0376"/>
+<text text-anchor="middle" x="419" y="-1091" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> #data_</text>
+</g>
+<!-- Node11&#45;&gt;Node4 -->
+<g id="edge8" class="edge">
+<title>Node11&#45;&gt;Node4</title>
+<path fill="none" stroke="#404040" d="M337.591,-296.8575C331.5753,-253.2053 326.7516,-191.3101 336.5,-138 338.6774,-126.0925 342.31,-113.7282 346.4311,-102.0618"/>
+<polygon fill="none" stroke="#404040" points="346.486,-101.9144 344.8347,-94.8948 350.6792,-90.6708 352.3304,-97.6903 346.486,-101.9144"/>
+<text text-anchor="middle" x="361" y="-186.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +iter_var</text>
+</g>
+<!-- Node12 -->
+<g id="node9" class="node">
+<title>Node12</title>
+<g id="a_node9"><a xlink:href="classtvm_1_1PrimExpr.html" target="_top" xlink:title="Reference to PrimExprNode. ">
+<polygon fill="#ffffff" stroke="#000000" points="394.5,-138.5 394.5,-239.5 548.5,-239.5 548.5,-138.5 394.5,-138.5"/>
+<text text-anchor="middle" x="471.5" y="-227.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::PrimExpr</text>
+<polyline fill="none" stroke="#000000" points="394.5,-220.5 548.5,-220.5 "/>
+<text text-anchor="middle" x="471.5" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="394.5,-201.5 548.5,-201.5 "/>
+<text text-anchor="start" x="402.5" y="-189.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PrimExpr()</text>
+<text text-anchor="start" x="402.5" y="-178.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PrimExpr()</text>
+<text text-anchor="start" x="402.5" y="-167.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ dtype()</text>
+<text text-anchor="start" x="402.5" y="-156.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="402.5" y="-145.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
+</a>
+</g>
+</g>
+<!-- Node12&#45;&gt;Node4 -->
+<g id="edge10" class="edge">
+<title>Node12&#45;&gt;Node4</title>
+<path fill="none" stroke="#404040" d="M436.2437,-138.4073C427.809,-126.3034 418.7595,-113.3174 410.1794,-101.0049"/>
+<polygon fill="none" stroke="#404040" points="409.9672,-100.7003 403.255,-98.0646 403.1063,-90.855 409.8185,-93.4907 409.9672,-100.7003"/>
+<text text-anchor="middle" x="443" y="-112" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +extent</text>
+</g>
+<!-- Node13&#45;&gt;Node12 -->
+<g id="edge11" class="edge">
+<title>Node13&#45;&gt;Node12</title>
+<path fill="none" stroke="#191970" d="M471.5,-511.3328C471.5,-442.9639 471.5,-311.8835 471.5,-239.729"/>
+<polygon fill="none" stroke="#191970" points="468.0001,-511.3496 471.5,-521.3497 475.0001,-511.3497 468.0001,-511.3496"/>
+</g>
+<!-- Node14&#45;&gt;Node4 -->
+<g id="edge13" class="edge">
+<title>Node14&#45;&gt;Node4</title>
+<path fill="none" stroke="#404040" d="M590.6448,-258.4051C589.5423,-218.0954 581.7516,-172.5125 557.5,-138 540.1872,-113.3622 514.3814,-94.9559 487.4645,-81.3373"/>
+<polygon fill="none" stroke="#404040" points="487.1136,-81.1689 479.9736,-82.1793 476.2948,-75.9771 483.4348,-74.9668 487.1136,-81.1689"/>
+<text text-anchor="middle" x="615.5" y="-186.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +attr_key</text>
+</g>
+</g>
+</svg>
diff --git a/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrameNode__inherit__graph.svg b/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrameNode__inherit__graph.svg
new file mode 100644
index 000000000..7f96b0a64
--- /dev/null
+++ b/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrameNode__inherit__graph.svg
@@ -0,0 +1,127 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.40.1 (20161225.0304)
+ -->
+<!-- Title: tvm::script::ir_builder::tir::LaunchThreadFrameNode Pages: 1 -->
+<svg width="217pt" height="865pt"
+ viewBox="0.00 0.00 217.00 865.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 861)">
+<title>tvm::script::ir_builder::tir::LaunchThreadFrameNode</title>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-861 213,-861 213,4 -4,4"/>
+<!-- Node0 -->
+<g id="node1" class="node">
+<title>Node0</title>
+<polygon fill="#bfbfbf" stroke="#000000" points="0,-.5 0,-123.5 209,-123.5 209,-.5 0,-.5"/>
+<text text-anchor="start" x="8" y="-111.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::ir_builder</text>
+<text text-anchor="middle" x="104.5" y="-100.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::tir::LaunchThreadFrameNode</text>
+<polyline fill="none" stroke="#000000" points="0,-93.5 209,-93.5 "/>
+<text text-anchor="start" x="8" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ extent</text>
+<text text-anchor="start" x="8" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ attr_key</text>
+<text text-anchor="start" x="8" y="-59.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ iter_var</text>
+<text text-anchor="start" x="8" y="-48.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_key</text>
+<polyline fill="none" stroke="#000000" points="0,-41.5 209,-41.5 "/>
+<text text-anchor="start" x="8" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ VisitAttrs()</text>
+<text text-anchor="start" x="8" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DECLARE_FINAL_OBJECT_INFO()</text>
+<text text-anchor="start" x="8" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ExitWithScope()</text>
+</g>
+<!-- Node1 -->
+<g id="node2" class="node">
+<title>Node1</title>
+<g id="a_node2"><a xlink:href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrameNode.html" target="_top" xlink:title="A base frame that represents the TIR fame with body of statements. ">
+<polygon fill="#ffffff" stroke="#000000" points="1,-160.5 1,-250.5 208,-250.5 208,-160.5 1,-160.5"/>
+<text text-anchor="start" x="9" y="-238.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::ir_builder</text>
+<text text-anchor="middle" x="104.5" y="-227.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::tir::TIRFrameNode</text>
+<polyline fill="none" stroke="#000000" points="1,-220.5 208,-220.5 "/>
+<text text-anchor="start" x="9" y="-208.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ stmts</text>
+<text text-anchor="start" x="9" y="-197.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_key</text>
+<polyline fill="none" stroke="#000000" points="1,-190.5 208,-190.5 "/>
+<text text-anchor="start" x="9" y="-178.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ VisitAttrs()</text>
+<text text-anchor="start" x="9" y="-167.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DECLARE_BASE_OBJECT_INFO()</text>
+</a>
+</g>
+</g>
+<!-- Node1&#45;&gt;Node0 -->
+<g id="edge1" class="edge">
+<title>Node1&#45;&gt;Node0</title>
+<path fill="none" stroke="#191970" d="M104.5,-150.4136C104.5,-141.665 104.5,-132.5665 104.5,-123.6783"/>
+<polygon fill="none" stroke="#191970" points="101.0001,-150.4894 104.5,-160.4894 108.0001,-150.4895 101.0001,-150.4894"/>
+</g>
+<!-- Node2 -->
+<g id="node3" class="node">
+<title>Node2</title>
+<g id="a_node3"><a xlink:href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrameNode.html" target="_top" xlink:title="{tvm::script::ir_builder\l::IRBuilderFrameNode\n|+ callbacks\l+ _type_key\l|+ VisitAttrs()\l+ TVM_DECLARE_BASE_OBJECT_INFO()\l+ ~IRBuilderFrameNode()\l+ EnterWithScope()\l+ ExitWithScope()\l+ AddCallback()\l}">
+<polygon fill="#ffffff" stroke="#000000" points="1,-287.5 1,-421.5 208,-421.5 208,-287.5 1,-287.5"/>
+<text text-anchor="start" x="9" y="-409.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::ir_builder</text>
+<text text-anchor="middle" x="104.5" y="-398.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::IRBuilderFrameNode</text>
+<polyline fill="none" stroke="#000000" points="1,-391.5 208,-391.5 "/>
+<text text-anchor="start" x="9" y="-379.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ callbacks</text>
+<text text-anchor="start" x="9" y="-368.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_key</text>
+<polyline fill="none" stroke="#000000" points="1,-361.5 208,-361.5 "/>
+<text text-anchor="start" x="9" y="-349.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ VisitAttrs()</text>
+<text text-anchor="start" x="9" y="-338.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DECLARE_BASE_OBJECT_INFO()</text>
+<text text-anchor="start" x="9" y="-327.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ~IRBuilderFrameNode()</text>
+<text text-anchor="start" x="9" y="-316.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ EnterWithScope()</text>
+<text text-anchor="start" x="9" y="-305.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ExitWithScope()</text>
+<text text-anchor="start" x="9" y="-294.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ AddCallback()</text>
+</a>
+</g>
+</g>
+<!-- Node2&#45;&gt;Node1 -->
+<g id="edge2" class="edge">
+<title>Node2&#45;&gt;Node1</title>
+<path fill="none" stroke="#191970" d="M104.5,-277.2384C104.5,-268.2246 104.5,-259.2648 104.5,-250.8878"/>
+<polygon fill="none" stroke="#191970" points="101.0001,-277.41 104.5,-287.41 108.0001,-277.41 101.0001,-277.41"/>
+</g>
+<!-- Node3 -->
+<g id="node4" class="node">
+<title>Node3</title>
+<g id="a_node4"><a xlink:href="classtvm_1_1runtime_1_1Object.html" target="_top" xlink:title="base class of all object containers. ">
+<polygon fill="#ffffff" stroke="#000000" points="13,-458.5 13,-856.5 196,-856.5 196,-458.5 13,-458.5"/>
+<text text-anchor="middle" x="104.5" y="-844.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Object</text>
+<polyline fill="none" stroke="#000000" points="13,-837.5 196,-837.5 "/>
+<text text-anchor="start" x="21" y="-825.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_key</text>
+<text text-anchor="start" x="21" y="-814.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_final</text>
+<text text-anchor="start" x="21" y="-803.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_child_slots</text>
+<text text-anchor="start" x="21" y="-792.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_child_slots_can</text>
+<text text-anchor="start" x="21" y="-781.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_overflow</text>
+<text text-anchor="start" x="21" y="-770.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_has_method_visit</text>
+<text text-anchor="start" x="21" y="-759.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_attrs</text>
+<text text-anchor="start" x="21" y="-748.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_has_method_sequal</text>
+<text text-anchor="start" x="21" y="-737.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_reduce</text>
+<text text-anchor="start" x="21" y="-726.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_has_method_shash</text>
+<text text-anchor="start" x="21" y="-715.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_reduce</text>
+<text text-anchor="start" x="21" y="-704.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_index</text>
+<text text-anchor="start" x="21" y="-693.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># type_index_</text>
+<text text-anchor="start" x="21" y="-682.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># ref_counter_</text>
+<text text-anchor="start" x="21" y="-671.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># deleter_</text>
+<polyline fill="none" stroke="#000000" points="13,-664.5 196,-664.5 "/>
+<text text-anchor="start" x="21" y="-652.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ type_index()</text>
+<text text-anchor="start" x="21" y="-641.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ GetTypeKey()</text>
+<text text-anchor="start" x="21" y="-630.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ GetTypeKeyHash()</text>
+<text text-anchor="start" x="21" y="-619.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ IsInstance()</text>
+<text text-anchor="start" x="21" y="-608.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ unique()</text>
+<text text-anchor="start" x="21" y="-597.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Object()</text>
+<text text-anchor="start" x="21" y="-586.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Object()</text>
+<text text-anchor="start" x="21" y="-575.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Object()</text>
+<text text-anchor="start" x="21" y="-564.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
+<text text-anchor="start" x="21" y="-553.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
+<text text-anchor="start" x="21" y="-542.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TypeIndex2Key()</text>
+<text text-anchor="start" x="21" y="-531.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TypeIndex2KeyHash()</text>
+<text text-anchor="start" x="21" y="-520.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TypeKey2Index()</text>
+<text text-anchor="start" x="21" y="-509.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _GetOrAllocRuntimeTypeIndex()</text>
+<text text-anchor="start" x="21" y="-498.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ RuntimeTypeIndex()</text>
+<text text-anchor="start" x="21" y="-487.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># IncRef()</text>
+<text text-anchor="start" x="21" y="-476.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># DecRef()</text>
+<text text-anchor="start" x="21" y="-465.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># GetOrAllocRuntimeTypeIndex()</text>
+</a>
+</g>
+</g>
+<!-- Node3&#45;&gt;Node2 -->
+<g id="edge3" class="edge">
+<title>Node3&#45;&gt;Node2</title>
+<path fill="none" stroke="#191970" d="M104.5,-448.1914C104.5,-438.9431 104.5,-430.0329 104.5,-421.631"/>
+<polygon fill="none" stroke="#191970" points="101.0001,-448.3515 104.5,-458.3515 108.0001,-448.3515 101.0001,-448.3515"/>
+</g>
+</g>
+</svg>
diff --git a/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrame__coll__graph.svg b/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrame__coll__graph.svg
new file mode 100644
index 000000000..28c4e7c50
--- /dev/null
+++ b/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrame__coll__graph.svg
@@ -0,0 +1,140 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.40.1 (20161225.0304)
+ -->
+<!-- Title: tvm::script::ir_builder::tir::LaunchThreadFrame Pages: 1 -->
+<svg width="148pt" height="896pt"
+ viewBox="0.00 0.00 148.00 896.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 892)">
+<title>tvm::script::ir_builder::tir::LaunchThreadFrame</title>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-892 144,-892 144,4 -4,4"/>
+<!-- Node4 -->
+<g id="node1" class="node">
+<title>Node4</title>
+<polygon fill="#bfbfbf" stroke="#000000" points="0,-.5 0,-90.5 140,-90.5 140,-.5 0,-.5"/>
+<text text-anchor="start" x="8" y="-78.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::ir_builder</text>
+<text text-anchor="middle" x="70" y="-67.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::tir::LaunchThreadFrame</text>
+<polyline fill="none" stroke="#000000" points="0,-60.5 140,-60.5 "/>
+<text text-anchor="middle" x="70" y="-48.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="0,-41.5 140,-41.5 "/>
+<text text-anchor="start" x="8" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_MUTABLE</text>
+<text text-anchor="start" x="8" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_NOTNULLABLE_OBJECT</text>
+<text text-anchor="start" x="8" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_REF_METHODS()</text>
+</g>
+<!-- Node5 -->
+<g id="node2" class="node">
+<title>Node5</title>
+<g id="a_node2"><a xlink:href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame.html" target="_top" xlink:title="Managed reference to TIRFrameNode. ">
+<polygon fill="#ffffff" stroke="#000000" points="0,-128.5 0,-229.5 140,-229.5 140,-128.5 0,-128.5"/>
+<text text-anchor="start" x="8" y="-217.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::ir_builder</text>
+<text text-anchor="middle" x="70" y="-206.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::tir::TIRFrame</text>
+<polyline fill="none" stroke="#000000" points="0,-199.5 140,-199.5 "/>
+<text text-anchor="middle" x="70" y="-187.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="0,-180.5 140,-180.5 "/>
+<text text-anchor="start" x="8" y="-168.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_MUTABLE</text>
+<text text-anchor="start" x="8" y="-157.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_NOTNULLABLE_OBJECT</text>
+<text text-anchor="start" x="8" y="-146.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_REF_METHODS()</text>
+<text text-anchor="start" x="8" y="-135.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># TIRFrame()</text>
+</a>
+</g>
+</g>
+<!-- Node5&#45;&gt;Node4 -->
+<g id="edge1" class="edge">
+<title>Node5&#45;&gt;Node4</title>
+<path fill="none" stroke="#191970" d="M70,-117.8576C70,-108.6556 70,-99.3105 70,-90.5283"/>
+<polygon fill="none" stroke="#191970" points="66.5001,-118.1485 70,-128.1485 73.5001,-118.1486 66.5001,-118.1485"/>
+</g>
+<!-- Node6 -->
+<g id="node3" class="node">
+<title>Node6</title>
+<g id="a_node3"><a xlink:href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html" target="_top" xlink:title="Managed reference to an IRBuilderFrameNode. ">
+<polygon fill="#ffffff" stroke="#000000" points="0,-267.5 0,-401.5 140,-401.5 140,-267.5 0,-267.5"/>
+<text text-anchor="start" x="8" y="-389.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::ir_builder</text>
+<text text-anchor="middle" x="70" y="-378.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::IRBuilderFrame</text>
+<polyline fill="none" stroke="#000000" points="0,-371.5 140,-371.5 "/>
+<text text-anchor="middle" x="70" y="-359.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="0,-352.5 140,-352.5 "/>
+<text text-anchor="start" x="8" y="-340.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ~IRBuilderFrame()</text>
+<text text-anchor="start" x="8" y="-329.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_MUTABLE</text>
+<text text-anchor="start" x="8" y="-318.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_NOTNULLABLE_OBJECT</text>
+<text text-anchor="start" x="8" y="-307.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_REF_METHODS()</text>
+<text text-anchor="start" x="8" y="-296.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ EnterWithScope()</text>
+<text text-anchor="start" x="8" y="-285.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ExitWithScope()</text>
+<text text-anchor="start" x="8" y="-274.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># IRBuilderFrame()</text>
+</a>
+</g>
+</g>
+<!-- Node6&#45;&gt;Node5 -->
+<g id="edge2" class="edge">
+<title>Node6&#45;&gt;Node5</title>
+<path fill="none" stroke="#191970" d="M70,-257.0731C70,-247.7148 70,-238.3502 70,-229.5216"/>
+<polygon fill="none" stroke="#191970" points="66.5001,-257.1998 70,-267.1998 73.5001,-257.1999 66.5001,-257.1998"/>
+</g>
+<!-- Node7 -->
+<g id="node4" class="node">
+<title>Node7</title>
+<g id="a_node4"><a xlink:href="classtvm_1_1runtime_1_1ObjectRef.html" target="_top" xlink:title="Base class of all object reference. ">
+<polygon fill="#ffffff" stroke="#000000" points="3,-439.5 3,-661.5 137,-661.5 137,-439.5 3,-439.5"/>
+<text text-anchor="middle" x="70" y="-649.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectRef</text>
+<polyline fill="none" stroke="#000000" points="3,-642.5 137,-642.5 "/>
+<text text-anchor="start" x="11" y="-630.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
+<polyline fill="none" stroke="#000000" points="3,-623.5 137,-623.5 "/>
+<text text-anchor="start" x="11" y="-611.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
+<text text-anchor="start" x="11" y="-600.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
+<text text-anchor="start" x="11" y="-589.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ same_as()</text>
+<text text-anchor="start" x="11" y="-578.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator==()</text>
+<text text-anchor="start" x="11" y="-567.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator!=()</text>
+<text text-anchor="start" x="11" y="-556.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&lt;()</text>
+<text text-anchor="start" x="11" y="-545.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ defined()</text>
+<text text-anchor="start" x="11" y="-534.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
+<text text-anchor="start" x="11" y="-523.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&#45;&gt;()</text>
+<text text-anchor="start" x="11" y="-512.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ unique()</text>
+<text text-anchor="start" x="11" y="-501.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ use_count()</text>
+<text text-anchor="start" x="11" y="-490.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ as()</text>
+<text text-anchor="start" x="11" y="-479.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># get_mutable()</text>
+<text text-anchor="start" x="11" y="-468.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># DowncastNoCheck()</text>
+<text text-anchor="start" x="11" y="-457.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># FFIClearAfterMove()</text>
+<text text-anchor="start" x="11" y="-446.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># GetDataPtr()</text>
+</a>
+</g>
+</g>
+<!-- Node7&#45;&gt;Node6 -->
+<g id="edge3" class="edge">
+<title>Node7&#45;&gt;Node6</title>
+<path fill="none" stroke="#191970" d="M70,-429.1483C70,-419.7959 70,-410.5791 70,-401.7844"/>
+<polygon fill="none" stroke="#191970" points="66.5001,-429.3363 70,-439.3363 73.5001,-429.3364 66.5001,-429.3363"/>
+</g>
+<!-- Node8 -->
+<g id="node5" class="node">
+<title>Node8</title>
+<g id="a_node5"><a xlink:href="classtvm_1_1runtime_1_1ObjectPtr.html" target="_top" xlink:title="{tvm::runtime::ObjectPtr\l\&lt; tvm::runtime::Object \&gt;\n||+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ~ObjectPtr()\l+ swap()\l+ get()\l+ operator&#45;\&gt;()\land 11 more...\l}">
+<polygon fill="#ffffff" stroke="#000000" points="0,-709.5 0,-887.5 140,-887.5 140,-709.5 0,-709.5"/>
+<text text-anchor="start" x="8" y="-875.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectPtr</text>
+<text text-anchor="middle" x="70" y="-864.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::runtime::Object &gt;</text>
+<polyline fill="none" stroke="#000000" points="0,-857.5 140,-857.5 "/>
+<text text-anchor="middle" x="70" y="-845.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="0,-838.5 140,-838.5 "/>
+<text text-anchor="start" x="8" y="-826.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
+<text text-anchor="start" x="8" y="-815.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
+<text text-anchor="start" x="8" y="-804.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
+<text text-anchor="start" x="8" y="-793.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
+<text text-anchor="start" x="8" y="-782.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
+<text text-anchor="start" x="8" y="-771.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
+<text text-anchor="start" x="8" y="-760.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ~ObjectPtr()</text>
+<text text-anchor="start" x="8" y="-749.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ swap()</text>
+<text text-anchor="start" x="8" y="-738.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
+<text text-anchor="start" x="8" y="-727.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&#45;&gt;()</text>
+<text text-anchor="start" x="8" y="-716.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 11 more...</text>
+</a>
+</g>
+</g>
+<!-- Node8&#45;&gt;Node7 -->
+<g id="edge4" class="edge">
+<title>Node8&#45;&gt;Node7</title>
+<path fill="none" stroke="#404040" d="M70,-709.3167C70,-697.8765 70,-686.0062 70,-674.1402"/>
+<polygon fill="none" stroke="#404040" points="70.0001,-673.7944 66,-667.7944 70,-661.7944 74,-667.7943 70.0001,-673.7944"/>
+<text text-anchor="middle" x="89.5" y="-683" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> #data_</text>
+</g>
+</g>
+</svg>
diff --git a/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrame__inherit__graph.svg b/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrame__inherit__graph.svg
new file mode 100644
index 000000000..a8199c58d
--- /dev/null
+++ b/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1LaunchThreadFrame__inherit__graph.svg
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.40.1 (20161225.0304)
+ -->
+<!-- Title: tvm::script::ir_builder::tir::LaunchThreadFrame Pages: 1 -->
+<svg width="148pt" height="678pt"
+ viewBox="0.00 0.00 148.00 678.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 674)">
+<title>tvm::script::ir_builder::tir::LaunchThreadFrame</title>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-674 144,-674 144,4 -4,4"/>
+<!-- Node0 -->
+<g id="node1" class="node">
+<title>Node0</title>
+<polygon fill="#bfbfbf" stroke="#000000" points="0,-.5 0,-90.5 140,-90.5 140,-.5 0,-.5"/>
+<text text-anchor="start" x="8" y="-78.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::ir_builder</text>
+<text text-anchor="middle" x="70" y="-67.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::tir::LaunchThreadFrame</text>
+<polyline fill="none" stroke="#000000" points="0,-60.5 140,-60.5 "/>
+<text text-anchor="middle" x="70" y="-48.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="0,-41.5 140,-41.5 "/>
+<text text-anchor="start" x="8" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_MUTABLE</text>
+<text text-anchor="start" x="8" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_NOTNULLABLE_OBJECT</text>
+<text text-anchor="start" x="8" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_REF_METHODS()</text>
+</g>
+<!-- Node1 -->
+<g id="node2" class="node">
+<title>Node1</title>
+<g id="a_node2"><a xlink:href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame.html" target="_top" xlink:title="Managed reference to TIRFrameNode. ">
+<polygon fill="#ffffff" stroke="#000000" points="0,-127.5 0,-228.5 140,-228.5 140,-127.5 0,-127.5"/>
+<text text-anchor="start" x="8" y="-216.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::ir_builder</text>
+<text text-anchor="middle" x="70" y="-205.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::tir::TIRFrame</text>
+<polyline fill="none" stroke="#000000" points="0,-198.5 140,-198.5 "/>
+<text text-anchor="middle" x="70" y="-186.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="0,-179.5 140,-179.5 "/>
+<text text-anchor="start" x="8" y="-167.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_MUTABLE</text>
+<text text-anchor="start" x="8" y="-156.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_NOTNULLABLE_OBJECT</text>
+<text text-anchor="start" x="8" y="-145.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_REF_METHODS()</text>
+<text text-anchor="start" x="8" y="-134.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># TIRFrame()</text>
+</a>
+</g>
+</g>
+<!-- Node1&#45;&gt;Node0 -->
+<g id="edge1" class="edge">
+<title>Node1&#45;&gt;Node0</title>
+<path fill="none" stroke="#191970" d="M70,-116.9214C70,-108.1275 70,-99.2114 70,-90.7978"/>
+<polygon fill="none" stroke="#191970" points="66.5001,-117.1509 70,-127.151 73.5001,-117.151 66.5001,-117.1509"/>
+</g>
+<!-- Node2 -->
+<g id="node3" class="node">
+<title>Node2</title>
+<g id="a_node3"><a xlink:href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html" target="_top" xlink:title="Managed reference to an IRBuilderFrameNode. ">
+<polygon fill="#ffffff" stroke="#000000" points="0,-265.5 0,-399.5 140,-399.5 140,-265.5 0,-265.5"/>
+<text text-anchor="start" x="8" y="-387.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::ir_builder</text>
+<text text-anchor="middle" x="70" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::IRBuilderFrame</text>
+<polyline fill="none" stroke="#000000" points="0,-369.5 140,-369.5 "/>
+<text text-anchor="middle" x="70" y="-357.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="0,-350.5 140,-350.5 "/>
+<text text-anchor="start" x="8" y="-338.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ~IRBuilderFrame()</text>
+<text text-anchor="start" x="8" y="-327.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_MUTABLE</text>
+<text text-anchor="start" x="8" y="-316.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_NOTNULLABLE_OBJECT</text>
+<text text-anchor="start" x="8" y="-305.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_REF_METHODS()</text>
+<text text-anchor="start" x="8" y="-294.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ EnterWithScope()</text>
+<text text-anchor="start" x="8" y="-283.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ExitWithScope()</text>
+<text text-anchor="start" x="8" y="-272.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># IRBuilderFrame()</text>
+</a>
+</g>
+</g>
+<!-- Node2&#45;&gt;Node1 -->
+<g id="edge2" class="edge">
+<title>Node2&#45;&gt;Node1</title>
+<path fill="none" stroke="#191970" d="M70,-255.1277C70,-246.1994 70,-237.2733 70,-228.8265"/>
+<polygon fill="none" stroke="#191970" points="66.5001,-255.1835 70,-265.1835 73.5001,-255.1835 66.5001,-255.1835"/>
+</g>
+<!-- Node3 -->
+<g id="node4" class="node">
+<title>Node3</title>
+<g id="a_node4"><a xlink:href="classtvm_1_1runtime_1_1ObjectRef.html" target="_top" xlink:title="Base class of all object reference. ">
+<polygon fill="#ffffff" stroke="#000000" points="3,-436.5 3,-669.5 137,-669.5 137,-436.5 3,-436.5"/>
+<text text-anchor="middle" x="70" y="-657.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectRef</text>
+<polyline fill="none" stroke="#000000" points="3,-650.5 137,-650.5 "/>
+<text text-anchor="start" x="11" y="-638.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
+<text text-anchor="start" x="11" y="-627.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># data_</text>
+<polyline fill="none" stroke="#000000" points="3,-620.5 137,-620.5 "/>
+<text text-anchor="start" x="11" y="-608.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
+<text text-anchor="start" x="11" y="-597.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
+<text text-anchor="start" x="11" y="-586.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ same_as()</text>
+<text text-anchor="start" x="11" y="-575.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator==()</text>
+<text text-anchor="start" x="11" y="-564.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator!=()</text>
+<text text-anchor="start" x="11" y="-553.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&lt;()</text>
+<text text-anchor="start" x="11" y="-542.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ defined()</text>
+<text text-anchor="start" x="11" y="-531.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
+<text text-anchor="start" x="11" y="-520.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&#45;&gt;()</text>
+<text text-anchor="start" x="11" y="-509.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ unique()</text>
+<text text-anchor="start" x="11" y="-498.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ use_count()</text>
+<text text-anchor="start" x="11" y="-487.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ as()</text>
+<text text-anchor="start" x="11" y="-476.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># get_mutable()</text>
+<text text-anchor="start" x="11" y="-465.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># DowncastNoCheck()</text>
+<text text-anchor="start" x="11" y="-454.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># FFIClearAfterMove()</text>
+<text text-anchor="start" x="11" y="-443.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># GetDataPtr()</text>
+</a>
+</g>
+</g>
+<!-- Node3&#45;&gt;Node2 -->
+<g id="edge3" class="edge">
+<title>Node3&#45;&gt;Node2</title>
+<path fill="none" stroke="#191970" d="M70,-426.0779C70,-417.0753 70,-408.2246 70,-399.7733"/>
+<polygon fill="none" stroke="#191970" points="66.5001,-426.2933 70,-436.2933 73.5001,-426.2934 66.5001,-426.2933"/>
+</g>
+</g>
+</svg>
diff --git a/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1LetFrame-members.html b/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1LetFrame-members.html
new file mode 100644
index 000000000..b03bca00e
--- /dev/null
+++ b/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1LetFrame-members.html
@@ -0,0 +1,107 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>tvm: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">tvm
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespacetvm.html">tvm</a></li><li class="navelem"><a class="el" href="namespacetvm_1_1script.html">script</a></li><li class="navelem"><a class="el" href="namespacetvm_1_1script_1_1ir__builder.html">ir_builder</a></li><li class="navelem"><a class="el" href="namespacetvm_1_1script_1_1ir__builder_1_1tir.html">tir</a></li><li class="navelem"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LetFrame.html">LetFrame</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">tvm::script::ir_builder::tir::LetFrame Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LetFrame.html">tvm::script::ir_builder::tir::LetFrame</a>, including all inherited members.</p>
+<table class="directory">
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a3e9b0901b6e01257b060a45e159cc37e">_type_is_nullable</a></td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a2d76fa1fb628ff276a284e61123589c5">as</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#aa5c355fbb7d2f7402ee360dba8a52cdd">ContainerType</a> typedef</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#ac261cdb80487fb29ac42b28678f8cbef">data_</a></td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a17d8d5ad92691f9e18e3e0ae8ef69e4f">defined</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#acd04bb22a6861e9952c344ee8547411f">DowncastNoCheck</a>(ObjectRef ref)</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html#a06a9c6f3c686c68da8ca2c707b13a751">EnterWithScope</a>()</td><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html">tvm::script::ir_builder::IRBuilderFrame</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html#a8ca5afe93534c3bf7e521609d5654ac3">ExitWithScope</a>()</td><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html">tvm::script::ir_builder::IRBuilderFrame</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a22e5bb9d64dbc773bb9263b70882239e">FFIClearAfterMove</a>(ObjectRef *ref)</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#aadbc0886ffa80162ff31eefd0431ba09">get</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#ae423057ecf93c18714d17f53cd1d318f">get_mutable</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#aed593996e4076632450de8fde776707c">GetDataPtr</a>(const ObjectRef &amp;ref)</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span><span class="mlabel">static</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html#a4ab7fb335968d6947f88b7b934c56354">IRBuilderFrame</a>()=default</td><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html">tvm::script::ir_builder::IRBuilderFrame</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#aa07c1f6d66a438ea950637d13ed09471">ObjectRef</a>()=default</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a6a7dd7404edf1c26f8dbd9bd92d03a02">ObjectRef</a>(ObjectPtr&lt; Object &gt; data)</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#aa1bd13a7185cb4b2b6bdde49416e8aa4">operator!=</a>(const ObjectRef &amp;other) const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a3deeeac5827a88f375b8c6ae1039c219">operator-&gt;</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a4744bf4a1b48f202d41b51dc5e08e6ee">operator&lt;</a>(const ObjectRef &amp;other) const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#affdf1b8cdb36e140de7b3ad7064e4617">operator==</a>(const ObjectRef &amp;other) const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#ae31a5b9f40781d60a2901994ead700e8">same_as</a>(const ObjectRef &amp;other) const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame.html#a70e34dbed98c143d552dff607368d8a6">TIRFrame</a>()=default</td><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame.html">tvm::script::ir_builder::tir::TIRFrame</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LetFrame.html#a0865ca9f5e168754cdcf66b313593ec6">TVM_DEFINE_MUTABLE_NOTNULLABLE_OBJECT_REF_METHODS</a>(LetFrame, TIRFrame, LetFrameNode)</td><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LetFrame.html">tvm::script::ir_builder::tir::LetFrame</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame.html#a981032a8339da455ed51f1f1dc6cfebc">tvm::script::ir_builder::tir::TIRFrame::TVM_DEFINE_MUTABLE_NOTNULLABLE_OBJECT_REF_METHODS</a>(TIRFrame, IRBuilderFrame, TIRFrameNode)</td><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame.html">tvm::script::ir_builder::tir::TIRFrame</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html#ad4a36a9c72d592d40b02548864e149a8">tvm::script::ir_builder::IRBuilderFrame::TVM_DEFINE_MUTABLE_NOTNULLABLE_OBJECT_REF_METHODS</a>(IRBuilderFrame, ObjectRef, IRBuilderFrameNode)</td><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html">tvm::script::ir_builder::IRBuilderFrame</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a4e7cdb1574b93a59e784d70aa47b8da7">unique</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a0ae0da21d247cd87ea94fe3777c4405e">use_count</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html#ae9333580d4c7e8211eae6e27080ba0bb">~IRBuilderFrame</a>()=default</td><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html">tvm::script::ir_builder::IRBuilderFrame</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.13
+</small></address>
+</body>
+</html>
diff --git a/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame.html b/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1LetFrame.html
similarity index 86%
copy from docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame.html
copy to docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1LetFrame.html
index 6becacade..cf22bba76 100644
--- a/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame.html
+++ b/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1LetFrame.html
@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.13"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>tvm: tvm::script::ir_builder::tir::TIRFrame Class Reference</title>
+<title>tvm: tvm::script::ir_builder::tir::LetFrame Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -58,40 +58,42 @@ $(function() {
 
 <div id="nav-path" class="navpath">
   <ul>
-<li class="navelem"><a class="el" href="namespacetvm.html">tvm</a></li><li class="navelem"><a class="el" href="namespacetvm_1_1script.html">script</a></li><li class="navelem"><a class="el" href="namespacetvm_1_1script_1_1ir__builder.html">ir_builder</a></li><li class="navelem"><a class="el" href="namespacetvm_1_1script_1_1ir__builder_1_1tir.html">tir</a></li><li class="navelem"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame.html">TIRFrame</a></li>  </ul>
+<li class="navelem"><a class="el" href="namespacetvm.html">tvm</a></li><li class="navelem"><a class="el" href="namespacetvm_1_1script.html">script</a></li><li class="navelem"><a class="el" href="namespacetvm_1_1script_1_1ir__builder.html">ir_builder</a></li><li class="navelem"><a class="el" href="namespacetvm_1_1script_1_1ir__builder_1_1tir.html">tir</a></li><li class="navelem"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LetFrame.html">LetFrame</a></li>  </ul>
 </div>
 </div><!-- top -->
 <div class="header">
   <div class="summary">
 <a href="#pub-methods">Public Member Functions</a> &#124;
-<a href="#pro-methods">Protected Member Functions</a> &#124;
-<a href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame-members.html">List of all members</a>  </div>
+<a href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LetFrame-members.html">List of all members</a>  </div>
   <div class="headertitle">
-<div class="title">tvm::script::ir_builder::tir::TIRFrame Class Reference</div>  </div>
+<div class="title">tvm::script::ir_builder::tir::LetFrame Class Reference</div>  </div>
 </div><!--header-->
 <div class="contents">
 
-<p>Managed reference to <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrameNode.html" title="A base frame that represents the TIR fame with body of statements. ">TIRFrameNode</a>.  
- <a href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame.html#details">More...</a></p>
+<p>Managed reference to <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LetFrameNode.html" title="A frame represents the let binding expression, which binds a var. ">LetFrameNode</a>.  
+ <a href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LetFrame.html#details">More...</a></p>
 
 <p><code>#include &lt;<a class="el" href="ir__builder_2tir_2frame_8h_source.html">frame.h</a>&gt;</code></p>
 <div class="dynheader">
-Inheritance diagram for tvm::script::ir_builder::tir::TIRFrame:</div>
+Inheritance diagram for tvm::script::ir_builder::tir::LetFrame:</div>
 <div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame__inherit__graph.svg" width="830" height="904"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
+<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LetFrame__inherit__graph.svg" width="198" height="904"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
 </div>
 </div>
 <div class="dynheader">
-Collaboration diagram for tvm::script::ir_builder::tir::TIRFrame:</div>
+Collaboration diagram for tvm::script::ir_builder::tir::LetFrame:</div>
 <div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame__coll__graph.svg" width="198" height="1024"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
+<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LetFrame__coll__graph.svg" width="198" height="1195"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
 </div>
 </div>
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
 Public Member Functions</h2></td></tr>
-<tr class="memitem:a981032a8339da455ed51f1f1dc6cfebc"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame.html#a981032a8339da455ed51f1f1dc6cfebc">TVM_DEFINE_MUTABLE_NOTNULLABLE_OBJECT_REF_METHODS</a> (<a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame.html">TIRFrame</a>, <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.ht [...]
-<tr class="separator:a981032a8339da455ed51f1f1dc6cfebc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0865ca9f5e168754cdcf66b313593ec6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LetFrame.html#a0865ca9f5e168754cdcf66b313593ec6">TVM_DEFINE_MUTABLE_NOTNULLABLE_OBJECT_REF_METHODS</a> (<a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LetFrame.html">LetFrame</a>, <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame.h [...]
+<tr class="separator:a0865ca9f5e168754cdcf66b313593ec6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pub_methods_classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame.html">tvm::script::ir_builder::tir::TIRFrame</a></td></tr>
+<tr class="memitem:a981032a8339da455ed51f1f1dc6cfebc inherit pub_methods_classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame.html#a981032a8339da455ed51f1f1dc6cfebc">TVM_DEFINE_MUTABLE_NOTNULLABLE_OBJECT_REF_METHODS</a> (<a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame.html">TIRFrame</a>, < [...]
+<tr class="separator:a981032a8339da455ed51f1f1dc6cfebc inherit pub_methods_classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="inherit_header pub_methods_classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html">tvm::script::ir_builder::IRBuilderFrame</a></td></tr>
 <tr class="memitem:ae9333580d4c7e8211eae6e27080ba0bb inherit pub_methods_classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html#ae9333580d4c7e8211eae6e27080ba0bb">~IRBuilderFrame</a> ()=default</td></tr>
 <tr class="memdesc:ae9333580d4c7e8211eae6e27080ba0bb inherit pub_methods_classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default destructor.  <a href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html#ae9333580d4c7e8211eae6e27080ba0bb">More...</a><br /></td></tr>
@@ -138,18 +140,6 @@ Public Member Functions</h2></td></tr>
 <tr class="memdesc:a2d76fa1fb628ff276a284e61123589c5 inherit pub_methods_classtvm_1_1runtime_1_1ObjectRef"><td class="mdescLeft">&#160;</td><td class="mdescRight">Try to downcast the internal <a class="el" href="classtvm_1_1runtime_1_1Object.html" title="base class of all object containers. ">Object</a> to a raw pointer of a corresponding type.  <a href="classtvm_1_1runtime_1_1ObjectRef.html#a2d76fa1fb628ff276a284e61123589c5">More...</a><br /></td></tr>
 <tr class="separator:a2d76fa1fb628ff276a284e61123589c5 inherit pub_methods_classtvm_1_1runtime_1_1ObjectRef"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
-Protected Member Functions</h2></td></tr>
-<tr class="memitem:a70e34dbed98c143d552dff607368d8a6"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame.html#a70e34dbed98c143d552dff607368d8a6">TIRFrame</a> ()=default</td></tr>
-<tr class="separator:a70e34dbed98c143d552dff607368d8a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="inherit_header pro_methods_classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html">tvm::script::ir_builder::IRBuilderFrame</a></td></tr>
-<tr class="memitem:a4ab7fb335968d6947f88b7b934c56354 inherit pro_methods_classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html#a4ab7fb335968d6947f88b7b934c56354">IRBuilderFrame</a> ()=default</td></tr>
-<tr class="memdesc:a4ab7fb335968d6947f88b7b934c56354 inherit pro_methods_classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disallow direct construction of this object.  <a href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html#a4ab7fb335968d6947f88b7b934c56354">More...</a><br /></td></tr>
-<tr class="separator:a4ab7fb335968d6947f88b7b934c56354 inherit pro_methods_classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="inherit_header pro_methods_classtvm_1_1runtime_1_1ObjectRef"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classtvm_1_1runtime_1_1ObjectRef')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td></tr>
-<tr class="memitem:ae423057ecf93c18714d17f53cd1d318f inherit pro_methods_classtvm_1_1runtime_1_1ObjectRef"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classtvm_1_1runtime_1_1Object.html">Object</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#ae423057ecf93c18714d17f53cd1d318f">get_mutable</a> () const</td></tr>
-<tr class="separator:ae423057ecf93c18714d17f53cd1d318f inherit pro_methods_classtvm_1_1runtime_1_1ObjectRef"><td class="memSeparator" colspan="2">&#160;</td></tr>
-</table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
 Additional Inherited Members</h2></td></tr>
 <tr class="inherit_header pub_types_classtvm_1_1runtime_1_1ObjectRef"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classtvm_1_1runtime_1_1ObjectRef')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td></tr>
@@ -159,6 +149,16 @@ Additional Inherited Members</h2></td></tr>
 <tr class="inherit_header pub_static_attribs_classtvm_1_1runtime_1_1ObjectRef"><td colspan="2" onclick="javascript:toggleInherit('pub_static_attribs_classtvm_1_1runtime_1_1ObjectRef')"><img src="closed.png" alt="-"/>&#160;Static Public Attributes inherited from <a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td></tr>
 <tr class="memitem:a3e9b0901b6e01257b060a45e159cc37e inherit pub_static_attribs_classtvm_1_1runtime_1_1ObjectRef"><td class="memItemLeft" align="right" valign="top">static constexpr bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#a3e9b0901b6e01257b060a45e159cc37e">_type_is_nullable</a> = true</td></tr>
 <tr class="separator:a3e9b0901b6e01257b060a45e159cc37e inherit pub_static_attribs_classtvm_1_1runtime_1_1ObjectRef"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame.html">tvm::script::ir_builder::tir::TIRFrame</a></td></tr>
+<tr class="memitem:a70e34dbed98c143d552dff607368d8a6 inherit pro_methods_classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame.html#a70e34dbed98c143d552dff607368d8a6">TIRFrame</a> ()=default</td></tr>
+<tr class="separator:a70e34dbed98c143d552dff607368d8a6 inherit pro_methods_classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html">tvm::script::ir_builder::IRBuilderFrame</a></td></tr>
+<tr class="memitem:a4ab7fb335968d6947f88b7b934c56354 inherit pro_methods_classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html#a4ab7fb335968d6947f88b7b934c56354">IRBuilderFrame</a> ()=default</td></tr>
+<tr class="memdesc:a4ab7fb335968d6947f88b7b934c56354 inherit pro_methods_classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disallow direct construction of this object.  <a href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html#a4ab7fb335968d6947f88b7b934c56354">More...</a><br /></td></tr>
+<tr class="separator:a4ab7fb335968d6947f88b7b934c56354 inherit pro_methods_classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="inherit_header pro_methods_classtvm_1_1runtime_1_1ObjectRef"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classtvm_1_1runtime_1_1ObjectRef')"><img src="closed.png" alt="-"/>&#160;Protected Member Functions inherited from <a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td></tr>
+<tr class="memitem:ae423057ecf93c18714d17f53cd1d318f inherit pro_methods_classtvm_1_1runtime_1_1ObjectRef"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classtvm_1_1runtime_1_1Object.html">Object</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#ae423057ecf93c18714d17f53cd1d318f">get_mutable</a> () const</td></tr>
+<tr class="separator:ae423057ecf93c18714d17f53cd1d318f inherit pro_methods_classtvm_1_1runtime_1_1ObjectRef"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="inherit_header pro_static_methods_classtvm_1_1runtime_1_1ObjectRef"><td colspan="2" onclick="javascript:toggleInherit('pro_static_methods_classtvm_1_1runtime_1_1ObjectRef')"><img src="closed.png" alt="-"/>&#160;Static Protected Member Functions inherited from <a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></td></tr>
 <tr class="memitem:acd04bb22a6861e9952c344ee8547411f inherit pro_static_methods_classtvm_1_1runtime_1_1ObjectRef"><td class="memTemplParams" colspan="2">template&lt;typename T &gt; </td></tr>
 <tr class="memitem:acd04bb22a6861e9952c344ee8547411f inherit pro_static_methods_classtvm_1_1runtime_1_1ObjectRef"><td class="memTemplItemLeft" align="right" valign="top">static T&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html#acd04bb22a6861e9952c344ee8547411f">DowncastNoCheck</a> (<a class="el" href="classtvm_1_1runtime_1_1ObjectRef.html">ObjectRef</a> ref)</td></tr>
@@ -177,57 +177,31 @@ Additional Inherited Members</h2></td></tr>
 <tr class="separator:ac261cdb80487fb29ac42b28678f8cbef inherit pro_attribs_classtvm_1_1runtime_1_1ObjectRef"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>Managed reference to <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrameNode.html" title="A base frame that represents the TIR fame with body of statements. ">TIRFrameNode</a>. </p>
-<dl class="section see"><dt>See also</dt><dd><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrameNode.html" title="A base frame that represents the TIR fame with body of statements. ">TIRFrameNode</a> </dd></dl>
-</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
-<a id="a70e34dbed98c143d552dff607368d8a6"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a70e34dbed98c143d552dff607368d8a6">&#9670;&nbsp;</a></span>TIRFrame()</h2>
-
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
-  <tr>
-  <td class="mlabels-left">
-      <table class="memname">
-        <tr>
-          <td class="memname">tvm::script::ir_builder::tir::TIRFrame::TIRFrame </td>
-          <td>(</td>
-          <td class="paramname"></td><td>)</td>
-          <td></td>
-        </tr>
-      </table>
-  </td>
-  <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">default</span></span>  </td>
-  </tr>
-</table>
-</div><div class="memdoc">
-
-</div>
-</div>
-<h2 class="groupheader">Member Function Documentation</h2>
-<a id="a981032a8339da455ed51f1f1dc6cfebc"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a981032a8339da455ed51f1f1dc6cfebc">&#9670;&nbsp;</a></span>TVM_DEFINE_MUTABLE_NOTNULLABLE_OBJECT_REF_METHODS()</h2>
+<div class="textblock"><p>Managed reference to <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LetFrameNode.html" title="A frame represents the let binding expression, which binds a var. ">LetFrameNode</a>. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LetFrameNode.html" title="A frame represents the let binding expression, which binds a var. ">LetFrameNode</a> </dd></dl>
+</div><h2 class="groupheader">Member Function Documentation</h2>
+<a id="a0865ca9f5e168754cdcf66b313593ec6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0865ca9f5e168754cdcf66b313593ec6">&#9670;&nbsp;</a></span>TVM_DEFINE_MUTABLE_NOTNULLABLE_OBJECT_REF_METHODS()</h2>
 
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">tvm::script::ir_builder::tir::TIRFrame::TVM_DEFINE_MUTABLE_NOTNULLABLE_OBJECT_REF_METHODS </td>
+          <td class="memname">tvm::script::ir_builder::tir::LetFrame::TVM_DEFINE_MUTABLE_NOTNULLABLE_OBJECT_REF_METHODS </td>
           <td>(</td>
-          <td class="paramtype"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame.html">TIRFrame</a>&#160;</td>
+          <td class="paramtype"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LetFrame.html">LetFrame</a>&#160;</td>
           <td class="paramname">, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html">IRBuilderFrame</a>&#160;</td>
+          <td class="paramtype"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrame.html">TIRFrame</a>&#160;</td>
           <td class="paramname">, </td>
         </tr>
         <tr>
           <td class="paramkey"></td>
           <td></td>
-          <td class="paramtype"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrameNode.html">TIRFrameNode</a>&#160;</td>
+          <td class="paramtype"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LetFrameNode.html">LetFrameNode</a>&#160;</td>
           <td class="paramname">&#160;</td>
         </tr>
         <tr>
diff --git a/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1LetFrameNode-members.html b/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1LetFrameNode-members.html
new file mode 100644
index 000000000..75c2e3019
--- /dev/null
+++ b/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1LetFrameNode-members.html
@@ -0,0 +1,123 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>tvm: Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+  <td id="projectalign" style="padding-left: 0.5em;">
+   <div id="projectname">tvm
+   </div>
+  </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+  initMenu('',true,false,'search.php','Search');
+  $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+     onmouseover="return searchBox.OnSearchSelectShow()"
+     onmouseout="return searchBox.OnSearchSelectHide()"
+     onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0" 
+        name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div id="nav-path" class="navpath">
+  <ul>
+<li class="navelem"><a class="el" href="namespacetvm.html">tvm</a></li><li class="navelem"><a class="el" href="namespacetvm_1_1script.html">script</a></li><li class="navelem"><a class="el" href="namespacetvm_1_1script_1_1ir__builder.html">ir_builder</a></li><li class="navelem"><a class="el" href="namespacetvm_1_1script_1_1ir__builder_1_1tir.html">tir</a></li><li class="navelem"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LetFrameNode.html">LetFrameNode</a></li>  </ul>
+</div>
+</div><!-- top -->
+<div class="header">
+  <div class="headertitle">
+<div class="title">tvm::script::ir_builder::tir::LetFrameNode Member List</div>  </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LetFrameNode.html">tvm::script::ir_builder::tir::LetFrameNode</a>, including all inherited members.</p>
+<table class="directory">
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#a5fbebc47be111ecc1d5869bcc0476e21">_GetOrAllocRuntimeTypeIndex</a>()</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#a14b234a745215da158b2386bbb34bd70">_type_child_slots</a></td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#a05ece7bcb6bf73e88765c1f193a489ce">_type_child_slots_can_overflow</a></td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#a55cb618bd4bbcd49317b35ea8e2996be">_type_final</a></td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#a92fe62494027b70af1f7696d611c21b6">_type_has_method_sequal_reduce</a></td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#ac97054694d03dc5eac58315fb569ef88">_type_has_method_shash_reduce</a></td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#a74e9f076b50b8b335b4a321e9b0bf03c">_type_has_method_visit_attrs</a></td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#af6aed95d70af7e44ce376a8d7be6c5f1">_type_index</a></td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LetFrameNode.html#a8e108e4bf7afb969f6704f7dc8196c5b">_type_key</a></td><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LetFrameNode.html">tvm::script::ir_builder::tir::LetFrameNode</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrameNode.html#a08e6e65098b35e2908e774de3ab970f3">AddCallback</a>(runtime::TypedPackedFunc&lt; void()&gt; callback)</td><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrameNode.html">tvm::script::ir_builder::IRBuilderFrameNode</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrameNode.html#aa21f554fdcf6ab78c55cb54cdc69c0c2">callbacks</a></td><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrameNode.html">tvm::script::ir_builder::IRBuilderFrameNode</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#a70fb5361147634605d6595bb89381f03">DecRef</a>()</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#af4407d2b59132e803ff791482dbe0145">deleter_</a></td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrameNode.html#ab3aaced994da313ebabad6b955332f14">EnterWithScope</a>()</td><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrameNode.html">tvm::script::ir_builder::IRBuilderFrameNode</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LetFrameNode.html#aae8b7c9383f7e0eb4ce7467094fcb06d">ExitWithScope</a>() final</td><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LetFrameNode.html">tvm::script::ir_builder::tir::LetFrameNode</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#a9e84841ca982bff376a978ade0132631">FDeleter</a> typedef</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#a726972ff315c446192df94027ddea032">GetOrAllocRuntimeTypeIndex</a>(const std::string &amp;key, uint32_t static_tindex, uint32_t parent_tindex, uint32_t type_child_slots, bool type_child_slots_can_overflow)</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">static</span [...]
+  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#a4d951e51832081b85875669eac90e940">GetTypeKey</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#a5693cbadcc1168b96db7b1cc5c200b86">GetTypeKeyHash</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#ac9e5eed7719e322117bde996a171e33a">IncRef</a>()</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#a90e90b3f4ba8a590baff78c75807bbc7">IsInstance</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#a133436a9ec5c4a768b94102bf95a660b">Object</a>()</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#ab7968feb6ad38ecaffc320e13819d826">Object</a>(const Object &amp;other)</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#aa1612f69ea5b4225d4cda759cd517323">Object</a>(Object &amp;&amp;other)</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#a69c32fbd96181f5c21d2c878ab285e4f">operator=</a>(const Object &amp;other)</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#ae341e561272ff43cdcbc927bc29ac50d">operator=</a>(Object &amp;&amp;other)</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#a0d492efee331e2239a093f4b2017c10f">ref_counter_</a></td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#a55549a6c23987890246248682560a03d">RefCounterType</a> typedef</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#ad94d79729ac85aa7c976e23d39066383">RuntimeTypeIndex</a>()</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrameNode.html#a13776bb5c2e5403138fbee06d4fdad40">stmts</a></td><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrameNode.html">tvm::script::ir_builder::tir::TIRFrameNode</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrameNode.html#a4caa65dc8a549ed58fcb1d47964734d8">TVM_DECLARE_BASE_OBJECT_INFO</a>(TIRFrameNode, IRBuilderFrameNode)</td><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrameNode.html">tvm::script::ir_builder::tir::TIRFrameNode</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrameNode.html#a290e180b9b57d3e133874fc0343a0453">tvm::script::ir_builder::IRBuilderFrameNode::TVM_DECLARE_BASE_OBJECT_INFO</a>(IRBuilderFrameNode, runtime::Object)</td><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrameNode.html">tvm::script::ir_builder::IRBuilderFrameNode</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LetFrameNode.html#a8aa65728ebf532b4923db25f9d1727bf">TVM_DECLARE_FINAL_OBJECT_INFO</a>(LetFrameNode, TIRFrameNode)</td><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LetFrameNode.html">tvm::script::ir_builder::tir::LetFrameNode</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#a481f01923b14e1851ebd38506e9c66ea">type_index</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#a4bfc2586cb55f2af47728187b3256255">type_index_</a></td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#a817ba6c23b7ee1821c48a75edf255a30">TypeIndex2Key</a>(uint32_t tindex)</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#a6ee32a02dd44257da105fbbe5d9c8622">TypeIndex2KeyHash</a>(uint32_t tindex)</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#a6841f97e06e6614dd7e82c6dd41b818a">TypeKey2Index</a>(const std::string &amp;key)</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html#afd548730a6139d19fe24473ad66026d7">unique</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LetFrameNode.html#a7132dd30d5a95951e88fec504d8fb314">value</a></td><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LetFrameNode.html">tvm::script::ir_builder::tir::LetFrameNode</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LetFrameNode.html#a577f5b237edd4964c212d403b1c95a53">var</a></td><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LetFrameNode.html">tvm::script::ir_builder::tir::LetFrameNode</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LetFrameNode.html#af1edabed51a718c745406316a72dd6ce">VisitAttrs</a>(tvm::AttrVisitor *v)</td><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LetFrameNode.html">tvm::script::ir_builder::tir::LetFrameNode</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrameNode.html#a8e61799eac4e806aef5a87d07943883d">~IRBuilderFrameNode</a>()=default</td><td class="entry"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrameNode.html">tvm::script::ir_builder::IRBuilderFrameNode</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+</table></div><!-- contents -->
+<!-- start footer part -->
+<hr class="footer"/><address class="footer"><small>
+Generated by &#160;<a href="http://www.doxygen.org/index.html">
+<img class="footer" src="doxygen.png" alt="doxygen"/>
+</a> 1.8.13
+</small></address>
+</body>
+</html>
diff --git a/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1AssertFrameNode.html b/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1LetFrameNode.html
similarity index 88%
copy from docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1AssertFrameNode.html
copy to docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1LetFrameNode.html
index 12091b654..5ccab5f58 100644
--- a/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1AssertFrameNode.html
+++ b/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1LetFrameNode.html
@@ -5,7 +5,7 @@
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen 1.8.13"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>tvm: tvm::script::ir_builder::tir::AssertFrameNode Class Reference</title>
+<title>tvm: tvm::script::ir_builder::tir::LetFrameNode Class Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -58,7 +58,7 @@ $(function() {
 
 <div id="nav-path" class="navpath">
   <ul>
-<li class="navelem"><a class="el" href="namespacetvm.html">tvm</a></li><li class="navelem"><a class="el" href="namespacetvm_1_1script.html">script</a></li><li class="navelem"><a class="el" href="namespacetvm_1_1script_1_1ir__builder.html">ir_builder</a></li><li class="navelem"><a class="el" href="namespacetvm_1_1script_1_1ir__builder_1_1tir.html">tir</a></li><li class="navelem"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1AssertFrameNode.html">AssertFrameNode</a></li>  </ul>
+<li class="navelem"><a class="el" href="namespacetvm.html">tvm</a></li><li class="navelem"><a class="el" href="namespacetvm_1_1script.html">script</a></li><li class="navelem"><a class="el" href="namespacetvm_1_1script_1_1ir__builder.html">ir_builder</a></li><li class="navelem"><a class="el" href="namespacetvm_1_1script_1_1ir__builder_1_1tir.html">tir</a></li><li class="navelem"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LetFrameNode.html">LetFrameNode</a></li>  </ul>
 </div>
 </div><!-- top -->
 <div class="header">
@@ -66,38 +66,38 @@ $(function() {
 <a href="#pub-methods">Public Member Functions</a> &#124;
 <a href="#pub-attribs">Public Attributes</a> &#124;
 <a href="#pub-static-attribs">Static Public Attributes</a> &#124;
-<a href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1AssertFrameNode-members.html">List of all members</a>  </div>
+<a href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LetFrameNode-members.html">List of all members</a>  </div>
   <div class="headertitle">
-<div class="title">tvm::script::ir_builder::tir::AssertFrameNode Class Reference</div>  </div>
+<div class="title">tvm::script::ir_builder::tir::LetFrameNode Class Reference</div>  </div>
 </div><!--header-->
 <div class="contents">
 
-<p>A frame that represents the assert statement. Proceeds if the condition is true, otherwise aborts with the message.  
- <a href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1AssertFrameNode.html#details">More...</a></p>
+<p>A frame represents the let binding expression, which binds a var.  
+ <a href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LetFrameNode.html#details">More...</a></p>
 
 <p><code>#include &lt;<a class="el" href="ir__builder_2tir_2frame_8h_source.html">frame.h</a>&gt;</code></p>
 <div class="dynheader">
-Inheritance diagram for tvm::script::ir_builder::tir::AssertFrameNode:</div>
+Inheritance diagram for tvm::script::ir_builder::tir::LetFrameNode:</div>
 <div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1script_1_1ir__builder_1_1tir_1_1AssertFrameNode__inherit__graph.svg" width="290" height="1139"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
+<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LetFrameNode__inherit__graph.svg" width="290" height="1139"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
 </div>
 </div>
 <div class="dynheader">
-Collaboration diagram for tvm::script::ir_builder::tir::AssertFrameNode:</div>
+Collaboration diagram for tvm::script::ir_builder::tir::LetFrameNode:</div>
 <div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1script_1_1ir__builder_1_1tir_1_1AssertFrameNode__coll__graph.svg" width="692" height="1515"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
+<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LetFrameNode__coll__graph.svg" width="692" height="1715"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
 </div>
 </div>
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
 Public Member Functions</h2></td></tr>
-<tr class="memitem:a4a64aa6a7b28fe39ad7aa93e7710fd73"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1AssertFrameNode.html#a4a64aa6a7b28fe39ad7aa93e7710fd73">VisitAttrs</a> (<a class="el" href="classtvm_1_1AttrVisitor.html">tvm::AttrVisitor</a> *v)</td></tr>
-<tr class="separator:a4a64aa6a7b28fe39ad7aa93e7710fd73"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a504727ca3244bf3d89abfc07e0d48e13"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1AssertFrameNode.html#a504727ca3244bf3d89abfc07e0d48e13">TVM_DECLARE_FINAL_OBJECT_INFO</a> (<a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1AssertFrameNode.html">AssertFrameNode</a>, <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrameN [...]
-<tr class="separator:a504727ca3244bf3d89abfc07e0d48e13"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ad934bf1ff350bb1d57daafbe6588f53e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1AssertFrameNode.html#ad934bf1ff350bb1d57daafbe6588f53e">ExitWithScope</a> () final</td></tr>
-<tr class="memdesc:ad934bf1ff350bb1d57daafbe6588f53e"><td class="mdescLeft">&#160;</td><td class="mdescRight">The method called when exiting RAII scope.  <a href="#ad934bf1ff350bb1d57daafbe6588f53e">More...</a><br /></td></tr>
-<tr class="separator:ad934bf1ff350bb1d57daafbe6588f53e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af1edabed51a718c745406316a72dd6ce"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LetFrameNode.html#af1edabed51a718c745406316a72dd6ce">VisitAttrs</a> (<a class="el" href="classtvm_1_1AttrVisitor.html">tvm::AttrVisitor</a> *v)</td></tr>
+<tr class="separator:af1edabed51a718c745406316a72dd6ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8aa65728ebf532b4923db25f9d1727bf"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LetFrameNode.html#a8aa65728ebf532b4923db25f9d1727bf">TVM_DECLARE_FINAL_OBJECT_INFO</a> (<a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LetFrameNode.html">LetFrameNode</a>, <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrameNode.html" [...]
+<tr class="separator:a8aa65728ebf532b4923db25f9d1727bf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aae8b7c9383f7e0eb4ce7467094fcb06d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LetFrameNode.html#aae8b7c9383f7e0eb4ce7467094fcb06d">ExitWithScope</a> () final</td></tr>
+<tr class="memdesc:aae8b7c9383f7e0eb4ce7467094fcb06d"><td class="mdescLeft">&#160;</td><td class="mdescRight">The method called when exiting RAII scope.  <a href="#aae8b7c9383f7e0eb4ce7467094fcb06d">More...</a><br /></td></tr>
+<tr class="separator:aae8b7c9383f7e0eb4ce7467094fcb06d"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="inherit_header pub_methods_classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrameNode"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrameNode')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrameNode.html">tvm::script::ir_builder::tir::TIRFrameNode</a></td></tr>
 <tr class="memitem:a66267c80c4042b46ea86449d27dba61a inherit pub_methods_classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrameNode"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrameNode.html#a66267c80c4042b46ea86449d27dba61a">VisitAttrs</a> (<a class="el" href="classtvm_1_1AttrVisitor.html">tvm::AttrVisitor</a> *v)</td></tr>
 <tr class="separator:a66267c80c4042b46ea86449d27dba61a inherit pub_methods_classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrameNode"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -142,12 +142,12 @@ Public Member Functions</h2></td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
 Public Attributes</h2></td></tr>
-<tr class="memitem:ac12d20c9bd45d6f617e61d1f852325ff"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classtvm_1_1PrimExpr.html">PrimExpr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1AssertFrameNode.html#ac12d20c9bd45d6f617e61d1f852325ff">condition</a></td></tr>
-<tr class="memdesc:ac12d20c9bd45d6f617e61d1f852325ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">The <a class="el" href="classtvm_1_1PrimExpr.html" title="Reference to PrimExprNode. ">PrimExpr</a> to test.  <a href="#ac12d20c9bd45d6f617e61d1f852325ff">More...</a><br /></td></tr>
-<tr class="separator:ac12d20c9bd45d6f617e61d1f852325ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ac09145556c669b415d7ccfa3c67aa6da"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classtvm_1_1PrimExpr.html">PrimExpr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1AssertFrameNode.html#ac09145556c669b415d7ccfa3c67aa6da">message</a></td></tr>
-<tr class="memdesc:ac09145556c669b415d7ccfa3c67aa6da"><td class="mdescLeft">&#160;</td><td class="mdescRight">The output error message when the assertion failed.  <a href="#ac09145556c669b415d7ccfa3c67aa6da">More...</a><br /></td></tr>
-<tr class="separator:ac09145556c669b415d7ccfa3c67aa6da"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a577f5b237edd4964c212d403b1c95a53"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classtvm_1_1tir_1_1Var.html">tvm::tir::Var</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LetFrameNode.html#a577f5b237edd4964c212d403b1c95a53">var</a></td></tr>
+<tr class="memdesc:a577f5b237edd4964c212d403b1c95a53"><td class="mdescLeft">&#160;</td><td class="mdescRight">The variable we bind to.  <a href="#a577f5b237edd4964c212d403b1c95a53">More...</a><br /></td></tr>
+<tr class="separator:a577f5b237edd4964c212d403b1c95a53"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7132dd30d5a95951e88fec504d8fb314"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classtvm_1_1PrimExpr.html">PrimExpr</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LetFrameNode.html#a7132dd30d5a95951e88fec504d8fb314">value</a></td></tr>
+<tr class="memdesc:a7132dd30d5a95951e88fec504d8fb314"><td class="mdescLeft">&#160;</td><td class="mdescRight">The value we bind var to.  <a href="#a7132dd30d5a95951e88fec504d8fb314">More...</a><br /></td></tr>
+<tr class="separator:a7132dd30d5a95951e88fec504d8fb314"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="inherit_header pub_attribs_classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrameNode"><td colspan="2" onclick="javascript:toggleInherit('pub_attribs_classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrameNode')"><img src="closed.png" alt="-"/>&#160;Public Attributes inherited from <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrameNode.html">tvm::script::ir_builder::tir::TIRFrameNode</a></td></tr>
 <tr class="memitem:a13776bb5c2e5403138fbee06d4fdad40 inherit pub_attribs_classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrameNode"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classtvm_1_1runtime_1_1Array.html">Array</a>&lt; <a class="el" href="classtvm_1_1tir_1_1Stmt.html">tvm::tir::Stmt</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrameNode.html#a13776bb5c2e5403138fbee06d4fdad40" [...]
 <tr class="memdesc:a13776bb5c2e5403138fbee06d4fdad40 inherit pub_attribs_classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrameNode"><td class="mdescLeft">&#160;</td><td class="mdescRight">The Stmt within in this frame.  <a href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrameNode.html#a13776bb5c2e5403138fbee06d4fdad40">More...</a><br /></td></tr>
@@ -159,8 +159,8 @@ Public Attributes</h2></td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-attribs"></a>
 Static Public Attributes</h2></td></tr>
-<tr class="memitem:aed11d15aed07834b8783aca42dbcb4bd"><td class="memItemLeft" align="right" valign="top">static constexpr const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1AssertFrameNode.html#aed11d15aed07834b8783aca42dbcb4bd">_type_key</a> = &quot;script.ir_builder.tir.AssertFrame&quot;</td></tr>
-<tr class="separator:aed11d15aed07834b8783aca42dbcb4bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8e108e4bf7afb969f6704f7dc8196c5b"><td class="memItemLeft" align="right" valign="top">static constexpr const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LetFrameNode.html#a8e108e4bf7afb969f6704f7dc8196c5b">_type_key</a> = &quot;script.ir_builder.tir.LetFrame&quot;</td></tr>
+<tr class="separator:a8e108e4bf7afb969f6704f7dc8196c5b"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="inherit_header pub_static_attribs_classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrameNode"><td colspan="2" onclick="javascript:toggleInherit('pub_static_attribs_classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrameNode')"><img src="closed.png" alt="-"/>&#160;Static Public Attributes inherited from <a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrameNode.html">tvm::script::ir_builder::tir::TIRFrameNode</a></td></tr>
 <tr class="memitem:adbdac768a6410779001c35b40141ab51 inherit pub_static_attribs_classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrameNode"><td class="memItemLeft" align="right" valign="top">static constexpr const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrameNode.html#adbdac768a6410779001c35b40141ab51">_type_key</a> = &quot;script.ir_builder.tir.TIRFrame&quot;</td></tr>
 <tr class="separator:adbdac768a6410779001c35b40141ab51 inherit pub_static_attribs_classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrameNode"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -230,11 +230,11 @@ Additional Inherited Members</h2></td></tr>
 <tr class="separator:af4407d2b59132e803ff791482dbe0145 inherit pro_attribs_classtvm_1_1runtime_1_1Object"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>A frame that represents the assert statement. Proceeds if the condition is true, otherwise aborts with the message. </p>
-<dl class="section see"><dt>See also</dt><dd>AssertFrame </dd></dl>
+<div class="textblock"><p>A frame represents the let binding expression, which binds a var. </p>
+<dl class="section see"><dt>See also</dt><dd><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LetFrameNode.html" title="A frame represents the let binding expression, which binds a var. ">LetFrameNode</a> </dd></dl>
 </div><h2 class="groupheader">Member Function Documentation</h2>
-<a id="ad934bf1ff350bb1d57daafbe6588f53e"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ad934bf1ff350bb1d57daafbe6588f53e">&#9670;&nbsp;</a></span>ExitWithScope()</h2>
+<a id="aae8b7c9383f7e0eb4ce7467094fcb06d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aae8b7c9383f7e0eb4ce7467094fcb06d">&#9670;&nbsp;</a></span>ExitWithScope()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -243,7 +243,7 @@ Additional Inherited Members</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname">void tvm::script::ir_builder::tir::AssertFrameNode::ExitWithScope </td>
+          <td class="memname">void tvm::script::ir_builder::tir::LetFrameNode::ExitWithScope </td>
           <td>(</td>
           <td class="paramname"></td><td>)</td>
           <td></td>
@@ -263,16 +263,16 @@ Additional Inherited Members</h2></td></tr>
 
 </div>
 </div>
-<a id="a504727ca3244bf3d89abfc07e0d48e13"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a504727ca3244bf3d89abfc07e0d48e13">&#9670;&nbsp;</a></span>TVM_DECLARE_FINAL_OBJECT_INFO()</h2>
+<a id="a8aa65728ebf532b4923db25f9d1727bf"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8aa65728ebf532b4923db25f9d1727bf">&#9670;&nbsp;</a></span>TVM_DECLARE_FINAL_OBJECT_INFO()</h2>
 
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">tvm::script::ir_builder::tir::AssertFrameNode::TVM_DECLARE_FINAL_OBJECT_INFO </td>
+          <td class="memname">tvm::script::ir_builder::tir::LetFrameNode::TVM_DECLARE_FINAL_OBJECT_INFO </td>
           <td>(</td>
-          <td class="paramtype"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1AssertFrameNode.html">AssertFrameNode</a>&#160;</td>
+          <td class="paramtype"><a class="el" href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1LetFrameNode.html">LetFrameNode</a>&#160;</td>
           <td class="paramname">, </td>
         </tr>
         <tr>
@@ -291,8 +291,8 @@ Additional Inherited Members</h2></td></tr>
 
 </div>
 </div>
-<a id="a4a64aa6a7b28fe39ad7aa93e7710fd73"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a4a64aa6a7b28fe39ad7aa93e7710fd73">&#9670;&nbsp;</a></span>VisitAttrs()</h2>
+<a id="af1edabed51a718c745406316a72dd6ce"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af1edabed51a718c745406316a72dd6ce">&#9670;&nbsp;</a></span>VisitAttrs()</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -301,7 +301,7 @@ Additional Inherited Members</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname">void tvm::script::ir_builder::tir::AssertFrameNode::VisitAttrs </td>
+          <td class="memname">void tvm::script::ir_builder::tir::LetFrameNode::VisitAttrs </td>
           <td>(</td>
           <td class="paramtype"><a class="el" href="classtvm_1_1AttrVisitor.html">tvm::AttrVisitor</a> *&#160;</td>
           <td class="paramname"><em>v</em></td><td>)</td>
@@ -318,8 +318,8 @@ Additional Inherited Members</h2></td></tr>
 </div>
 </div>
 <h2 class="groupheader">Member Data Documentation</h2>
-<a id="aed11d15aed07834b8783aca42dbcb4bd"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#aed11d15aed07834b8783aca42dbcb4bd">&#9670;&nbsp;</a></span>_type_key</h2>
+<a id="a8e108e4bf7afb969f6704f7dc8196c5b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8e108e4bf7afb969f6704f7dc8196c5b">&#9670;&nbsp;</a></span>_type_key</h2>
 
 <div class="memitem">
 <div class="memproto">
@@ -328,7 +328,7 @@ Additional Inherited Members</h2></td></tr>
   <td class="mlabels-left">
       <table class="memname">
         <tr>
-          <td class="memname">constexpr const char* tvm::script::ir_builder::tir::AssertFrameNode::_type_key = &quot;script.ir_builder.tir.AssertFrame&quot;</td>
+          <td class="memname">constexpr const char* tvm::script::ir_builder::tir::LetFrameNode::_type_key = &quot;script.ir_builder.tir.LetFrame&quot;</td>
         </tr>
       </table>
   </td>
@@ -340,35 +340,35 @@ Additional Inherited Members</h2></td></tr>
 
 </div>
 </div>
-<a id="ac12d20c9bd45d6f617e61d1f852325ff"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ac12d20c9bd45d6f617e61d1f852325ff">&#9670;&nbsp;</a></span>condition</h2>
+<a id="a7132dd30d5a95951e88fec504d8fb314"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7132dd30d5a95951e88fec504d8fb314">&#9670;&nbsp;</a></span>value</h2>
 
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="classtvm_1_1PrimExpr.html">PrimExpr</a> tvm::script::ir_builder::tir::AssertFrameNode::condition</td>
+          <td class="memname"><a class="el" href="classtvm_1_1PrimExpr.html">PrimExpr</a> tvm::script::ir_builder::tir::LetFrameNode::value</td>
         </tr>
       </table>
 </div><div class="memdoc">
 
-<p>The <a class="el" href="classtvm_1_1PrimExpr.html" title="Reference to PrimExprNode. ">PrimExpr</a> to test. </p>
+<p>The value we bind var to. </p>
 
 </div>
 </div>
-<a id="ac09145556c669b415d7ccfa3c67aa6da"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ac09145556c669b415d7ccfa3c67aa6da">&#9670;&nbsp;</a></span>message</h2>
+<a id="a577f5b237edd4964c212d403b1c95a53"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a577f5b237edd4964c212d403b1c95a53">&#9670;&nbsp;</a></span>var</h2>
 
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="classtvm_1_1PrimExpr.html">PrimExpr</a> tvm::script::ir_builder::tir::AssertFrameNode::message</td>
+          <td class="memname"><a class="el" href="classtvm_1_1tir_1_1Var.html">tvm::tir::Var</a> tvm::script::ir_builder::tir::LetFrameNode::var</td>
         </tr>
       </table>
 </div><div class="memdoc">
 
-<p>The output error message when the assertion failed. </p>
+<p>The variable we bind to. </p>
 
 </div>
 </div>
diff --git a/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1LetFrameNode__coll__graph.svg b/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1LetFrameNode__coll__graph.svg
new file mode 100644
index 000000000..674288c08
--- /dev/null
+++ b/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1LetFrameNode__coll__graph.svg
@@ -0,0 +1,307 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.40.1 (20161225.0304)
+ -->
+<!-- Title: tvm::script::ir_builder::tir::LetFrameNode Pages: 1 -->
+<svg width="519pt" height="1286pt"
+ viewBox="0.00 0.00 518.50 1286.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1282)">
+<title>tvm::script::ir_builder::tir::LetFrameNode</title>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-1282 514.5,-1282 514.5,4 -4,4"/>
+<!-- Node4 -->
+<g id="node1" class="node">
+<title>Node4</title>
+<polygon fill="#bfbfbf" stroke="#000000" points="213,-.5 213,-90.5 422,-90.5 422,-.5 213,-.5"/>
+<text text-anchor="start" x="221" y="-78.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::ir_builder</text>
+<text text-anchor="middle" x="317.5" y="-67.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::tir::LetFrameNode</text>
+<polyline fill="none" stroke="#000000" points="213,-60.5 422,-60.5 "/>
+<text text-anchor="start" x="221" y="-48.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_key</text>
+<polyline fill="none" stroke="#000000" points="213,-41.5 422,-41.5 "/>
+<text text-anchor="start" x="221" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ VisitAttrs()</text>
+<text text-anchor="start" x="221" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DECLARE_FINAL_OBJECT_INFO()</text>
+<text text-anchor="start" x="221" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ExitWithScope()</text>
+</g>
+<!-- Node5 -->
+<g id="node2" class="node">
+<title>Node5</title>
+<g id="a_node2"><a xlink:href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrameNode.html" target="_top" xlink:title="A base frame that represents the TIR fame with body of statements. ">
+<polygon fill="#ffffff" stroke="#000000" points="131,-310.5 131,-389.5 338,-389.5 338,-310.5 131,-310.5"/>
+<text text-anchor="start" x="139" y="-377.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::ir_builder</text>
+<text text-anchor="middle" x="234.5" y="-366.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::tir::TIRFrameNode</text>
+<polyline fill="none" stroke="#000000" points="131,-359.5 338,-359.5 "/>
+<text text-anchor="start" x="139" y="-347.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_key</text>
+<polyline fill="none" stroke="#000000" points="131,-340.5 338,-340.5 "/>
+<text text-anchor="start" x="139" y="-328.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ VisitAttrs()</text>
+<text text-anchor="start" x="139" y="-317.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DECLARE_BASE_OBJECT_INFO()</text>
+</a>
+</g>
+</g>
+<!-- Node5&#45;&gt;Node4 -->
+<g id="edge1" class="edge">
+<title>Node5&#45;&gt;Node4</title>
+<path fill="none" stroke="#191970" d="M247.9956,-300.4891C263.8493,-242.3268 289.9247,-146.6648 305.2286,-90.5196"/>
+<polygon fill="none" stroke="#191970" points="244.6039,-299.6235 245.3508,-310.1919 251.3575,-301.4644 244.6039,-299.6235"/>
+</g>
+<!-- Node6 -->
+<g id="node3" class="node">
+<title>Node6</title>
+<g id="a_node3"><a xlink:href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrameNode.html" target="_top" xlink:title="{tvm::script::ir_builder\l::IRBuilderFrameNode\n|+ callbacks\l+ _type_key\l|+ VisitAttrs()\l+ TVM_DECLARE_BASE_OBJECT_INFO()\l+ ~IRBuilderFrameNode()\l+ EnterWithScope()\l+ ExitWithScope()\l+ AddCallback()\l}">
+<polygon fill="#ffffff" stroke="#000000" points="0,-470.5 0,-604.5 207,-604.5 207,-470.5 0,-470.5"/>
+<text text-anchor="start" x="8" y="-592.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::ir_builder</text>
+<text text-anchor="middle" x="103.5" y="-581.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::IRBuilderFrameNode</text>
+<polyline fill="none" stroke="#000000" points="0,-574.5 207,-574.5 "/>
+<text text-anchor="start" x="8" y="-562.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ callbacks</text>
+<text text-anchor="start" x="8" y="-551.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_key</text>
+<polyline fill="none" stroke="#000000" points="0,-544.5 207,-544.5 "/>
+<text text-anchor="start" x="8" y="-532.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ VisitAttrs()</text>
+<text text-anchor="start" x="8" y="-521.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DECLARE_BASE_OBJECT_INFO()</text>
+<text text-anchor="start" x="8" y="-510.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ~IRBuilderFrameNode()</text>
+<text text-anchor="start" x="8" y="-499.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ EnterWithScope()</text>
+<text text-anchor="start" x="8" y="-488.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ExitWithScope()</text>
+<text text-anchor="start" x="8" y="-477.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ AddCallback()</text>
+</a>
+</g>
+</g>
+<!-- Node6&#45;&gt;Node5 -->
+<g id="edge2" class="edge">
+<title>Node6&#45;&gt;Node5</title>
+<path fill="none" stroke="#191970" d="M156.2349,-462.0207C173.5307,-437.2652 192.062,-410.7414 206.7489,-389.72"/>
+<polygon fill="none" stroke="#191970" points="153.2822,-460.1358 150.424,-470.3378 159.0204,-464.1449 153.2822,-460.1358"/>
+</g>
+<!-- Node7 -->
+<g id="node4" class="node">
+<title>Node7</title>
+<g id="a_node4"><a xlink:href="classtvm_1_1runtime_1_1Object.html" target="_top" xlink:title="base class of all object containers. ">
+<polygon fill="#ffffff" stroke="#000000" points="12,-664.5 12,-1051.5 195,-1051.5 195,-664.5 12,-664.5"/>
+<text text-anchor="middle" x="103.5" y="-1039.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Object</text>
+<polyline fill="none" stroke="#000000" points="12,-1032.5 195,-1032.5 "/>
+<text text-anchor="start" x="20" y="-1020.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_key</text>
+<text text-anchor="start" x="20" y="-1009.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_final</text>
+<text text-anchor="start" x="20" y="-998.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_child_slots</text>
+<text text-anchor="start" x="20" y="-987.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_child_slots_can</text>
+<text text-anchor="start" x="20" y="-976.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_overflow</text>
+<text text-anchor="start" x="20" y="-965.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_has_method_visit</text>
+<text text-anchor="start" x="20" y="-954.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_attrs</text>
+<text text-anchor="start" x="20" y="-943.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_has_method_sequal</text>
+<text text-anchor="start" x="20" y="-932.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_reduce</text>
+<text text-anchor="start" x="20" y="-921.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_has_method_shash</text>
+<text text-anchor="start" x="20" y="-910.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_reduce</text>
+<text text-anchor="start" x="20" y="-899.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_index</text>
+<text text-anchor="start" x="20" y="-888.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># type_index_</text>
+<text text-anchor="start" x="20" y="-877.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># ref_counter_</text>
+<polyline fill="none" stroke="#000000" points="12,-870.5 195,-870.5 "/>
+<text text-anchor="start" x="20" y="-858.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ type_index()</text>
+<text text-anchor="start" x="20" y="-847.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ GetTypeKey()</text>
+<text text-anchor="start" x="20" y="-836.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ GetTypeKeyHash()</text>
+<text text-anchor="start" x="20" y="-825.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ IsInstance()</text>
+<text text-anchor="start" x="20" y="-814.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ unique()</text>
+<text text-anchor="start" x="20" y="-803.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Object()</text>
+<text text-anchor="start" x="20" y="-792.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Object()</text>
+<text text-anchor="start" x="20" y="-781.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Object()</text>
+<text text-anchor="start" x="20" y="-770.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
+<text text-anchor="start" x="20" y="-759.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
+<text text-anchor="start" x="20" y="-748.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TypeIndex2Key()</text>
+<text text-anchor="start" x="20" y="-737.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TypeIndex2KeyHash()</text>
+<text text-anchor="start" x="20" y="-726.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TypeKey2Index()</text>
+<text text-anchor="start" x="20" y="-715.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _GetOrAllocRuntimeTypeIndex()</text>
+<text text-anchor="start" x="20" y="-704.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ RuntimeTypeIndex()</text>
+<text text-anchor="start" x="20" y="-693.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># IncRef()</text>
+<text text-anchor="start" x="20" y="-682.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># DecRef()</text>
+<text text-anchor="start" x="20" y="-671.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># GetOrAllocRuntimeTypeIndex()</text>
+</a>
+</g>
+</g>
+<!-- Node7&#45;&gt;Node6 -->
+<g id="edge3" class="edge">
+<title>Node7&#45;&gt;Node6</title>
+<path fill="none" stroke="#191970" d="M103.5,-653.7972C103.5,-636.3163 103.5,-619.5917 103.5,-604.547"/>
+<polygon fill="none" stroke="#191970" points="100.0001,-654.1701 103.5,-664.1701 107.0001,-654.1701 100.0001,-654.1701"/>
+</g>
+<!-- Node7&#45;&gt;Node7 -->
+<g id="edge4" class="edge">
+<title>Node7&#45;&gt;Node7</title>
+<path fill="none" stroke="#404040" d="M195.3625,-891.9248C206.0482,-885.6637 213,-874.3555 213,-858 213,-847.0112 209.8618,-838.3007 204.5615,-831.8687"/>
+<polygon fill="none" stroke="#404040" points="204.5184,-831.8322 197.3548,-831.0056 195.3625,-824.0752 202.5261,-824.9017 204.5184,-831.8322"/>
+<text text-anchor="middle" x="239" y="-855.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> #deleter_</text>
+</g>
+<!-- Node8 -->
+<g id="node5" class="node">
+<title>Node8</title>
+<g id="a_node5"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title="{tvm::runtime::Array\l\&lt; tvm::tir::Stmt \&gt;\n||+ Array()\l+ Array()\l+ Array()\l+ Array()\l+ Array()\l+ Array()\l+ Array()\l+ Array()\l+ operator=()\l+ operator=()\land 24 more...\l}">
+<polygon fill="#ffffff" stroke="#000000" points="225,-448.5 225,-626.5 338,-626.5 338,-448.5 225,-448.5"/>
+<text text-anchor="start" x="233" y="-614.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Array</text>
+<text text-anchor="middle" x="281.5" y="-603.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::tir::Stmt &gt;</text>
+<polyline fill="none" stroke="#000000" points="225,-596.5 338,-596.5 "/>
+<text text-anchor="middle" x="281.5" y="-584.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="225,-577.5 338,-577.5 "/>
+<text text-anchor="start" x="233" y="-565.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
+<text text-anchor="start" x="233" y="-554.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
+<text text-anchor="start" x="233" y="-543.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
+<text text-anchor="start" x="233" y="-532.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
+<text text-anchor="start" x="233" y="-521.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
+<text text-anchor="start" x="233" y="-510.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
+<text text-anchor="start" x="233" y="-499.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
+<text text-anchor="start" x="233" y="-488.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Array()</text>
+<text text-anchor="start" x="233" y="-477.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
+<text text-anchor="start" x="233" y="-466.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator=()</text>
+<text text-anchor="start" x="233" y="-455.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 24 more...</text>
+</a>
+</g>
+</g>
+<!-- Node8&#45;&gt;Node5 -->
+<g id="edge5" class="edge">
+<title>Node8&#45;&gt;Node5</title>
+<path fill="none" stroke="#404040" d="M259.17,-448.4175C255.1361,-432.3249 251.0562,-416.0486 247.4072,-401.4913"/>
+<polygon fill="none" stroke="#404040" points="247.3716,-401.3492 242.0327,-396.5018 244.4538,-389.7093 249.7927,-394.5566 247.3716,-401.3492"/>
+<text text-anchor="middle" x="273.5" y="-422" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +stmts</text>
+</g>
+<!-- Node9 -->
+<g id="node6" class="node">
+<title>Node9</title>
+<g id="a_node6"><a xlink:href="classtvm_1_1runtime_1_1ObjectRef.html" target="_top" xlink:title="Base class of all object reference. ">
+<polygon fill="#ffffff" stroke="#000000" points="324.5,-747 324.5,-969 458.5,-969 458.5,-747 324.5,-747"/>
+<text text-anchor="middle" x="391.5" y="-957" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectRef</text>
+<polyline fill="none" stroke="#000000" points="324.5,-950 458.5,-950 "/>
+<text text-anchor="start" x="332.5" y="-938" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_is_nullable</text>
+<polyline fill="none" stroke="#000000" points="324.5,-931 458.5,-931 "/>
+<text text-anchor="start" x="332.5" y="-919" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
+<text text-anchor="start" x="332.5" y="-908" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectRef()</text>
+<text text-anchor="start" x="332.5" y="-897" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ same_as()</text>
+<text text-anchor="start" x="332.5" y="-886" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator==()</text>
+<text text-anchor="start" x="332.5" y="-875" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator!=()</text>
+<text text-anchor="start" x="332.5" y="-864" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&lt;()</text>
+<text text-anchor="start" x="332.5" y="-853" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ defined()</text>
+<text text-anchor="start" x="332.5" y="-842" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
+<text text-anchor="start" x="332.5" y="-831" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&#45;&gt;()</text>
+<text text-anchor="start" x="332.5" y="-820" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ unique()</text>
+<text text-anchor="start" x="332.5" y="-809" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ use_count()</text>
+<text text-anchor="start" x="332.5" y="-798" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ as()</text>
+<text text-anchor="start" x="332.5" y="-787" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># get_mutable()</text>
+<text text-anchor="start" x="332.5" y="-776" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># DowncastNoCheck()</text>
+<text text-anchor="start" x="332.5" y="-765" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># FFIClearAfterMove()</text>
+<text text-anchor="start" x="332.5" y="-754" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># GetDataPtr()</text>
+</a>
+</g>
+</g>
+<!-- Node9&#45;&gt;Node8 -->
+<g id="edge6" class="edge">
+<title>Node9&#45;&gt;Node8</title>
+<path fill="none" stroke="#191970" d="M349.9865,-737.0448C337.3948,-700.3571 323.798,-660.7409 312.0638,-626.5518"/>
+<polygon fill="none" stroke="#191970" points="346.7793,-738.4819 353.336,-746.8041 353.4002,-736.2095 346.7793,-738.4819"/>
+</g>
+<!-- Node13 -->
+<g id="node10" class="node">
+<title>Node13</title>
+<g id="a_node10"><a xlink:href="classtvm_1_1BaseExpr.html" target="_top" xlink:title="Managed reference to BaseExprNode. ">
+<polygon fill="#ffffff" stroke="#000000" points="356.5,-503.5 356.5,-571.5 510.5,-571.5 510.5,-503.5 356.5,-503.5"/>
+<text text-anchor="middle" x="433.5" y="-559.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::BaseExpr</text>
+<polyline fill="none" stroke="#000000" points="356.5,-552.5 510.5,-552.5 "/>
+<text text-anchor="middle" x="433.5" y="-540.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="356.5,-533.5 510.5,-533.5 "/>
+<text text-anchor="start" x="364.5" y="-521.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="364.5" y="-510.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
+</a>
+</g>
+</g>
+<!-- Node9&#45;&gt;Node13 -->
+<g id="edge11" class="edge">
+<title>Node9&#45;&gt;Node13</title>
+<path fill="none" stroke="#191970" d="M407.4049,-736.6302C415.149,-677.5356 423.8769,-610.9337 429.0208,-571.6805"/>
+<polygon fill="none" stroke="#191970" points="403.9008,-736.4341 406.0717,-746.8041 410.8414,-737.3437 403.9008,-736.4341"/>
+</g>
+<!-- Node10 -->
+<g id="node7" class="node">
+<title>Node10</title>
+<g id="a_node7"><a xlink:href="classtvm_1_1runtime_1_1ObjectPtr.html" target="_top" xlink:title="{tvm::runtime::ObjectPtr\l\&lt; tvm::runtime::Object \&gt;\n||+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ObjectPtr()\l+ ~ObjectPtr()\l+ swap()\l+ get()\l+ operator&#45;\&gt;()\land 11 more...\l}">
+<polygon fill="#ffffff" stroke="#000000" points="321.5,-1099.5 321.5,-1277.5 461.5,-1277.5 461.5,-1099.5 321.5,-1099.5"/>
+<text text-anchor="start" x="329.5" y="-1265.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::ObjectPtr</text>
+<text text-anchor="middle" x="391.5" y="-1254.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">&lt; tvm::runtime::Object &gt;</text>
+<polyline fill="none" stroke="#000000" points="321.5,-1247.5 461.5,-1247.5 "/>
+<text text-anchor="middle" x="391.5" y="-1235.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="321.5,-1228.5 461.5,-1228.5 "/>
+<text text-anchor="start" x="329.5" y="-1216.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
+<text text-anchor="start" x="329.5" y="-1205.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
+<text text-anchor="start" x="329.5" y="-1194.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
+<text text-anchor="start" x="329.5" y="-1183.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
+<text text-anchor="start" x="329.5" y="-1172.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
+<text text-anchor="start" x="329.5" y="-1161.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ObjectPtr()</text>
+<text text-anchor="start" x="329.5" y="-1150.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ~ObjectPtr()</text>
+<text text-anchor="start" x="329.5" y="-1139.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ swap()</text>
+<text text-anchor="start" x="329.5" y="-1128.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
+<text text-anchor="start" x="329.5" y="-1117.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&#45;&gt;()</text>
+<text text-anchor="start" x="329.5" y="-1106.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">and 11 more...</text>
+</a>
+</g>
+</g>
+<!-- Node10&#45;&gt;Node9 -->
+<g id="edge7" class="edge">
+<title>Node10&#45;&gt;Node9</title>
+<path fill="none" stroke="#404040" d="M391.5,-1099.4973C391.5,-1063.1115 391.5,-1020.409 391.5,-981.1129"/>
+<polygon fill="none" stroke="#404040" points="391.5001,-981.0376 387.5,-975.0377 391.5,-969.0376 395.5,-975.0376 391.5001,-981.0376"/>
+<text text-anchor="middle" x="411" y="-1073" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> #data_</text>
+</g>
+<!-- Node11 -->
+<g id="node8" class="node">
+<title>Node11</title>
+<g id="a_node8"><a xlink:href="classtvm_1_1tir_1_1Var.html" target="_top" xlink:title="a named variable in TIR ">
+<polygon fill="#ffffff" stroke="#000000" points="374.5,-138.5 374.5,-261.5 492.5,-261.5 492.5,-138.5 374.5,-138.5"/>
+<text text-anchor="middle" x="433.5" y="-249.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::tir::Var</text>
+<polyline fill="none" stroke="#000000" points="374.5,-242.5 492.5,-242.5 "/>
+<text text-anchor="middle" x="433.5" y="-230.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="374.5,-223.5 492.5,-223.5 "/>
+<text text-anchor="start" x="382.5" y="-211.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Var()</text>
+<text text-anchor="start" x="382.5" y="-200.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Var()</text>
+<text text-anchor="start" x="382.5" y="-189.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Var()</text>
+<text text-anchor="start" x="382.5" y="-178.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ copy_with_suffix()</text>
+<text text-anchor="start" x="382.5" y="-167.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ copy_with_dtype()</text>
+<text text-anchor="start" x="382.5" y="-156.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ operator&#45;&gt;()</text>
+<text text-anchor="start" x="382.5" y="-145.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ get()</text>
+</a>
+</g>
+</g>
+<!-- Node11&#45;&gt;Node4 -->
+<g id="edge8" class="edge">
+<title>Node11&#45;&gt;Node4</title>
+<path fill="none" stroke="#404040" d="M387.3204,-138.4936C377.8482,-125.8776 367.9367,-112.6765 358.6554,-100.3147"/>
+<polygon fill="none" stroke="#404040" points="358.5725,-100.2043 351.7712,-97.8078 351.3675,-90.608 358.1688,-93.0045 358.5725,-100.2043"/>
+<text text-anchor="middle" x="385.5" y="-112" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +var</text>
+</g>
+<!-- Node12 -->
+<g id="node9" class="node">
+<title>Node12</title>
+<g id="a_node9"><a xlink:href="classtvm_1_1PrimExpr.html" target="_top" xlink:title="Reference to PrimExprNode. ">
+<polygon fill="#ffffff" stroke="#000000" points="356.5,-299.5 356.5,-400.5 510.5,-400.5 510.5,-299.5 356.5,-299.5"/>
+<text text-anchor="middle" x="433.5" y="-388.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::PrimExpr</text>
+<polyline fill="none" stroke="#000000" points="356.5,-381.5 510.5,-381.5 "/>
+<text text-anchor="middle" x="433.5" y="-369.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> </text>
+<polyline fill="none" stroke="#000000" points="356.5,-362.5 510.5,-362.5 "/>
+<text text-anchor="start" x="364.5" y="-350.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PrimExpr()</text>
+<text text-anchor="start" x="364.5" y="-339.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ PrimExpr()</text>
+<text text-anchor="start" x="364.5" y="-328.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ dtype()</text>
+<text text-anchor="start" x="364.5" y="-317.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="364.5" y="-306.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_METHODS()</text>
+</a>
+</g>
+</g>
+<!-- Node12&#45;&gt;Node4 -->
+<g id="edge12" class="edge">
+<title>Node12&#45;&gt;Node4</title>
+<path fill="none" stroke="#404040" d="M356.3974,-300.5155C344.4361,-289.3272 333.6835,-276.4251 326.5,-262 301.8452,-212.4912 302.5405,-148.4423 307.6004,-102.8829"/>
+<polygon fill="none" stroke="#404040" points="307.6163,-102.753 304.3813,-96.3083 309.0861,-90.8433 312.3211,-97.2881 307.6163,-102.753"/>
+<text text-anchor="middle" x="346" y="-197.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"> +value</text>
+</g>
+<!-- Node12&#45;&gt;Node11 -->
+<g id="edge9" class="edge">
+<title>Node12&#45;&gt;Node11</title>
+<path fill="none" stroke="#191970" d="M433.5,-289.1359C433.5,-280.0734 433.5,-270.7251 433.5,-261.6466"/>
+<polygon fill="none" stroke="#191970" points="430.0001,-289.2168 433.5,-299.2168 437.0001,-289.2169 430.0001,-289.2168"/>
+</g>
+<!-- Node13&#45;&gt;Node12 -->
+<g id="edge10" class="edge">
+<title>Node13&#45;&gt;Node12</title>
+<path fill="none" stroke="#191970" d="M433.5,-492.9201C433.5,-465.2335 433.5,-429.567 433.5,-400.7904"/>
+<polygon fill="none" stroke="#191970" points="430.0001,-493.1096 433.5,-503.1096 437.0001,-493.1096 430.0001,-493.1096"/>
+</g>
+</g>
+</svg>
diff --git a/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1LetFrameNode__inherit__graph.svg b/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1LetFrameNode__inherit__graph.svg
new file mode 100644
index 000000000..19a3c15d4
--- /dev/null
+++ b/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1LetFrameNode__inherit__graph.svg
@@ -0,0 +1,126 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<!-- Generated by graphviz version 2.40.1 (20161225.0304)
+ -->
+<!-- Title: tvm::script::ir_builder::tir::LetFrameNode Pages: 1 -->
+<svg width="217pt" height="854pt"
+ viewBox="0.00 0.00 217.00 854.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 850)">
+<title>tvm::script::ir_builder::tir::LetFrameNode</title>
+<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-850 213,-850 213,4 -4,4"/>
+<!-- Node0 -->
+<g id="node1" class="node">
+<title>Node0</title>
+<polygon fill="#bfbfbf" stroke="#000000" points="0,-.5 0,-112.5 209,-112.5 209,-.5 0,-.5"/>
+<text text-anchor="start" x="8" y="-100.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::ir_builder</text>
+<text text-anchor="middle" x="104.5" y="-89.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::tir::LetFrameNode</text>
+<polyline fill="none" stroke="#000000" points="0,-82.5 209,-82.5 "/>
+<text text-anchor="start" x="8" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ var</text>
+<text text-anchor="start" x="8" y="-59.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ value</text>
+<text text-anchor="start" x="8" y="-48.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_key</text>
+<polyline fill="none" stroke="#000000" points="0,-41.5 209,-41.5 "/>
+<text text-anchor="start" x="8" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ VisitAttrs()</text>
+<text text-anchor="start" x="8" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DECLARE_FINAL_OBJECT_INFO()</text>
+<text text-anchor="start" x="8" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ExitWithScope()</text>
+</g>
+<!-- Node1 -->
+<g id="node2" class="node">
+<title>Node1</title>
+<g id="a_node2"><a xlink:href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrameNode.html" target="_top" xlink:title="A base frame that represents the TIR fame with body of statements. ">
+<polygon fill="#ffffff" stroke="#000000" points="1,-149.5 1,-239.5 208,-239.5 208,-149.5 1,-149.5"/>
+<text text-anchor="start" x="9" y="-227.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::ir_builder</text>
+<text text-anchor="middle" x="104.5" y="-216.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::tir::TIRFrameNode</text>
+<polyline fill="none" stroke="#000000" points="1,-209.5 208,-209.5 "/>
+<text text-anchor="start" x="9" y="-197.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ stmts</text>
+<text text-anchor="start" x="9" y="-186.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_key</text>
+<polyline fill="none" stroke="#000000" points="1,-179.5 208,-179.5 "/>
+<text text-anchor="start" x="9" y="-167.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ VisitAttrs()</text>
+<text text-anchor="start" x="9" y="-156.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DECLARE_BASE_OBJECT_INFO()</text>
+</a>
+</g>
+</g>
+<!-- Node1&#45;&gt;Node0 -->
+<g id="edge1" class="edge">
+<title>Node1&#45;&gt;Node0</title>
+<path fill="none" stroke="#191970" d="M104.5,-139.2882C104.5,-130.5993 104.5,-121.6063 104.5,-112.8911"/>
+<polygon fill="none" stroke="#191970" points="101.0001,-139.3136 104.5,-149.3136 108.0001,-139.3137 101.0001,-139.3136"/>
+</g>
+<!-- Node2 -->
+<g id="node3" class="node">
+<title>Node2</title>
+<g id="a_node3"><a xlink:href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrameNode.html" target="_top" xlink:title="{tvm::script::ir_builder\l::IRBuilderFrameNode\n|+ callbacks\l+ _type_key\l|+ VisitAttrs()\l+ TVM_DECLARE_BASE_OBJECT_INFO()\l+ ~IRBuilderFrameNode()\l+ EnterWithScope()\l+ ExitWithScope()\l+ AddCallback()\l}">
+<polygon fill="#ffffff" stroke="#000000" points="1,-276.5 1,-410.5 208,-410.5 208,-276.5 1,-276.5"/>
+<text text-anchor="start" x="9" y="-398.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::script::ir_builder</text>
+<text text-anchor="middle" x="104.5" y="-387.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">::IRBuilderFrameNode</text>
+<polyline fill="none" stroke="#000000" points="1,-380.5 208,-380.5 "/>
+<text text-anchor="start" x="9" y="-368.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ callbacks</text>
+<text text-anchor="start" x="9" y="-357.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_key</text>
+<polyline fill="none" stroke="#000000" points="1,-350.5 208,-350.5 "/>
+<text text-anchor="start" x="9" y="-338.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ VisitAttrs()</text>
+<text text-anchor="start" x="9" y="-327.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ TVM_DECLARE_BASE_OBJECT_INFO()</text>
+<text text-anchor="start" x="9" y="-316.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ~IRBuilderFrameNode()</text>
+<text text-anchor="start" x="9" y="-305.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ EnterWithScope()</text>
+<text text-anchor="start" x="9" y="-294.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ ExitWithScope()</text>
+<text text-anchor="start" x="9" y="-283.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ AddCallback()</text>
+</a>
+</g>
+</g>
+<!-- Node2&#45;&gt;Node1 -->
+<g id="edge2" class="edge">
+<title>Node2&#45;&gt;Node1</title>
+<path fill="none" stroke="#191970" d="M104.5,-266.2384C104.5,-257.2246 104.5,-248.2648 104.5,-239.8878"/>
+<polygon fill="none" stroke="#191970" points="101.0001,-266.41 104.5,-276.41 108.0001,-266.41 101.0001,-266.41"/>
+</g>
+<!-- Node3 -->
+<g id="node4" class="node">
+<title>Node3</title>
+<g id="a_node4"><a xlink:href="classtvm_1_1runtime_1_1Object.html" target="_top" xlink:title="base class of all object containers. ">
+<polygon fill="#ffffff" stroke="#000000" points="13,-447.5 13,-845.5 196,-845.5 196,-447.5 13,-447.5"/>
+<text text-anchor="middle" x="104.5" y="-833.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">tvm::runtime::Object</text>
+<polyline fill="none" stroke="#000000" points="13,-826.5 196,-826.5 "/>
+<text text-anchor="start" x="21" y="-814.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_key</text>
+<text text-anchor="start" x="21" y="-803.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_final</text>
+<text text-anchor="start" x="21" y="-792.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_child_slots</text>
+<text text-anchor="start" x="21" y="-781.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_child_slots_can</text>
+<text text-anchor="start" x="21" y="-770.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_overflow</text>
+<text text-anchor="start" x="21" y="-759.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_has_method_visit</text>
+<text text-anchor="start" x="21" y="-748.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_attrs</text>
+<text text-anchor="start" x="21" y="-737.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_has_method_sequal</text>
+<text text-anchor="start" x="21" y="-726.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_reduce</text>
+<text text-anchor="start" x="21" y="-715.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_has_method_shash</text>
+<text text-anchor="start" x="21" y="-704.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">_reduce</text>
+<text text-anchor="start" x="21" y="-693.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ _type_index</text>
+<text text-anchor="start" x="21" y="-682.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># type_index_</text>
+<text text-anchor="start" x="21" y="-671.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># ref_counter_</text>
+<text text-anchor="start" x="21" y="-660.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000"># deleter_</text>
+<polyline fill="none" stroke="#000000" points="13,-653.5 196,-653.5 "/>
+<text text-anchor="start" x="21" y="-641.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ type_index()</text>
+<text text-anchor="start" x="21" y="-630.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ GetTypeKey()</text>
+<text text-anchor="start" x="21" y="-619.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ GetTypeKeyHash()</text>
+<text text-anchor="start" x="21" y="-608.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ IsInstance()</text>
+<text text-anchor="start" x="21" y="-597.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ unique()</text>
+<text text-anchor="start" x="21" y="-586.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Object()</text>
+<text text-anchor="start" x="21" y="-575.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Object()</text>
+<text text-anchor="start" x="21" y="-564.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="#000000">+ Object()</text>
... 24677 lines suppressed ...