Lines Matching refs:dest
70 ptn_src_for_dest(struct ptn_compile *c, nir_alu_dest *dest)
77 if (dest->dest.is_ssa)
78 src.src = nir_src_for_ssa(&dest->dest.ssa);
80 assert(!dest->dest.reg.indirect);
81 src.src = nir_src_for_reg(dest->dest.reg.reg);
82 src.src.reg.base_offset = dest->dest.reg.base_offset;
94 nir_alu_dest dest;
96 memset(&dest, 0, sizeof(dest));
100 dest.dest.reg.reg = c->temp_regs[prog_dst->Index];
103 dest.dest.reg.reg = c->output_regs[prog_dst->Index];
107 dest.dest.reg.reg = c->addr_reg;
113 dest.write_mask = prog_dst->WriteMask;
114 dest.saturate = false;
118 return dest;
228 nir_ssa_dest_init(&mov->instr, &mov->dest.dest, 1, 32, NULL);
229 mov->dest.write_mask = 0x1;
234 chans[i] = &mov->dest.dest.ssa;
247 ptn_alu(nir_builder *b, nir_op op, nir_alu_dest dest, nir_ssa_def **src)
256 instr->dest = dest;
261 ptn_move_dest_masked(nir_builder *b, nir_alu_dest dest,
264 if (!(dest.write_mask & write_mask))
271 mov->dest = dest;
272 mov->dest.write_mask &= write_mask;
280 ptn_move_dest(nir_builder *b, nir_alu_dest dest, nir_ssa_def *def)
282 ptn_move_dest_masked(b, dest, def, WRITEMASK_XYZW);
286 ptn_arl(nir_builder *b, nir_alu_dest dest, nir_ssa_def **src)
288 ptn_move_dest(b, dest, nir_f2i32(b, nir_ffloor(b, src[0])));
298 ptn_exp(nir_builder *b, nir_alu_dest dest, nir_ssa_def **src)
302 ptn_move_dest_masked(b, dest, nir_fexp2(b, nir_ffloor(b, srcx)), WRITEMASK_X);
303 ptn_move_dest_masked(b, dest, nir_fsub(b, srcx, nir_ffloor(b, srcx)), WRITEMASK_Y);
304 ptn_move_dest_masked(b, dest, nir_fexp2(b, srcx), WRITEMASK_Z);
305 ptn_move_dest_masked(b, dest, nir_imm_float(b, 1.0), WRITEMASK_W);
315 ptn_log(nir_builder *b, nir_alu_dest dest, nir_ssa_def **src)
321 ptn_move_dest_masked(b, dest, floor_log2, WRITEMASK_X);
322 ptn_move_dest_masked(b, dest,
326 ptn_move_dest_masked(b, dest, log2, WRITEMASK_Z);
327 ptn_move_dest_masked(b, dest, nir_imm_float(b, 1.0), WRITEMASK_W);
337 ptn_dst(nir_builder *b, nir_alu_dest dest, nir_ssa_def **src)
339 ptn_move_dest_masked(b, dest, nir_imm_float(b, 1.0), WRITEMASK_X);
340 ptn_move_dest_masked(b, dest, nir_fmul(b, src[0], src[1]), WRITEMASK_Y);
341 ptn_move_dest_masked(b, dest, nir_mov(b, src[0]), WRITEMASK_Z);
342 ptn_move_dest_masked(b, dest, nir_mov(b, src[1]), WRITEMASK_W);
352 ptn_lit(nir_builder *b, nir_alu_dest dest, nir_ssa_def **src)
354 ptn_move_dest_masked(b, dest, nir_imm_float(b, 1.0), WRITEMASK_XW);
356 ptn_move_dest_masked(b, dest, nir_fmax(b, ptn_channel(b, src[0], X),
359 if (dest.write_mask & WRITEMASK_Z) {
372 ptn_move_dest_masked(b, dest, z, WRITEMASK_Z);
383 ptn_scs(nir_builder *b, nir_alu_dest dest, nir_ssa_def **src)
385 ptn_move_dest_masked(b, dest, nir_fcos(b, ptn_channel(b, src[0], X)),
387 ptn_move_dest_masked(b, dest, nir_fsin(b, ptn_channel(b, src[0], X)),
389 ptn_move_dest_masked(b, dest, nir_imm_float(b, 0.0), WRITEMASK_Z);
390 ptn_move_dest_masked(b, dest, nir_imm_float(b, 1.0), WRITEMASK_W);
394 ptn_slt(nir_builder *b, nir_alu_dest dest, nir_ssa_def **src)
396 ptn_move_dest(b, dest, nir_slt(b, src[0], src[1]));
400 ptn_sge(nir_builder *b, nir_alu_dest dest, nir_ssa_def **src)
402 ptn_move_dest(b, dest, nir_sge(b, src[0], src[1]));
406 ptn_xpd(nir_builder *b, nir_alu_dest dest, nir_ssa_def **src)
408 ptn_move_dest_masked(b, dest,
417 ptn_move_dest_masked(b, dest, nir_imm_float(b, 1.0), WRITEMASK_W);
421 ptn_dp2(nir_builder *b, nir_alu_dest dest, nir_ssa_def **src)
423 ptn_move_dest(b, dest, nir_fdot2(b, src[0], src[1]));
427 ptn_dp3(nir_builder *b, nir_alu_dest dest, nir_ssa_def **src)
429 ptn_move_dest(b, dest, nir_fdot3(b, src[0], src[1]));
433 ptn_dp4(nir_builder *b, nir_alu_dest dest, nir_ssa_def **src)
435 ptn_move_dest(b, dest, nir_fdot4(b, src[0], src[1]));
439 ptn_dph(nir_builder *b, nir_alu_dest dest, nir_ssa_def **src)
441 ptn_move_dest(b, dest, nir_fdph(b, src[0], src[1]));
445 ptn_cmp(nir_builder *b, nir_alu_dest dest, nir_ssa_def **src)
447 ptn_move_dest(b, dest, nir_bcsel(b,
453 ptn_lrp(nir_builder *b, nir_alu_dest dest, nir_ssa_def **src)
455 ptn_move_dest(b, dest, nir_flrp(b, src[2], src[1], src[0]));
510 ptn_tex(struct ptn_compile *c, nir_alu_dest dest, nir_ssa_def **src,
577 instr->src[src_number].src = nir_src_for_ssa(&deref->dest.ssa);
580 instr->src[src_number].src = nir_src_for_ssa(&deref->dest.ssa);
620 nir_ssa_dest_init(&instr->instr, &instr->dest, 4, 32, NULL);
624 ptn_move_dest(b, dest, &instr->dest.ssa);
689 nir_alu_dest dest = ptn_get_dest(c, &prog_inst->DstReg);
695 ptn_move_dest(b, dest,
700 ptn_move_dest(b, dest, nir_frcp(b, ptn_channel(b, src[0], X)));
704 ptn_move_dest(b, dest, nir_fexp2(b, ptn_channel(b, src[0], X)));
708 ptn_move_dest(b, dest, nir_flog2(b, ptn_channel(b, src[0], X)));
712 ptn_move_dest(b, dest, nir_fpow(b,
718 ptn_move_dest(b, dest, nir_fcos(b, ptn_channel(b, src[0], X)));
722 ptn_move_dest(b, dest, nir_fsin(b, ptn_channel(b, src[0], X)));
726 ptn_arl(b, dest, src);
730 ptn_exp(b, dest, src);
734 ptn_log(b, dest, src);
738 ptn_lrp(b, dest, src);
742 ptn_move_dest(b, dest, nir_fadd(b, nir_fmul(b, src[0], src[1]), src[2]));
746 ptn_dst(b, dest, src);
750 ptn_lit(b, dest, src);
754 ptn_xpd(b, dest, src);
758 ptn_dp2(b, dest, src);
762 ptn_dp3(b, dest, src);
766 ptn_dp4(b, dest, src);
770 ptn_dph(b, dest, src);
778 ptn_cmp(b, dest, src);
782 ptn_scs(b, dest, src);
786 ptn_slt(b, dest, src);
790 ptn_sge(b, dest, src);
798 ptn_tex(c, dest, src, prog_inst);
803 ptn_alu(b, nir_op_mov, dest, src);
811 ptn_alu(b, op_trans[op], dest, src);
821 assert(!dest.dest.is_ssa);
822 ptn_move_dest(b, dest, nir_fsat(b, ptn_src_for_dest(c, &dest)));