Lines Matching defs:opsel
932 /* The accumulation operand of dot product instructions ignores opsel. */
973 /* opsel must point the same for both halves */
980 /* opsel must point the same for both halves */
987 /* redirect opsel selection */
994 /* redirect opsel selection */
1009 /* opsel must point to lo for both operands */
1084 !(instr->vop3().opsel & (1 << idx))) {
1139 instr->vop3().opsel |= 1 << idx;
1828 vop3.omod != 0 || vop3.opsel != 0)
2109 uint8_t opsel = 0;
2131 if (vop3.neg[0] != vop3.neg[1] || vop3.abs[0] != vop3.abs[1] || vop3.opsel == 1 ||
2132 vop3.opsel == 2)
2136 opsel |= (vop3.opsel & 1) << i;
2168 if (neg[0] || neg[1] || abs[0] || abs[1] || opsel || num_sgprs > 1) {
2175 vop3->opsel = opsel;
2249 new_vop3->opsel = cmp_vop3.opsel;
2335 if (vop3.neg[0] != vop3.neg[1] || vop3.abs[0] != vop3.abs[1] || vop3.opsel == 1 ||
2336 vop3.opsel == 2)
2374 new_vop3->opsel = cmp_vop3.opsel;
2425 new_vop3->opsel = cmp_vop3.opsel;
2475 uint8_t* opsel, bool* op1_clamp, uint8_t* op1_omod, bool* inbetween_neg,
2515 *inbetween_opsel = op1_vop3 ? op1_vop3->opsel & (1 << (unsigned)swap) : false;
2516 else if (op1_vop3 && op1_vop3->opsel & (1 << (unsigned)swap))
2529 if (op1_vop3 && (op1_vop3->opsel & (1 << (unsigned)!swap)))
2530 *opsel |= 1 << shuffle[0];
2536 if (op2_vop3 && op2_vop3->opsel & (1 << i))
2537 *opsel |= 1 << shuffle[i + 1];
2549 Operand operands[3], bool neg[3], bool abs[3], uint8_t opsel, bool clamp,
2557 new_instr->opsel = opsel;
2577 uint8_t opsel = 0, omod = 0;
2579 abs, &opsel, &clamp, &omod, NULL, NULL, NULL, &precise)) {
2581 create_vop3_for_op3(ctx, new_op, instr, operands, neg, abs, opsel, clamp, omod);
2645 uint8_t opsel = 0, omod = 0;
2651 create_vop3_for_op3(ctx, op, instr, operands, neg, abs, opsel, clamp, omod);
2661 /* TODO: this can handle SDWA min/max instructions by using opsel */
2670 uint8_t opsel = 0, omod = 0;
2673 abs, &opsel, &clamp, &omod, &inbetween_neg, NULL, NULL, &precise) &&
2678 create_vop3_for_op3(ctx, minmax3, instr, operands, neg, abs, opsel, clamp, omod);
2945 uint8_t opsel = 0, omod = 0;
2947 abs, &opsel, &clamp, &omod, NULL, NULL, NULL, &precise)) {
2959 bool hi16 = opsel & (1 << i);
3039 create_vop3_for_op3(ctx, med, instr, operands, neg, abs, opsel, clamp, omod);
3621 return !instr->vop3().omod && !(instr->vop3().opsel & 0x8);
3634 vop3p->opsel_lo = instr->isVOP3() ? ((instr->vop3().opsel & 0x7) << (is_add ? 1 : 0)) : 0x0;