i965: Convert CMP.GE -(abs)reg 0 -> CMP.Z reg 0.
total instructions in shared programs: 5952059 -> 5951603 (-0.01%) instructions in affected programs: 138812 -> 138356 (-0.33%) GAINED: 1 LOST: 0 Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
parent
40ae302a3c
commit
94e7b59a75
|
@ -2367,6 +2367,18 @@ fs_visitor::opt_algebraic()
|
|||
break;
|
||||
}
|
||||
break;
|
||||
case BRW_OPCODE_CMP:
|
||||
if (inst->conditional_mod == BRW_CONDITIONAL_GE &&
|
||||
inst->src[0].abs &&
|
||||
inst->src[0].negate &&
|
||||
inst->src[1].is_zero()) {
|
||||
inst->src[0].abs = false;
|
||||
inst->src[0].negate = false;
|
||||
inst->conditional_mod = BRW_CONDITIONAL_Z;
|
||||
progress = true;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case BRW_OPCODE_SEL:
|
||||
if (inst->src[0].equals(inst->src[1])) {
|
||||
inst->opcode = BRW_OPCODE_MOV;
|
||||
|
|
|
@ -693,6 +693,18 @@ vec4_visitor::opt_algebraic()
|
|||
progress = true;
|
||||
}
|
||||
break;
|
||||
case BRW_OPCODE_CMP:
|
||||
if (inst->conditional_mod == BRW_CONDITIONAL_GE &&
|
||||
inst->src[0].abs &&
|
||||
inst->src[0].negate &&
|
||||
inst->src[1].is_zero()) {
|
||||
inst->src[0].abs = false;
|
||||
inst->src[0].negate = false;
|
||||
inst->conditional_mod = BRW_CONDITIONAL_Z;
|
||||
progress = true;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case SHADER_OPCODE_RCP: {
|
||||
vec4_instruction *prev = (vec4_instruction *)inst->prev;
|
||||
if (prev->opcode == SHADER_OPCODE_SQRT) {
|
||||
|
|
Loading…
Reference in New Issue