i965: Implement VS MAX in a more obvious way.

This should be functionally equivalent, with the possible exception of
NaN handling.
This commit is contained in:
Eric Anholt
2010-04-28 12:47:51 -07:00
parent 084d8fdd36
commit d05c35914d
+3 -3
View File
@@ -49,7 +49,7 @@ brw_vs_arg_can_be_immediate(enum prog_opcode opcode, int arg)
[OPCODE_DP3] = 2,
[OPCODE_DP4] = 2,
[OPCODE_DPH] = 2,
[OPCODE_MAX] = 1,
[OPCODE_MAX] = 2,
[OPCODE_MIN] = 2,
[OPCODE_MUL] = 2,
[OPCODE_SEQ] = 2,
@@ -490,8 +490,8 @@ static void emit_max( struct brw_compile *p,
struct brw_reg arg0,
struct brw_reg arg1 )
{
brw_CMP(p, brw_null_reg(), BRW_CONDITIONAL_L, arg0, arg1);
brw_SEL(p, dst, arg1, arg0);
brw_CMP(p, brw_null_reg(), BRW_CONDITIONAL_GE, arg0, arg1);
brw_SEL(p, dst, arg0, arg1);
brw_set_predicate_control(p, BRW_PREDICATE_NONE);
}