gallivm: only do rcp/mul for floating
authorDave Airlie <airlied@redhat.com>
Tue, 28 Feb 2012 11:23:04 +0000 (11:23 +0000)
committerDave Airlie <airlied@redhat.com>
Tue, 28 Feb 2012 15:52:36 +0000 (15:52 +0000)
rcp asserts on type.floating so don't go passing non-floating
things into it.

Signed-off-by: Dave Airlie <airlied@redhat.com>
src/gallium/auxiliary/gallivm/lp_bld_arit.c

index 60018447e02b1266948081722625afb24b15bc5d..4cc421d6215359224cd3adec17dca2ae8925f316 100644 (file)
@@ -612,7 +612,8 @@ lp_build_div(struct lp_build_context *bld,
          return LLVMConstUDiv(a, b);
    }
 
-   if(util_cpu_caps.has_sse && type.width == 32 && type.length == 4)
+   if(util_cpu_caps.has_sse && type.width == 32 && type.length == 4 &&
+      type.floating)
       return lp_build_mul(bld, a, lp_build_rcp(bld, b));
 
    if (type.floating)