• Home
  • Raw
  • Download

Lines Matching refs:vop3p

904       return instr->vop3p().opsel_hi & (1u << index) ? 16 : 32;  in get_operand_size()
941 VOP3P_instruction* vop3p = &instr->vop3p(); in propagate_constants_vop3p() local
942 bool opsel_lo = (vop3p->opsel_lo >> i) & 1; in propagate_constants_vop3p()
943 bool opsel_hi = (vop3p->opsel_hi >> i) & 1; in propagate_constants_vop3p()
1006 vop3p->neg_lo[i] ^= opsel_lo ^ neg_lo; in propagate_constants_vop3p()
1007 vop3p->neg_hi[i] ^= opsel_hi ^ neg_lo; in propagate_constants_vop3p()
1014 vop3p->opsel_lo = opsel_lo ? (vop3p->opsel_lo | (1 << i)) : (vop3p->opsel_lo & ~(1 << i)); in propagate_constants_vop3p()
1015 vop3p->opsel_hi = opsel_hi ? (vop3p->opsel_hi | (1 << i)) : (vop3p->opsel_hi & ~(1 << i)); in propagate_constants_vop3p()
3211 instr->vop3p().clamp = true; in apply_omod_clamp()
3449 VOP3P_instruction* vop3p = &instr->vop3p(); in combine_vop3p() local
3453 vop3p->clamp && instr->operands[0].isTemp() && ctx.uses[instr->operands[0].tempId()] == 1 && in combine_vop3p()
3454 !((vop3p->opsel_lo | vop3p->opsel_hi) & 2)) { in combine_vop3p()
3458 VOP3P_instruction* candidate = &ctx.info[instr->operands[0].tempId()].instr->vop3p(); in combine_vop3p()
3460 propagate_swizzles(candidate, vop3p->opsel_lo, vop3p->opsel_hi); in combine_vop3p()
3479 VOP3P_instruction* fneg = &info.instr->vop3p(); in combine_vop3p()
3499 bool opsel_lo = (vop3p->opsel_lo >> i) & 1; in combine_vop3p()
3500 bool opsel_hi = (vop3p->opsel_hi >> i) & 1; in combine_vop3p()
3503 vop3p->neg_lo[i] ^= opsel_lo ? neg_hi : neg_lo; in combine_vop3p()
3504 vop3p->neg_hi[i] ^= opsel_hi ? neg_hi : neg_lo; in combine_vop3p()
3505 vop3p->opsel_lo ^= ((opsel_lo ? ~fneg->opsel_hi : fneg->opsel_lo) & 1) << i; in combine_vop3p()
3506 vop3p->opsel_hi ^= ((opsel_hi ? ~fneg->opsel_hi : fneg->opsel_lo) & 1) << i; in combine_vop3p()
3543 if (info.instr->vop3p().clamp) in combine_vop3p()
3548 opsel_lo = (vop3p->opsel_lo >> i) & 1; in combine_vop3p()
3549 opsel_hi = (vop3p->opsel_hi >> i) & 1; in combine_vop3p()
3571 VOP3P_instruction* mul = &mul_instr->vop3p(); in combine_vop3p()
3578 fma->clamp = vop3p->clamp; in combine_vop3p()
3582 fma->opsel_lo |= (vop3p->opsel_lo << (2 - add_op_idx)) & 0x4; in combine_vop3p()
3583 fma->opsel_hi |= (vop3p->opsel_hi << (2 - add_op_idx)) & 0x4; in combine_vop3p()
3584 fma->neg_lo[2] = vop3p->neg_lo[add_op_idx]; in combine_vop3p()
3585 fma->neg_hi[2] = vop3p->neg_hi[add_op_idx]; in combine_vop3p()
3586 fma->neg_lo[1] = fma->neg_lo[1] ^ vop3p->neg_lo[1 - add_op_idx]; in combine_vop3p()
3587 fma->neg_hi[1] = fma->neg_hi[1] ^ vop3p->neg_hi[1 - add_op_idx]; in combine_vop3p()
3631 aco_ptr<VOP3P_instruction> vop3p{ in to_mad_mix() local
3634 vop3p->opsel_lo = instr->isVOP3() ? ((instr->vop3().opsel & 0x7) << (is_add ? 1 : 0)) : 0x0; in to_mad_mix()
3635 vop3p->opsel_hi = 0x0; in to_mad_mix()
3637 vop3p->operands[is_add + i] = instr->operands[i]; in to_mad_mix()
3638 vop3p->neg_lo[is_add + i] = instr->isVOP3() && instr->vop3().neg[i]; in to_mad_mix()
3639 vop3p->neg_lo[is_add + i] |= instr->isSDWA() && instr->sdwa().neg[i]; in to_mad_mix()
3640 vop3p->neg_hi[is_add + i] = instr->isVOP3() && instr->vop3().abs[i]; in to_mad_mix()
3641 vop3p->neg_hi[is_add + i] |= instr->isSDWA() && instr->sdwa().abs[i]; in to_mad_mix()
3642 vop3p->opsel_lo |= (instr->isSDWA() && instr->sdwa().sel[i].offset()) << (is_add + i); in to_mad_mix()
3645 vop3p->opsel_hi &= 0x3; in to_mad_mix()
3646 vop3p->operands[2] = Operand::zero(); in to_mad_mix()
3647 vop3p->neg_lo[2] = true; in to_mad_mix()
3649 vop3p->opsel_hi &= 0x6; in to_mad_mix()
3650 vop3p->operands[0] = Operand::c32(0x3f800000); in to_mad_mix()
3652 vop3p->neg_lo[2] ^= true; in to_mad_mix()
3654 vop3p->neg_lo[1] ^= true; in to_mad_mix()
3656 vop3p->definitions[0] = instr->definitions[0]; in to_mad_mix()
3657 vop3p->clamp = instr->isVOP3() && instr->vop3().clamp; in to_mad_mix()
3658 instr = std::move(vop3p); in to_mad_mix()
3742 instr->vop3p().opsel_hi ^= 1u << i; in combine_mad_mix()
3744 instr->vop3p().opsel_lo |= 1u << i; in combine_mad_mix()
3747 if (!instr->vop3p().neg_hi[i]) { in combine_mad_mix()
3748 instr->vop3p().neg_lo[i] ^= neg; in combine_mad_mix()
3749 instr->vop3p().neg_hi[i] = abs; in combine_mad_mix()
3911 !instr->vop3p().neg_lo[0] && in combine_instruction()
3912 ((instr->operands[0].constantEquals(0x3f800000) && (instr->vop3p().opsel_hi & 0x1) == 0) || in combine_instruction()
3913 (instr->operands[0].constantEquals(0x3C00) && (instr->vop3p().opsel_hi & 0x1) && in combine_instruction()
3914 !(instr->vop3p().opsel_lo & 0x1))); in combine_instruction()
3934 if (info.instr->isVOP3P() && info.instr->vop3p().clamp) in combine_instruction()
4018 VOP3P_instruction& vop3p = mul_instr->vop3p(); in combine_instruction() local
4019 neg[0] = vop3p.neg_lo[0]; in combine_instruction()
4020 neg[1] = vop3p.neg_lo[1]; in combine_instruction()
4021 abs[0] = vop3p.neg_hi[0]; in combine_instruction()
4022 abs[1] = vop3p.neg_hi[1]; in combine_instruction()
4023 opsel_lo = vop3p.opsel_lo & 0x3; in combine_instruction()
4024 opsel_hi = vop3p.opsel_hi & 0x3; in combine_instruction()
4043 VOP3P_instruction& vop3p = instr->vop3p(); in combine_instruction() local
4044 neg[2] = vop3p.neg_lo[add_op_idx]; in combine_instruction()
4045 abs[2] = vop3p.neg_hi[add_op_idx]; in combine_instruction()
4046 opsel_lo |= vop3p.opsel_lo & (1 << add_op_idx) ? 0x4 : 0x0; in combine_instruction()
4047 opsel_hi |= vop3p.opsel_hi & (1 << add_op_idx) ? 0x4 : 0x0; in combine_instruction()
4048 clamp = vop3p.clamp; in combine_instruction()
4050 if (vop3p.neg_hi[3 - add_op_idx]) { in combine_instruction()
4057 neg[1] = neg[1] ^ vop3p.neg_lo[3 - add_op_idx]; in combine_instruction()