Searched refs:opsel (Results 1 - 15 of 15) sorted by relevance

/xsrc/external/mit/MesaLib/dist/src/amd/compiler/
H A Daco_print_ir.cpp567 if (vop3.opsel & (1 << 3))
658 bool* const opsel = (bool*)alloca(instr->operands.size() * sizeof(bool)); local in function:aco::aco_print_instr
662 opsel[i] = false;
669 opsel[i] = vop3.opsel & (1 << i);
676 opsel[i] = false;
683 opsel[i] = false;
696 if (opsel[i])
699 if (opsel[i])
H A Daco_optimizer.cpp840 !(instr->vop3().opsel & (1 << idx))) {
883 instr->vop3().opsel |= 1 << idx;
1502 vop3.omod != 0 || vop3.opsel != 0)
1767 uint8_t opsel = 0; local in function:aco::combine_ordering_test
1789 if (vop3.neg[0] != vop3.neg[1] || vop3.abs[0] != vop3.abs[1] || vop3.opsel == 1 ||
1790 vop3.opsel == 2)
1794 opsel |= (vop3.opsel & 1) << i;
1826 if (neg[0] || neg[1] || abs[0] || abs[1] || opsel || num_sgprs > 1) {
1833 vop3->opsel
2129 match_op3_for_vop3(opt_ctx & ctx,aco_opcode op1,aco_opcode op2,Instruction * op1_instr,bool swap,const char * shuffle_str,Operand operands[3],bool neg[3],bool abs[3],uint8_t * opsel,bool * op1_clamp,uint8_t * op1_omod,bool * inbetween_neg,bool * inbetween_abs,bool * inbetween_opsel,bool * precise) argument
2204 create_vop3_for_op3(opt_ctx & ctx,aco_opcode opcode,aco_ptr<Instruction> & instr,Operand operands[3],bool neg[3],bool abs[3],uint8_t opsel,bool clamp,unsigned omod) argument
2233 uint8_t opsel = 0, omod = 0; local in function:aco::combine_three_valu_op
2301 uint8_t opsel = 0, omod = 0; local in function:aco::combine_add_or_then_and_lshl
2326 uint8_t opsel = 0, omod = 0; local in function:aco::combine_minmax
2590 uint8_t opsel = 0, omod = 0; local in function:aco::combine_clamp
[all...]
H A Daco_opt_value_numbering.cpp173 return a3.clamp == b3.clamp && a3.omod == b3.omod && a3.opsel == b3.opsel;
H A Daco_validate.cpp223 /* check opsel */
226 check(vop3.opsel == 0 || program->chip_class >= GFX9,
233 check((vop3.opsel & (1 << i)) == 0, "Unexpected opsel for operand", instr.get());
236 check((vop3.opsel & (1 << 3)) == 0, "Unexpected opsel for sub-dword definition",
244 "Unexpected opsel for subdword operand", instr.get());
H A Daco_lower_to_hw_instr.cpp657 perm->vop3().opsel = 1; /* FI (Fetch Inactive) */
791 perm->vop3().opsel = 1; /* FI (Fetch Inactive) */
1095 instr->vop3().opsel = 0;
1100 instr->vop3().opsel = 2;
1360 /* opsel: 0 = select low half, 1 = select high half. [0] = src0, [1] = src1 */
1361 instr->vop3().opsel = hi.physReg().byte() | (lo.physReg().byte() >> 1);
H A Daco_ir.cpp317 if (vop3->clamp || vop3->omod || vop3->opsel)
371 /* opsel is only GFX9+ */
465 /* on GFX10, all opsel instructions preserve the high bits */
H A Daco_ir.h1383 uint8_t opsel : 4; member in struct:aco::VOP3_instruction
1739 return vop3.opsel || vop3.clamp || vop3.omod;
H A Daco_assembler.cpp618 encoding |= vop3.opsel << 11;
H A Daco_register_allocation.cpp518 /* check if we can use opsel */
521 instr->vop3().opsel |= 1 << idx;
643 /* check if we can use opsel */
647 instr->vop3().opsel |= (1 << 3); /* dst in high half */
/xsrc/external/mit/MesaLib/dist/docs/relnotes/
H A D21.3.4.rst71 - aco: validate VOP3P opsel correctly
H A D20.2.0.rst3844 - aco: allow GFX9 partial writes with instructions which use opsel
3848 - aco: fix sub-dword opsel/sdwa checks
3849 - aco: fix validation of opsel when set for the definition
H A D19.3.0.rst2822 - aco: Assemble opsel in VOP3 instructions.
H A D20.1.0.rst3550 - aco: print and validate opsel
H A D20.3.0.rst4112 - aco: don't allow destination opsel for v_cvt_pknorm
/xsrc/external/mit/MesaLib/dist/
H A D.pick_status.json15862 "description": "aco: validate VOP3P opsel correctly",
[all...]

Completed in 204 milliseconds