From aa2067c757506e8f3418ef11333382a1fa45ad6e Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jos=C3=A9=20Fonseca?= Date: Wed, 17 Oct 2012 15:38:50 +0100 Subject: [PATCH] gallivm: Hide AVX support when requested by LP_NATIVE_VECTOR_WIDTH or unsupported by LLVM. Reviewed-by: Roland Scheidegger --- src/gallium/auxiliary/gallivm/lp_bld_init.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/gallium/auxiliary/gallivm/lp_bld_init.c b/src/gallium/auxiliary/gallivm/lp_bld_init.c index e3b498c8770..d364390cdf0 100644 --- a/src/gallium/auxiliary/gallivm/lp_bld_init.c +++ b/src/gallium/auxiliary/gallivm/lp_bld_init.c @@ -458,6 +458,15 @@ lp_build_init(void) lp_native_vector_width = debug_get_num_option("LP_NATIVE_VECTOR_WIDTH", lp_native_vector_width); + if (lp_native_vector_width <= 128) { + /* Hide AVX support, as often LLVM AVX instrinsics are only guarded by + * "util_cpu_caps.has_avx" predicate, and lack the + * "lp_native_vector_width > 128" predicate. And also to ensure a more + * consistent behavior, allowing one to test SSE2 on AVX machines. + */ + util_cpu_caps.has_avx = 0; + } + gallivm_initialized = TRUE; #if 0 @@ -465,6 +474,7 @@ lp_build_init(void) util_cpu_caps.has_sse3 = 0; util_cpu_caps.has_ssse3 = 0; util_cpu_caps.has_sse4_1 = 0; + util_cpu_caps.has_avx = 0; #endif } -- 2.30.2