Fix a bunch of minor build and test issues.
diff --git a/Eigen/SPQRSupport b/Eigen/SPQRSupport
index 33c3370..d83495e 100644
--- a/Eigen/SPQRSupport
+++ b/Eigen/SPQRSupport
@@ -28,7 +28,7 @@
   *
   */
 
-#include "Eigen/CholmodSupport"
+#include "CholmodSupport"
 #include "src/SPQRSupport/SuiteSparseQRSupport.h"
 
 #endif
diff --git a/Eigen/src/Core/Visitor.h b/Eigen/src/Core/Visitor.h
index e1c17fc..5e5eead 100644
--- a/Eigen/src/Core/Visitor.h
+++ b/Eigen/src/Core/Visitor.h
@@ -294,7 +294,7 @@
       Packet mask = pcmp_eq(pset1<Packet>(value), p);
       Index max_idx = PacketSize - static_cast<Index>(predux_max(pand(range, mask)));
       this->res = value;
-      this->row = Derived::IsRowMajor ? i : i + max_idx;;
+      this->row = Derived::IsRowMajor ? i : i + max_idx;
       this->col = Derived::IsRowMajor ? j + max_idx : j;
     }
   }
@@ -342,7 +342,7 @@
 struct functor_traits<minmax_coeff_visitor<Scalar, is_min, NaNPropagation> > {
   enum {
     Cost = NumTraits<Scalar>::AddCost,
-    PacketAccess = true
+    PacketAccess = packet_traits<Scalar>::HasCmp
   };
 };
 
diff --git a/test/bfloat16_float.cpp b/test/bfloat16_float.cpp
index b2a22ce..5cc44ac 100644
--- a/test/bfloat16_float.cpp
+++ b/test/bfloat16_float.cpp
@@ -11,8 +11,6 @@
 
 #include "main.h"
 
-#include <Eigen/src/Core/arch/Default/BFloat16.h>
-
 #define VERIFY_BFLOAT16_BITS_EQUAL(h, bits) \
   VERIFY_IS_EQUAL((numext::bit_cast<numext::uint16_t>(h)), (static_cast<numext::uint16_t>(bits)))
 
diff --git a/test/gpu_basic.cu b/test/gpu_basic.cu
index e424a93..82f9d61 100644
--- a/test/gpu_basic.cu
+++ b/test/gpu_basic.cu
@@ -16,6 +16,7 @@
 #define EIGEN_TEST_NO_LONGDOUBLE
 #define EIGEN_DEFAULT_DENSE_INDEX_TYPE int
 
+#define EIGEN_USE_GPU
 #include "main.h"
 #include "gpu_common.h"
 
diff --git a/test/gpu_common.h b/test/gpu_common.h
index c37eaa1..05080ad 100644
--- a/test/gpu_common.h
+++ b/test/gpu_common.h
@@ -12,9 +12,6 @@
 
 #include <iostream>
 
-#define EIGEN_USE_GPU
-#include <unsupported/Eigen/CXX11/src/Tensor/TensorGpuHipCudaDefines.h>
-
 #if !defined(__CUDACC__) && !defined(__HIPCC__)
 dim3 threadIdx, blockDim, blockIdx;
 #endif
diff --git a/test/gpu_example.cu b/test/gpu_example.cu
index a69f5ea..d4715cf 100644
--- a/test/gpu_example.cu
+++ b/test/gpu_example.cu
@@ -9,6 +9,7 @@
 
 // The following is an example GPU test.
 
+#define EIGEN_USE_GPU
 #include "main.h"  // Include the main test utilities.
 
 // Define a kernel functor.
diff --git a/test/gpu_test_helper.h b/test/gpu_test_helper.h
index 0942466..8955cbc 100644
--- a/test/gpu_test_helper.h
+++ b/test/gpu_test_helper.h
@@ -3,11 +3,6 @@
 
 #include <Eigen/Core>
 
-#ifdef EIGEN_GPUCC
-#define EIGEN_USE_GPU
-#include "../unsupported/Eigen/CXX11/src/Tensor/TensorGpuHipCudaDefines.h"
-#endif // EIGEN_GPUCC
-
 // std::tuple cannot be used on device, and there is a bug in cuda < 9.2 that
 // doesn't allow std::tuple to compile for host code either. In these cases,
 // use our custom implementation.
diff --git a/test/half_float.cpp b/test/half_float.cpp
index 00a8b48..83b057e 100644
--- a/test/half_float.cpp
+++ b/test/half_float.cpp
@@ -9,8 +9,6 @@
 
 #include "main.h"
 
-#include <Eigen/src/Core/arch/Default/Half.h>
-
 #define VERIFY_HALF_BITS_EQUAL(h, bits) \
   VERIFY_IS_EQUAL((numext::bit_cast<numext::uint16_t>(h)), (static_cast<numext::uint16_t>(bits)))
 
diff --git a/test/incomplete_cholesky.cpp b/test/incomplete_cholesky.cpp
index ecc17f5..72316a2 100644
--- a/test/incomplete_cholesky.cpp
+++ b/test/incomplete_cholesky.cpp
@@ -10,7 +10,6 @@
 // #define EIGEN_MAX_ALIGN_BYTES 0
 #include "sparse_solver.h"
 #include <Eigen/IterativeLinearSolvers>
-#include <unsupported/Eigen/IterativeSolvers>
 
 template<typename T, typename I_> void test_incomplete_cholesky_T()
 {
diff --git a/test/sparse.h b/test/sparse.h
index f3e697d..78e6619 100644
--- a/test/sparse.h
+++ b/test/sparse.h
@@ -152,6 +152,4 @@
   }
 }
 
-
-#include <unsupported/Eigen/SparseExtra>
 #endif // EIGEN_TESTSPARSE_H
diff --git a/test/sparselu.cpp b/test/sparselu.cpp
index 84cc6eb..0f9d25f 100644
--- a/test/sparselu.cpp
+++ b/test/sparselu.cpp
@@ -17,7 +17,6 @@
 
 #include "sparse_solver.h"
 #include <Eigen/SparseLU>
-#include <unsupported/Eigen/SparseExtra>
 
 template<typename T> void test_sparselu_T()
 {
diff --git a/unsupported/test/sparse_extra.cpp b/unsupported/test/sparse_extra.cpp
index 4a1f938..05a9066 100644
--- a/unsupported/test/sparse_extra.cpp
+++ b/unsupported/test/sparse_extra.cpp
@@ -7,7 +7,7 @@
 // Public License v. 2.0. If a copy of the MPL was not distributed
 // with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
 
-#include "sparse_product.cpp"
+#include "sparse.h"
 
 #ifdef min
 #undef min