gallivm: don't try to use fast rcp for fdiv
authorRoland Scheidegger <sroland@vmware.com>
Mon, 23 Jan 2017 17:06:03 +0000 (18:06 +0100)
committerRoland Scheidegger <sroland@vmware.com>
Tue, 24 Jan 2017 18:12:46 +0000 (19:12 +0100)
The use of fast rcp instruction is disabled, and will always fall back
to use a division instead (1 / x). Hence, if we get a division opcode,
it doesn't make much sense trying to split that into rcp/mul.

Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
src/gallium/auxiliary/gallivm/lp_bld_arit.c

index 5553cb10dc2575ac368e531ca8e50961933aec70..04f86bef286ff6d1348cd43f03f80faf36ea74ab 100644 (file)
@@ -1372,7 +1372,9 @@ lp_build_div(struct lp_build_context *bld,
          return LLVMConstUDiv(a, b);
    }
 
-   if(((util_cpu_caps.has_sse && type.width == 32 && type.length == 4) ||
+   /* fast rcp is disabled (just uses div), so makes no sense to try that */
+   if(FALSE &&
+      ((util_cpu_caps.has_sse && type.width == 32 && type.length == 4) ||
        (util_cpu_caps.has_avx && type.width == 32 && type.length == 8)) &&
       type.floating)
       return lp_build_mul(bld, a, lp_build_rcp(bld, b));