Lines Matching refs:Compare
74 bool convertToBRCT(MachineInstr &MI, MachineInstr &Compare,
77 bool adjustCCMasksForInstr(MachineInstr &MI, MachineInstr &Compare,
79 bool optimizeCompareZero(MachineInstr &Compare,
81 bool fuseCompareOperations(MachineInstr &Compare,
161 static unsigned getCompareSourceReg(MachineInstr &Compare) { in getCompareSourceReg() argument
163 if (Compare.isCompare()) in getCompareSourceReg()
164 reg = Compare.getOperand(0).getReg(); in getCompareSourceReg()
165 else if (isLoadAndTestAsCmp(Compare)) in getCompareSourceReg()
166 reg = Compare.getOperand(1).getReg(); in getCompareSourceReg()
176 MachineInstr &MI, MachineInstr &Compare, in convertToBRCT() argument
202 unsigned SrcReg = getCompareSourceReg(Compare); in convertToBRCT()
203 MachineBasicBlock::iterator MBBI = Compare, MBBE = Branch; in convertToBRCT()
241 MachineInstr &MI, MachineInstr &Compare, in adjustCCMasksForInstr() argument
251 unsigned CompareFlags = Compare.getDesc().TSFlags; in adjustCCMasksForInstr()
305 MachineBasicBlock::iterator MBBI = MI, MBBE = Compare; in adjustCCMasksForInstr()
313 static bool isCompareZero(MachineInstr &Compare) { in isCompareZero() argument
314 switch (Compare.getOpcode()) { in isCompareZero()
322 if (isLoadAndTestAsCmp(Compare)) in isCompareZero()
325 return Compare.getNumExplicitOperands() == 2 && in isCompareZero()
326 Compare.getOperand(1).isImm() && Compare.getOperand(1).getImm() == 0; in isCompareZero()
335 MachineInstr &Compare, SmallVectorImpl<MachineInstr *> &CCUsers) { in optimizeCompareZero() argument
336 if (!isCompareZero(Compare)) in optimizeCompareZero()
340 unsigned SrcReg = getCompareSourceReg(Compare); in optimizeCompareZero()
341 MachineBasicBlock &MBB = *Compare.getParent(); in optimizeCompareZero()
342 MachineBasicBlock::iterator MBBI = Compare, MBBE = MBB.begin(); in optimizeCompareZero()
352 if (!CCRefs.Use && !SrcRefs && convertToBRCT(MI, Compare, CCUsers)) { in optimizeCompareZero()
358 (!CCRefs.Def && adjustCCMasksForInstr(MI, Compare, CCUsers))) { in optimizeCompareZero()
376 MachineInstr &Compare, SmallVectorImpl<MachineInstr *> &CCUsers) { in fuseCompareOperations() argument
401 TII->getFusedCompare(Compare.getOpcode(), Type, &Compare); in fuseCompareOperations()
406 unsigned SrcReg = Compare.getOperand(0).getReg(); in fuseCompareOperations()
408 Compare.getOperand(1).isReg() ? Compare.getOperand(1).getReg() : 0; in fuseCompareOperations()
409 MachineBasicBlock::iterator MBBI = Compare, MBBE = Branch; in fuseCompareOperations()
440 MIB.addOperand(Compare.getOperand(0)) in fuseCompareOperations()
441 .addOperand(Compare.getOperand(1)) in fuseCompareOperations()
456 MBBI = Compare; in fuseCompareOperations()