> On Nov 22, 2014, at 7:35 AM, Marek Olšák <mar...@gmail.com> wrote: > > AFAICS, the R600 backend doesn't implement the intrinsics for R600. > > Marek
Should it? It’s trivial to switch to these for it, but I wasn’t sure what the actual semantics of its instructions were. There’s MAX and MAX_DX10, where I think MAX_DX10 corresponds to maxnum and MAX is the legacy version, but I’m not sure. > > 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 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev