https://bugs.freedesktop.org/show_bug.cgi?id=91806
--- Comment #4 from Jonathan Gray <j...@openbsd.org> --- As mentioned in the initial report I tried that. It seems the test somehow returns 0 not 1? configure:19269: /usr/local/bin/egcc -o conftest -msse4.1 -g -O2 -Wall -std=c99 -Werror=implicit-function-declaration -Werror=missing-prototypes -fno -strict-aliasing -fno-math-errno -fno-trapping-math -fno-builtin-memcmp -I/usr/local/include -I/usr/local/include/libelf -L/usr/local/lib conftest.c >&5 conftest.c: In function 'main': conftest.c:46:61: warning: variable 'c' set but not used [-Wunused-but-set-variable] __m128i a = _mm_set1_epi32 (0), b = _mm_set1_epi32 (0), c; ^ configure:19269: $? = 0 19251 SSE41_CFLAGS="-msse4.1" 19252 case "$target_cpu" in 19253 i?86) 19254 SSE41_CFLAGS="$SSE41_CFLAGS -mstackrealign" 19255 ;; 19256 esac 19257 save_CFLAGS="$CFLAGS" 19258 CFLAGS="$SSE41_CFLAGS $CFLAGS" 19259 cat confdefs.h - <<_ACEOF >conftest.$ac_ext 19260 /* end confdefs.h. */ 19261 19262 #include <smmintrin.h> 19263 int main () { 19264 __m128i a = _mm_set1_epi32 (0), b = _mm_set1_epi32 (0), c; 19265 c = _mm_max_epu32(a, b); 19266 return 0; 19267 } 19268 _ACEOF 19269 if ac_fn_c_try_link "$LINENO"; then : 19270 SSE41_SUPPORTED=1 19271 fi 19272 rm -f core conftest.err conftest.$ac_objext \ 19273 conftest$ac_exeext conftest.$ac_ext 19274 CFLAGS="$save_CFLAGS" 19275 if test "x$SSE41_SUPPORTED" = x1; then 19276 DEFINES="$DEFINES -DUSE_SSE41" 19277 fi 19278 if test x$SSE41_SUPPORTED = x1; then 19279 SSE41_SUPPORTED_TRUE= 19280 SSE41_SUPPORTED_FALSE='#' 19281 else 19282 SSE41_SUPPORTED_TRUE='#' 19283 SSE41_SUPPORTED_FALSE= 19284 fi 19285 19286 SSE41_CFLAGS=$SSE41_CFLAGS The if ac_fn_c_try_link "$LINENO" path is taken and SSE41_SUPPORTED is set to 1. conftest.c has /* confdefs.h */ #define PACKAGE_NAME "Mesa" #define PACKAGE_TARNAME "mesa" #define PACKAGE_VERSION "11.2.0-devel" #define PACKAGE_STRING "Mesa 11.2.0-devel" #define PACKAGE_BUGREPORT "https://bugs.freedesktop.org/enter_bug.cgi?product=Mesa" #define PACKAGE_URL "" #define PACKAGE "mesa" #define VERSION "11.2.0-devel" #define STDC_HEADERS 1 #define HAVE_SYS_TYPES_H 1 #define HAVE_SYS_STAT_H 1 #define HAVE_STDLIB_H 1 #define HAVE_STRING_H 1 #define HAVE_MEMORY_H 1 #define HAVE_STRINGS_H 1 #define HAVE_INTTYPES_H 1 #define HAVE_STDINT_H 1 #define HAVE_UNISTD_H 1 #define HAVE_DLFCN_H 1 #define LT_OBJDIR ".libs/" #define YYTEXT_POINTER 1 #define HAVE___BUILTIN_BSWAP32 1 #define HAVE___BUILTIN_BSWAP64 1 #define HAVE___BUILTIN_CLZ 1 #define HAVE___BUILTIN_CLZLL 1 #define HAVE___BUILTIN_CTZ 1 #define HAVE___BUILTIN_EXPECT 1 #define HAVE___BUILTIN_FFS 1 #define HAVE___BUILTIN_FFSLL 1 #define HAVE___BUILTIN_POPCOUNT 1 #define HAVE___BUILTIN_POPCOUNTLL 1 #define HAVE___BUILTIN_UNREACHABLE 1 #define HAVE_FUNC_ATTRIBUTE_CONST 1 #define HAVE_FUNC_ATTRIBUTE_FLATTEN 1 #define HAVE_FUNC_ATTRIBUTE_FORMAT 1 #define HAVE_FUNC_ATTRIBUTE_MALLOC 1 #define HAVE_FUNC_ATTRIBUTE_PACKED 1 #define HAVE_FUNC_ATTRIBUTE_PURE 1 #define HAVE_FUNC_ATTRIBUTE_UNUSED 1 #define HAVE_FUNC_ATTRIBUTE_WARN_UNUSED_RESULT 1 /* end confdefs.h. */ #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; } ac_fn_c_try_link seems to run $CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS /usr/local/bin/egcc -o conftest -msse4.1 -g -O2 -Wall -std=c99 -Werror=impli\ cit-function-declaration -Werror=missing-prototypes -fno-strict-aliasing -fno-math-errno -fno\ -trapping-math -fno-builtin-memcmp -I/usr/local/include -/usr/local/include/libelf -L/usr/lo\ cal/lib conftest.c And it returns 0 when run that way: 29531 sh ARGS [0] = "/usr/local/bin/egcc" [1] = "-o" [2] = "conftest" [3] = "-msse4.1" [4] = "-g" [5] = "-O2" [6] = "-Wall" [7] = "-std=c99" [8] = "-Werror=implicit-function-declaration" [9] = "-Werror=missing-prototypes" [10] = "-fno-strict-aliasing" [11] = "-fno-math-errno" [12] = "-fno-trapping-math" [13] = "-fno-builtin-memcmp" [14] = "-I/usr/local/include" [15] = "-I/usr/local/include/libelf" [16] = "-L/usr/local/lib" [17] = "conftest.c" 29531 egcc NAMI "/usr/libexec/ld.so" 29531 egcc RET execve 0 It turns out gcc helpfully optimises out the sse4.1 call with -O1 or greater. $ egcc -msse4.1 -O1 conftest.c $ echo $? 0 $ egcc -msse4.1 -O0 conftest.c /tmp//cc6UU7Rt.s: Assembler messages: /tmp//cc6UU7Rt.s:24: Error: no such instruction: `pinsrd $1,%eax,%xmm1' /tmp//cc6UU7Rt.s:27: Error: no such instruction: `pinsrd $1,%eax,%xmm0' /tmp//cc6UU7Rt.s:44: Error: no such instruction: `pinsrd $1,%eax,%xmm1' /tmp//cc6UU7Rt.s:47: Error: no such instruction: `pinsrd $1,%eax,%xmm0' /tmp//cc6UU7Rt.s:58: Error: no such instruction: `pmaxud %xmm1,%xmm0' $ echo $? 1 -- You are receiving this mail because: You are the QA Contact for the bug. You are the assignee for the bug.
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev