diff --git a/hpvm/lib/Transforms/GenHPVM/GenHPVM.cpp b/hpvm/lib/Transforms/GenHPVM/GenHPVM.cpp
index 2d62ffda0e483687eebe8e7b5d8bc5d4d4fb9466..00063d6dc85c2de2ec609fce29024da037d84f12 100644
--- a/hpvm/lib/Transforms/GenHPVM/GenHPVM.cpp
+++ b/hpvm/lib/Transforms/GenHPVM/GenHPVM.cpp
@@ -184,6 +184,8 @@ IS_HPVM_CALL(tensor_tanh)
 IS_HPVM_CALL(tensor_sigmoid)
 IS_HPVM_CALL(tensor_softmax)
 
+IS_HPVM_CALL(node_id)
+
 // Return the constant integer represented by value V
 static unsigned getNumericValue(Value *V) {
   assert(isa<ConstantInt>(V) &&
@@ -762,6 +764,11 @@ bool GenHPVM::runOnModule(Module &M) {
       if (isHPVMCall_tensor_softmax(I)) {
         ReplaceCallWithIntrinsic(I, Intrinsic::hpvm_tensor_softmax, &toBeErased);
       }
+
+      // New Intrinsic to set Node ID
+      if (isHPVMCall_node_id(I)) {
+        ReplaceCallWithIntrinsic(I, Intrinsic::hpvm_node_id, &toBeErased);
+      }
     }
 
     // Erase the __hpvm__node calls