diff --git a/llvm/projects/hpvm-tensor-rt/dnn_sources/src/alexnet_cifar10_cpu.cc b/llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/cpu/alexnet_cifar10_cpu.cc
similarity index 100%
rename from llvm/projects/hpvm-tensor-rt/dnn_sources/src/alexnet_cifar10_cpu.cc
rename to llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/cpu/alexnet_cifar10_cpu.cc
diff --git a/llvm/projects/hpvm-tensor-rt/dnn_sources/src/resnet18_cifar10_cpu.cc b/llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/cpu/resnet18_cifar10_cpu.cc
similarity index 100%
rename from llvm/projects/hpvm-tensor-rt/dnn_sources/src/resnet18_cifar10_cpu.cc
rename to llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/cpu/resnet18_cifar10_cpu.cc
diff --git a/llvm/projects/hpvm-tensor-rt/dnn_sources/src/dynamic/blend_pareto.cpp b/llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/dynamic/blend_pareto.cpp
similarity index 100%
rename from llvm/projects/hpvm-tensor-rt/dnn_sources/src/dynamic/blend_pareto.cpp
rename to llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/dynamic/blend_pareto.cpp
diff --git a/llvm/projects/hpvm-tensor-rt/dnn_sources/src/dynamic/canny_pareto.cpp b/llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/dynamic/canny_pareto.cpp
similarity index 100%
rename from llvm/projects/hpvm-tensor-rt/dnn_sources/src/dynamic/canny_pareto.cpp
rename to llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/dynamic/canny_pareto.cpp
diff --git a/llvm/projects/hpvm-tensor-rt/dnn_sources/src/dynamic/fft_pareto.cpp b/llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/dynamic/fft_pareto.cpp
similarity index 100%
rename from llvm/projects/hpvm-tensor-rt/dnn_sources/src/dynamic/fft_pareto.cpp
rename to llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/dynamic/fft_pareto.cpp
diff --git a/llvm/projects/hpvm-tensor-rt/dnn_sources/src/fc2_clipped.cc b/llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/fp32/fc2_clipped.cc
similarity index 100%
rename from llvm/projects/hpvm-tensor-rt/dnn_sources/src/fc2_clipped.cc
rename to llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/fp32/fc2_clipped.cc
diff --git a/llvm/projects/hpvm-tensor-rt/dnn_sources/src/fc2_cpu.cc b/llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/fp32/fc2_cpu.cc
similarity index 100%
rename from llvm/projects/hpvm-tensor-rt/dnn_sources/src/fc2_cpu.cc
rename to llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/fp32/fc2_cpu.cc
diff --git a/llvm/projects/hpvm-tensor-rt/dnn_sources/src/fc3_clipped.cc b/llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/fp32/fc3_clipped.cc
similarity index 100%
rename from llvm/projects/hpvm-tensor-rt/dnn_sources/src/fc3_clipped.cc
rename to llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/fp32/fc3_clipped.cc
diff --git a/llvm/projects/hpvm-tensor-rt/dnn_sources/src/fc4_clipped.cc b/llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/fp32/fc4_clipped.cc
similarity index 100%
rename from llvm/projects/hpvm-tensor-rt/dnn_sources/src/fc4_clipped.cc
rename to llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/fp32/fc4_clipped.cc
diff --git a/llvm/projects/hpvm-tensor-rt/dnn_sources/src/fc4_cpu.cc b/llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/fp32/fc4_cpu.cc
similarity index 100%
rename from llvm/projects/hpvm-tensor-rt/dnn_sources/src/fc4_cpu.cc
rename to llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/fp32/fc4_cpu.cc
diff --git a/llvm/projects/hpvm-tensor-rt/dnn_sources/src/pipeline.cc b/llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/image_benchs_oopsla19/pipeline.cc
similarity index 100%
rename from llvm/projects/hpvm-tensor-rt/dnn_sources/src/pipeline.cc
rename to llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/image_benchs_oopsla19/pipeline.cc
diff --git a/llvm/projects/hpvm-tensor-rt/dnn_sources/src/pipeline_GEMO.cc b/llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/image_benchs_oopsla19/pipeline_GEMO.cc
similarity index 100%
rename from llvm/projects/hpvm-tensor-rt/dnn_sources/src/pipeline_GEMO.cc
rename to llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/image_benchs_oopsla19/pipeline_GEMO.cc
diff --git a/llvm/projects/hpvm-tensor-rt/dnn_sources/src/pipeline_GEO.cc b/llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/image_benchs_oopsla19/pipeline_GEO.cc
similarity index 100%
rename from llvm/projects/hpvm-tensor-rt/dnn_sources/src/pipeline_GEO.cc
rename to llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/image_benchs_oopsla19/pipeline_GEO.cc
diff --git a/llvm/projects/hpvm-tensor-rt/dnn_sources/src/pipeline_GEOM.cc b/llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/image_benchs_oopsla19/pipeline_GEOM.cc
similarity index 100%
rename from llvm/projects/hpvm-tensor-rt/dnn_sources/src/pipeline_GEOM.cc
rename to llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/image_benchs_oopsla19/pipeline_GEOM.cc
diff --git a/llvm/projects/hpvm-tensor-rt/dnn_sources/src/pipeline_GSM.cc b/llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/image_benchs_oopsla19/pipeline_GSM.cc
similarity index 100%
rename from llvm/projects/hpvm-tensor-rt/dnn_sources/src/pipeline_GSM.cc
rename to llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/image_benchs_oopsla19/pipeline_GSM.cc
diff --git a/llvm/projects/hpvm-tensor-rt/dnn_sources/src/pipeline_GSME.cc b/llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/image_benchs_oopsla19/pipeline_GSME.cc
similarity index 100%
rename from llvm/projects/hpvm-tensor-rt/dnn_sources/src/pipeline_GSME.cc
rename to llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/image_benchs_oopsla19/pipeline_GSME.cc
diff --git a/llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/layers/alexnet_cifar10_layers.cc b/llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/layers/alexnet_cifar10_layers.cc
new file mode 100644
index 0000000000000000000000000000000000000000..ac0d727f39df27763fb964d3846a39a4436ba2ef
--- /dev/null
+++ b/llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/layers/alexnet_cifar10_layers.cc
@@ -0,0 +1,156 @@
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <string.h>
+
+#include "../../../tensor_runtime/include/tensor_runtime.h"
+#include "../../include/utils.h"
+
+
+bool Opentuner_run = false;
+
+/* NOTE: Reference Architecture to use for profiling */
+void testLenetTanh(){
+
+  int total_runs = 2;
+  if(Opentuner_run){
+    total_runs = 100000;
+  }
+  
+  printf("********* Lenet-2 Architecture ********** \n");
+  // FIXIT: Extend this to batch of images - currently 5 images
+
+  int test_batch_size = 5000;
+
+  uint8_t* labels = readLabels("../model_params/alexnet_cifar10/test_labels.bin", test_batch_size);
+ 
+  for(int i = 0; i < total_runs; i++){
+
+    void* input = readTrainedWeights("../model_params/alexnet_cifar10/norm_cifar_input.bin",
+				     float_type,
+				     test_batch_size, 3, 32, 32);
+
+    void* conv1_filter = readTrainedWeights("../model_params/alexnet_cifar10/conv1.bin",
+					    float_type, 64, 3, 11, 11);  
+    void* conv1_bias = readTrainedWeights("../model_params/alexnet_cifar10/conv1_bias.bin",
+					  float_type, 1, 64, 1, 1);  
+    void* conv2_filter = readTrainedWeights("../model_params/alexnet_cifar10/conv2.bin",
+					    float_type, 192, 64, 5, 5);  
+    void* conv2_bias = readTrainedWeights("../model_params/alexnet_cifar10/conv2_bias.bin",
+					  float_type, 1, 192, 1, 1);
+
+    void* conv3_filter = readTrainedWeights("../model_params/alexnet_cifar10/conv3.bin",
+					    float_type, 384, 192, 3, 3);  
+    void* conv3_bias = readTrainedWeights("../model_params/alexnet_cifar10/conv3_bias.bin",
+					  float_type, 1, 384, 1, 1);  
+    void* conv4_filter = readTrainedWeights("../model_params/alexnet_cifar10/conv4.bin",
+					    float_type, 256, 384, 3, 3);  
+    void* conv4_bias = readTrainedWeights("../model_params/alexnet_cifar10/conv4_bias.bin",
+					  float_type, 1, 256, 1, 1);
+    void* conv5_filter = readTrainedWeights("../model_params/alexnet_cifar10/conv5.bin",
+					    float_type, 256, 256, 3, 3);  
+    void* conv5_bias = readTrainedWeights("../model_params/alexnet_cifar10/conv5_bias.bin",
+					  float_type, 1, 256, 1, 1);
+  
+    void* fc1_weights = readTrainedWeights("../model_params/alexnet_cifar10/fc1.bin",
+					   float_type, 1, 1, 4096, 10);  
+    void* fc1_bias = readTrainedWeights("../model_params/alexnet_cifar10/fc1_bias.bin",
+					float_type, 1, 10, 1, 1);  
+    
+  
+    clearTensorMap();  
+
+    if(Opentuner_run){
+
+      char* myfifo = "/tmp/myfifo";
+      int fd = open(myfifo, O_RDONLY);
+
+      int ret_val = fcntl(fd, F_GETFD);
+      if(ret_val == -1){
+	printf("Invalid descriptor \n");
+	abort();
+      }
+
+      char str[100];
+      read(fd, str, 80);
+      if(strcmp(str, "stop_run") == 0){
+	abort();
+      }
+
+      close(fd);
+    }
+
+    
+    readOpenTunerFlags("opentuner_flags"); // Resets the OpenTuner counters
+
+    // Start power and performance profiling 
+    startProfiling();
+
+    
+    void* conv1_out = ConvLayer_GPU(input, conv1_filter, conv1_bias,
+				    5, 5, 1, 1, 0, 2, 0, -1,1);
+
+    void* conv2_out = ConvLayer_GPU(conv1_out, conv2_filter, conv2_bias, 
+				    2, 2, 1, 1, 0, 2, 0, -1,1);
+    
+    void* conv3_out = ConvLayer_GPU(conv2_out, conv3_filter, conv3_bias, 
+				    1, 1, 1, 1, 0, 0, 0, -1,1);
+
+    void* conv4_out = ConvLayer_GPU(conv3_out, conv4_filter, conv4_bias, 
+				    1, 1, 1, 1, 0, 0, 0, -1,1);
+
+    void* conv5_out = ConvLayer_GPU(conv4_out, conv5_filter, conv5_bias, 
+				    1, 1, 1, 1, 0, 2, 0, -1,1);
+
+    void* fc1_out = FCLayer_GPU(conv5_out, fc1_weights, fc1_bias, -1, -1,1);
+    
+    void* result = tensorSoftmax(fc1_out);
+
+    // End profiling and dump output to profile.txt
+    stopProfiling();
+  
+    computeAccuracy2(labels, test_batch_size, result);
+    
+    dumpAccuracyNorms();
+    freeOutputTensors();  
+
+    if(Opentuner_run){
+
+      char* myfifo = "/tmp/myfifo";
+      int fd_out = open(myfifo, O_WRONLY);
+      int ret_val = fcntl(fd_out, F_GETFD);
+      if(ret_val == -1){
+	printf("Invalid descriptor \n");
+	abort();
+      }
+      
+      const char* str = "completed***!\n\0";
+      write(fd_out, str, 80);
+      close(fd_out);
+    }
+    
+  }
+
+
+  
+}
+
+
+int main(int argc, char* argv[]){
+
+  if(argc > 1)
+    Opentuner_run = true;
+
+  llvm_hpvm_initTensorRt(1);
+
+  testLenetTanh();
+
+  llvm_hpvm_cleanupTensorRt();
+
+  return 0;
+}
+
diff --git a/llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/layers/lenet_layers.cc b/llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/layers/lenet_layers.cc
new file mode 100644
index 0000000000000000000000000000000000000000..77b75add2bf858d56dcb2d427958bf0ea5ff20a0
--- /dev/null
+++ b/llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/layers/lenet_layers.cc
@@ -0,0 +1,146 @@
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <string.h>
+
+#include "../../../tensor_runtime/include/tensor_runtime.h"
+#include "../../include/utils.h"
+
+
+bool Opentuner_run = false;
+
+/* NOTE: Reference Architecture to use for profiling */
+void testLenetTanh(){
+
+  int total_runs = 10;
+  if(Opentuner_run){
+    total_runs = 100000;
+  }
+  
+  printf("********* Lenet-2 Architecture ********** \n");
+  // FIXIT: Extend this to batch of images - currently 5 images
+
+  int test_batch_size = 10000;
+
+  uint8_t* labels = readLabels("../model_params/lenet_params/datasets/t10k-labels-idx1-ubyte", test_batch_size);
+
+  for(int i = 0; i < total_runs; i++){
+
+    void* input = readInputTensor("../model_params/lenet_params/datasets/t10k-images-idx3-ubyte",
+				  CUDNN_DATA_FLOAT,
+				  test_batch_size, 1, 28, 28);
+
+    // NOTE: Filter descriptors do NOT have batch size
+    // NOTE: First two dims are output channels (configurable), input channels (MUST match input channels)
+    // IMP: The output channels matches the trained model - not the Lenet arch proposed in Andrew Ng's class
+    void* conv1_filter = readTrainedWeights("../model_params/lenet_keras/conv1.bin",
+					    float_type, 32, 1, 5, 5);    
+    void* conv1_bias = readTrainedWeights("../model_params/lenet_keras/conv1_bias.bin",
+					  float_type, 1, 32, 1, 1);  
+    void* conv2_filter = readTrainedWeights("../model_params/lenet_keras/conv2.bin",
+					    float_type, 64, 32, 5, 5);  
+    void* conv2_bias = readTrainedWeights("../model_params/lenet_keras/conv2_bias.bin",
+					  float_type, 1, 64, 1, 1);  
+    void* fc1_weights = readTrainedWeights("../model_params/lenet_keras/fc1.bin",
+					   float_type, 1, 1, 7*7*64, 1024);  
+    void* fc1_bias = readTrainedWeights("../model_params/lenet_keras/fc1_bias.bin",
+					float_type, 1, 1024, 1, 1);  
+    void* fc2_weights = readTrainedWeights("../model_params/lenet_keras/fc2.bin",
+					   float_type, 1, 1, 1024, 10);  
+    void* fc2_bias = readTrainedWeights("../model_params/lenet_keras/fc2_bias.bin",
+					float_type, 1, 10, 1, 1);  
+
+
+  
+    clearTensorMap();
+  
+
+    if(Opentuner_run){
+
+      char* myfifo = "/tmp/myfifo";
+      int fd = open(myfifo, O_RDONLY);
+
+      int ret_val = fcntl(fd, F_GETFD);
+      if(ret_val == -1){
+	printf("Invalid descriptor \n");
+	abort();
+      }
+
+      char str[100];
+      read(fd, str, 80);
+      if(strcmp(str, "stop_run") == 0){
+	abort();
+      }
+
+      close(fd);
+    }
+
+    
+    readOpenTunerFlags("opentuner_flags"); // Resets the OpenTuner counters
+
+    // Start power and performance profiling 
+    startProfiling();
+      
+    void* conv1_out = ConvLayer_GPU(input, conv1_filter, conv1_bias,
+				    2, 2, 1, 1, 0, 2, 0, -1,1);
+
+    void* conv2_out = ConvLayer_GPU(conv1_out, conv2_filter, 
+				    conv2_bias, 
+				    2, 2, 1, 1, 0, 2, 0, -1,1);
+
+    void* fc1_out = FCLayer_GPU(conv2_out, fc1_weights, fc1_bias,
+				0, -1,1);
+    
+    void* fc2_out = FCLayer_GPU(fc1_out, fc2_weights, fc2_bias, 
+				0, -1,1);
+
+    void* result = tensorSoftmax(fc2_out);
+
+    // End profiling and dump output to profile.txt
+    stopProfiling();
+  
+    computeAccuracy2(labels, test_batch_size, result);
+    
+    dumpAccuracyNorms();
+    freeOutputTensors();  
+
+    if(Opentuner_run){
+
+      char* myfifo = "/tmp/myfifo";
+      int fd_out = open(myfifo, O_WRONLY);
+      int ret_val = fcntl(fd_out, F_GETFD);
+      if(ret_val == -1){
+	printf("Invalid descriptor \n");
+	abort();
+      }
+      
+      const char* str = "completed***!\n\0";
+      write(fd_out, str, 80);
+      close(fd_out);
+    }
+    
+  }
+
+
+  
+}
+
+
+int main(int argc, char* argv[]){
+
+  if(argc > 1)
+    Opentuner_run = true;
+
+  llvm_hpvm_initTensorRt(0);
+
+  testLenetTanh();
+
+  llvm_hpvm_cleanupTensorRt();
+
+  return 0;
+}
+
diff --git a/llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/layers/lenet_layers2.cc b/llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/layers/lenet_layers2.cc
new file mode 100644
index 0000000000000000000000000000000000000000..c1345ff24083a0ce20f3274afc74916968be4c06
--- /dev/null
+++ b/llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/layers/lenet_layers2.cc
@@ -0,0 +1,141 @@
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <string.h>
+
+#include "../../../tensor_runtime/include/tensor_runtime.h"
+#include "../../include/utils.h"
+
+
+bool Opentuner_run = false;
+
+/* NOTE: Reference Architecture to use for profiling */
+void testLenetTanh(){
+
+  int total_runs = 1;
+  if(Opentuner_run){
+    total_runs = 100000;
+  }
+  
+  printf("********* Lenet-2 Architecture ********** \n");
+  // FIXIT: Extend this to batch of images - currently 5 images
+
+  int test_batch_size = 10000;
+  uint8_t* labels = readLabels("../model_params/lenet_params/datasets/t10k-labels-idx1-ubyte", test_batch_size);
+
+  for(int i = 0; i < total_runs; i++){
+
+    void* input = readInputTensor("../model_params/lenet_params/datasets/t10k-images-idx3-ubyte",
+				  CUDNN_DATA_FLOAT,
+				  test_batch_size, 1, 28, 28);
+
+    // NOTE: Filter descriptors do NOT have batch size
+    // NOTE: First two dims are output channels (configurable), input channels (MUST match input channels)
+    // IMP: The output channels matches the trained model - not the Lenet arch proposed in Andrew Ng's class
+    void* conv1_filter = readTrainedWeights("../model_params/lenet_keras2/conv1.bin",
+					    float_type, 32, 1, 5, 5);    
+    void* conv1_bias = readTrainedWeights("../model_params/lenet_keras2/conv1_bias.bin",
+					  float_type, 1, 32, 1, 1);  
+    void* conv2_filter = readTrainedWeights("../model_params/lenet_keras2/conv2.bin",
+					    float_type, 64, 32, 5, 5);  
+    void* conv2_bias = readTrainedWeights("../model_params/lenet_keras2/conv2_bias.bin",
+					  float_type, 1, 64, 1, 1);  
+    void* fc1_weights = readTrainedWeights("../model_params/lenet_keras2/fc1.bin",
+					   float_type, 1, 1, 7*7*64, 1024);  
+    void* fc1_bias = readTrainedWeights("../model_params/lenet_keras2/fc1_bias.bin",
+					float_type, 1, 1024, 1, 1);  
+    void* fc2_weights = readTrainedWeights("../model_params/lenet_keras2/fc2.bin",
+					   float_type, 1, 1, 1024, 10);  
+    void* fc2_bias = readTrainedWeights("../model_params/lenet_keras2/fc2_bias.bin",
+					float_type, 1, 10, 1, 1);  
+
+  
+    clearTensorMap();  
+
+    if(Opentuner_run){
+      char* myfifo = "/tmp/myfifo";
+      int fd = open(myfifo, O_RDONLY);
+
+      int ret_val = fcntl(fd, F_GETFD);
+      if(ret_val == -1){
+	printf("Invalid descriptor \n");
+	abort();
+      }
+
+      char str[100];
+      read(fd, str, 80);
+      if(strcmp(str, "stop_run") == 0){
+	abort();
+      }
+
+      close(fd);
+    }
+
+    
+    readOpenTunerFlags("opentuner_flags"); // Resets the OpenTuner counters
+    // Start power and performance profiling 
+    startProfiling();
+      
+    void* conv1_out = ConvLayer_GPU(input, conv1_filter, conv1_bias,
+				    2, 2, 1, 1, 0, 2, 0, -1,1);
+
+    void* conv2_out = ConvLayer_GPU(conv1_out, conv2_filter, 
+				    conv2_bias, 
+				    2, 2, 1, 1, 0, 2, 0, -1,1);
+
+    void* fc1_out = FCLayer_GPU(conv2_out, fc1_weights, fc1_bias,
+				0, -1,1);
+    
+    void* fc2_out = FCLayer_GPU(fc1_out, fc2_weights, fc2_bias, 
+				0, -1,1);
+
+    void* result = tensorSoftmax(fc2_out);
+
+    // End profiling and dump output to profile.txt
+    stopProfiling();
+  
+    computeAccuracy2(labels, test_batch_size, result);
+    
+    dumpAccuracyNorms();
+    freeOutputTensors();  
+
+    if(Opentuner_run){
+
+      char* myfifo = "/tmp/myfifo";
+      int fd_out = open(myfifo, O_WRONLY);
+      int ret_val = fcntl(fd_out, F_GETFD);
+      if(ret_val == -1){
+	printf("Invalid descriptor \n");
+	abort();
+      }
+      
+      const char* str = "completed***!\n\0";
+      write(fd_out, str, 80);
+      close(fd_out);
+    }
+    
+  }
+
+
+  
+}
+
+
+int main(int argc, char* argv[]){
+
+  if(argc > 1)
+    Opentuner_run = true;
+
+  llvm_hpvm_initTensorRt(0);
+
+  testLenetTanh();
+
+  llvm_hpvm_cleanupTensorRt();
+
+  return 0;
+}
+
diff --git a/llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/layers/test_layers.cc b/llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/layers/test_layers.cc
new file mode 100644
index 0000000000000000000000000000000000000000..df663a81759f9e096e067859f8aa487882d8835f
--- /dev/null
+++ b/llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/layers/test_layers.cc
@@ -0,0 +1,148 @@
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <string.h>
+
+#include "../../../tensor_runtime/include/tensor_runtime.h"
+#include "../../include/utils.h"
+
+
+bool Opentuner_run = false;
+
+/* NOTE: Reference Architecture to use for profiling */
+void testLenetTanh(){
+
+  int total_runs = 1;
+  if(Opentuner_run){
+    total_runs = 100000;
+  }
+  
+  printf("********* Test Layer source ********** \n");
+  // FIXIT: Extend this to batch of images - currently 5 images
+
+  int test_batch_size = 10000;
+
+  uint8_t* labels = readLabels("../model_params/lenet_params/datasets/t10k-labels-idx1-ubyte", test_batch_size);
+
+  for(int i = 0; i < total_runs; i++){
+
+    void* input = readInputTensor("../model_params/lenet_params/datasets/t10k-images-idx3-ubyte",
+				  CUDNN_DATA_FLOAT,
+				  test_batch_size, 1, 28, 28);
+
+    //void* conv1_filter = readTrainedWeights("../model_params/lenet_keras/conv1.bin",
+    //					    float_type, 32, 1, 5, 5);    
+    //void* conv1_bias = readTrainedWeights("../model_params/lenet_keras/conv1_bias.bin",
+    //					  float_type, 1, 32, 1, 1);  
+    //void* conv2_filter = readTrainedWeights("../model_params/lenet_keras/conv2.bin",
+    //				    float_type, 64, 32, 5, 5);  
+    //void* conv2_bias = readTrainedWeights("../model_params/lenet_keras/conv2_bias.bin",
+    //				  float_type, 1, 64, 1, 1);  
+    //void* fc1_weights = readTrainedWeights("../model_params/lenet_keras/fc1.bin",
+    //				   float_type, 1, 1, 7*7*64, 1024);  
+    //void* fc1_bias = readTrainedWeights("../model_params/lenet_keras/fc1_bias.bin",
+    //				float_type, 1, 1024, 1, 1);  
+
+    void* fc1_weights = readTrainedWeights("../model_params/test_keras/fc1.bin",
+    					   float_type, 1, 1, 784, 500);  
+    void* fc1_bias = readTrainedWeights("../model_params/test_keras/fc1_bias.bin",
+					float_type, 1, 500, 1, 1);  
+
+    void* fc2_weights = readTrainedWeights("../model_params/test_keras/fc2.bin",
+    					   float_type, 1, 1, 500, 10);  
+    void* fc2_bias = readTrainedWeights("../model_params/test_keras/fc2_bias.bin",
+					float_type, 1, 10, 1, 1);  
+
+ 
+    clearTensorMap();  
+
+    if(Opentuner_run){
+
+      char* myfifo = "/tmp/myfifo";
+      int fd = open(myfifo, O_RDONLY);
+
+      int ret_val = fcntl(fd, F_GETFD);
+      if(ret_val == -1){
+	printf("Invalid descriptor \n");
+	abort();
+      }
+
+      char str[100];
+      read(fd, str, 80);
+      if(strcmp(str, "stop_run") == 0){
+	abort();
+      }
+
+      close(fd);
+    }
+
+    
+    readOpenTunerFlags("opentuner_flags"); // Resets the OpenTuner counters
+
+    // Start power and performance profiling 
+    startProfiling();
+      
+    //- void* conv1_out = ConvLayer_GPU(input, conv1_filter, conv1_bias,
+    //				    2, 2, 1, 1, 0, 2, 0, -1,1);
+
+    //void* conv2_out = ConvLayer_GPU(conv1_out, conv2_filter, 
+    //				    conv2_bias, 
+    //				    2, 2, 1, 1, 0, 2, 0, -1,1);
+
+    //void* fc1_out = FCLayer_GPU(conv2_out, fc1_weights, fc1_bias,
+    //				0, -1,1);
+
+    void* fc1_out = FCLayer_GPU(input, fc1_weights, fc1_bias, 0, -1,1);
+
+    void* fc2_out = FCLayer_GPU(fc1_out, fc2_weights, fc2_bias, 0, -1,1);
+
+    void* result = tensorSoftmax(fc2_out);
+
+    // End profiling and dump output to profile.txt
+    stopProfiling();
+  
+    computeAccuracy2(labels, test_batch_size, result);
+    
+    dumpAccuracyNorms();
+    freeOutputTensors();  
+
+    if(Opentuner_run){
+
+      char* myfifo = "/tmp/myfifo";
+      int fd_out = open(myfifo, O_WRONLY);
+      int ret_val = fcntl(fd_out, F_GETFD);
+      if(ret_val == -1){
+	printf("Invalid descriptor \n");
+	abort();
+      }
+      
+      const char* str = "completed***!\n\0";
+      write(fd_out, str, 80);
+      close(fd_out);
+    }
+    
+  }
+
+
+  
+}
+
+
+int main(int argc, char* argv[]){
+
+  if(argc > 1)
+    Opentuner_run = true;
+
+  llvm_hpvm_initTensorRt(0);
+
+  testLenetTanh();
+
+  llvm_hpvm_cleanupTensorRt();
+
+  return 0;
+}
+
diff --git a/llvm/projects/hpvm-tensor-rt/dnn_sources/src/layers/cifar10_layers.cc b/llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/layers/test_layers2.cc
similarity index 77%
rename from llvm/projects/hpvm-tensor-rt/dnn_sources/src/layers/cifar10_layers.cc
rename to llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/layers/test_layers2.cc
index 4d083f58ba0d9db4ac2f1794be97b5409c7e1508..168025d42579e7b2bced6d7c34866e7c275cd739 100644
--- a/llvm/projects/hpvm-tensor-rt/dnn_sources/src/layers/cifar10_layers.cc
+++ b/llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/layers/test_layers2.cc
@@ -16,21 +16,20 @@ bool Opentuner_run = false;
 /* NOTE: Reference Architecture to use for profiling */
 void testLenetTanh(){
 
-  int total_runs = 2;
+  int total_runs = 1;
   if(Opentuner_run){
     total_runs = 100000;
   }
   
   printf("********* Lenet-2 Architecture ********** \n");
-  // FIXIT: Extend this to batch of images - currently 5 images
-
-  int test_batch_size = 5000;
+  
+  int test_batch_size = 10000;
 
-  uint8_t* labels = readLabels("../model_params/cifar10/labels.bin", test_batch_size);
+  uint8_t* labels = readLabels("../model_params/test_keras/test_labels.bin", test_batch_size);
 
   for(int i = 0; i < total_runs; i++){
 
-    void* input = readTrainedWeights("../model_params/cifar10/input.bin",
+    void* input = readTrainedWeights("../model_params/cifar_keras/input.bin",
 				     float_type,
 				     test_batch_size, 3, 32, 32);
    
@@ -52,13 +51,13 @@ void testLenetTanh(){
 					  float_type, 1, 128, 1, 1);
 
   
-    void* fc1_weights = readTrainedWeights("../model_params/cifar10/fc1.bin",
-					   float_type, 1, 1, 2048, 1024);  
-    void* fc1_bias = readTrainedWeights("../model_params/cifar10/fc1_bias.bin",
-					float_type, 1, 1024, 1, 1);  
-    void* fc2_weights = readTrainedWeights("../model_params/cifar10/fc2.bin",
-					   float_type, 1, 1, 1024, 10);  
-    void* fc2_bias = readTrainedWeights("../model_params/cifar10/fc2_bias.bin",
+    void* fc1_weights = readTrainedWeights("../model_params/test_keras/cifar_fc1.bin",
+					   float_type, 1, 1, 3*32*32, 10);  
+    void* fc1_bias = readTrainedWeights("../model_params/test_keras/cifar_fc1_bias.bin",
+					float_type, 1, 10, 1, 1);  
+    void* fc2_weights = readTrainedWeights("../model_params/test_keras/cifar_fc2.bin",
+					   float_type, 1, 1, 500, 10);  
+    void* fc2_bias = readTrainedWeights("../model_params/test_keras/cifar_fc2_bias.bin",
 					float_type, 1, 10, 1, 1);  
 
   
@@ -87,12 +86,10 @@ void testLenetTanh(){
 
     
     readOpenTunerFlags("opentuner_flags"); // Resets the OpenTuner counters
-
     // Start power and performance profiling 
     startProfiling();
 
-
-    
+    /*    
     void* conv1_out = ConvLayer_GPU(input, conv1_filter, conv1_bias,
 				    1, 1, 1, 1, 0, 0, 0, -1,1);
 
@@ -104,12 +101,15 @@ void testLenetTanh(){
 
     void* conv4_out = ConvLayer_GPU(conv3_out, conv4_filter, conv4_bias, 
 				    1, 1, 1, 1, 0, 2, 0, -1,1);
+    */
+
+    void* fc1_out = FCLayer_GPU(input, fc1_weights, NULL, -1, -1,1);
+    //-- void* fc1_out = tensorGemmGPU(input, fc1_weights);  
 
-    void* fc1_out = FCLayer_GPU(conv4_out, fc1_weights, fc1_bias, 0, -1,1);
     
-    void* fc2_out = FCLayer_GPU(fc1_out, fc2_weights, fc2_bias, 0, -1,1);
+    //void* fc2_out = FCLayer_GPU(fc1_out, fc2_weights, fc2_bias, 0, -1,1);
 
-    void* result = tensorSoftmax(fc2_out);
+    void* result = tensorSoftmax(fc1_out);
 
     // End profiling and dump output to profile.txt
     stopProfiling();
@@ -132,11 +132,9 @@ void testLenetTanh(){
       const char* str = "completed***!\n\0";
       write(fd_out, str, 80);
       close(fd_out);
-    }
-    
+    }    
   }
 
-
   
 }
 
diff --git a/llvm/projects/hpvm-tensor-rt/dnn_sources/src/profiling/alexnet2_profiling.cc b/llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/profiling/alexnet2_profiling.cc
similarity index 100%
rename from llvm/projects/hpvm-tensor-rt/dnn_sources/src/profiling/alexnet2_profiling.cc
rename to llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/profiling/alexnet2_profiling.cc
diff --git a/llvm/projects/hpvm-tensor-rt/dnn_sources/src/profiling/alexnet2_profiling_tensors.cc b/llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/profiling/alexnet2_profiling_tensors.cc
similarity index 100%
rename from llvm/projects/hpvm-tensor-rt/dnn_sources/src/profiling/alexnet2_profiling_tensors.cc
rename to llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/profiling/alexnet2_profiling_tensors.cc
diff --git a/llvm/projects/hpvm-tensor-rt/dnn_sources/src/profiling/alexnet_cifar10_profiling.cc b/llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/profiling/alexnet_cifar10_profiling.cc
similarity index 100%
rename from llvm/projects/hpvm-tensor-rt/dnn_sources/src/profiling/alexnet_cifar10_profiling.cc
rename to llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/profiling/alexnet_cifar10_profiling.cc
diff --git a/llvm/projects/hpvm-tensor-rt/dnn_sources/src/profiling/blend_profiling.cpp b/llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/profiling/blend_profiling.cpp
similarity index 100%
rename from llvm/projects/hpvm-tensor-rt/dnn_sources/src/profiling/blend_profiling.cpp
rename to llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/profiling/blend_profiling.cpp
diff --git a/llvm/projects/hpvm-tensor-rt/dnn_sources/src/profiling/canny_profiling.cpp b/llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/profiling/canny_profiling.cpp
similarity index 100%
rename from llvm/projects/hpvm-tensor-rt/dnn_sources/src/profiling/canny_profiling.cpp
rename to llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/profiling/canny_profiling.cpp
diff --git a/llvm/projects/hpvm-tensor-rt/dnn_sources/src/profiling/fft_profiling.cpp b/llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/profiling/fft_profiling.cpp
similarity index 100%
rename from llvm/projects/hpvm-tensor-rt/dnn_sources/src/profiling/fft_profiling.cpp
rename to llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/profiling/fft_profiling.cpp
diff --git a/llvm/projects/hpvm-tensor-rt/dnn_sources/src/profiling/lenet_keras_profiling.cc b/llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/profiling/lenet_keras_profiling.cc
similarity index 100%
rename from llvm/projects/hpvm-tensor-rt/dnn_sources/src/profiling/lenet_keras_profiling.cc
rename to llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/profiling/lenet_keras_profiling.cc
diff --git a/llvm/projects/hpvm-tensor-rt/dnn_sources/src/profiling/mobilenet_cifar10_profiling.cc b/llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/profiling/mobilenet_cifar10_profiling.cc
similarity index 100%
rename from llvm/projects/hpvm-tensor-rt/dnn_sources/src/profiling/mobilenet_cifar10_profiling.cc
rename to llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/profiling/mobilenet_cifar10_profiling.cc
diff --git a/llvm/projects/hpvm-tensor-rt/dnn_sources/src/profiling/mobilenet_depthwise_profiling.cc b/llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/profiling/mobilenet_depthwise_profiling.cc
similarity index 100%
rename from llvm/projects/hpvm-tensor-rt/dnn_sources/src/profiling/mobilenet_depthwise_profiling.cc
rename to llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/profiling/mobilenet_depthwise_profiling.cc
diff --git a/llvm/projects/hpvm-tensor-rt/dnn_sources/src/profiling/mobilenet_shallow_depthwise_profiling.cc b/llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/profiling/mobilenet_shallow_depthwise_profiling.cc
similarity index 100%
rename from llvm/projects/hpvm-tensor-rt/dnn_sources/src/profiling/mobilenet_shallow_depthwise_profiling.cc
rename to llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/profiling/mobilenet_shallow_depthwise_profiling.cc
diff --git a/llvm/projects/hpvm-tensor-rt/dnn_sources/src/profiling/mobilenet_shallow_profiling.cc b/llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/profiling/mobilenet_shallow_profiling.cc
similarity index 100%
rename from llvm/projects/hpvm-tensor-rt/dnn_sources/src/profiling/mobilenet_shallow_profiling.cc
rename to llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/profiling/mobilenet_shallow_profiling.cc
diff --git a/llvm/projects/hpvm-tensor-rt/dnn_sources/src/profiling/resnet18_cifar10_profiling.cc b/llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/profiling/resnet18_cifar10_profiling.cc
similarity index 100%
rename from llvm/projects/hpvm-tensor-rt/dnn_sources/src/profiling/resnet18_cifar10_profiling.cc
rename to llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/profiling/resnet18_cifar10_profiling.cc
diff --git a/llvm/projects/hpvm-tensor-rt/dnn_sources/src/profiling/vgg16_cifar100_profiling.cc b/llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/profiling/vgg16_cifar100_profiling.cc
similarity index 100%
rename from llvm/projects/hpvm-tensor-rt/dnn_sources/src/profiling/vgg16_cifar100_profiling.cc
rename to llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/profiling/vgg16_cifar100_profiling.cc
diff --git a/llvm/projects/hpvm-tensor-rt/dnn_sources/src/profiling/vgg16_cifar10_profiling.cc b/llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/profiling/vgg16_cifar10_profiling.cc
similarity index 100%
rename from llvm/projects/hpvm-tensor-rt/dnn_sources/src/profiling/vgg16_cifar10_profiling.cc
rename to llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/profiling/vgg16_cifar10_profiling.cc
diff --git a/llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/test/mio_test.cc b/llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/test/mio_test.cc
new file mode 100644
index 0000000000000000000000000000000000000000..646582146e1fd4b4819ee47a071d630428ed7f70
--- /dev/null
+++ b/llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/test/mio_test.cc
@@ -0,0 +1,98 @@
+
+#include <stdio.h> 
+#include <stdlib.h> 
+#include <unistd.h> 
+#include <fcntl.h> 
+#include <sys/types.h> 
+#include <sys/stat.h> 
+#include <string.h> 
+#include "../../tensor_runtime/include/tensor_runtime.h" 
+#include "../include/utils.h" 
+
+int main(){ 
+
+  llvm_hpvm_initTensorRt(0); 
+
+
+  std::string dir_prefix = std::string("../model_params/hpvm_mio/"); 
+  std::string input_path =  dir_prefix + std::string("input.bin"); 
+  std::string labels_path =  dir_prefix + std::string("labels.bin"); 
+  std::string conv2d_1_w_path =  dir_prefix + std::string("conv2d_1_w.bin"); 
+  void* conv2d_1_w =  readTrainedWeights(conv2d_1_w_path.c_str(), 0,32,3,3,3); 
+  std::string conv2d_1_b_path =  dir_prefix + std::string("conv2d_1_b.bin"); 
+  void* conv2d_1_b =  readTrainedWeights(conv2d_1_b_path.c_str(), 0,1,32,1,1); 
+  std::string conv2d_2_w_path =  dir_prefix + std::string("conv2d_2_w.bin"); 
+  void* conv2d_2_w =  readTrainedWeights(conv2d_2_w_path.c_str(), 0,32,32,3,3); 
+  std::string conv2d_2_b_path =  dir_prefix + std::string("conv2d_2_b.bin"); 
+  void* conv2d_2_b =  readTrainedWeights(conv2d_2_b_path.c_str(), 0,1,32,1,1); 
+  std::string conv2d_3_w_path =  dir_prefix + std::string("conv2d_3_w.bin"); 
+  void* conv2d_3_w =  readTrainedWeights(conv2d_3_w_path.c_str(), 0,64,32,3,3); 
+  std::string conv2d_3_b_path =  dir_prefix + std::string("conv2d_3_b.bin"); 
+  void* conv2d_3_b =  readTrainedWeights(conv2d_3_b_path.c_str(), 0,1,64,1,1); 
+  std::string conv2d_4_w_path =  dir_prefix + std::string("conv2d_4_w.bin"); 
+  void* conv2d_4_w =  readTrainedWeights(conv2d_4_w_path.c_str(), 0,64,64,3,3); 
+  std::string conv2d_4_b_path =  dir_prefix + std::string("conv2d_4_b.bin"); 
+  void* conv2d_4_b =  readTrainedWeights(conv2d_4_b_path.c_str(), 0,1,64,1,1); 
+  std::string dense_1_w_path =  dir_prefix + std::string("dense_1_w.bin"); 
+  void* dense_1_w =  readTrainedWeights(dense_1_w_path.c_str(), 0,1,1,1600,256); 
+  std::string dense_1_b_path =  dir_prefix + std::string("dense_1_b.bin"); 
+  void* dense_1_b =  readTrainedWeights(dense_1_b_path.c_str(), 0,1,256,1,1); 
+  std::string dense_2_w_path =  dir_prefix + std::string("dense_2_w.bin"); 
+  void* dense_2_w =  readTrainedWeights(dense_2_w_path.c_str(), 0,1,1,256,5); 
+  std::string dense_2_b_path =  dir_prefix + std::string("dense_2_b.bin"); 
+  void* dense_2_b =  readTrainedWeights(dense_2_b_path.c_str(), 0,1,5,1,1); 
+
+
+
+  startMemTracking(); 
+
+  int test_input_size = 5000; 
+  int batch_size = 5000; 
+  int batch_count = test_input_size / batch_size; 
+  float final_accuracy = 0.0; 
+
+  for(int i = 0; i < batch_count; i++){ 
+
+    int start = i * batch_size; 
+    int end = (i + 1) * batch_size; 
+
+    void* input = readInputBatch(input_path.c_str(),0,start,end,3,32,32); 
+
+    void* var_0 = tensorConvolution(input, conv2d_1_w, 0, 0, 1, 1, 1, 1); 
+    void* var_1 = tensorAdd(var_0, conv2d_1_b); 
+    void* var_2 = tensorRelu(var_1); 
+    void* var_3 = tensorConvolution(var_2, conv2d_2_w, 0, 0, 1, 1, 1, 1); 
+    void* var_4 = tensorAdd(var_3, conv2d_2_b); 
+    void* var_5 = tensorRelu(var_4); 
+    void* var_6 = tensorPooling(var_5,0,2,2,0,0,2,2); 
+    void* var_8 = tensorConvolution(var_6, conv2d_3_w, 0, 0, 1, 1, 1, 1); 
+    void* var_9 = tensorAdd(var_8, conv2d_3_b); 
+    void* var_10 = tensorRelu(var_9); 
+    void* var_11 = tensorConvolution(var_10, conv2d_4_w, 0, 0, 1, 1, 1, 1); 
+    void* var_12 = tensorAdd(var_11, conv2d_4_b); 
+    void* var_13 = tensorRelu(var_12); 
+    void* var_14 = tensorPooling(var_13,0,2,2,0,0,2,2); 
+    void* var_17 = tensorGemmGPU(var_14, dense_1_w); 
+    void* var_18 = tensorAdd(var_17, dense_1_b); 
+    void* var_19 = tensorRelu(var_18); 
+    void* var_21 = tensorGemmGPU(var_19, dense_2_w); 
+    void* var_22 = tensorAdd(var_21, dense_2_b); 
+    void* var_23 = tensorSoftmax(var_22); 
+
+    uint32_t* labels = readLabelsBatch3(labels_path.c_str(),start,end); 
+
+    float accuracy = computeAccuracy3(labels, var_23); 
+    final_accuracy += accuracy; 
+    freeBatchMemory(); 
+ 
+  }
+
+  final_accuracy = final_accuracy / batch_count; 
+  dumpFinalAccuracy(final_accuracy); 
+
+
+  llvm_hpvm_cleanupTensorRt(); 
+
+  return 0; 
+
+}
diff --git a/llvm/projects/hpvm-tensor-rt/dnn_sources/src/test_alexnet.cc b/llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/test/test_alexnet.cc
similarity index 100%
rename from llvm/projects/hpvm-tensor-rt/dnn_sources/src/test_alexnet.cc
rename to llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/test/test_alexnet.cc
diff --git a/llvm/projects/hpvm-tensor-rt/dnn_sources/src/test_fc_half.cc b/llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/test/test_fc_half.cc
similarity index 100%
rename from llvm/projects/hpvm-tensor-rt/dnn_sources/src/test_fc_half.cc
rename to llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/test/test_fc_half.cc
diff --git a/llvm/projects/hpvm-tensor-rt/dnn_sources/src/test_ops.cc b/llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/test/test_ops.cc
similarity index 100%
rename from llvm/projects/hpvm-tensor-rt/dnn_sources/src/test_ops.cc
rename to llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/test/test_ops.cc
diff --git a/llvm/projects/hpvm-tensor-rt/dnn_sources/src/alexnet2_cifar10_tuner.cc b/llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/tuner/alexnet2_cifar10_tuner.cc
similarity index 100%
rename from llvm/projects/hpvm-tensor-rt/dnn_sources/src/alexnet2_cifar10_tuner.cc
rename to llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/tuner/alexnet2_cifar10_tuner.cc
diff --git a/llvm/projects/hpvm-tensor-rt/dnn_sources/src/alexnet_cifar10_tuner.cc b/llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/tuner/alexnet_cifar10_tuner.cc
similarity index 100%
rename from llvm/projects/hpvm-tensor-rt/dnn_sources/src/alexnet_cifar10_tuner.cc
rename to llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/tuner/alexnet_cifar10_tuner.cc
diff --git a/llvm/projects/hpvm-tensor-rt/dnn_sources/src/resnet18_cifar10_tuner.cc b/llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/tuner/resnet18_cifar10_tuner.cc
similarity index 100%
rename from llvm/projects/hpvm-tensor-rt/dnn_sources/src/resnet18_cifar10_tuner.cc
rename to llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/tuner/resnet18_cifar10_tuner.cc
diff --git a/llvm/projects/hpvm-tensor-rt/dnn_sources/src/vgg16_cifar100_top5_tuner.cc b/llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/tuner/vgg16_cifar100_top5_tuner.cc
similarity index 100%
rename from llvm/projects/hpvm-tensor-rt/dnn_sources/src/vgg16_cifar100_top5_tuner.cc
rename to llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/tuner/vgg16_cifar100_top5_tuner.cc
diff --git a/llvm/projects/hpvm-tensor-rt/dnn_sources/src/vgg16_cifar100_tuner.cc b/llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/tuner/vgg16_cifar100_tuner.cc
similarity index 100%
rename from llvm/projects/hpvm-tensor-rt/dnn_sources/src/vgg16_cifar100_tuner.cc
rename to llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/tuner/vgg16_cifar100_tuner.cc
diff --git a/llvm/projects/hpvm-tensor-rt/dnn_sources/src/vgg16_cifar10_tuner.cc b/llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/tuner/vgg16_cifar10_tuner.cc
similarity index 100%
rename from llvm/projects/hpvm-tensor-rt/dnn_sources/src/vgg16_cifar10_tuner.cc
rename to llvm/projects/hpvm-tensor-rt/dnn_sources/src/legacy/tuner/vgg16_cifar10_tuner.cc