AFAICS, the R600 backend doesn't implement the intrinsics for R600. Marek
On Sat, Nov 22, 2014 at 3:53 AM, Michel Dänzer <mic...@daenzer.net> wrote: > On 21.11.2014 06:21, Marek Olšák wrote: >> >> From: Marek Olšák <marek.ol...@amd.com> >> >> So far it has been compiled into pretty ugly code (8 instructions or so >> for either opcode). >> --- >> src/gallium/drivers/radeonsi/si_shader.c | 7 +++++++ >> 1 file changed, 7 insertions(+) >> >> diff --git a/src/gallium/drivers/radeonsi/si_shader.c >> b/src/gallium/drivers/radeonsi/si_shader.c >> index ee08d1a..973bac2 100644 >> --- a/src/gallium/drivers/radeonsi/si_shader.c >> +++ b/src/gallium/drivers/radeonsi/si_shader.c >> @@ -2792,6 +2792,13 @@ int si_shader_create(struct si_screen *sscreen, >> struct si_shader *shader) >> bld_base->op_actions[TGSI_OPCODE_EMIT].emit = si_llvm_emit_vertex; >> bld_base->op_actions[TGSI_OPCODE_ENDPRIM].emit = >> si_llvm_emit_primitive; >> >> + if (HAVE_LLVM >= 0x0306) { >> + bld_base->op_actions[TGSI_OPCODE_MAX].emit = >> build_tgsi_intrinsic_nomem; >> + bld_base->op_actions[TGSI_OPCODE_MAX].intr_name = >> "llvm.maxnum.f32"; >> + bld_base->op_actions[TGSI_OPCODE_MIN].emit = >> build_tgsi_intrinsic_nomem; >> + bld_base->op_actions[TGSI_OPCODE_MIN].intr_name = >> "llvm.minnum.f32"; >> + } >> + >> si_shader_ctx.radeon_bld.load_system_value = declare_system_value; >> si_shader_ctx.tokens = sel->tokens; >> tgsi_parse_init(&si_shader_ctx.parse, si_shader_ctx.tokens); >> > > Shouldn't this be done in > src/gallium/drivers/radeon/radeon_setup_tgsi_llvm.c, so it benefits r600g as > well? > > > -- > Earthling Michel Dänzer | http://www.amd.com > Libre software enthusiast | Mesa and X developer _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev