diff --git a/simd/mips/jsimd.c b/simd/mips/jsimd.c
index 4cf7e2c..d2546ee 100644
--- a/simd/mips/jsimd.c
+++ b/simd/mips/jsimd.c
@@ -29,7 +29,7 @@
 
 static unsigned int simd_support = ~0;
 
-#if !(defined(__MIPSEL__) && defined(__mips_dsp) && (__mips_dsp_rev >= 2)) && defined(__linux__)
+#if !(defined(__mips_dsp) && (__mips_dsp_rev >= 2)) && defined(__linux__)
 
 LOCAL(void)
 parse_proc_cpuinfo(const char *search_string)
@@ -72,7 +72,7 @@
 
   simd_support = 0;
 
-#if defined(__MIPSEL__) && defined(__mips_dsp) && (__mips_dsp_rev >= 2)
+#if defined(__mips_dsp) && (__mips_dsp_rev >= 2)
   simd_support |= JSIMD_DSPR2;
 #elif defined(__linux__)
   /* We still have a chance to use MIPS DSPR2 regardless of globally used
@@ -338,8 +338,13 @@
   if (sizeof(JDIMENSION) != 4)
     return 0;
 
+  /* FIXME: jsimd_h2v2_downsample_dspr2() fails some of the TJBench tiling
+   * regression tests, probably because the DSPr2 SIMD implementation predates
+   * those tests. */
+#if 0
   if (simd_support & JSIMD_DSPR2)
     return 1;
+#endif
 
   return 0;
 }
@@ -374,8 +379,13 @@
   if (sizeof(JDIMENSION) != 4)
     return 0;
 
+  /* FIXME: jsimd_h2v1_downsample_dspr2() fails some of the TJBench tiling
+   * regression tests, probably because the DSPr2 SIMD implementation predates
+   * those tests. */
+#if 0
   if (simd_support & JSIMD_DSPR2)
     return 1;
+#endif
 
   return 0;
 }
@@ -439,8 +449,10 @@
   if (sizeof(JDIMENSION) != 4)
     return 0;
 
+#if defined(__MIPSEL__)
   if (simd_support & JSIMD_DSPR2)
     return 1;
+#endif
 
   return 0;
 }
@@ -501,8 +513,10 @@
   if (sizeof(JDIMENSION) != 4)
     return 0;
 
+#if defined(__MIPSEL__)
   if (simd_support & JSIMD_DSPR2)
     return 1;
+#endif
 
   return 0;
 }
@@ -518,8 +532,10 @@
   if (sizeof(JDIMENSION) != 4)
     return 0;
 
+#if defined(__MIPSEL__)
   if (simd_support & JSIMD_DSPR2)
     return 1;
+#endif
 
   return 0;
 }
@@ -667,8 +683,10 @@
   if (sizeof(DCTELEM) != 2)
     return 0;
 
+#if defined(__MIPSEL__)
   if (simd_support & JSIMD_DSPR2)
     return 1;
+#endif
 
   return 0;
 }
@@ -725,8 +743,10 @@
   if (sizeof(DCTELEM) != 2)
     return 0;
 
+#if defined(__MIPSEL__)
   if (simd_support & JSIMD_DSPR2)
     return 1;
+#endif
 
   return 0;
 }
@@ -742,8 +762,10 @@
   if (sizeof(DCTELEM) != 2)
     return 0;
 
+#if defined(__MIPSEL__)
   if (simd_support & JSIMD_DSPR2)
     return 1;
+#endif
 
   return 0;
 }
@@ -870,8 +892,10 @@
   if (sizeof(ISLOW_MULT_TYPE) != 2)
     return 0;
 
+#if defined(__MIPSEL__)
   if (simd_support & JSIMD_DSPR2)
     return 1;
+#endif
 
   return 0;
 }
@@ -1015,8 +1039,10 @@
   if (IFAST_SCALE_BITS != 2)
     return 0;
 
+#if defined(__MIPSEL__)
   if (simd_support & JSIMD_DSPR2)
     return 1;
+#endif
 
   return 0;
 }
