Purpose: Disable new SIMD instruction sets on amd64 and i386, for sake of
         better compatibility with old x86 machines.
Note: Turn DEBIAN_AMD64 or DEBIAN_I386 flag on to disable those ISAs.
      If none of them are specified, nothing will be changed.
Author: Zhou Mo
Forward: No. Debian specific patch.

diff --git a/lib/TH/cmake/FindSSE.cmake b/lib/TH/cmake/FindSSE.cmake
index f84ce89..75eafde 100644
--- a/lib/TH/cmake/FindSSE.cmake
+++ b/lib/TH/cmake/FindSSE.cmake
@@ -108,18 +108,29 @@ MACRO(CHECK_SSE lang type flags)
 
 ENDMACRO()
 
-CHECK_SSE(C "SSE1" " ;-msse;/arch:SSE")
-CHECK_SSE(C "SSE2" " ;-msse2;/arch:SSE2")
-CHECK_SSE(C "SSE3" " ;-msse3;/arch:SSE3")
-CHECK_SSE(C "SSE4_1" " ;-msse4.1;-msse4;/arch:SSE4")
-CHECK_SSE(C "SSE4_2" " ;-msse4.2;-msse4;/arch:SSE4")
-CHECK_SSE(C "AVX" " ;-mavx;/arch:AVX")
-CHECK_SSE(C "AVX2" " ;-mavx2 -mfma;/arch:AVX2")
-
-CHECK_SSE(CXX "SSE1" " ;-msse;/arch:SSE")
-CHECK_SSE(CXX "SSE2" " ;-msse2;/arch:SSE2")
-CHECK_SSE(CXX "SSE3" " ;-msse3;/arch:SSE3")
-CHECK_SSE(CXX "SSE4_1" " ;-msse4.1;-msse4;/arch:SSE4")
-CHECK_SSE(CXX "SSE4_2" " ;-msse4.2;-msse4;/arch:SSE4")
-CHECK_SSE(CXX "AVX" " ;-mavx;/arch:AVX")
-CHECK_SSE(CXX "AVX2" " ;-mavx2 -mfma;/arch:AVX2")
+IF(DEBIAN_I386)
+  # no SSE at all for i386
+ELSEIF(DEBIAN_AMD64)
+  # nothing higher than SSE2, no AVX. (Debian)
+  CHECK_SSE(C "SSE1" " ;-msse;/arch:SSE")
+  CHECK_SSE(C "SSE2" " ;-msse2;/arch:SSE2")
+  CHECK_SSE(CXX "SSE1" " ;-msse;/arch:SSE")
+  CHECK_SSE(CXX "SSE2" " ;-msse2;/arch:SSE2")
+ELSE()
+  # Upstream
+  CHECK_SSE(C "SSE1" " ;-msse;/arch:SSE")
+  CHECK_SSE(C "SSE2" " ;-msse2;/arch:SSE2")
+  CHECK_SSE(C "SSE3" " ;-msse3;/arch:SSE3")
+  CHECK_SSE(C "SSE4_1" " ;-msse4.1;-msse4;/arch:SSE4")
+  CHECK_SSE(C "SSE4_2" " ;-msse4.2;-msse4;/arch:SSE4")
+  CHECK_SSE(C "AVX" " ;-mavx;/arch:AVX")
+  CHECK_SSE(C "AVX2" " ;-mavx2 -mfma;/arch:AVX2")
+  
+  CHECK_SSE(CXX "SSE1" " ;-msse;/arch:SSE")
+  CHECK_SSE(CXX "SSE2" " ;-msse2;/arch:SSE2")
+  CHECK_SSE(CXX "SSE3" " ;-msse3;/arch:SSE3")
+  CHECK_SSE(CXX "SSE4_1" " ;-msse4.1;-msse4;/arch:SSE4")
+  CHECK_SSE(CXX "SSE4_2" " ;-msse4.2;-msse4;/arch:SSE4")
+  CHECK_SSE(CXX "AVX" " ;-mavx;/arch:AVX")
+  CHECK_SSE(CXX "AVX2" " ;-mavx2 -mfma;/arch:AVX2")
+ENDIF()
