Am 03.04.2016 um 12:24 schrieb Jose Fonseca: > Exactly the same code. > --- > src/gallium/auxiliary/gallivm/lp_bld_arit.c | 11 +++-------- > 1 file changed, 3 insertions(+), 8 deletions(-) > > diff --git a/src/gallium/auxiliary/gallivm/lp_bld_arit.c > b/src/gallium/auxiliary/gallivm/lp_bld_arit.c > index 1277743..587c83a 100644 > --- a/src/gallium/auxiliary/gallivm/lp_bld_arit.c > +++ b/src/gallium/auxiliary/gallivm/lp_bld_arit.c > @@ -1492,14 +1492,9 @@ lp_build_abs(struct lp_build_context *bld, > return a; > > if(type.floating) { > - /* Mask out the sign bit */ > - LLVMTypeRef int_vec_type = lp_build_int_vec_type(bld->gallivm, type); > - unsigned long long absMask = ~(1ULL << (type.width - 1)); > - LLVMValueRef mask = lp_build_const_int_vec(bld->gallivm, type, > ((unsigned long long) absMask)); > - a = LLVMBuildBitCast(builder, a, int_vec_type, ""); > - a = LLVMBuildAnd(builder, a, mask, ""); > - a = LLVMBuildBitCast(builder, a, vec_type, ""); > - return a; > + char intrinsic[32]; > + util_snprintf(intrinsic, sizeof intrinsic, "llvm.fabs.v%uf%u", > type.length, type.width); > + return lp_build_intrinsic_unary(builder, intrinsic, vec_type, a); > } > > if(type.width*type.length == 128 && util_cpu_caps.has_ssse3) { >
Looks like fabs was new with llvm 3.2, which is probably why we came up with our own implementation. But it can go now. For 1/3 and 3/3: Reviewed-by: Roland Scheidegger <srol...@vmware.com> _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev