diff --git a/llvm/lib/Transforms/DFG2LLVM_CUDNN/DFG2LLVM_CUDNN.cpp b/llvm/lib/Transforms/DFG2LLVM_CUDNN/DFG2LLVM_CUDNN.cpp
index bc471845ad153136e13e180dbf410caf09099af7..aef2460935512e6bd1f73dcc380be227fe97cb72 100644
--- a/llvm/lib/Transforms/DFG2LLVM_CUDNN/DFG2LLVM_CUDNN.cpp
+++ b/llvm/lib/Transforms/DFG2LLVM_CUDNN/DFG2LLVM_CUDNN.cpp
@@ -267,9 +267,9 @@ void CGT_CUDNN::codeGen(DFLeafNode* N) {
       //assert((II->getCalledFunction()->getName()).startswith("llvm.visc.tensor")
       //  && "Only HPVM tensor intrinsics allowed in ApproxHPVM leaf nodes\n");
 
-      if (!(II->getCalledFunction()->getName()).startswith("llvm.visc.tensor")){
-	continue; // skip non-tensor ops 
-      }
+      //if (!(II->getCalledFunction()->getName()).startswith("llvm.visc.tensor")){
+      //continue; // skip non-tensor ops 
+      //}
       
       /********************* Handle VISC Tensor intrinsics ********************/
       switch (II->getIntrinsicID()) {
@@ -545,6 +545,28 @@ void CGT_CUDNN::codeGen(DFLeafNode* N) {
         IItoRemove.push_back(II);
       }
       break;
+
+      case Intrinsic::visc_node_id:
+      { /* llvm.visc.node.id */
+        DEBUG(errs() << F_cudnn->getName() << "\t: Handling Node ID Intrinsic \n");
+        // Get uint32 argument
+        Value *Op = II->getOperand(0);
+
+        // Argument list for the runtime call
+        std::vector<Value*> Args;
+        Args.push_back(II->getOperand(0));
+
+        // Create hpvm-tensor-rt function call
+        Constant* tensor_set_node_id;
+        DECLARE(tensor_set_node_id);
+        CallInst::Create(tensor_set_node_id, Args, "", II);
+
+        // Mark to remove at the end
+        IItoRemove.push_back(II);
+      }
+      break;
+
+      
       default:
         llvm_unreachable("Unknown VISC Intrinsic!");
         break;