Lines Matching defs:instr

96    struct ir3_instruction *instr = ir3_instr_create(block, opc, 1, 2);
99 struct ir3_register *instr_dst = ir3_dst_create(instr, dst->num, flags);
100 struct ir3_register *instr_src0 = ir3_src_create(instr, src0->num, flags);
101 struct ir3_register *instr_src1 = ir3_src_create(instr, src1->num, flags);
106 instr->repeat = util_last_bit(instr_dst->wrmask) - 1;
114 struct ir3_instruction *instr = ir3_instr_create(block, opc, 1, 3);
117 struct ir3_register *instr_dst = ir3_dst_create(instr, dst->num, flags);
118 struct ir3_register *instr_src0 = ir3_src_create(instr, src0->num, flags);
119 struct ir3_register *instr_src1 = ir3_src_create(instr, src1->num, flags);
120 struct ir3_register *instr_src2 = ir3_src_create(instr, src2->num, flags);
126 instr->repeat = util_last_bit(instr_dst->wrmask) - 1;
170 struct ir3_instruction *instr)
194 foreach_instr_from_safe (rem_instr, &instr->node,
238 lower_instr(struct ir3 *ir, struct ir3_block **block, struct ir3_instruction *instr)
240 switch (instr->opc) {
255 struct ir3_block *after_block = split_block(ir, before_block, instr);
257 if (instr->opc == OPC_SCAN_MACRO) {
295 struct ir3_register *exclusive = instr->dsts[0];
296 struct ir3_register *inclusive = instr->dsts[1];
297 struct ir3_register *reduce = instr->dsts[2];
298 struct ir3_register *src = instr->srcs[0];
301 do_reduce(exit, instr->cat1.reduce_op, inclusive, src, exclusive);
311 if (instr->opc == OPC_BALLOT_MACRO) {
314 mov_immed(instr->dsts[0], then_block, 0);
316 after_block = split_block(ir, before_block, instr);
320 switch (instr->opc) {
325 before_block->condition = instr->srcs[0]->def->instr;
332 switch (instr->opc) {
352 switch (instr->opc) {
356 mov_immed(instr->dsts[0], then_block, 1);
357 mov_immed(instr->dsts[0], before_block, 0);
361 unsigned comp_count = util_last_bit(instr->dsts[0]->wrmask);
364 ir3_dst_create(movmsk, instr->dsts[0]->num, instr->dsts[0]->flags);
373 unsigned src = instr->opc == OPC_READ_COND_MACRO ? 1 : 0;
374 ir3_dst_create(mov, instr->dsts[0]->num, instr->dsts[0]->flags);
376 *new_src = *instr->srcs[src];
386 ir3_dst_create(swz, instr->dsts[0]->num, instr->dsts[0]->flags);
387 ir3_dst_create(swz, instr->dsts[1]->num, instr->dsts[1]->flags);
388 ir3_src_create(swz, instr->srcs[0]->num, instr->srcs[0]->flags);
389 ir3_src_create(swz, instr->srcs[1]->num, instr->srcs[1]->flags);
401 list_delinit(&instr->node);
413 foreach_instr (instr, &(*block)->instr_list) {
414 if (lower_instr(ir, block, instr)) {