Lines Matching refs:Builder
11838 Instruction* ARMTargetLowering::makeDMB(IRBuilder<> &Builder,
11840 Module *M = Builder.GetInsertBlock()->getParent()->getParent();
11849 Value* args[6] = {Builder.getInt32(15), Builder.getInt32(0),
11850 Builder.getInt32(0), Builder.getInt32(7),
11851 Builder.getInt32(10), Builder.getInt32(5)};
11852 return Builder.CreateCall(MCR, args);
11862 Constant *CDomain = Builder.getInt32(Domain);
11863 return Builder.CreateCall(DMB, CDomain);
11868 Instruction* ARMTargetLowering::emitLeadingFence(IRBuilder<> &Builder,
11888 return makeDMB(Builder, ARM_MB::ISHST);
11891 return makeDMB(Builder, ARM_MB::ISH);
11896 Instruction* ARMTargetLowering::emitTrailingFence(IRBuilder<> &Builder,
11912 return makeDMB(Builder, ARM_MB::ISH);
11997 Value *ARMTargetLowering::emitLoadLinked(IRBuilder<> &Builder, Value *Addr,
11999 Module *M = Builder.GetInsertBlock()->getParent()->getParent();
12011 Addr = Builder.CreateBitCast(Addr, Type::getInt8PtrTy(M->getContext()));
12012 Value *LoHi = Builder.CreateCall(Ldrex, Addr, "lohi");
12014 Value *Lo = Builder.CreateExtractValue(LoHi, 0, "lo");
12015 Value *Hi = Builder.CreateExtractValue(LoHi, 1, "hi");
12018 Lo = Builder.CreateZExt(Lo, ValTy, "lo64");
12019 Hi = Builder.CreateZExt(Hi, ValTy, "hi64");
12020 return Builder.CreateOr(
12021 Lo, Builder.CreateShl(Hi, ConstantInt::get(ValTy, 32)), "val64");
12028 return Builder.CreateTruncOrBitCast(
12029 Builder.CreateCall(Ldrex, Addr),
12034 IRBuilder<> &Builder) const {
12037 Module *M = Builder.GetInsertBlock()->getParent()->getParent();
12038 Builder.CreateCall(llvm::Intrinsic::getDeclaration(M, Intrinsic::arm_clrex));
12041 Value *ARMTargetLowering::emitStoreConditional(IRBuilder<> &Builder, Value *Val,
12044 Module *M = Builder.GetInsertBlock()->getParent()->getParent();
12056 Value *Lo = Builder.CreateTrunc(Val, Int32Ty, "lo");
12057 Value *Hi = Builder.CreateTrunc(Builder.CreateLShr(Val, 32), Int32Ty, "hi");
12060 Addr = Builder.CreateBitCast(Addr, Type::getInt8PtrTy(M->getContext()));
12061 return Builder.CreateCall(Strex, {Lo, Hi, Addr});
12068 return Builder.CreateCall(
12069 Strex, {Builder.CreateZExtOrBitCast(
12116 IRBuilder<> Builder(LI);
12119 Type *Int8Ptr = Builder.getInt8PtrTy(LI->getPointerAddressSpace());
12120 Ops.push_back(Builder.CreateBitCast(LI->getPointerOperand(), Int8Ptr));
12121 Ops.push_back(Builder.getInt32(LI->getAlignment()));
12126 CallInst *VldN = Builder.CreateCall(VldnFunc, Ops, "vldN");
12134 Value *SubVec = Builder.CreateExtractValue(VldN, Index);
12138 SubVec = Builder.CreateIntToPtr(SubVec, SV->getType());
12149 static Constant *getSequentialMask(IRBuilder<> &Builder, unsigned Start,
12153 Mask.push_back(Builder.getInt32(Start + i));
12199 IRBuilder<> Builder(SI);
12209 Op0 = Builder.CreatePtrToInt(Op0, IntVecTy);
12210 Op1 = Builder.CreatePtrToInt(Op1, IntVecTy);
12220 Type *Int8Ptr = Builder.getInt8PtrTy(SI->getPointerAddressSpace());
12221 Ops.push_back(Builder.CreateBitCast(SI->getPointerOperand(), Int8Ptr));
12229 Ops.push_back(Builder.CreateShuffleVector(
12230 Op0, Op1, getSequentialMask(Builder, NumSubElts * i, NumSubElts)));
12232 Ops.push_back(Builder.getInt32(SI->getAlignment()));
12233 Builder.CreateCall(VstNFunc, Ops);