Lines Matching defs:lbld
7633 * given by lbld.group() requires allocating a temporary for the i-th source
7637 needs_src_copy(const fs_builder &lbld, const fs_inst *inst, unsigned i)
7639 return !(is_periodic(inst->src[i], lbld.dispatch_width()) ||
7641 lbld.dispatch_width() <= inst->exec_size)) ||
7642 (inst->flags_written(lbld.shader->devinfo) &
7648 * lbld.group() from the i-th source region of instruction \p inst and return
7652 emit_unzip(const fs_builder &lbld, fs_inst *inst, unsigned i)
7654 assert(lbld.group() >= inst->group);
7657 const fs_reg src = horiz_offset(inst->src[i], lbld.group() - inst->group);
7659 if (needs_src_copy(lbld, inst, i)) {
7664 const fs_builder cbld = lbld.group(MIN2(lbld.dispatch_width(),
7666 const fs_reg tmp = lbld.vgrf(inst->src[i].type, inst->components_read(i));
7669 cbld.MOV(offset(tmp, lbld, k), offset(src, inst->exec_size, k));
7673 } else if (is_periodic(inst->src[i], lbld.dispatch_width())) {
7689 * given by lbld.group() requires allocating a temporary for the destination
7694 needs_dst_copy(const fs_builder &lbld, const fs_inst *inst)
7707 if (lbld.dispatch_width() > inst->exec_size)
7714 if (needs_src_copy(lbld, inst, i))
7734 * lbld.group() of the destination region of instruction \p inst and return
7880 const fs_builder lbld = ibld.group(lower_width, i);
7883 split_inst.src[j] = emit_unzip(lbld.at(block, inst), inst, j);
7885 split_inst.dst = emit_zip(lbld.at(block, inst),
7886 lbld.at(block, after_inst), inst);
7890 lbld.at(block, inst->next).emit(split_inst);