Commit 1a6ae840 authored by Emil Velikov's avatar Emil Velikov roll up a program for the sse4.1 check

So when checking/building sse code we have three possibilities:
 1 Old compiler, throws an error when using -msse*
 2 New compiler, user disables sse* (-mno-sse*)
 3 New compiler, user doesn't disable sse

The original code, added code for #1 but not #2. Later on we patched
around the lack of handling #2 by wrapping the code in __SSE4_1__.
Yet it lead to a missing/undefined symbol in case of #1 or #2, which
might cause an issue for #2 when using the i965 driver.

A bit later we "fixed" the undefined symbol by using #1, rather than
updating it to handle #2. With this commit we set things straight :)

To top it all up, conventions state that in case of conflicting
(-enable-foo -disable-foo) options, the latter one takes precedence.
Thus we need to make sure to prepend -msse4.1 to CFLAGS in our test.

v2: Clean the #includes. Suggested by Ilia, Matt & Siavash.

Cc: "10.3 10.4" <>
Tested-by: David Heidelberg's avatarDavid Heidelberg <>
Tested-by: default avatarSiavash Eliasi <>
Reviewed-by: Matt Turner's avatarMatt Turner <>
Signed-off-by: Emil Velikov's avatarEmil Velikov <>
parent 3bc42a09
......@@ -252,7 +252,16 @@ AC_SUBST([VISIBILITY_CXXFLAGS])
dnl Optional flags, check for compiler support
CFLAGS="-msse4.1 $CFLAGS"
#include <smmintrin.h>
int main () {
__m128i a = _mm_set1_epi32 (0), b = _mm_set1_epi32 (0), c;
c = _mm_max_epu32(a, b);
return 0;
}]])], SSE41_SUPPORTED=1)
if test "x$SSE41_SUPPORTED" = x1; then
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment