i965: Add support for ir_unop_round_even via the RNDE instruction.

This commit is contained in:
Kenneth Graunke 2010-10-14 14:31:54 -07:00
parent 6dc204c5dc
commit f157812bbb
3 changed files with 8 additions and 0 deletions

View file

@ -820,6 +820,7 @@ ALU2(LINE)
ALU2(PLN)
ROUND(RNDZ)
ROUND(RNDE)
#undef ALU1
#undef ALU2

View file

@ -700,6 +700,7 @@ ALU2(PLN)
ROUND(RNDZ)
ROUND(RNDE)
struct brw_instruction *brw_ADD(struct brw_compile *p,

View file

@ -874,6 +874,9 @@ fs_visitor::visit(ir_expression *ir)
case ir_unop_fract:
inst = emit(fs_inst(BRW_OPCODE_FRC, this->result, op[0]));
break;
case ir_unop_round_even:
emit(fs_inst(BRW_OPCODE_RNDE, this->result, op[0]));
break;
case ir_binop_min:
inst = emit(fs_inst(BRW_OPCODE_CMP, this->result, op[0], op[1]));
@ -3016,6 +3019,9 @@ fs_visitor::generate_code()
case BRW_OPCODE_RNDD:
brw_RNDD(p, dst, src[0]);
break;
case BRW_OPCODE_RNDE:
brw_RNDE(p, dst, src[0]);
break;
case BRW_OPCODE_RNDZ:
brw_RNDZ(p, dst, src[0]);
break;