Lines Matching refs:AMDGPU
138 using namespace AMDGPU::SDWA;
339 if (TII->getNamedOperand(*MI, AMDGPU::OpName::src0) == SrcOp) { in getSrcMods()
340 if (auto *Mod = TII->getNamedOperand(*MI, AMDGPU::OpName::src0_modifiers)) { in getSrcMods()
343 } else if (TII->getNamedOperand(*MI, AMDGPU::OpName::src1) == SrcOp) { in getSrcMods()
344 if (auto *Mod = TII->getNamedOperand(*MI, AMDGPU::OpName::src1_modifiers)) { in getSrcMods()
374 MachineOperand *Src = TII->getNamedOperand(MI, AMDGPU::OpName::src0); in convertToSDWA()
375 MachineOperand *SrcSel = TII->getNamedOperand(MI, AMDGPU::OpName::src0_sel); in convertToSDWA()
377 TII->getNamedOperand(MI, AMDGPU::OpName::src0_modifiers); in convertToSDWA()
381 Src = TII->getNamedOperand(MI, AMDGPU::OpName::src1); in convertToSDWA()
382 SrcSel = TII->getNamedOperand(MI, AMDGPU::OpName::src1_sel); in convertToSDWA()
383 SrcMods = TII->getNamedOperand(MI, AMDGPU::OpName::src1_modifiers); in convertToSDWA()
393 MachineOperand *Dst = TII->getNamedOperand(MI, AMDGPU::OpName::vdst); in convertToSDWA()
395 TII->getNamedOperand(MI, AMDGPU::OpName::dst_unused); in convertToSDWA()
398 DstUnused->getImm() == AMDGPU::SDWA::DstUnused::UNUSED_PRESERVE) { in convertToSDWA()
404 TII->getNamedImmOperand(MI, AMDGPU::OpName::dst_sel)); in convertToSDWA()
405 if (DstSel == AMDGPU::SDWA::SdwaSel::WORD_1 && in convertToSDWA()
406 getSrcSel() == AMDGPU::SDWA::SdwaSel::WORD_0) { in convertToSDWA()
408 auto DstIdx = AMDGPU::getNamedOperandIdx(MI.getOpcode(), in convertToSDWA()
409 AMDGPU::OpName::vdst); in convertToSDWA()
422 if ((MI.getOpcode() == AMDGPU::V_MAC_F16_sdwa || in convertToSDWA()
423 MI.getOpcode() == AMDGPU::V_MAC_F32_sdwa) && in convertToSDWA()
464 if ((MI.getOpcode() == AMDGPU::V_MAC_F16_sdwa || in convertToSDWA()
465 MI.getOpcode() == AMDGPU::V_MAC_F32_sdwa) && in convertToSDWA()
466 getDstSel() != AMDGPU::SDWA::DWORD) { in convertToSDWA()
471 MachineOperand *Operand = TII->getNamedOperand(MI, AMDGPU::OpName::vdst); in convertToSDWA()
476 MachineOperand *DstSel= TII->getNamedOperand(MI, AMDGPU::OpName::dst_sel); in convertToSDWA()
479 MachineOperand *DstUnused= TII->getNamedOperand(MI, AMDGPU::OpName::dst_unused); in convertToSDWA()
512 MI.tieOperands(AMDGPU::getNamedOperandIdx(MI.getOpcode(), AMDGPU::OpName::vdst), in convertToSDWA()
550 case AMDGPU::V_LSHRREV_B32_e32: in matchSDWAOperand()
551 case AMDGPU::V_ASHRREV_I32_e32: in matchSDWAOperand()
552 case AMDGPU::V_LSHLREV_B32_e32: in matchSDWAOperand()
553 case AMDGPU::V_LSHRREV_B32_e64: in matchSDWAOperand()
554 case AMDGPU::V_ASHRREV_I32_e64: in matchSDWAOperand()
555 case AMDGPU::V_LSHLREV_B32_e64: { in matchSDWAOperand()
564 MachineOperand *Src0 = TII->getNamedOperand(MI, AMDGPU::OpName::src0); in matchSDWAOperand()
572 MachineOperand *Src1 = TII->getNamedOperand(MI, AMDGPU::OpName::src1); in matchSDWAOperand()
573 MachineOperand *Dst = TII->getNamedOperand(MI, AMDGPU::OpName::vdst); in matchSDWAOperand()
578 if (Opcode == AMDGPU::V_LSHLREV_B32_e32 || in matchSDWAOperand()
579 Opcode == AMDGPU::V_LSHLREV_B32_e64) { in matchSDWAOperand()
585 Opcode != AMDGPU::V_LSHRREV_B32_e32 && in matchSDWAOperand()
586 Opcode != AMDGPU::V_LSHRREV_B32_e64); in matchSDWAOperand()
591 case AMDGPU::V_LSHRREV_B16_e32: in matchSDWAOperand()
592 case AMDGPU::V_ASHRREV_I16_e32: in matchSDWAOperand()
593 case AMDGPU::V_LSHLREV_B16_e32: in matchSDWAOperand()
594 case AMDGPU::V_LSHRREV_B16_e64: in matchSDWAOperand()
595 case AMDGPU::V_ASHRREV_I16_e64: in matchSDWAOperand()
596 case AMDGPU::V_LSHLREV_B16_e64: { in matchSDWAOperand()
605 MachineOperand *Src0 = TII->getNamedOperand(MI, AMDGPU::OpName::src0); in matchSDWAOperand()
610 MachineOperand *Src1 = TII->getNamedOperand(MI, AMDGPU::OpName::src1); in matchSDWAOperand()
611 MachineOperand *Dst = TII->getNamedOperand(MI, AMDGPU::OpName::vdst); in matchSDWAOperand()
617 if (Opcode == AMDGPU::V_LSHLREV_B16_e32 || in matchSDWAOperand()
618 Opcode == AMDGPU::V_LSHLREV_B16_e64) { in matchSDWAOperand()
623 Opcode != AMDGPU::V_LSHRREV_B16_e32 && in matchSDWAOperand()
624 Opcode != AMDGPU::V_LSHRREV_B16_e64); in matchSDWAOperand()
629 case AMDGPU::V_BFE_I32: in matchSDWAOperand()
630 case AMDGPU::V_BFE_U32: { in matchSDWAOperand()
645 MachineOperand *Src1 = TII->getNamedOperand(MI, AMDGPU::OpName::src1); in matchSDWAOperand()
650 MachineOperand *Src2 = TII->getNamedOperand(MI, AMDGPU::OpName::src2); in matchSDWAOperand()
674 MachineOperand *Src0 = TII->getNamedOperand(MI, AMDGPU::OpName::src0); in matchSDWAOperand()
675 MachineOperand *Dst = TII->getNamedOperand(MI, AMDGPU::OpName::vdst); in matchSDWAOperand()
682 Src0, Dst, SrcSel, false, false, Opcode != AMDGPU::V_BFE_U32); in matchSDWAOperand()
685 case AMDGPU::V_AND_B32_e32: in matchSDWAOperand()
686 case AMDGPU::V_AND_B32_e64: { in matchSDWAOperand()
691 MachineOperand *Src0 = TII->getNamedOperand(MI, AMDGPU::OpName::src0); in matchSDWAOperand()
692 MachineOperand *Src1 = TII->getNamedOperand(MI, AMDGPU::OpName::src1); in matchSDWAOperand()
704 MachineOperand *Dst = TII->getNamedOperand(MI, AMDGPU::OpName::vdst); in matchSDWAOperand()
714 case AMDGPU::V_OR_B32_e32: in matchSDWAOperand()
715 case AMDGPU::V_OR_B32_e64: { in matchSDWAOperand()
746 MachineOperand *OrSDWA = TII->getNamedOperand(MI, AMDGPU::OpName::src0); in matchSDWAOperand()
747 MachineOperand *OrOther = TII->getNamedOperand(MI, AMDGPU::OpName::src1); in matchSDWAOperand()
751 OrSDWA = TII->getNamedOperand(MI, AMDGPU::OpName::src1); in matchSDWAOperand()
752 OrOther = TII->getNamedOperand(MI, AMDGPU::OpName::src0); in matchSDWAOperand()
790 TII->getNamedImmOperand(*SDWAInst, AMDGPU::OpName::dst_sel));; in matchSDWAOperand()
792 TII->getNamedImmOperand(*OtherInst, AMDGPU::OpName::dst_sel)); in matchSDWAOperand()
832 TII->getNamedImmOperand(*OtherInst, AMDGPU::OpName::dst_unused)); in matchSDWAOperand()
837 MachineOperand *OrDst = TII->getNamedOperand(MI, AMDGPU::OpName::vdst); in matchSDWAOperand()
880 assert((Opc == AMDGPU::V_ADD_I32_e64 || Opc == AMDGPU::V_SUB_I32_e64) && in pseudoOpConvertToVOP2()
886 Opc = AMDGPU::getVOPe32(Opc); in pseudoOpConvertToVOP2()
888 const MachineOperand *Sdst = TII->getNamedOperand(MI, AMDGPU::OpName::sdst); in pseudoOpConvertToVOP2()
898 int SuccOpc = AMDGPU::getVOPe32(MISucc.getOpcode()); in pseudoOpConvertToVOP2()
900 MachineOperand *CarryIn = TII->getNamedOperand(MISucc, AMDGPU::OpName::src2); in pseudoOpConvertToVOP2()
903 MachineOperand *CarryOut = TII->getNamedOperand(MISucc, AMDGPU::OpName::sdst); in pseudoOpConvertToVOP2()
910 auto Liveness = MBB.computeRegisterLiveness(TRI, AMDGPU::VCC, MI, 25); in pseudoOpConvertToVOP2()
916 if (I->modifiesRegister(AMDGPU::VCC, TRI)) in pseudoOpConvertToVOP2()
922 NewMI.add(*TII->getNamedOperand(MI, AMDGPU::OpName::vdst)); in pseudoOpConvertToVOP2()
923 NewMI.add(*TII->getNamedOperand(MI, AMDGPU::OpName::src0)); in pseudoOpConvertToVOP2()
924 NewMI.add(*TII->getNamedOperand(MI, AMDGPU::OpName::src1)); in pseudoOpConvertToVOP2()
928 NewInst.add(*TII->getNamedOperand(MISucc, AMDGPU::OpName::vdst)); in pseudoOpConvertToVOP2()
929 NewInst.add(*TII->getNamedOperand(MISucc, AMDGPU::OpName::src0)); in pseudoOpConvertToVOP2()
930 NewInst.add(*TII->getNamedOperand(MISucc, AMDGPU::OpName::src1)); in pseudoOpConvertToVOP2()
942 if (AMDGPU::getSDWAOp(Opc) == -1) in isConvertibleToSDWA()
943 Opc = AMDGPU::getVOPe32(Opc); in isConvertibleToSDWA()
945 if (AMDGPU::getSDWAOp(Opc) == -1) in isConvertibleToSDWA()
948 if (!ST.hasSDWAOmod() && TII->hasModifiersSet(MI, AMDGPU::OpName::omod)) in isConvertibleToSDWA()
953 const MachineOperand *SDst = TII->getNamedOperand(MI, AMDGPU::OpName::sdst); in isConvertibleToSDWA()
954 if (SDst && SDst->getReg() != AMDGPU::VCC) in isConvertibleToSDWA()
959 (TII->hasModifiersSet(MI, AMDGPU::OpName::clamp) || in isConvertibleToSDWA()
960 TII->hasModifiersSet(MI, AMDGPU::OpName::omod))) in isConvertibleToSDWA()
963 } else if (TII->getNamedOperand(MI, AMDGPU::OpName::sdst) || in isConvertibleToSDWA()
964 !TII->getNamedOperand(MI, AMDGPU::OpName::vdst)) { in isConvertibleToSDWA()
968 if (!ST.hasSDWAMac() && (Opc == AMDGPU::V_MAC_F16_e32 || in isConvertibleToSDWA()
969 Opc == AMDGPU::V_MAC_F32_e32)) in isConvertibleToSDWA()
973 if (Opc == AMDGPU::V_CNDMASK_B32_e32) in isConvertibleToSDWA()
990 SDWAOpcode = AMDGPU::getSDWAOp(Opcode); in convertToSDWA()
992 SDWAOpcode = AMDGPU::getSDWAOp(AMDGPU::getVOPe32(Opcode)); in convertToSDWA()
1003 MachineOperand *Dst = TII->getNamedOperand(MI, AMDGPU::OpName::vdst); in convertToSDWA()
1005 assert(AMDGPU::getNamedOperandIdx(SDWAOpcode, AMDGPU::OpName::vdst) != -1); in convertToSDWA()
1007 } else if ((Dst = TII->getNamedOperand(MI, AMDGPU::OpName::sdst))) { in convertToSDWA()
1009 AMDGPU::getNamedOperandIdx(SDWAOpcode, AMDGPU::OpName::sdst) != -1); in convertToSDWA()
1012 assert(AMDGPU::getNamedOperandIdx(SDWAOpcode, AMDGPU::OpName::sdst) != -1); in convertToSDWA()
1013 SDWAInst.addReg(AMDGPU::VCC, RegState::Define); in convertToSDWA()
1018 MachineOperand *Src0 = TII->getNamedOperand(MI, AMDGPU::OpName::src0); in convertToSDWA()
1021 AMDGPU::getNamedOperandIdx(SDWAOpcode, AMDGPU::OpName::src0) != -1 && in convertToSDWA()
1022 AMDGPU::getNamedOperandIdx(SDWAOpcode, AMDGPU::OpName::src0_modifiers) != -1); in convertToSDWA()
1023 if (auto *Mod = TII->getNamedOperand(MI, AMDGPU::OpName::src0_modifiers)) in convertToSDWA()
1030 MachineOperand *Src1 = TII->getNamedOperand(MI, AMDGPU::OpName::src1); in convertToSDWA()
1033 AMDGPU::getNamedOperandIdx(SDWAOpcode, AMDGPU::OpName::src1) != -1 && in convertToSDWA()
1034 AMDGPU::getNamedOperandIdx(SDWAOpcode, AMDGPU::OpName::src1_modifiers) != -1); in convertToSDWA()
1035 if (auto *Mod = TII->getNamedOperand(MI, AMDGPU::OpName::src1_modifiers)) in convertToSDWA()
1042 if (SDWAOpcode == AMDGPU::V_MAC_F16_sdwa || in convertToSDWA()
1043 SDWAOpcode == AMDGPU::V_MAC_F32_sdwa) { in convertToSDWA()
1045 MachineOperand *Src2 = TII->getNamedOperand(MI, AMDGPU::OpName::src2); in convertToSDWA()
1051 assert(AMDGPU::getNamedOperandIdx(SDWAOpcode, AMDGPU::OpName::clamp) != -1); in convertToSDWA()
1052 MachineOperand *Clamp = TII->getNamedOperand(MI, AMDGPU::OpName::clamp); in convertToSDWA()
1060 if (AMDGPU::getNamedOperandIdx(SDWAOpcode, AMDGPU::OpName::omod) != -1) { in convertToSDWA()
1061 MachineOperand *OMod = TII->getNamedOperand(MI, AMDGPU::OpName::omod); in convertToSDWA()
1070 if (AMDGPU::getNamedOperandIdx(SDWAOpcode, AMDGPU::OpName::dst_sel) != -1) { in convertToSDWA()
1071 MachineOperand *DstSel = TII->getNamedOperand(MI, AMDGPU::OpName::dst_sel); in convertToSDWA()
1075 SDWAInst.addImm(AMDGPU::SDWA::SdwaSel::DWORD); in convertToSDWA()
1080 if (AMDGPU::getNamedOperandIdx(SDWAOpcode, AMDGPU::OpName::dst_unused) != -1) { in convertToSDWA()
1081 MachineOperand *DstUnused = TII->getNamedOperand(MI, AMDGPU::OpName::dst_unused); in convertToSDWA()
1085 SDWAInst.addImm(AMDGPU::SDWA::DstUnused::UNUSED_PAD); in convertToSDWA()
1090 assert(AMDGPU::getNamedOperandIdx(SDWAOpcode, AMDGPU::OpName::src0_sel) != -1); in convertToSDWA()
1091 MachineOperand *Src0Sel = TII->getNamedOperand(MI, AMDGPU::OpName::src0_sel); in convertToSDWA()
1095 SDWAInst.addImm(AMDGPU::SDWA::SdwaSel::DWORD); in convertToSDWA()
1100 assert(AMDGPU::getNamedOperandIdx(SDWAOpcode, AMDGPU::OpName::src1_sel) != -1); in convertToSDWA()
1101 MachineOperand *Src1Sel = TII->getNamedOperand(MI, AMDGPU::OpName::src1_sel); in convertToSDWA()
1105 SDWAInst.addImm(AMDGPU::SDWA::SdwaSel::DWORD); in convertToSDWA()
1110 auto DstUnused = TII->getNamedOperand(MI, AMDGPU::OpName::dst_unused); in convertToSDWA()
1112 DstUnused->getImm() == AMDGPU::SDWA::DstUnused::UNUSED_PRESERVE) { in convertToSDWA()
1118 auto PreserveDstIdx = AMDGPU::getNamedOperandIdx(SDWAOpcode, AMDGPU::OpName::vdst); in convertToSDWA()
1180 unsigned VGPR = MRI->createVirtualRegister(&AMDGPU::VGPR_32RegClass); in legalizeScalarOperands()
1182 TII->get(AMDGPU::V_MOV_B32_e32), VGPR); in legalizeScalarOperands()
1216 (PotentialMI->getOpcode() == AMDGPU::V_ADD_I32_e64 || in runOnMachineFunction()
1217 PotentialMI->getOpcode() == AMDGPU::V_SUB_I32_e64)) in runOnMachineFunction()