Remove detection for MMX support and related technology
authorThiago Macieira <thiago.macieira@intel.com>
Thu, 29 Dec 2011 21:24:54 +0000 (19:24 -0200)
committerQt by Nokia <qt-info@nokia.com>
Fri, 23 Mar 2012 18:43:00 +0000 (19:43 +0100)
This also removes the check for SSE, but the check for SSE2 and
further technologies is kept. If SSE2 is present, then SSE is too. We
don't have any code that uses the original SSE instructions only.

Remove the CMOV detection, since we don't use that anywhere and we're
not likely to ever use them..

Change-Id: I3faf2c555ad1c007c52a54644138902f716c1fe1
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
12 files changed:
config.tests/unix/3dnow/3dnow.cpp [deleted file]
config.tests/unix/3dnow/3dnow.pro [deleted file]
config.tests/unix/mmx/mmx.cpp [deleted file]
config.tests/unix/mmx/mmx.pro [deleted file]
config.tests/unix/sse/sse.cpp [deleted file]
config.tests/unix/sse/sse.pro [deleted file]
configure
mkspecs/features/qt.prf
src/corelib/tools/qsimd.cpp
src/corelib/tools/qsimd_p.h
src/gui/gui.pro
tools/configure/configureapp.cpp

diff --git a/config.tests/unix/3dnow/3dnow.cpp b/config.tests/unix/3dnow/3dnow.cpp
deleted file mode 100644 (file)
index bb15dae..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/
-**
-** This file is part of the config.tests of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** GNU Lesser General Public License Usage
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this
-** file. Please review the following information to ensure the GNU Lesser
-** General Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU General
-** Public License version 3.0 as published by the Free Software Foundation
-** and appearing in the file LICENSE.GPL included in the packaging of this
-** file. Please review the following information to ensure the GNU General
-** Public License version 3.0 requirements will be met:
-** http://www.gnu.org/copyleft/gpl.html.
-**
-** Other Usage
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <mm3dnow.h>
-#if defined(__GNUC__) && __GNUC__ < 4 && __GNUC_MINOR__ < 3
-#error GCC < 3.2 is known to create internal compiler errors with our MMX code
-#endif
-
-int main(int, char**)
-{
-    _m_femms();
-    return 0;
-}
diff --git a/config.tests/unix/3dnow/3dnow.pro b/config.tests/unix/3dnow/3dnow.pro
deleted file mode 100644 (file)
index 90a8a19..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-SOURCES = 3dnow.cpp
-CONFIG -= x11 qt
-mac:CONFIG -= app_bundle
diff --git a/config.tests/unix/mmx/mmx.cpp b/config.tests/unix/mmx/mmx.cpp
deleted file mode 100644 (file)
index cb6361e..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/
-**
-** This file is part of the config.tests of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** GNU Lesser General Public License Usage
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this
-** file. Please review the following information to ensure the GNU Lesser
-** General Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU General
-** Public License version 3.0 as published by the Free Software Foundation
-** and appearing in the file LICENSE.GPL included in the packaging of this
-** file. Please review the following information to ensure the GNU General
-** Public License version 3.0 requirements will be met:
-** http://www.gnu.org/copyleft/gpl.html.
-**
-** Other Usage
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <mmintrin.h>
-#if defined(__GNUC__) && __GNUC__ < 4 && __GNUC_MINOR__ < 3
-#error GCC < 3.2 is known to create internal compiler errors with our MMX code
-#endif
-
-int main(int, char**)
-{
-    _mm_empty();
-    return 0;
-}
diff --git a/config.tests/unix/mmx/mmx.pro b/config.tests/unix/mmx/mmx.pro
deleted file mode 100644 (file)
index d2fea7f..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-SOURCES = mmx.cpp
-CONFIG -= x11 qt
-mac:CONFIG -= app_bundle
diff --git a/config.tests/unix/sse/sse.cpp b/config.tests/unix/sse/sse.cpp
deleted file mode 100644 (file)
index 9e3bace..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: http://www.qt-project.org/
-**
-** This file is part of the config.tests of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** GNU Lesser General Public License Usage
-** This file may be used under the terms of the GNU Lesser General Public
-** License version 2.1 as published by the Free Software Foundation and
-** appearing in the file LICENSE.LGPL included in the packaging of this
-** file. Please review the following information to ensure the GNU Lesser
-** General Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU General
-** Public License version 3.0 as published by the Free Software Foundation
-** and appearing in the file LICENSE.GPL included in the packaging of this
-** file. Please review the following information to ensure the GNU General
-** Public License version 3.0 requirements will be met:
-** http://www.gnu.org/copyleft/gpl.html.
-**
-** Other Usage
-** Alternatively, this file may be used in accordance with the terms and
-** conditions contained in a signed written agreement between you and Nokia.
-**
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include <xmmintrin.h>
-#if defined(__GNUC__) && __GNUC__ < 4 && __GNUC_MINOR__ < 3
-#error GCC < 3.2 is known to create internal compiler errors with our MMX code
-#endif
-
-int main(int, char**)
-{
-    __m64 a = _mm_setzero_si64();
-    a = _mm_shuffle_pi16(a, 0);
-    return _m_to_int(a);
-}
diff --git a/config.tests/unix/sse/sse.pro b/config.tests/unix/sse/sse.pro
deleted file mode 100644 (file)
index 4cc34a7..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-SOURCES = sse.cpp
-CONFIG -= x11 qt
-mac:CONFIG -= app_bundle
index 66cf642..9e28f8f 100755 (executable)
--- a/configure
+++ b/configure
@@ -725,9 +725,6 @@ CFG_PRECOMPILE=auto
 CFG_SEPARATE_DEBUG_INFO=no
 CFG_SEPARATE_DEBUG_INFO_NOCOPY=no
 CFG_REDUCE_EXPORTS=auto
-CFG_MMX=auto
-CFG_3DNOW=auto
-CFG_SSE=auto
 CFG_SSE2=auto
 CFG_SSE3=auto
 CFG_SSSE3=auto
@@ -1471,27 +1468,6 @@ while [ "$#" -gt 0 ]; do
             UNKNOWN_OPT=yes
         fi
         ;;
-    mmx)
-        if [ "$VAL" = "no" ]; then
-            CFG_MMX="$VAL"
-        else
-            UNKNOWN_OPT=yes
-        fi
-        ;;
-    3dnow)
-        if [ "$VAL" = "no" ]; then
-            CFG_3DNOW="$VAL"
-        else
-            UNKNOWN_OPT=yes
-        fi
-        ;;
-    sse)
-        if [ "$VAL" = "no" ]; then
-            CFG_SSE="$VAL"
-        else
-            UNKNOWN_OPT=yes
-        fi
-        ;;
     sse2)
         if [ "$VAL" = "no" ]; then
             CFG_SSE2="$VAL"
@@ -2927,7 +2903,7 @@ Usage:  $relconf [-h] [-prefix <dir>] [-prefix-install] [-bindir <dir>] [-libdir
         [-nomake <part>] [-R <string>]  [-l <string>] [-no-rpath]  [-rpath] [-continue]
         [-verbose] [-v] [-silent] [-no-nis] [-nis] [-no-cups] [-cups] [-no-iconv]
         [-iconv] [-no-pch] [-pch] [-no-dbus] [-dbus] [-dbus-linked] [-no-gui]
-        [-no-separate-debug-info] [-no-mmx] [-no-3dnow] [-no-sse] [-no-sse2]
+        [-no-separate-debug-info] [-no-sse2]
         [-no-sse3] [-no-ssse3] [-no-sse4.1] [-no-sse4.2] [-no-avx] [-no-neon]
         [-qtnamespace <namespace>] [-qtlibinfix <infix>] [-separate-debug-info]
         [-no-phonon-backend] [-phonon-backend] [-no-media-backend] [-media-backend]
@@ -3099,9 +3075,6 @@ fi
 
 cat << EOF
 
-    -no-mmx ............ Do not compile with use of MMX instructions.
-    -no-3dnow .......... Do not compile with use of 3DNOW instructions.
-    -no-sse ............ Do not compile with use of SSE instructions.
     -no-sse2 ........... Do not compile with use of SSE2 instructions.
     -no-sse3 ........... Do not compile with use of SSE3 instructions.
     -no-ssse3 .......... Do not compile with use of SSSE3 instructions.
@@ -3963,33 +3936,6 @@ else
     CFG_USE_FLOATMATH=no
 fi
 
-# detect mmx support
-if [ "${CFG_MMX}" = "auto" ]; then
-    if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/mmx "mmx" $L_FLAGS $I_FLAGS $l_FLAGS "-mmmx"; then
-       CFG_MMX=yes
-    else
-       CFG_MMX=no
-    fi
-fi
-
-# detect 3dnow support
-if [ "${CFG_3DNOW}" = "auto" ]; then
-    if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/3dnow "3dnow" $L_FLAGS $I_FLAGS $l_FLAGS "-m3dnow"; then
-       CFG_3DNOW=yes
-    else
-       CFG_3DNOW=no
-    fi
-fi
-
-# detect sse support
-if [ "${CFG_SSE}" = "auto" ]; then
-    if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/sse "sse" $L_FLAGS $I_FLAGS $l_FLAGS "-msse"; then
-       CFG_SSE=yes
-    else
-       CFG_SSE=no
-    fi
-fi
-
 # detect sse2 support
 if [ "${CFG_SSE2}" = "auto" ]; then
     if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/sse2 "sse2" $L_FLAGS $I_FLAGS $l_FLAGS "-msse2"; then
@@ -5603,9 +5549,6 @@ fi
 if [ "$CFG_SEPARATE_DEBUG_INFO_NOCOPY" = "yes" ] ; then
     QT_CONFIG="$QT_CONFIG separate_debug_info_nocopy"
 fi
-[ "$CFG_MMX" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mmx"
-[ "$CFG_3DNOW" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG 3dnow"
-[ "$CFG_SSE" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse"
 [ "$CFG_SSE2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse2"
 [ "$CFG_SSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse3"
 [ "$CFG_SSSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG ssse3"
@@ -6565,8 +6508,8 @@ echo "Declarative debugging ...$CFG_DECLARATIVE_DEBUG"
 echo "STL support ............ $CFG_STL"
 echo "PCH support ............ $CFG_PRECOMPILE"
 if [ "$CFG_ARCH" = "i386" -o "$CFG_ARCH" = "x86_64" ]; then
-    echo "MMX/3DNOW/SSE/SSE2/SSE3. ${CFG_MMX}/${CFG_3DNOW}/${CFG_SSE}/${CFG_SSE2}/${CFG_SSE3}"
-    echo "SSSE3/SSE4.1/SSE4.2..... ${CFG_SSSE3}/${CFG_SSE4_1}/${CFG_SSE4_2}"
+    echo "SSE2/SSE3/SSSE3......... ${CFG_SSE2}/${CFG_SSE3}/${CFG_SSSE3}"
+    echo "SSE4.1/SSE4.2........... ${CFG_SSSE3}/${CFG_SSE4_1}/${CFG_SSE4_2}"
     echo "AVX..................... ${CFG_AVX}"
 elif [ "$CFG_ARCH" = "arm" ]; then
     echo "iWMMXt support ......... ${CFG_IWMMXT}"
index 8cf067c..814ff37 100644 (file)
@@ -204,9 +204,6 @@ mac {
 }
 
 #SIMD defines:
-mmx:DEFINES += QT_HAVE_MMX
-3dnow:DEFINES += QT_HAVE_3DNOW
-sse:DEFINES += QT_HAVE_SSE QT_HAVE_MMXEXT
 sse2:DEFINES += QT_HAVE_SSE2
 sse3:DEFINES += QT_HAVE_SSE3
 ssse3:DEFINES += QT_HAVE_SSSE3
index a74a140..0d816bd 100644 (file)
@@ -88,14 +88,6 @@ static inline uint detectProcessorFeatures()
     }
 #elif defined(_X86_)
     features = 0;
-#if defined QT_HAVE_MMX
-    if (IsProcessorFeaturePresent(PF_MMX_INSTRUCTIONS_AVAILABLE))
-        features |= MMX;
-#endif
-#if defined QT_HAVE_3DNOW
-    if (IsProcessorFeaturePresent(PF_3DNOW_INSTRUCTIONS_AVAILABLE))
-        features |= MMX3DNOW;
-#endif
     return features;
 #endif
     features = 0;
@@ -255,18 +247,6 @@ static inline uint detectProcessorFeatures()
 
 
     // result now contains the standard feature bits
-    if (result & (1u << 15))
-        features |= CMOV;
-    if (result & (1u << 23))
-        features |= MMX;
-    if (extended_result & (1u << 22))
-        features |= MMXEXT;
-    if (extended_result & (1u << 31))
-        features |= MMX3DNOW;
-    if (extended_result & (1u << 30))
-        features |= MMX3DNOWEXT;
-    if (result & (1u << 25))
-        features |= SSE;
     if (result & (1u << 26))
         features |= SSE2;
     if (feature_result & (1u))
@@ -286,7 +266,7 @@ static inline uint detectProcessorFeatures()
 #elif defined(__x86_64) || defined(Q_OS_WIN64)
 static inline uint detectProcessorFeatures()
 {
-    uint features = MMX|SSE|SSE2|CMOV;
+    uint features = SSE2;
     uint feature_result = 0;
 
 #if defined (Q_OS_WIN64)
@@ -330,15 +310,9 @@ static inline uint detectProcessorFeatures()
 /*
  * Use kdesdk/scripts/generate_string_table.pl to update the table below.
  * Here's the data (don't forget the ONE leading space):
- mmx
- mmxext
- mmx3dnow
- mmx3dnowext
- sse
- sse2
- cmov
  iwmmxt
  neon
+ sse2
  sse3
  ssse3
  sse4.1
@@ -348,15 +322,9 @@ static inline uint detectProcessorFeatures()
 
 // begin generated
 static const char features_string[] =
-    " mmx\0"
-    " mmxext\0"
-    " mmx3dnow\0"
-    " mmx3dnowext\0"
-    " sse\0"
-    " sse2\0"
-    " cmov\0"
     " iwmmxt\0"
     " neon\0"
+    " sse2\0"
     " sse3\0"
     " ssse3\0"
     " sse4.1\0"
@@ -365,8 +333,8 @@ static const char features_string[] =
     "\0";
 
 static const int features_indices[] = {
-       0,    5,   13,   23,   36,   41,   47,   53,
-      61,   67,   73,   80,   88,   96,   -1
+    0,    8,   14,   20,   26,   33,   41,   49,
+    -1
 };
 // end generated
 
index 44428b7..baf697a 100644 (file)
@@ -133,30 +133,19 @@ QT_BEGIN_HEADER
 #endif
 #endif
 
-// 3D now intrinsics
-#if defined(QT_HAVE_3DNOW)
-#include <mm3dnow.h>
-#endif
-
 QT_BEGIN_NAMESPACE
 
 
 enum CPUFeatures {
     None        = 0,
-    MMX         = 0x1,
-    MMXEXT      = 0x2,
-    MMX3DNOW    = 0x4,
-    MMX3DNOWEXT = 0x8,
-    SSE         = 0x10,
-    SSE2        = 0x20,
-    CMOV        = 0x40,
-    IWMMXT      = 0x80,
-    NEON        = 0x100,
-    SSE3        = 0x200,
-    SSSE3       = 0x400,
-    SSE4_1      = 0x800,
-    SSE4_2      = 0x1000,
-    AVX         = 0x2000
+    IWMMXT      = 0x1,
+    NEON        = 0x2,
+    SSE2        = 0x4,
+    SSE3        = 0x8,
+    SSSE3       = 0x10,
+    SSE4_1      = 0x20,
+    SSE4_2      = 0x40,
+    AVX         = 0x80
 };
 
 Q_CORE_EXPORT uint qDetectCPUFeatures();
index 1fb3790..29e233d 100644 (file)
@@ -144,10 +144,6 @@ win32:!contains(QT_CONFIG, directwrite) {
             QMAKE_EXTRA_COMPILERS += iwmmxt_compiler
         }
     } else {
-        mmx: SOURCES += $$MMX_SOURCES
-        3dnow: SOURCES += $$MMX3DNOW_SOURCES
-        3dnow:sse: SOURCES += $$SSE3DNOW_SOURCES
-        sse: SOURCES += $$SSE_SOURCES
         sse2: SOURCES += $$SSE2_SOURCES
         ssse3: SOURCES += $$SSSE3_SOURCES
         iwmmxt: SOURCES += $$IWMMXT_SOURCES
index f47cff6..5faaae5 100644 (file)
@@ -200,9 +200,6 @@ Configure::Configure(int& argc, char** argv)
     dictionary[ "EXCEPTIONS" ]      = "yes";
     dictionary[ "WIDGETS" ]         = "yes";
     dictionary[ "RTTI" ]            = "yes";
-    dictionary[ "MMX" ]             = "auto";
-    dictionary[ "3DNOW" ]           = "auto";
-    dictionary[ "SSE" ]             = "auto";
     dictionary[ "SSE2" ]            = "auto";
     dictionary[ "IWMMXT" ]          = "auto";
     dictionary[ "SYNCQT" ]          = "auto";
@@ -797,18 +794,6 @@ void Configure::parseCmdLine()
             cout << "Setting accessibility to NO" << endl;
         }
 
-        else if (configCmdLine.at(i) == "-no-mmx")
-            dictionary[ "MMX" ] = "no";
-        else if (configCmdLine.at(i) == "-mmx")
-            dictionary[ "MMX" ] = "yes";
-        else if (configCmdLine.at(i) == "-no-3dnow")
-            dictionary[ "3DNOW" ] = "no";
-        else if (configCmdLine.at(i) == "-3dnow")
-            dictionary[ "3DNOW" ] = "yes";
-        else if (configCmdLine.at(i) == "-no-sse")
-            dictionary[ "SSE" ] = "no";
-        else if (configCmdLine.at(i) == "-sse")
-            dictionary[ "SSE" ] = "yes";
         else if (configCmdLine.at(i) == "-no-sse2")
             dictionary[ "SSE2" ] = "no";
         else if (configCmdLine.at(i) == "-sse2")
@@ -1374,10 +1359,7 @@ void Configure::applySpecSpecifics()
         dictionary[ "STL" ]                 = "no";
         dictionary[ "EXCEPTIONS" ]          = "no";
         dictionary[ "RTTI" ]                = "no";
-        dictionary[ "3DNOW" ]               = "no";
-        dictionary[ "SSE" ]                 = "no";
         dictionary[ "SSE2" ]                = "no";
-        dictionary[ "MMX" ]                 = "no";
         dictionary[ "IWMMXT" ]              = "no";
         dictionary[ "CE_CRT" ]              = "yes";
         dictionary[ "DIRECTSHOW" ]          = "no";
@@ -1468,7 +1450,7 @@ bool Configure::displayHelp()
                     "[-qt-zlib] [-system-zlib] [-qt-pcre] [-system-pcre] [-no-gif]\n"
                     "[-no-libpng] [-qt-libpng] [-system-libpng]\n"
                     "[-no-libjpeg] [-qt-libjpeg] [-system-libjpeg]\n"
-                    "[-mmx] [-no-mmx] [-3dnow] [-no-3dnow] [-sse] [-no-sse] [-sse2] [-no-sse2]\n"
+                    "[-sse2] [-no-sse2]\n"
                     "[-no-iwmmxt] [-iwmmxt] [-openssl] [-openssl-linked]\n"
                     "[-no-openssl] [-no-dbus] [-dbus] [-dbus-linked] [-platform <spec>]\n"
                     "[-qtnamespace <namespace>] [-qtlibinfix <infix>] [-no-phonon]\n"
@@ -1611,12 +1593,6 @@ bool Configure::displayHelp()
 
         desc("RTTI", "no",      "-no-rtti",             "Do not compile runtime type information.");
         desc("RTTI", "yes",     "-rtti",                "Compile runtime type information.\n");
-        desc("MMX", "no",       "-no-mmx",              "Do not compile with use of MMX instructions");
-        desc("MMX", "yes",      "-mmx",                 "Compile with use of MMX instructions");
-        desc("3DNOW", "no",     "-no-3dnow",            "Do not compile with use of 3DNOW instructions");
-        desc("3DNOW", "yes",    "-3dnow",               "Compile with use of 3DNOW instructions");
-        desc("SSE", "no",       "-no-sse",              "Do not compile with use of SSE instructions");
-        desc("SSE", "yes",      "-sse",                 "Compile with use of SSE instructions");
         desc("SSE2", "no",      "-no-sse2",             "Do not compile with use of SSE2 instructions");
         desc("SSE2", "yes",      "-sse2",               "Compile with use of SSE2 instructions");
         desc("OPENSSL", "no",    "-no-openssl",         "Do not compile in OpenSSL support");
@@ -1862,10 +1838,6 @@ bool Configure::checkAvailability(const QString &part)
         available = (dictionary.value("XQMAKESPEC").startsWith("wince"));
     else if (part == "SSE2")
         available = (dictionary.value("QMAKESPEC") != "win32-msvc");
-    else if (part == "3DNOW")
-        available = (dictionary.value("QMAKESPEC") != "win32-msvc") && (dictionary.value("QMAKESPEC") != "win32-icc") && findFile("mm3dnow.h");
-    else if (part == "MMX" || part == "SSE")
-        available = (dictionary.value("QMAKESPEC") != "win32-msvc");
     else if (part == "OPENSSL")
         available = findFile("openssl\\ssl.h");
     else if (part == "DBUS")
@@ -1974,12 +1946,6 @@ void Configure::autoDetection()
         dictionary["SQL_SQLITE2"] = checkAvailability("SQL_SQLITE2") ? defaultTo("SQL_SQLITE2") : "no";
     if (dictionary["SQL_IBASE"] == "auto")
         dictionary["SQL_IBASE"] = checkAvailability("SQL_IBASE") ? defaultTo("SQL_IBASE") : "no";
-    if (dictionary["MMX"] == "auto")
-        dictionary["MMX"] = checkAvailability("MMX") ? "yes" : "no";
-    if (dictionary["3DNOW"] == "auto")
-        dictionary["3DNOW"] = checkAvailability("3DNOW") ? "yes" : "no";
-    if (dictionary["SSE"] == "auto")
-        dictionary["SSE"] = checkAvailability("SSE") ? "yes" : "no";
     if (dictionary["SSE2"] == "auto")
         dictionary["SSE2"] = checkAvailability("SSE2") ? "yes" : "no";
     if (dictionary["IWMMXT"] == "auto")
@@ -2621,12 +2587,6 @@ void Configure::generateQConfigPri()
             configStream << " exceptions_off";
         if (dictionary[ "RTTI" ] == "yes")
             configStream << " rtti";
-        if (dictionary[ "MMX" ] == "yes")
-            configStream << " mmx";
-        if (dictionary[ "3DNOW" ] == "yes")
-            configStream << " 3dnow";
-        if (dictionary[ "SSE" ] == "yes")
-            configStream << " sse";
         if (dictionary[ "SSE2" ] == "yes")
             configStream << " sse2";
         if (dictionary[ "IWMMXT" ] == "yes")
@@ -3034,9 +2994,6 @@ void Configure::displayConfig()
     cout << "STL support................." << dictionary[ "STL" ] << endl;
     cout << "Exception support..........." << dictionary[ "EXCEPTIONS" ] << endl;
     cout << "RTTI support................" << dictionary[ "RTTI" ] << endl;
-    cout << "MMX support................." << dictionary[ "MMX" ] << endl;
-    cout << "3DNOW support..............." << dictionary[ "3DNOW" ] << endl;
-    cout << "SSE support................." << dictionary[ "SSE" ] << endl;
     cout << "SSE2 support................" << dictionary[ "SSE2" ] << endl;
     cout << "IWMMXT support.............." << dictionary[ "IWMMXT" ] << endl;
     cout << "OpenGL support.............." << dictionary[ "OPENGL" ] << endl;