gallivm: Hide AVX support when requested by LP_NATIVE_VECTOR_WIDTH or unsupported...
authorJosé Fonseca <jfonseca@vmware.com>
Wed, 17 Oct 2012 14:38:50 +0000 (15:38 +0100)
committerJosé Fonseca <jfonseca@vmware.com>
Wed, 17 Oct 2012 17:07:43 +0000 (18:07 +0100)
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
src/gallium/auxiliary/gallivm/lp_bld_init.c

index e3b498c8770e2d3bf3ad7ff9f9044906d6c8e641..d364390cdf00b1ac358c676666b415b86fca212f 100644 (file)
@@ -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
 }