Lines Matching refs:Root
3580 static bool getMaddPatterns(MachineInstr &Root, in getMaddPatterns() argument
3582 unsigned Opc = Root.getOpcode(); in getMaddPatterns()
3583 MachineBasicBlock &MBB = *Root.getParent(); in getMaddPatterns()
3589 int Cmp_NZCV = Root.findRegisterDefOperandIdx(AArch64::NZCV, true); in getMaddPatterns()
3593 unsigned NewOpc = convertToNonFlagSettingOpc(Root); in getMaddPatterns()
3605 assert(Root.getOperand(1).isReg() && Root.getOperand(2).isReg() && in getMaddPatterns()
3607 if (canCombineWithMUL(MBB, Root.getOperand(1), AArch64::MADDWrrr, in getMaddPatterns()
3612 if (canCombineWithMUL(MBB, Root.getOperand(2), AArch64::MADDWrrr, in getMaddPatterns()
3619 if (canCombineWithMUL(MBB, Root.getOperand(1), AArch64::MADDXrrr, in getMaddPatterns()
3624 if (canCombineWithMUL(MBB, Root.getOperand(2), AArch64::MADDXrrr, in getMaddPatterns()
3631 if (canCombineWithMUL(MBB, Root.getOperand(1), AArch64::MADDWrrr, in getMaddPatterns()
3636 if (canCombineWithMUL(MBB, Root.getOperand(2), AArch64::MADDWrrr, in getMaddPatterns()
3643 if (canCombineWithMUL(MBB, Root.getOperand(1), AArch64::MADDXrrr, in getMaddPatterns()
3648 if (canCombineWithMUL(MBB, Root.getOperand(2), AArch64::MADDXrrr, in getMaddPatterns()
3655 if (canCombineWithMUL(MBB, Root.getOperand(1), AArch64::MADDWrrr, in getMaddPatterns()
3662 if (canCombineWithMUL(MBB, Root.getOperand(1), AArch64::MADDXrrr, in getMaddPatterns()
3669 if (canCombineWithMUL(MBB, Root.getOperand(1), AArch64::MADDWrrr, in getMaddPatterns()
3676 if (canCombineWithMUL(MBB, Root.getOperand(1), AArch64::MADDXrrr, in getMaddPatterns()
3688 static bool getFMAPatterns(MachineInstr &Root, in getFMAPatterns() argument
3691 if (!isCombineInstrCandidateFP(Root)) in getFMAPatterns()
3694 MachineBasicBlock &MBB = *Root.getParent(); in getFMAPatterns()
3697 switch (Root.getOpcode()) { in getFMAPatterns()
3702 assert(Root.getOperand(1).isReg() && Root.getOperand(2).isReg() && in getFMAPatterns()
3704 if (canCombineWithFMUL(MBB, Root.getOperand(1), AArch64::FMULSrr)) { in getFMAPatterns()
3707 } else if (canCombineWithFMUL(MBB, Root.getOperand(1), in getFMAPatterns()
3712 if (canCombineWithFMUL(MBB, Root.getOperand(2), AArch64::FMULSrr)) { in getFMAPatterns()
3715 } else if (canCombineWithFMUL(MBB, Root.getOperand(2), in getFMAPatterns()
3722 if (canCombineWithFMUL(MBB, Root.getOperand(1), AArch64::FMULDrr)) { in getFMAPatterns()
3725 } else if (canCombineWithFMUL(MBB, Root.getOperand(1), in getFMAPatterns()
3730 if (canCombineWithFMUL(MBB, Root.getOperand(2), AArch64::FMULDrr)) { in getFMAPatterns()
3733 } else if (canCombineWithFMUL(MBB, Root.getOperand(2), in getFMAPatterns()
3740 if (canCombineWithFMUL(MBB, Root.getOperand(1), in getFMAPatterns()
3744 } else if (canCombineWithFMUL(MBB, Root.getOperand(1), in getFMAPatterns()
3749 if (canCombineWithFMUL(MBB, Root.getOperand(2), in getFMAPatterns()
3753 } else if (canCombineWithFMUL(MBB, Root.getOperand(2), in getFMAPatterns()
3760 if (canCombineWithFMUL(MBB, Root.getOperand(1), in getFMAPatterns()
3764 } else if (canCombineWithFMUL(MBB, Root.getOperand(1), in getFMAPatterns()
3769 if (canCombineWithFMUL(MBB, Root.getOperand(2), in getFMAPatterns()
3773 } else if (canCombineWithFMUL(MBB, Root.getOperand(2), in getFMAPatterns()
3780 if (canCombineWithFMUL(MBB, Root.getOperand(1), in getFMAPatterns()
3784 } else if (canCombineWithFMUL(MBB, Root.getOperand(1), in getFMAPatterns()
3789 if (canCombineWithFMUL(MBB, Root.getOperand(2), in getFMAPatterns()
3793 } else if (canCombineWithFMUL(MBB, Root.getOperand(2), in getFMAPatterns()
3801 if (canCombineWithFMUL(MBB, Root.getOperand(1), AArch64::FMULSrr)) { in getFMAPatterns()
3805 if (canCombineWithFMUL(MBB, Root.getOperand(2), AArch64::FMULSrr)) { in getFMAPatterns()
3808 } else if (canCombineWithFMUL(MBB, Root.getOperand(2), in getFMAPatterns()
3813 if (canCombineWithFMUL(MBB, Root.getOperand(1), AArch64::FNMULSrr)) { in getFMAPatterns()
3819 if (canCombineWithFMUL(MBB, Root.getOperand(1), AArch64::FMULDrr)) { in getFMAPatterns()
3823 if (canCombineWithFMUL(MBB, Root.getOperand(2), AArch64::FMULDrr)) { in getFMAPatterns()
3826 } else if (canCombineWithFMUL(MBB, Root.getOperand(2), in getFMAPatterns()
3831 if (canCombineWithFMUL(MBB, Root.getOperand(1), AArch64::FNMULDrr)) { in getFMAPatterns()
3837 if (canCombineWithFMUL(MBB, Root.getOperand(2), in getFMAPatterns()
3841 } else if (canCombineWithFMUL(MBB, Root.getOperand(2), in getFMAPatterns()
3846 if (canCombineWithFMUL(MBB, Root.getOperand(1), in getFMAPatterns()
3850 } else if (canCombineWithFMUL(MBB, Root.getOperand(1), in getFMAPatterns()
3857 if (canCombineWithFMUL(MBB, Root.getOperand(2), in getFMAPatterns()
3861 } else if (canCombineWithFMUL(MBB, Root.getOperand(2), in getFMAPatterns()
3866 if (canCombineWithFMUL(MBB, Root.getOperand(1), in getFMAPatterns()
3870 } else if (canCombineWithFMUL(MBB, Root.getOperand(1), in getFMAPatterns()
3877 if (canCombineWithFMUL(MBB, Root.getOperand(2), in getFMAPatterns()
3881 } else if (canCombineWithFMUL(MBB, Root.getOperand(2), in getFMAPatterns()
3886 if (canCombineWithFMUL(MBB, Root.getOperand(1), in getFMAPatterns()
3890 } else if (canCombineWithFMUL(MBB, Root.getOperand(1), in getFMAPatterns()
3952 MachineInstr &Root, in getMachineCombinerPatterns() argument
3955 if (getMaddPatterns(Root, Patterns)) in getMachineCombinerPatterns()
3958 if (getFMAPatterns(Root, Patterns)) in getMachineCombinerPatterns()
3961 return TargetInstrInfo::getMachineCombinerPatterns(Root, Patterns); in getMachineCombinerPatterns()
3986 const TargetInstrInfo *TII, MachineInstr &Root, in genFusedMultiply() argument
3994 MachineInstr *MUL = MRI.getUniqueVRegDef(Root.getOperand(IdxMulOpd).getReg()); in genFusedMultiply()
3995 unsigned ResultReg = Root.getOperand(0).getReg(); in genFusedMultiply()
4008 SrcReg2 = Root.getOperand(IdxOtherOpd).getReg(); in genFusedMultiply()
4009 Src2IsKill = Root.getOperand(IdxOtherOpd).isKill(); in genFusedMultiply()
4023 MIB = BuildMI(MF, Root.getDebugLoc(), TII->get(MaddOpc), ResultReg) in genFusedMultiply()
4028 MIB = BuildMI(MF, Root.getDebugLoc(), TII->get(MaddOpc), ResultReg) in genFusedMultiply()
4034 MIB = BuildMI(MF, Root.getDebugLoc(), TII->get(MaddOpc), ResultReg) in genFusedMultiply()
4065 const TargetInstrInfo *TII, MachineInstr &Root, in genMaddR() argument
4071 MachineInstr *MUL = MRI.getUniqueVRegDef(Root.getOperand(IdxMulOpd).getReg()); in genMaddR()
4072 unsigned ResultReg = Root.getOperand(0).getReg(); in genMaddR()
4088 BuildMI(MF, Root.getDebugLoc(), TII->get(MaddOpc), ResultReg) in genMaddR()
4101 MachineInstr &Root, MachineCombinerPattern Pattern, in genAlternativeCodeSequence() argument
4105 MachineBasicBlock &MBB = *Root.getParent(); in genAlternativeCodeSequence()
4116 TargetInstrInfo::genAlternativeCodeSequence(Root, Pattern, InsInstrs, in genAlternativeCodeSequence()
4132 MUL = genFusedMultiply(MF, MRI, TII, Root, InsInstrs, 1, Opc, RC); in genAlternativeCodeSequence()
4147 MUL = genFusedMultiply(MF, MRI, TII, Root, InsInstrs, 2, Opc, RC); in genAlternativeCodeSequence()
4174 uint64_t Imm = Root.getOperand(2).getImm(); in genAlternativeCodeSequence()
4176 if (Root.getOperand(3).isImm()) { in genAlternativeCodeSequence()
4177 unsigned Val = Root.getOperand(3).getImm(); in genAlternativeCodeSequence()
4184 BuildMI(MF, Root.getDebugLoc(), TII->get(OrrOpc), NewVR) in genAlternativeCodeSequence()
4189 MUL = genMaddR(MF, MRI, TII, Root, InsInstrs, 1, Opc, NewVR, RC); in genAlternativeCodeSequence()
4218 BuildMI(MF, Root.getDebugLoc(), TII->get(SubOpc), NewVR) in genAlternativeCodeSequence()
4220 .add(Root.getOperand(2)); in genAlternativeCodeSequence()
4223 MUL = genMaddR(MF, MRI, TII, Root, InsInstrs, 1, Opc, NewVR, RC); in genAlternativeCodeSequence()
4239 MUL = genFusedMultiply(MF, MRI, TII, Root, InsInstrs, 2, Opc, RC); in genAlternativeCodeSequence()
4266 uint64_t Imm = Root.getOperand(2).getImm(); in genAlternativeCodeSequence()
4267 if (Root.getOperand(3).isImm()) { in genAlternativeCodeSequence()
4268 unsigned Val = Root.getOperand(3).getImm(); in genAlternativeCodeSequence()
4275 BuildMI(MF, Root.getDebugLoc(), TII->get(OrrOpc), NewVR) in genAlternativeCodeSequence()
4280 MUL = genMaddR(MF, MRI, TII, Root, InsInstrs, 1, Opc, NewVR, RC); in genAlternativeCodeSequence()
4298 MUL = genFusedMultiply(MF, MRI, TII, Root, InsInstrs, 1, Opc, RC); in genAlternativeCodeSequence()
4313 MUL = genFusedMultiply(MF, MRI, TII, Root, InsInstrs, 2, Opc, RC); in genAlternativeCodeSequence()
4319 MUL = genFusedMultiply(MF, MRI, TII, Root, InsInstrs, 1, Opc, RC, in genAlternativeCodeSequence()
4325 MUL = genFusedMultiply(MF, MRI, TII, Root, InsInstrs, 2, Opc, RC, in genAlternativeCodeSequence()
4332 MUL = genFusedMultiply(MF, MRI, TII, Root, InsInstrs, 1, Opc, RC, in genAlternativeCodeSequence()
4338 MUL = genFusedMultiply(MF, MRI, TII, Root, InsInstrs, 2, Opc, RC, in genAlternativeCodeSequence()
4347 MUL = genFusedMultiply(MF, MRI, TII, Root, InsInstrs, 1, Opc, RC, in genAlternativeCodeSequence()
4351 MUL = genFusedMultiply(MF, MRI, TII, Root, InsInstrs, 1, Opc, RC, in genAlternativeCodeSequence()
4360 MUL = genFusedMultiply(MF, MRI, TII, Root, InsInstrs, 2, Opc, RC, in genAlternativeCodeSequence()
4364 MUL = genFusedMultiply(MF, MRI, TII, Root, InsInstrs, 2, Opc, RC, in genAlternativeCodeSequence()
4374 MUL = genFusedMultiply(MF, MRI, TII, Root, InsInstrs, 1, Opc, RC, in genAlternativeCodeSequence()
4378 MUL = genFusedMultiply(MF, MRI, TII, Root, InsInstrs, 1, Opc, RC, in genAlternativeCodeSequence()
4387 MUL = genFusedMultiply(MF, MRI, TII, Root, InsInstrs, 2, Opc, RC, in genAlternativeCodeSequence()
4391 MUL = genFusedMultiply(MF, MRI, TII, Root, InsInstrs, 2, Opc, RC, in genAlternativeCodeSequence()
4401 MUL = genFusedMultiply(MF, MRI, TII, Root, InsInstrs, 1, Opc, RC, in genAlternativeCodeSequence()
4405 MUL = genFusedMultiply(MF, MRI, TII, Root, InsInstrs, 1, Opc, RC, in genAlternativeCodeSequence()
4415 MUL = genFusedMultiply(MF, MRI, TII, Root, InsInstrs, 2, Opc, RC, in genAlternativeCodeSequence()
4419 MUL = genFusedMultiply(MF, MRI, TII, Root, InsInstrs, 2, Opc, RC, in genAlternativeCodeSequence()
4437 MUL = genFusedMultiply(MF, MRI, TII, Root, InsInstrs, 1, Opc, RC); in genAlternativeCodeSequence()
4454 MUL = genFusedMultiply(MF, MRI, TII, Root, InsInstrs, 1, Opc, RC); in genAlternativeCodeSequence()
4471 MUL = genFusedMultiply(MF, MRI, TII, Root, InsInstrs, 2, Opc, RC); in genAlternativeCodeSequence()
4478 MUL = genFusedMultiply(MF, MRI, TII, Root, InsInstrs, 2, Opc, RC, in genAlternativeCodeSequence()
4485 MUL = genFusedMultiply(MF, MRI, TII, Root, InsInstrs, 2, Opc, RC, in genAlternativeCodeSequence()
4494 MUL = genFusedMultiply(MF, MRI, TII, Root, InsInstrs, 2, Opc, RC, in genAlternativeCodeSequence()
4498 MUL = genFusedMultiply(MF, MRI, TII, Root, InsInstrs, 2, Opc, RC, in genAlternativeCodeSequence()
4508 MUL = genFusedMultiply(MF, MRI, TII, Root, InsInstrs, 2, Opc, RC, in genAlternativeCodeSequence()
4512 MUL = genFusedMultiply(MF, MRI, TII, Root, InsInstrs, 2, Opc, RC, in genAlternativeCodeSequence()
4522 MUL = genFusedMultiply(MF, MRI, TII, Root, InsInstrs, 2, Opc, RC, in genAlternativeCodeSequence()
4526 MUL = genFusedMultiply(MF, MRI, TII, Root, InsInstrs, 2, Opc, RC, in genAlternativeCodeSequence()
4535 BuildMI(MF, Root.getDebugLoc(), TII->get(AArch64::FNEGv2f32), NewVR) in genAlternativeCodeSequence()
4536 .add(Root.getOperand(2)); in genAlternativeCodeSequence()
4541 MUL = genFusedMultiply(MF, MRI, TII, Root, InsInstrs, 1, Opc, RC, in genAlternativeCodeSequence()
4545 MUL = genFusedMultiply(MF, MRI, TII, Root, InsInstrs, 1, Opc, RC, in genAlternativeCodeSequence()
4555 BuildMI(MF, Root.getDebugLoc(), TII->get(AArch64::FNEGv4f32), NewVR) in genAlternativeCodeSequence()
4556 .add(Root.getOperand(2)); in genAlternativeCodeSequence()
4561 MUL = genFusedMultiply(MF, MRI, TII, Root, InsInstrs, 1, Opc, RC, in genAlternativeCodeSequence()
4565 MUL = genFusedMultiply(MF, MRI, TII, Root, InsInstrs, 1, Opc, RC, in genAlternativeCodeSequence()
4575 BuildMI(MF, Root.getDebugLoc(), TII->get(AArch64::FNEGv2f64), NewVR) in genAlternativeCodeSequence()
4576 .add(Root.getOperand(2)); in genAlternativeCodeSequence()
4581 MUL = genFusedMultiply(MF, MRI, TII, Root, InsInstrs, 1, Opc, RC, in genAlternativeCodeSequence()
4585 MUL = genFusedMultiply(MF, MRI, TII, Root, InsInstrs, 1, Opc, RC, in genAlternativeCodeSequence()
4593 DelInstrs.push_back(&Root); in genAlternativeCodeSequence()