Lines Matching defs:lbld
6320 * given by lbld.group() requires allocating a temporary for the i-th source
6324 needs_src_copy(const fs_builder &lbld, const fs_inst *inst, unsigned i)
6326 return !(is_periodic(inst->src[i], lbld.dispatch_width()) ||
6328 lbld.dispatch_width() <= inst->exec_size)) ||
6335 * lbld.group() from the i-th source region of instruction \p inst and return
6339 emit_unzip(const fs_builder &lbld, fs_inst *inst, unsigned i)
6341 assert(lbld.group() >= inst->group);
6344 const fs_reg src = horiz_offset(inst->src[i], lbld.group() - inst->group);
6346 if (needs_src_copy(lbld, inst, i)) {
6351 const fs_builder cbld = lbld.group(MIN2(lbld.dispatch_width(),
6353 const fs_reg tmp = lbld.vgrf(inst->src[i].type, inst->components_read(i));
6356 cbld.MOV(offset(tmp, lbld, k), offset(src, inst->exec_size, k));
6360 } else if (is_periodic(inst->src[i], lbld.dispatch_width())) {
6376 * given by lbld.group() requires allocating a temporary for the destination
6381 needs_dst_copy(const fs_builder &lbld, const fs_inst *inst)
6394 if (lbld.dispatch_width() > inst->exec_size)
6401 if (needs_src_copy(lbld, inst, i))
6421 * lbld.group() of the destination region of instruction \p inst and return
6567 const fs_builder lbld = ibld.group(lower_width, i);
6570 split_inst.src[j] = emit_unzip(lbld.at(block, inst), inst, j);
6572 split_inst.dst = emit_zip(lbld.at(block, inst),
6573 lbld.at(block, after_inst), inst);
6577 lbld.at(block, inst->next).emit(split_inst);