summaryrefslogtreecommitdiff
path: root/src/gallium
diff options
context:
space:
mode:
authorJosé Fonseca <jfonseca@vmware.com>2010-08-09 17:26:18 +0100
committerJosé Fonseca <jfonseca@vmware.com>2010-08-09 17:31:18 +0100
commit8a3a971743a90463e65b44f1769a5301a31ce4cd (patch)
tree4ce0ffe09478b1ddaaa3697451d08532f8015d3c /src/gallium
parentfc9a49b638c26801951c33a570178bbb2b67ec60 (diff)
gallivm: Don't call LLVMBuildFNeg on llvm-2.6.
It didn't exist yet.
Diffstat (limited to 'src/gallium')
-rw-r--r--src/gallium/auxiliary/gallivm/lp_bld_arit.c7
-rw-r--r--src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c6
2 files changed, 4 insertions, 9 deletions
diff --git a/src/gallium/auxiliary/gallivm/lp_bld_arit.c b/src/gallium/auxiliary/gallivm/lp_bld_arit.c
index d2dde41e9f..cecc1858bc 100644
--- a/src/gallium/auxiliary/gallivm/lp_bld_arit.c
+++ b/src/gallium/auxiliary/gallivm/lp_bld_arit.c
@@ -512,10 +512,7 @@ lp_build_mul_imm(struct lp_build_context *bld,
return a;
if(b == -1)
- if (bld->type.floating)
- return LLVMBuildFNeg(bld->builder, a, "");
- else
- return LLVMBuildNeg(bld->builder, a, "");
+ return lp_build_negate(bld, a);
if(b == 2 && bld->type.floating)
return lp_build_add(bld, a, a);
@@ -748,9 +745,11 @@ LLVMValueRef
lp_build_negate(struct lp_build_context *bld,
LLVMValueRef a)
{
+#if HAVE_LLVM >= 0x0207
if (bld->type.floating)
a = LLVMBuildFNeg(bld->builder, a, "");
else
+#endif
a = LLVMBuildNeg(bld->builder, a, "");
return a;
diff --git a/src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c b/src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c
index becbd3bece..0aa64affac 100644
--- a/src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c
+++ b/src/gallium/auxiliary/gallivm/lp_bld_tgsi_soa.c
@@ -506,7 +506,6 @@ emit_fetch(
const unsigned chan_index )
{
const struct tgsi_full_src_register *reg = &inst->Src[src_op];
- const struct lp_type type = bld->base.type;
const unsigned swizzle =
tgsi_util_get_full_src_register_swizzle(reg, chan_index);
LLVMValueRef res;
@@ -615,10 +614,7 @@ emit_fetch(
res = lp_build_abs( &bld->base, res );
/* fall through */
case TGSI_UTIL_SIGN_TOGGLE:
- if (type.floating)
- res = LLVMBuildFNeg( bld->base.builder, res, "" );
- else
- res = LLVMBuildNeg( bld->base.builder, res, "" );
+ res = lp_build_negate( &bld->base, res );
break;
case TGSI_UTIL_SIGN_KEEP: