diff --git a/hpvm/lib/Transforms/DFG2LLVM_NVPTX/DFG2LLVM_NVPTX.cpp b/hpvm/lib/Transforms/DFG2LLVM_NVPTX/DFG2LLVM_NVPTX.cpp
index e3c21133b3987000311777ac7b9d50d8210c5e0f..84d17b26575d9ad7f15e2db268ffea39f67debb2 100644
--- a/hpvm/lib/Transforms/DFG2LLVM_NVPTX/DFG2LLVM_NVPTX.cpp
+++ b/hpvm/lib/Transforms/DFG2LLVM_NVPTX/DFG2LLVM_NVPTX.cpp
@@ -1063,7 +1063,6 @@ void CGT_NVPTX::codeGen(DFLeafNode* N) {
 
   // If no allocation node was found, SharedMemArgs is empty
   if (kernel->AllocationNode) {
-
     ValueToValueMapTy VMap;
     Function *F_alloc = CloneFunction(kernel->AllocationNode->getFuncPointer(), VMap);
     //F_alloc->removeFromParent();
@@ -1376,8 +1375,6 @@ void CGT_NVPTX::codeGen(DFLeafNode* N) {
         IItoRemove.push_back(II);
       }
       break;
-      case Intrinsic::visc_atomic_cmpxchg:
-        break;
       case Intrinsic::visc_atomic_add:
       case Intrinsic::visc_atomic_sub:
       case Intrinsic::visc_atomic_xchg:
@@ -1386,8 +1383,6 @@ void CGT_NVPTX::codeGen(DFLeafNode* N) {
       case Intrinsic::visc_atomic_and:
       case Intrinsic::visc_atomic_or:
       case Intrinsic::visc_atomic_xor:
-        //case Intrinsic::visc_atomic_inc:
-        //case Intrinsic::visc_atomic_dec:
       {
         DEBUG(errs() << *II << "\n");
         // Only have support for i32 atomic intrinsics
@@ -2375,14 +2370,8 @@ static AtomicRMWInst::BinOp getAtomicOp(Intrinsic::ID ID) {
 			return AtomicRMWInst::Sub;
 		case Intrinsic::visc_atomic_min:
 			return AtomicRMWInst::Min;
-		case Intrinsic::visc_atomic_umin:
-			return AtomicRMWInst::UMin;
 		case Intrinsic::visc_atomic_max:
 			return AtomicRMWInst::Max;
-		case Intrinsic::visc_atomic_umax:
-			return AtomicRMWInst::UMax;
-			//case Intrinsic::visc_atomic_inc: return AtomicRMWInst::Inc;
-			//case Intrinsic::visc_atomic_dec: return AtomicRMWInst::Dec;
 		case Intrinsic::visc_atomic_xchg:
 			return AtomicRMWInst::Xchg;
 		case Intrinsic::visc_atomic_and:
@@ -2400,8 +2389,6 @@ static AtomicRMWInst::BinOp getAtomicOp(Intrinsic::ID ID) {
 // Helper funtion, returns the OpenCL function name, corresponding to atomic op
 static std::string getAtomicOpName(Intrinsic::ID ID) {
 	switch(ID) {
-		case Intrinsic::visc_atomic_cmpxchg:
-			return "atom_cmpxchg";
 		case Intrinsic::visc_atomic_add:
 			return "atom_add";
 		case Intrinsic::visc_atomic_sub:
@@ -2410,10 +2397,6 @@ static std::string getAtomicOpName(Intrinsic::ID ID) {
 			return "atom_min";
 		case Intrinsic::visc_atomic_max:
 			return "atom_max";
-		case Intrinsic::visc_atomic_inc:
-			return "atom_inc";
-		case Intrinsic::visc_atomic_dec:
-			return "atom_dec";
 		case Intrinsic::visc_atomic_xchg:
 			return "atom_xchg";
 		case Intrinsic::visc_atomic_and:
diff --git a/hpvm/lib/Transforms/GenVISC/GenVISC.cpp b/hpvm/lib/Transforms/GenVISC/GenVISC.cpp
index 9cce997f347db203644df60495a7abf9dc273562..d39003a294ec8ba44bdf943dbcf132555ec60d91 100644
--- a/hpvm/lib/Transforms/GenVISC/GenVISC.cpp
+++ b/hpvm/lib/Transforms/GenVISC/GenVISC.cpp
@@ -663,9 +663,6 @@ bool GenVISC::runOnModule(Module &M) {
       if (isVISCCall_getNumNodeInstances_z(I)) {
         ReplaceCallWithIntrinsic(I, Intrinsic::visc_getNumNodeInstances_z, &toBeErased);
       }
-      if (isVISCCall_atomic_cmpxchg(I)) {
-        ReplaceCallWithIntrinsic(I, Intrinsic::visc_atomic_cmpxchg, &toBeErased);
-      }
       if (isVISCCall_atomic_add(I)) {
         ReplaceCallWithIntrinsic(I, Intrinsic::visc_atomic_add, &toBeErased);
       }
@@ -675,24 +672,12 @@ bool GenVISC::runOnModule(Module &M) {
       if (isVISCCall_atomic_xchg(I)) {
         ReplaceCallWithIntrinsic(I, Intrinsic::visc_atomic_xchg, &toBeErased);
       }
-      if (isVISCCall_atomic_inc(I)) {
-        ReplaceCallWithIntrinsic(I, Intrinsic::visc_atomic_inc, &toBeErased);
-      }
-      if (isVISCCall_atomic_dec(I)) {
-        ReplaceCallWithIntrinsic(I, Intrinsic::visc_atomic_dec, &toBeErased);
-      }
       if (isVISCCall_atomic_min(I)) {
         ReplaceCallWithIntrinsic(I, Intrinsic::visc_atomic_min, &toBeErased);
       }
-      if (isVISCCall_atomic_umin(I)) {
-        ReplaceCallWithIntrinsic(I, Intrinsic::visc_atomic_umin, &toBeErased);
-      }
       if (isVISCCall_atomic_max(I)) {
         ReplaceCallWithIntrinsic(I, Intrinsic::visc_atomic_max, &toBeErased);
       }
-      if (isVISCCall_atomic_umax(I)) {
-        ReplaceCallWithIntrinsic(I, Intrinsic::visc_atomic_umax, &toBeErased);
-      }
       if (isVISCCall_atomic_and(I)) {
         ReplaceCallWithIntrinsic(I, Intrinsic::visc_atomic_and, &toBeErased);
       }
@@ -702,15 +687,6 @@ bool GenVISC::runOnModule(Module &M) {
       if (isVISCCall_atomic_xor(I)) {
         ReplaceCallWithIntrinsic(I, Intrinsic::visc_atomic_xor, &toBeErased);
       }
-      if (isVISCCall_floor(I)) {
-        ReplaceCallWithIntrinsic(I, Intrinsic::floor, &toBeErased);
-      }
-      if (isVISCCall_rsqrt(I)) {
-        ReplaceCallWithIntrinsic(I, Intrinsic::nvvm_rsqrt_approx_f, &toBeErased);
-      }
-      if (isVISCCall_sqrt(I)) {
-        ReplaceCallWithIntrinsic(I, Intrinsic::sqrt, &toBeErased);
-      }
       if (isVISCCall_sin(I)) {
         ReplaceCallWithIntrinsic(I, Intrinsic::sin, &toBeErased);
       }
diff --git a/hpvm/llvm_patches/include/IR/IntrinsicsVISC.td b/hpvm/llvm_patches/include/IR/IntrinsicsVISC.td
index ab22372d80ac6ae1de89c2da6c3402fd0787e181..d5330175d86c9576394c9363a4ba30fd651f19e8 100644
--- a/hpvm/llvm_patches/include/IR/IntrinsicsVISC.td
+++ b/hpvm/llvm_patches/include/IR/IntrinsicsVISC.td
@@ -170,10 +170,6 @@ let TargetPrefix = "visc" in {
 
   /* ============ Atomic intrinsics ============= */
   // Atomic arithmetic operations
-  
-  /* i32 llvm.visc.atomic.cmpxchg(i32*, i32)*/
-  def int_visc_atomic_cmpxchg: Intrinsic<[llvm_i32_ty], [llvm_ptr_ty,
-                                          llvm_i32_ty], []>;
 
   /* i32 llvm.visc.atomic.add(i32*, i32)*/
   def int_visc_atomic_add: Intrinsic<[llvm_i32_ty], [llvm_ptr_ty, llvm_i32_ty],
@@ -187,30 +183,14 @@ let TargetPrefix = "visc" in {
   def int_visc_atomic_xchg: Intrinsic<[llvm_i32_ty], [llvm_ptr_ty, llvm_i32_ty],
                                     []>;
 
-  /* i32 llvm.visc.atomic.inc(i32*, i32)*/
-  def int_visc_atomic_inc: Intrinsic<[llvm_i32_ty], [llvm_ptr_ty],
-                                    []>;
-
-  /* i32 llvm.visc.atomic.dec(i32*, i32)*/
-  def int_visc_atomic_dec: Intrinsic<[llvm_i32_ty], [llvm_ptr_ty],
-                                    []>;
-
   /* i32 llvm.visc.atomic.min(i32*, i32)*/
   def int_visc_atomic_min: Intrinsic<[llvm_i32_ty], [llvm_ptr_ty, llvm_i32_ty],
                                     []>;
 
-  /* i32 llvm.visc.atomic.umin(i32*, i32)*/
-  def int_visc_atomic_umin: Intrinsic<[llvm_i32_ty], [llvm_ptr_ty, llvm_i32_ty],
-                                    []>;
-
   /* i32 llvm.visc.atomic.maxi32*, i32)*/
   def int_visc_atomic_max: Intrinsic<[llvm_i32_ty], [llvm_ptr_ty, llvm_i32_ty],
                                     []>;
 
-  /* i32 llvm.visc.atomic.umaxi32*, i32)*/
-  def int_visc_atomic_umax: Intrinsic<[llvm_i32_ty], [llvm_ptr_ty, llvm_i32_ty],
-                                    []>;
-
   // Atomic bitwise operations
 
   /* i32 llvm.visc.atomic.and(i32*, i32)*/
@@ -224,105 +204,5 @@ let TargetPrefix = "visc" in {
   /* i32 llvm.visc.atomic.xor(i32*, i32)*/
   def int_visc_atomic_xor: Intrinsic<[llvm_i32_ty], [llvm_ptr_ty, llvm_i32_ty],
                                     []>;
-  /***************************************************************************/
-  /*                            ApproxHPVM intrinsics                        */
-  /***************************************************************************/
-
-  /* Tensor add intrinsic
-   * i8* llvm.visc.tensor.add(i8*, i8*);
-   */
-  def int_visc_tensor_add : Intrinsic<[llvm_ptr_ty], [llvm_ptr_ty,
-                                   llvm_ptr_ty], []>;
-
-  /* Tensor mul intrinsic
-   * i8* llvm.visc.tensor.mul(i8*, i8*);
-   */
-  def int_visc_tensor_mul : Intrinsic<[llvm_ptr_ty], [llvm_ptr_ty,
-                                   llvm_ptr_ty], []>;
-
-  /* Tensor relu intrinsic
-   * i8* llvm.visc.tensor.relu(i8*);
-   */
-  def int_visc_tensor_relu : Intrinsic<[llvm_ptr_ty], [llvm_ptr_ty], []>;
-
-  /* Tensor clipped relu intrinsic
-   * i8* llvm.visc.tensor.clipped.relu(i8*);
-   */
-  def int_visc_tensor_clipped_relu : Intrinsic<[llvm_ptr_ty], [llvm_ptr_ty], []>;
-
-  /* Tensor tanh intrinsic
-   * i8* llvm.visc.tensor.tanh(i8*);
-   */
-  def int_visc_tensor_tanh : Intrinsic<[llvm_ptr_ty], [llvm_ptr_ty], []>;
-
-  /* Tensor sigmoid intrinsic
-   * i8* llvm.visc.tensor.sigmoid(i8*);
-   */
-  def int_visc_tensor_sigmoid : Intrinsic<[llvm_ptr_ty], [llvm_ptr_ty], []>;
-
-  /* Tensor softmax intrinsic
-   * i8* llvm.visc.tensor.softmax(i8*);
-   */
-  def int_visc_tensor_softmax : Intrinsic<[llvm_ptr_ty], [llvm_ptr_ty], []>;
-
-  /* Tensor convolution intrinsic
-   * i8* llvm.visc.tensor.convolution(i8*, i8*, i32, i32, i32, i32);
-   */
-  def int_visc_tensor_convolution : Intrinsic<[llvm_ptr_ty], [llvm_ptr_ty,
-                                                              llvm_ptr_ty,
-                                                              llvm_i32_ty,
-                                                              llvm_i32_ty,
-                                                              llvm_i32_ty,
-                                                              llvm_i32_ty], []>;
-
-  /* Tensor group convolution intrinsic
-   * i8* llvm.visc.tensor.group.convolution(i8*, i8*, i32, i32, i32, i32, i32, i32);
-   */
-  def int_visc_tensor_group_convolution : Intrinsic<[llvm_ptr_ty], [llvm_ptr_ty,
-                                                              llvm_ptr_ty,
-                                                              llvm_i32_ty,
-                                                              llvm_i32_ty,
-                                                              llvm_i32_ty,
-                                                              llvm_i32_ty,
-							      llvm_i32_ty,
-							      llvm_i32_ty], []>;
-
-  /* Tensor BatchNorm intrinsic
-   * i8* llvm.visc.tensor.batchnorm(i8*, i8*, i8*, i8*, i8*, double);
-   */
-  def int_visc_tensor_batchnorm : Intrinsic<[llvm_ptr_ty], [llvm_ptr_ty,
-                                                            llvm_ptr_ty,
-							    llvm_ptr_ty,
-							    llvm_ptr_ty,
-							    llvm_ptr_ty,
-                                                            llvm_double_ty], []>;
-
-
-  /* Tensor pool intrinsics: max, min, average
-   * i8* llvm.visc.tensor.pool.max(i8*, i32, i32, i32, i32, i32, i32);
-   * i8* llvm.visc.tensor.pool.min(i8*, i32, i32, i32, i32, i32, i32);
-   * i8* llvm.visc.tensor.pool.average(i8*, i32, i32, i32, i32, i32, i32);
-   */
-  def int_visc_tensor_pool_max : Intrinsic<[llvm_ptr_ty], [llvm_ptr_ty,
-                                                           llvm_i32_ty,
-                                                           llvm_i32_ty,
-                                                           llvm_i32_ty,
-                                                           llvm_i32_ty,
-                                                           llvm_i32_ty,
-                                                           llvm_i32_ty], []>;
-  def int_visc_tensor_pool_min : Intrinsic<[llvm_ptr_ty], [llvm_ptr_ty,
-                                                           llvm_i32_ty,
-                                                           llvm_i32_ty,
-                                                           llvm_i32_ty,
-                                                           llvm_i32_ty,
-                                                           llvm_i32_ty,
-                                                           llvm_i32_ty], []>;
-  def int_visc_tensor_pool_mean : Intrinsic<[llvm_ptr_ty], [llvm_ptr_ty,
-                                                            llvm_i32_ty,
-                                                            llvm_i32_ty,
-                                                            llvm_i32_ty,
-                                                            llvm_i32_ty,
-                                                            llvm_i32_ty,
-                                                            llvm_i32_ty], []>;
 
 }