]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
erasure-code: do not attempt to compile SSE4 on i386 1563/head
authorLoic Dachary <loic@dachary.org>
Sat, 29 Mar 2014 09:34:29 +0000 (10:34 +0100)
committerLoic Dachary <loic@dachary.org>
Sat, 29 Mar 2014 09:34:29 +0000 (10:34 +0100)
SSE4 are only not availabe on older CPUs. Although the compiler could
probably generate the code, there is no point in doing so. The SSE4.1,
SSE4.2 and PCLMUL cpu features are only tested if the target CPU is
AMD64 or x86_64.

Signed-off-by: Loic Dachary <loic@dachary.org>
m4/ax_intel.m4

index 3bcde6b0cace877f521d803c64f24ccd8efa7ef7..831e438890267d144c976b828678ce8fc85b2bf0 100644 (file)
@@ -2,61 +2,69 @@ AC_DEFUN([AX_INTEL_FEATURES],
 [
   AC_REQUIRE([AC_CANONICAL_HOST])
 
-  AX_CHECK_COMPILE_FLAG(-msse, ax_cv_support_sse_ext=yes, [])
-  if test x"$ax_cv_support_sse_ext" = x"yes"; then
-    INTEL_SSE_FLAGS="-msse -DINTEL_SSE"
-    AC_SUBST(INTEL_SSE_FLAGS)
-    INTEL_FLAGS="$INTEL_FLAGS $INTEL_SSE_FLAGS"
-    AC_DEFINE(HAVE_SSE,,[Support SSE (Streaming SIMD Extensions) instructions])
-  fi
+  case $target_cpu in 
+    i[[3456]]86*|x86_64*|amd64*)
+      AX_CHECK_COMPILE_FLAG(-msse, ax_cv_support_sse_ext=yes, [])
+      if test x"$ax_cv_support_sse_ext" = x"yes"; then
+        INTEL_SSE_FLAGS="-msse -DINTEL_SSE"
+        AC_SUBST(INTEL_SSE_FLAGS)
+        INTEL_FLAGS="$INTEL_FLAGS $INTEL_SSE_FLAGS"
+        AC_DEFINE(HAVE_SSE,,[Support SSE (Streaming SIMD Extensions) instructions])
+      fi
+    
+      AX_CHECK_COMPILE_FLAG(-msse2, ax_cv_support_sse2_ext=yes, [])
+      if test x"$ax_cv_support_sse2_ext" = x"yes"; then
+        INTEL_SSE2_FLAGS="-msse2 -DINTEL_SSE2"
+        AC_SUBST(INTEL_SSE2_FLAGS)
+        INTEL_FLAGS="$INTEL_FLAGS $INTEL_SSE2_FLAGS"
+        AC_DEFINE(HAVE_SSE2,,[Support SSE2 (Streaming SIMD Extensions 2) instructions])
+      fi
+    
+      AX_CHECK_COMPILE_FLAG(-msse3, ax_cv_support_sse3_ext=yes, [])
+      if test x"$ax_cv_support_sse3_ext" = x"yes"; then
+        INTEL_SSE3_FLAGS="-mssse3 -DINTEL_SSE3"
+        AC_SUBST(INTEL_SSE3_FLAGS)
+        INTEL_FLAGS="$INTEL_FLAGS $INTEL_SSE3_FLAGS"
+        AC_DEFINE(HAVE_SSE3,,[Support SSE3 (Streaming SIMD Extensions 3) instructions])
+      fi
+    
+      AX_CHECK_COMPILE_FLAG(-mssse3, ax_cv_support_ssse3_ext=yes, [])
+      if test x"$ax_cv_support_ssse3_ext" = x"yes"; then
+        INTEL_SSSE3_FLAGS="-mssse3 -DINTEL_SSSE3"
+        AC_SUBST(INTEL_SSSE3_FLAGS)
+        INTEL_FLAGS="$INTEL_FLAGS $INTEL_SSSE3_FLAGS"
+        AC_DEFINE(HAVE_SSSE3,,[Support SSSE3 (Supplemental Streaming SIMD Extensions 3) instructions])
+      fi
+    ;;
+  esac
 
-  AX_CHECK_COMPILE_FLAG(-msse2, ax_cv_support_sse2_ext=yes, [])
-  if test x"$ax_cv_support_sse2_ext" = x"yes"; then
-    INTEL_SSE2_FLAGS="-msse2 -DINTEL_SSE2"
-    AC_SUBST(INTEL_SSE2_FLAGS)
-    INTEL_FLAGS="$INTEL_FLAGS $INTEL_SSE2_FLAGS"
-    AC_DEFINE(HAVE_SSE2,,[Support SSE2 (Streaming SIMD Extensions 2) instructions])
-  fi
-
-  AX_CHECK_COMPILE_FLAG(-msse3, ax_cv_support_sse3_ext=yes, [])
-  if test x"$ax_cv_support_sse3_ext" = x"yes"; then
-    INTEL_SSE3_FLAGS="-mssse3 -DINTEL_SSE3"
-    AC_SUBST(INTEL_SSE3_FLAGS)
-    INTEL_FLAGS="$INTEL_FLAGS $INTEL_SSE3_FLAGS"
-    AC_DEFINE(HAVE_SSE3,,[Support SSE3 (Streaming SIMD Extensions 3) instructions])
-  fi
-
-  AX_CHECK_COMPILE_FLAG(-mpclmul, ax_cv_support_pclmuldq_ext=yes, [])
-  if test x"$ax_cv_support_pclmuldq_ext" = x"yes"; then
-    INTEL_PCLMUL_FLAGS="-mpclmul -DINTEL_SSE4_PCLMUL"
-    AC_SUBST(INTEL_PCLMUL_FLAGS)
-    INTEL_FLAGS="$INTEL_FLAGS $INTEL_PCLMUL_FLAGS"
-    AC_DEFINE(HAVE_PCLMUL,,[Support (PCLMUL) Carry-Free Muliplication])
-  fi
-
-  AX_CHECK_COMPILE_FLAG(-mssse3, ax_cv_support_ssse3_ext=yes, [])
-  if test x"$ax_cv_support_ssse3_ext" = x"yes"; then
-    INTEL_SSSE3_FLAGS="-mssse3 -DINTEL_SSSE3"
-    AC_SUBST(INTEL_SSSE3_FLAGS)
-    INTEL_FLAGS="$INTEL_FLAGS $INTEL_SSSE3_FLAGS"
-    AC_DEFINE(HAVE_SSSE3,,[Support SSSE3 (Supplemental Streaming SIMD Extensions 3) instructions])
-  fi
-
-  AX_CHECK_COMPILE_FLAG(-msse4.1, ax_cv_support_sse41_ext=yes, [])
-  if test x"$ax_cv_support_sse41_ext" = x"yes"; then
-    INTEL_SSE4_1_FLAGS="-msse4.1 -DINTEL_SSE4"
-    AC_SUBST(INTEL_SSE4_1_FLAGS)
-    INTEL_FLAGS="$INTEL_FLAGS $INTEL_SSE4_1_FLAGS"
-    AC_DEFINE(HAVE_SSE4_1,,[Support SSE4.1 (Streaming SIMD Extensions 4.1) instructions])
-  fi
-
-  AX_CHECK_COMPILE_FLAG(-msse4.2, ax_cv_support_sse42_ext=yes, [])
-  if test x"$ax_cv_support_sse42_ext" = x"yes"; then
-    INTEL_SSE4_2_FLAGS="-msse4.2 -DINTEL_SSE4"
-    AC_SUBST(INTEL_SSE4_2_FLAGS)
-    INTEL_FLAGS="$INTEL_FLAGS $INTEL_SSE4_2_FLAGS"
-    AC_DEFINE(HAVE_SSE4_2,,[Support SSE4.2 (Streaming SIMD Extensions 4.2) instructions])
-  fi
+  case $target_cpu in
+  x86_64*|amd64*)
+      AX_CHECK_COMPILE_FLAG(-mpclmul, ax_cv_support_pclmuldq_ext=yes, [])
+      if test x"$ax_cv_support_pclmuldq_ext" = x"yes"; then
+        INTEL_PCLMUL_FLAGS="-mpclmul -DINTEL_SSE4_PCLMUL"
+        AC_SUBST(INTEL_PCLMUL_FLAGS)
+        INTEL_FLAGS="$INTEL_FLAGS $INTEL_PCLMUL_FLAGS"
+        AC_DEFINE(HAVE_PCLMUL,,[Support (PCLMUL) Carry-Free Muliplication])
+      fi
+    
+      AX_CHECK_COMPILE_FLAG(-msse4.1, ax_cv_support_sse41_ext=yes, [])
+      if test x"$ax_cv_support_sse41_ext" = x"yes"; then
+        INTEL_SSE4_1_FLAGS="-msse4.1 -DINTEL_SSE4"
+        AC_SUBST(INTEL_SSE4_1_FLAGS)
+        INTEL_FLAGS="$INTEL_FLAGS $INTEL_SSE4_1_FLAGS"
+        AC_DEFINE(HAVE_SSE4_1,,[Support SSE4.1 (Streaming SIMD Extensions 4.1) instructions])
+      fi
+    
+      AX_CHECK_COMPILE_FLAG(-msse4.2, ax_cv_support_sse42_ext=yes, [])
+      if test x"$ax_cv_support_sse42_ext" = x"yes"; then
+        INTEL_SSE4_2_FLAGS="-msse4.2 -DINTEL_SSE4"
+        AC_SUBST(INTEL_SSE4_2_FLAGS)
+        INTEL_FLAGS="$INTEL_FLAGS $INTEL_SSE4_2_FLAGS"
+        AC_DEFINE(HAVE_SSE4_2,,[Support SSE4.2 (Streaming SIMD Extensions 4.2) instructions])
+      fi
+    ;;
+  esac
 
   AC_SUBST(INTEL_FLAGS)
 ])