On Fri, Jul 31, 2015 at 5:13 PM, Tom Stellard <t...@stellard.net> wrote: > On Fri, Jul 31, 2015 at 04:59:19PM +0200, Marek Olšák wrote: >> On Fri, Jul 31, 2015 at 4:18 PM, Tom Stellard <t...@stellard.net> wrote: >> > On Tue, Jul 28, 2015 at 12:05:43PM +0200, Marek Olšák wrote: >> >> From: Marek Olšák <marek.ol...@amd.com> >> >> >> >> There are 2 reasons for this: >> >> - LLVM optimization passes can work with floor >> >> - there are patterns to select v_fract from floor anyway >> >> >> >> There is no change in the generated code. >> >> --- >> >> src/gallium/drivers/radeon/radeon_setup_tgsi_llvm.c | 20 >> >> ++++++++++++++++---- >> >> 1 file changed, 16 insertions(+), 4 deletions(-) >> >> >> >> diff --git a/src/gallium/drivers/radeon/radeon_setup_tgsi_llvm.c >> >> b/src/gallium/drivers/radeon/radeon_setup_tgsi_llvm.c >> >> index 319380f..5c08cf5 100644 >> >> --- a/src/gallium/drivers/radeon/radeon_setup_tgsi_llvm.c >> >> +++ b/src/gallium/drivers/radeon/radeon_setup_tgsi_llvm.c >> >> @@ -1170,6 +1170,20 @@ static void emit_dneg( >> >> emit_data->args[0], ""); >> >> } >> >> >> >> +static void emit_frac( >> >> + const struct lp_build_tgsi_action * action, >> >> + struct lp_build_tgsi_context * bld_base, >> >> + struct lp_build_emit_data * emit_data) >> >> +{ >> >> + LLVMBuilderRef builder = bld_base->base.gallivm->builder; >> >> + >> >> + LLVMValueRef floor = lp_build_intrinsic(builder, "floor", >> >> emit_data->dst_type, >> > >> > The intrinsics name should be "llvm.floor.f32" for float and >> > "llvm.floor.f64" >> > for double. >> > >> > With that fixed, this is: >> > Reviewed-by: Tom Stellard <thomas.stell...@amd.com> >> >> Sorry, I have pushed this already. Is it really required to use >> "llvm.floor.f*"? We've been using "floor" for FLR forever. We've also >> been using "fabs" and "ceil". Are those wrong too? >> > > It is better to use the intrinsics: (i.e. llvm.*) functions, because > they don't have side-effects like the libm calls, so they can be optimized > better.
OK, thanks for the explanation. Marek _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev