@@ -5246,9 +5246,9 @@ RValue CodeGenFunction::EmitBuiltinExpr(const GlobalDecl GD, unsigned BuiltinID,
5246
5246
llvm::Type *BPP = Int8PtrPtrTy;
5247
5247
5248
5248
DestAddr = Address(Builder.CreateBitCast(DestAddr.getPointer(), BPP, "cp"),
5249
- DestAddr.getAlignment());
5249
+ Int8PtrTy, DestAddr.getAlignment());
5250
5250
SrcAddr = Address(Builder.CreateBitCast(SrcAddr.getPointer(), BPP, "ap"),
5251
- SrcAddr.getAlignment());
5251
+ Int8PtrTy, SrcAddr.getAlignment());
5252
5252
5253
5253
Value *ArgPtr = Builder.CreateLoad(SrcAddr, "ap.val");
5254
5254
return RValue::get(Builder.CreateStore(ArgPtr, DestAddr));
@@ -15405,7 +15405,8 @@ Value *CodeGenFunction::EmitPPCBuiltinExpr(unsigned BuiltinID,
15405
15405
// If the user wants the entire vector, just load the entire vector.
15406
15406
if (NumBytes == 16) {
15407
15407
Value *BC = Builder.CreateBitCast(Ops[0], ResTy->getPointerTo());
15408
- Value *LD = Builder.CreateLoad(Address(BC, CharUnits::fromQuantity(1)));
15408
+ Value *LD =
15409
+ Builder.CreateLoad(Address(BC, ResTy, CharUnits::fromQuantity(1)));
15409
15410
if (!IsLE)
15410
15411
return LD;
15411
15412
@@ -15466,8 +15467,8 @@ Value *CodeGenFunction::EmitPPCBuiltinExpr(unsigned BuiltinID,
15466
15467
RevMask.push_back(15 - Idx);
15467
15468
StVec = Builder.CreateShuffleVector(Ops[2], Ops[2], RevMask);
15468
15469
}
15469
- return Builder.CreateStore(StVec,
15470
- Address(BC, CharUnits::fromQuantity(1)));
15470
+ return Builder.CreateStore(
15471
+ StVec, Address(BC, Ops[2]->getType() , CharUnits::fromQuantity(1)));
15471
15472
}
15472
15473
auto *ConvTy = Int64Ty;
15473
15474
unsigned NumElts = 0;
@@ -15501,8 +15502,8 @@ Value *CodeGenFunction::EmitPPCBuiltinExpr(unsigned BuiltinID,
15501
15502
Function *F = CGM.getIntrinsic(Intrinsic::bswap, ConvTy);
15502
15503
Elt = Builder.CreateCall(F, Elt);
15503
15504
}
15504
- return Builder.CreateStore(Elt,
15505
- Address(PtrBC, CharUnits::fromQuantity(1)));
15505
+ return Builder.CreateStore(
15506
+ Elt, Address(PtrBC, ConvTy , CharUnits::fromQuantity(1)));
15506
15507
};
15507
15508
unsigned Stored = 0;
15508
15509
unsigned RemainingBytes = NumBytes;
@@ -16296,7 +16297,8 @@ Value *EmitAMDGPUWorkGroupSize(CodeGenFunction &CGF, unsigned Index) {
16296
16297
auto *DstTy =
16297
16298
CGF.Int16Ty->getPointerTo(GEP->getType()->getPointerAddressSpace());
16298
16299
auto *Cast = CGF.Builder.CreateBitCast(GEP, DstTy);
16299
- auto *LD = CGF.Builder.CreateLoad(Address(Cast, CharUnits::fromQuantity(2)));
16300
+ auto *LD = CGF.Builder.CreateLoad(
16301
+ Address(Cast, CGF.Int16Ty, CharUnits::fromQuantity(2)));
16300
16302
llvm::MDBuilder MDHelper(CGF.getLLVMContext());
16301
16303
llvm::MDNode *RNode = MDHelper.createRange(APInt(16, 1),
16302
16304
APInt(16, CGF.getTarget().getMaxOpenCLWorkGroupSize() + 1));
@@ -16316,7 +16318,8 @@ Value *EmitAMDGPUGridSize(CodeGenFunction &CGF, unsigned Index) {
16316
16318
auto *DstTy =
16317
16319
CGF.Int32Ty->getPointerTo(GEP->getType()->getPointerAddressSpace());
16318
16320
auto *Cast = CGF.Builder.CreateBitCast(GEP, DstTy);
16319
- auto *LD = CGF.Builder.CreateLoad(Address(Cast, CharUnits::fromQuantity(4)));
16321
+ auto *LD = CGF.Builder.CreateLoad(
16322
+ Address(Cast, CGF.Int32Ty, CharUnits::fromQuantity(4)));
16320
16323
LD->setMetadata(llvm::LLVMContext::MD_invariant_load,
16321
16324
llvm::MDNode::get(CGF.getLLVMContext(), None));
16322
16325
return LD;
@@ -18616,8 +18619,8 @@ Value *CodeGenFunction::EmitHexagonBuiltinExpr(unsigned BuiltinID,
18616
18619
auto MakeCircOp = [this, E](unsigned IntID, bool IsLoad) {
18617
18620
// The base pointer is passed by address, so it needs to be loaded.
18618
18621
Address A = EmitPointerWithAlignment(E->getArg(0));
18619
- Address BP = Address(
18620
- Builder.CreateBitCast( A.getPointer(), Int8PtrPtrTy), A.getAlignment());
18622
+ Address BP = Address(Builder.CreateBitCast(
18623
+ A.getPointer(), Int8PtrPtrTy), Int8PtrTy , A.getAlignment());
18621
18624
llvm::Value *Base = Builder.CreateLoad(BP);
18622
18625
// The treatment of both loads and stores is the same: the arguments for
18623
18626
// the builtin are the same as the arguments for the intrinsic.
@@ -18661,7 +18664,7 @@ Value *CodeGenFunction::EmitHexagonBuiltinExpr(unsigned BuiltinID,
18661
18664
// per call.
18662
18665
Address DestAddr = EmitPointerWithAlignment(E->getArg(1));
18663
18666
DestAddr = Address(Builder.CreateBitCast(DestAddr.getPointer(), Int8PtrTy),
18664
- DestAddr.getAlignment());
18667
+ Int8Ty, DestAddr.getAlignment());
18665
18668
llvm::Value *DestAddress = DestAddr.getPointer();
18666
18669
18667
18670
// Operands are Base, Dest, Modifier.
0 commit comments