Lines Matching defs:MIRBuilder
338 MachineIRBuilder &MIRBuilder = Helper.MIRBuilder;
339 MachineRegisterInfo &MRI = *MIRBuilder.getMRI();
368 MachineFunction &MF = MIRBuilder.getMF();
376 Val = MIRBuilder.buildAnyExt(s32, Val).getReg(0);
378 Val = MIRBuilder.buildAnyExt(s64, Val).getReg(0);
380 auto C_P2HalfMemSize = MIRBuilder.buildConstant(s32, P2HalfMemSize);
381 auto Addr = MIRBuilder.buildPtrAdd(PtrTy, BaseAddr, C_P2HalfMemSize);
384 MIRBuilder.buildStore(Val, BaseAddr, *P2HalfMemOp);
385 auto C_P2Half_InBits = MIRBuilder.buildConstant(s32, P2HalfMemSize * 8);
386 auto Shift = MIRBuilder.buildLShr(s32, Val, C_P2Half_InBits);
387 MIRBuilder.buildStore(Shift, Addr, *RemMemOp);
389 auto Unmerge = MIRBuilder.buildUnmerge(s32, Val);
390 MIRBuilder.buildStore(Unmerge.getReg(0), BaseAddr, *P2HalfMemOp);
391 MIRBuilder.buildStore(Unmerge.getReg(1), Addr, *RemMemOp);
402 MIRBuilder.buildLoad(Val, BaseAddr, *Load4MMO);
404 auto Load = MIRBuilder.buildLoad(s32, BaseAddr, *Load4MMO);
405 MIRBuilder.buildTrunc(Val, Load.getReg(0));
409 auto C_P2HalfMemSize = MIRBuilder.buildConstant(s32, P2HalfMemSize);
410 auto Addr = MIRBuilder.buildPtrAdd(PtrTy, BaseAddr, C_P2HalfMemSize);
412 auto Load_P2Half = MIRBuilder.buildLoad(s32, BaseAddr, *P2HalfMemOp);
413 auto Load_Rem = MIRBuilder.buildLoad(s32, Addr, *RemMemOp);
416 MIRBuilder.buildMergeLikeInstr(Val, {Load_P2Half, Load_Rem});
419 MIRBuilder.buildMergeLikeInstr(s64, {Load_P2Half, Load_Rem});
420 MIRBuilder.buildTrunc(Val, Merge);
445 auto C_HiMask = MIRBuilder.buildConstant(s32, UINT32_C(0x43300000));
447 MIRBuilder.buildMergeLikeInstr(s64, {Src, C_HiMask.getReg(0)});
449 MachineInstrBuilder TwoP52FP = MIRBuilder.buildFConstant(
453 MIRBuilder.buildFSub(Dst, Bitcast, TwoP52FP);
455 MachineInstrBuilder ResF64 = MIRBuilder.buildFSub(s64, Bitcast, TwoP52FP);
456 MIRBuilder.buildFPTrunc(Dst, ResF64);
470 MachineIRBuilder &MIRBuilder,
473 if (!MIRBuilder.buildInstr(Opcode)
477 .constrainAllUses(MIRBuilder.getTII(), *ST.getRegisterInfo(),
485 MachineIRBuilder &MIRBuilder,
488 MIRBuilder.buildInstr(Opcode)
497 MachineIRBuilder &MIRBuilder,
500 MIRBuilder.buildInstr(Opcode)
509 MachineIRBuilder &MIRBuilder = Helper.MIRBuilder;
517 MIRBuilder.buildLoad(PtrTy, MI.getOperand(2),
520 MIRBuilder.buildStore(Tmp, MI.getOperand(1),
530 return MSA3OpIntrinsicToGeneric(MI, TargetOpcode::G_ADD, MIRBuilder, ST);
532 return SelectMSA3OpIntrinsic(MI, Mips::ADDVI_B, MIRBuilder, ST);
534 return SelectMSA3OpIntrinsic(MI, Mips::ADDVI_H, MIRBuilder, ST);
536 return SelectMSA3OpIntrinsic(MI, Mips::ADDVI_W, MIRBuilder, ST);
538 return SelectMSA3OpIntrinsic(MI, Mips::ADDVI_D, MIRBuilder, ST);
543 return MSA3OpIntrinsicToGeneric(MI, TargetOpcode::G_SUB, MIRBuilder, ST);
545 return SelectMSA3OpIntrinsic(MI, Mips::SUBVI_B, MIRBuilder, ST);
547 return SelectMSA3OpIntrinsic(MI, Mips::SUBVI_H, MIRBuilder, ST);
549 return SelectMSA3OpIntrinsic(MI, Mips::SUBVI_W, MIRBuilder, ST);
551 return SelectMSA3OpIntrinsic(MI, Mips::SUBVI_D, MIRBuilder, ST);
556 return MSA3OpIntrinsicToGeneric(MI, TargetOpcode::G_MUL, MIRBuilder, ST);
561 return MSA3OpIntrinsicToGeneric(MI, TargetOpcode::G_SDIV, MIRBuilder, ST);
566 return MSA3OpIntrinsicToGeneric(MI, TargetOpcode::G_SREM, MIRBuilder, ST);
571 return MSA3OpIntrinsicToGeneric(MI, TargetOpcode::G_UDIV, MIRBuilder, ST);
576 return MSA3OpIntrinsicToGeneric(MI, TargetOpcode::G_UREM, MIRBuilder, ST);
579 return MSA3OpIntrinsicToGeneric(MI, TargetOpcode::G_FADD, MIRBuilder, ST);
582 return MSA3OpIntrinsicToGeneric(MI, TargetOpcode::G_FSUB, MIRBuilder, ST);
585 return MSA3OpIntrinsicToGeneric(MI, TargetOpcode::G_FMUL, MIRBuilder, ST);
588 return MSA3OpIntrinsicToGeneric(MI, TargetOpcode::G_FDIV, MIRBuilder, ST);
590 return SelectMSA3OpIntrinsic(MI, Mips::FMAX_A_W, MIRBuilder, ST);
592 return SelectMSA3OpIntrinsic(MI, Mips::FMAX_A_D, MIRBuilder, ST);
594 return MSA2OpIntrinsicToGeneric(MI, TargetOpcode::G_FSQRT, MIRBuilder, ST);
596 return MSA2OpIntrinsicToGeneric(MI, TargetOpcode::G_FSQRT, MIRBuilder, ST);