summaryrefslogtreecommitdiffstats
path: root/config.tests
diff options
context:
space:
mode:
authorThiago Macieira <thiago.macieira@intel.com>2011-12-29 22:44:16 -0200
committerQt by Nokia <qt-info@nokia.com>2012-06-12 17:34:52 +0200
commitb4525b34074665ed472cd421077a1633110f16a7 (patch)
treec8b9aa1d8e3991c02400b3b93593812a61346222 /config.tests
parentf9c9d8aaa6684f596cf5675592782d5397e52093 (diff)
Add configure-time checking for the SSE and AVX features on Windows
Modify configure.exe to run some configure-time tests and check if the SSE and AVX compiler features are supported. The tests themselves required a bit of changes to compile with MSVC. The include in sse4_2.cpp was wrong. And for whatever reason, it didn't like the volatile variables, which GCC, Clang and ICC have been happy with. This should produce no effect in compilation, though: even dead code must be syntactically correct. We're not running the output. Change-Id: Ibe5d0904a378a7efed853c7215f88a2ddcefb1b3 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Diffstat (limited to 'config.tests')
-rw-r--r--config.tests/common/avx/avx.cpp6
-rw-r--r--config.tests/common/avx/avx.pro3
-rw-r--r--config.tests/common/avx2/avx2.cpp6
-rw-r--r--config.tests/common/avx2/avx2.pro3
-rw-r--r--config.tests/common/sse2/sse2.pro3
-rw-r--r--config.tests/common/sse3/sse3.cpp6
-rw-r--r--config.tests/common/sse3/sse3.pro3
-rw-r--r--config.tests/common/sse4_1/sse4_1.cpp4
-rw-r--r--config.tests/common/sse4_1/sse4_1.pro3
-rw-r--r--config.tests/common/sse4_2/sse4_2.cpp8
-rw-r--r--config.tests/common/sse4_2/sse4_2.pro3
-rw-r--r--config.tests/common/ssse3/ssse3.cpp4
-rw-r--r--config.tests/common/ssse3/ssse3.pro3
13 files changed, 31 insertions, 24 deletions
diff --git a/config.tests/common/avx/avx.cpp b/config.tests/common/avx/avx.cpp
index bc5be65e65..9d849a79db 100644
--- a/config.tests/common/avx/avx.cpp
+++ b/config.tests/common/avx/avx.cpp
@@ -43,9 +43,9 @@
int main(int, char**)
{
- volatile __m256d a = _mm256_setzero_pd();
- volatile __m256d b = _mm256_set1_pd(42.42);
- volatile __m256d result = _mm256_add_pd(a, b);
+ __m256d a = _mm256_setzero_pd();
+ __m256d b = _mm256_set1_pd(42.42);
+ __m256d result = _mm256_add_pd(a, b);
(void)result;
return 0;
}
diff --git a/config.tests/common/avx/avx.pro b/config.tests/common/avx/avx.pro
index f16f7e8f4d..ba7fd96e43 100644
--- a/config.tests/common/avx/avx.pro
+++ b/config.tests/common/avx/avx.pro
@@ -1,5 +1,6 @@
SOURCES = avx.cpp
-CONFIG -= x11 qt
+CONFIG -= qt dylib release debug_and_release
+CONFIG += debug console
mac:CONFIG -= app_bundle
isEmpty(QMAKE_CFLAGS_AVX):error("This compiler does not support AVX")
else:QMAKE_CXXFLAGS += $$QMAKE_CFLAGS_AVX
diff --git a/config.tests/common/avx2/avx2.cpp b/config.tests/common/avx2/avx2.cpp
index 9e56531220..6ebe2526d2 100644
--- a/config.tests/common/avx2/avx2.cpp
+++ b/config.tests/common/avx2/avx2.cpp
@@ -45,11 +45,11 @@ int main(int, char**)
{
/* AVX */
_mm256_zeroall();
- volatile __m256i a = _mm256_setzero_si256();
+ __m256i a = _mm256_setzero_si256();
/* AVX2 */
- volatile __m256i b = _mm256_and_si256(a, a);
- volatile __m256i result = _mm256_add_epi8(a, b);
+ __m256i b = _mm256_and_si256(a, a);
+ __m256i result = _mm256_add_epi8(a, b);
(void)result;
return 0;
}
diff --git a/config.tests/common/avx2/avx2.pro b/config.tests/common/avx2/avx2.pro
index 09590a8379..5aa9429d68 100644
--- a/config.tests/common/avx2/avx2.pro
+++ b/config.tests/common/avx2/avx2.pro
@@ -1,5 +1,6 @@
SOURCES = avx2.cpp
-CONFIG -= x11 qt
+CONFIG -= qt dylib release debug_and_release
+CONFIG += debug console
mac:CONFIG -= app_bundle
isEmpty(QMAKE_CFLAGS_AVX2):error("This compiler does not support AVX2")
else:QMAKE_CXXFLAGS += $$QMAKE_CFLAGS_AVX2
diff --git a/config.tests/common/sse2/sse2.pro b/config.tests/common/sse2/sse2.pro
index 13f252ae48..c8d0861170 100644
--- a/config.tests/common/sse2/sse2.pro
+++ b/config.tests/common/sse2/sse2.pro
@@ -1,5 +1,6 @@
SOURCES = sse2.cpp
-CONFIG -= x11 qt
+CONFIG -= qt dylib release debug_and_release
+CONFIG += debug console
mac:CONFIG -= app_bundle
isEmpty(QMAKE_CFLAGS_SSE2):error("This compiler does not support SSE2")
else:QMAKE_CXXFLAGS += $$QMAKE_CFLAGS_SSE2
diff --git a/config.tests/common/sse3/sse3.cpp b/config.tests/common/sse3/sse3.cpp
index c35586ab94..9a79dca936 100644
--- a/config.tests/common/sse3/sse3.cpp
+++ b/config.tests/common/sse3/sse3.cpp
@@ -43,9 +43,9 @@
int main(int, char**)
{
- volatile __m128d a = _mm_set1_pd(6.28);
- volatile __m128d b = _mm_set1_pd(3.14);
- volatile __m128d result = _mm_addsub_pd(a, b);
+ __m128d a = _mm_set1_pd(6.28);
+ __m128d b = _mm_set1_pd(3.14);
+ __m128d result = _mm_addsub_pd(a, b);
result = _mm_movedup_pd(result);
return 0;
}
diff --git a/config.tests/common/sse3/sse3.pro b/config.tests/common/sse3/sse3.pro
index 8d9853ce77..90f61d2065 100644
--- a/config.tests/common/sse3/sse3.pro
+++ b/config.tests/common/sse3/sse3.pro
@@ -1,5 +1,6 @@
SOURCES = sse3.cpp
-CONFIG -= x11 qt
+CONFIG -= qt dylib release debug_and_release
+CONFIG += debug console
mac:CONFIG -= app_bundle
isEmpty(QMAKE_CFLAGS_SSE3):error("This compiler does not support SSE3")
else:QMAKE_CXXFLAGS += $$QMAKE_CFLAGS_SSE3
diff --git a/config.tests/common/sse4_1/sse4_1.cpp b/config.tests/common/sse4_1/sse4_1.cpp
index b2762b990f..693fd8a1d5 100644
--- a/config.tests/common/sse4_1/sse4_1.cpp
+++ b/config.tests/common/sse4_1/sse4_1.cpp
@@ -43,9 +43,9 @@
int main(int, char**)
{
- volatile __m128 a = _mm_setzero_ps();
+ __m128 a = _mm_setzero_ps();
_mm_ceil_ps(a);
- volatile __m128i result = _mm_mullo_epi32(_mm_set1_epi32(42), _mm_set1_epi32(64));
+ __m128i result = _mm_mullo_epi32(_mm_set1_epi32(42), _mm_set1_epi32(64));
(void)result;
return 0;
}
diff --git a/config.tests/common/sse4_1/sse4_1.pro b/config.tests/common/sse4_1/sse4_1.pro
index 539517605d..d92be9dc43 100644
--- a/config.tests/common/sse4_1/sse4_1.pro
+++ b/config.tests/common/sse4_1/sse4_1.pro
@@ -1,5 +1,6 @@
SOURCES = sse4_1.cpp
-CONFIG -= x11 qt
+CONFIG -= qt dylib release debug_and_release
+CONFIG += debug console
mac:CONFIG -= app_bundle
isEmpty(QMAKE_CFLAGS_SSE4_1):error("This compiler does not support SSE4.1")
else:QMAKE_CXXFLAGS += $$QMAKE_CFLAGS_SSE4_1
diff --git a/config.tests/common/sse4_2/sse4_2.cpp b/config.tests/common/sse4_2/sse4_2.cpp
index 9052d0685c..1645070c1f 100644
--- a/config.tests/common/sse4_2/sse4_2.cpp
+++ b/config.tests/common/sse4_2/sse4_2.cpp
@@ -39,13 +39,13 @@
**
****************************************************************************/
-#include <smmintrin.h>
+#include <nmmintrin.h>
int main(int, char**)
{
- volatile __m128i a = _mm_setzero_si128();
- volatile __m128i b = _mm_set1_epi32(42);
- volatile __m128i result = _mm_cmpestrm(a, 16, b, 16, 0);
+ __m128i a = _mm_setzero_si128();
+ __m128i b = _mm_set1_epi32(42);
+ __m128i result = _mm_cmpestrm(a, 16, b, 16, 0);
(void)result;
return 0;
}
diff --git a/config.tests/common/sse4_2/sse4_2.pro b/config.tests/common/sse4_2/sse4_2.pro
index 044eb197af..744098dce8 100644
--- a/config.tests/common/sse4_2/sse4_2.pro
+++ b/config.tests/common/sse4_2/sse4_2.pro
@@ -1,5 +1,6 @@
SOURCES = sse4_2.cpp
-CONFIG -= x11 qt
+CONFIG -= qt dylib release debug_and_release
+CONFIG += debug console
mac:CONFIG -= app_bundle
isEmpty(QMAKE_CFLAGS_SSE4_2):error("This compiler does not support SSE4.2")
else:QMAKE_CXXFLAGS += $$QMAKE_CFLAGS_SSE4_2
diff --git a/config.tests/common/ssse3/ssse3.cpp b/config.tests/common/ssse3/ssse3.cpp
index f486bed378..fed9142a2e 100644
--- a/config.tests/common/ssse3/ssse3.cpp
+++ b/config.tests/common/ssse3/ssse3.cpp
@@ -43,9 +43,9 @@
int main(int, char**)
{
- volatile __m128i a = _mm_set1_epi32(42);
+ __m128i a = _mm_set1_epi32(42);
_mm_abs_epi8(a);
- volatile __m128i result = _mm_sign_epi16(a, _mm_set1_epi32(64));
+ __m128i result = _mm_sign_epi16(a, _mm_set1_epi32(64));
(void)result;
return 0;
}
diff --git a/config.tests/common/ssse3/ssse3.pro b/config.tests/common/ssse3/ssse3.pro
index dd86c41abb..e3984bd1cd 100644
--- a/config.tests/common/ssse3/ssse3.pro
+++ b/config.tests/common/ssse3/ssse3.pro
@@ -1,5 +1,6 @@
SOURCES = ssse3.cpp
-CONFIG -= x11 qt
+CONFIG -= qt dylib release debug_and_release
+CONFIG += debug console
mac:CONFIG -= app_bundle
isEmpty(QMAKE_CFLAGS_SSSE3):error("This compiler does not support SSSE3")
else:QMAKE_CXXFLAGS += $$QMAKE_CFLAGS_SSSE3