Lines Matching refs:inst
57 foreach_inst_in_block_reverse_safe(fs_inst, inst, block) {
60 if ((inst->opcode != BRW_OPCODE_AND &&
61 inst->opcode != BRW_OPCODE_CMP &&
62 inst->opcode != BRW_OPCODE_MOV) ||
63 inst->predicate != BRW_PREDICATE_NONE ||
64 !inst->dst.is_null() ||
65 inst->src[0].file != VGRF ||
66 inst->src[0].abs)
76 if (inst->opcode == BRW_OPCODE_AND &&
77 !(inst->src[1].is_one() &&
78 inst->conditional_mod == BRW_CONDITIONAL_NZ &&
79 !inst->src[0].negate))
82 if (inst->opcode == BRW_OPCODE_CMP && !inst->src[1].is_zero())
85 if (inst->opcode == BRW_OPCODE_MOV &&
86 inst->conditional_mod != BRW_CONDITIONAL_NZ)
90 foreach_inst_in_block_reverse_starting_from(fs_inst, scan_inst, inst) {
92 inst->src[0], inst->size_read(0))) {
94 scan_inst->dst.offset != inst->src[0].offset ||
95 scan_inst->exec_size != inst->exec_size)
99 if (inst->conditional_mod == BRW_CONDITIONAL_NZ &&
101 (inst->dst.type == BRW_REGISTER_TYPE_D ||
102 inst->dst.type == BRW_REGISTER_TYPE_UD)) {
103 inst->remove(block);
111 if (inst->opcode == BRW_OPCODE_AND)
115 if (scan_inst->dst.type != inst->dst.type &&
117 inst->dst.type == BRW_REGISTER_TYPE_F))
120 /* If the instruction generating inst's source also wrote the
121 * flag, and inst is doing a simple .nz comparison, then inst
123 * register. Delete inst.
125 if (inst->conditional_mod == BRW_CONDITIONAL_NZ &&
126 !inst->src[0].negate &&
128 inst->remove(block);
147 inst->src[0].negate ? brw_swap_cmod(inst->conditional_mod)
148 : inst->conditional_mod;
154 inst->remove(block);