/* note: we have to reorder the three args here */
emit(ir, TGSI_OPCODE_LRP, result_dst, op[2], op[1], op[0]);
break;
+ case ir_triop_csel:
+ if (this->ctx->Const.NativeIntegers)
+ emit(ir, TGSI_OPCODE_UCMP, result_dst, op[0], op[1], op[2]);
+ else {
+ op[0].negate = ~op[0].negate;
+ emit(ir, TGSI_OPCODE_CMP, result_dst, op[0], op[1], op[2]);
+ }
+ break;
case ir_unop_pack_snorm_2x16:
case ir_unop_pack_unorm_2x16:
case ir_unop_pack_half_2x16:
case ir_binop_vector_extract:
case ir_triop_vector_insert:
case ir_binop_ldexp:
- case ir_triop_csel:
/* This operation is not supported, or should have already been handled.
*/
assert(!"Invalid ir opcode in glsl_to_tgsi_visitor::visit()");