Lines Matching defs:extract

459    void set_extract(Instruction* extract)
462 instr = extract;
1705 /* convert this extract into a copy instruction */
2050 /* Don't remove label_extract if we can't apply the extract to
3263 /* Remove superfluous extract after ds_read like so:
3267 apply_ds_extract(opt_ctx& ctx, aco_ptr<Instruction>& extract)
3270 if (!ctx.info[extract->operands[0].tempId()].is_usedef() ||
3271 ctx.uses[extract->operands[0].tempId()] > 1)
3275 Instruction* ds = ctx.info[extract->operands[0].tempId()].instr;
3279 unsigned extract_idx = extract->operands[1].constantValue();
3280 unsigned bits_extracted = extract->operands[2].constantValue();
3281 unsigned sign_ext = extract->operands[3].constantValue();
3282 unsigned dst_bitsize = extract->definitions[0].bytes() * 8u;
3307 /* The DS now produces the exact same thing as the extract, remove the extract. */
3308 std::swap(ds->definitions[0], extract->definitions[0]);
3309 ctx.uses[extract->definitions[0].tempId()] = 0;
3801 // TODO: delay applying extract to a point where we know better
3810 /* Increase use count of the extract's operand if the extract still has uses. */
4342 aco_ptr<Pseudo_instruction> extract{create_instruction<Pseudo_instruction>(
4344 extract->operands[0] = op;
4345 extract->definitions[0] = instr->definitions[idx];
4346 instr = std::move(extract);
4355 aco_ptr<Pseudo_instruction> extract{create_instruction<Pseudo_instruction>(
4357 extract->operands[0] = instr->operands[0];
4358 extract->operands[1] =
4360 extract->definitions[0] = instr->definitions[idx];
4361 instr = std::move(extract);