From: Maxence Le Doré <Maxence Le Doré> --- src/mesa/state_tracker/st_glsl_to_tgsi.cpp | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-)
diff --git a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp index 726b574..7c1f4e2 100644 --- a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp +++ b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp @@ -683,6 +683,8 @@ glsl_to_tgsi_visitor::get_opcode(ir_instruction *ir, unsigned op, casecomp(SLT, FSLT, ISLT, USLT); case2iu(ISHR, USHR); + case2iu(ILSB, ULSB); + case2iu(IMSB, UMSB); case2fi(SSG, ISSG); case3(ABS, IABS, IABS); @@ -1929,6 +1931,24 @@ glsl_to_tgsi_visitor::visit(ir_expression *ir) emit(ir, TGSI_OPCODE_CMP, result_dst, op[0], op[1], op[2]); } break; + case ir_triop_fma: + emit(ir, TGSI_OPCODE_FMA, result_dst, op[0], op[1], op[2]); + break; + case ir_unop_bit_count: + if (native_integers) { + emit(ir, TGSI_OPCODE_POPCNT, result_dst, op[0]); + break; + } + case ir_unop_find_msb: + if (native_integers) { + emit(ir, TGSI_OPCODE_ILSB, result_dst, op[0]); + break; + } + case ir_unop_find_lsb: + if (native_integers) { + emit(ir, TGSI_OPCODE_IMSB, result_dst, op[0], op[1]); + break; + } case ir_unop_pack_snorm_2x16: case ir_unop_pack_unorm_2x16: case ir_unop_pack_half_2x16: @@ -1943,11 +1963,7 @@ glsl_to_tgsi_visitor::visit(ir_expression *ir) case ir_unop_unpack_unorm_4x8: case ir_binop_pack_half_2x16_split: case ir_unop_bitfield_reverse: - case ir_unop_bit_count: - case ir_unop_find_msb: - case ir_unop_find_lsb: case ir_binop_bfm: - case ir_triop_fma: case ir_triop_bfi: case ir_triop_bitfield_extract: case ir_quadop_bitfield_insert: -- 1.8.5.2 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev