Lines Matching defs:DstOps
119 void CSEMIRBuilder::profileEverything(unsigned Opc, ArrayRef<DstOp> DstOps,
125 // Then add the DstOps.
126 profileDstOps(DstOps, B);
143 bool CSEMIRBuilder::checkCopyToDefsPossible(ArrayRef<DstOp> DstOps) {
144 if (DstOps.size() == 1)
147 return llvm::all_of(DstOps, [](const DstOp &Op) {
154 CSEMIRBuilder::generateCopiesIfRequired(ArrayRef<DstOp> DstOps,
156 assert(checkCopyToDefsPossible(DstOps) &&
158 if (DstOps.size() == 1) {
159 const DstOp &Op = DstOps[0];
182 ArrayRef<DstOp> DstOps,
190 assert(DstOps.size() == 1 && "Invalid dsts");
197 return buildBuildVectorConstant(DstOps[0], *Cst);
198 return buildConstant(DstOps[0], Cst->front());
222 assert(DstOps.size() == 1 && "Invalid dsts");
234 return buildBuildVectorConstant(DstOps[0], VecCst);
240 return buildConstant(DstOps[0], *Cst);
257 assert(DstOps.size() == 1 && "Invalid dsts");
260 return buildFConstant(DstOps[0], *Cst);
264 assert(DstOps.size() == 1 && "Invalid dst ops");
266 const DstOp &Dst = DstOps[0];
278 assert(DstOps.size() == 1 && "Invalid dsts");
280 Opc, DstOps[0].getLLTTy(*getMRI()), SrcOps[0].getReg(), *getMRI()))
281 return buildFConstant(DstOps[0], *Cst);
287 assert(DstOps.size() == 1 && "Expected one dest");
297 return buildConstant(DstOps[0], (*MaybeCsts)[0]);
300 LLT VecTy = DstOps[0].getLLTTy(*getMRI());
304 return buildBuildVector(DstOps[0], ConstantRegs);
307 bool CanCopy = checkCopyToDefsPossible(DstOps);
309 return MachineIRBuilder::buildInstr(Opc, DstOps, SrcOps, Flag);
313 auto MIB = MachineIRBuilder::buildInstr(Opc, DstOps, SrcOps, Flag);
322 profileEverything(Opc, DstOps, SrcOps, Flag, ProfBuilder);
326 return generateCopiesIfRequired(DstOps, MIB);
330 MachineIRBuilder::buildInstr(Opc, DstOps, SrcOps, Flag);