Skip to content

Commit fc08613

Browse files
committed
[CGBuiltin] Use helper methods for creating masked intrinsics (NFC)
Use the CreateMaskedLoad etc helper methods instead of manually creating the intrinsics.
1 parent 1d5bd28 commit fc08613

File tree

1 file changed

+6
-25
lines changed

1 file changed

+6
-25
lines changed

clang/lib/CodeGen/CGBuiltin.cpp

Lines changed: 6 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -4283,15 +4283,11 @@ RValue CodeGenFunction::EmitBuiltinExpr(const GlobalDecl GD, unsigned BuiltinID,
42834283

42844284
CharUnits Align = CGM.getNaturalTypeAlignment(
42854285
E->getType()->getAs<VectorType>()->getElementType(), nullptr);
4286-
llvm::Value *AlignVal =
4287-
llvm::ConstantInt::get(Int32Ty, Align.getQuantity());
42884286

42894287
llvm::Value *Result;
42904288
if (BuiltinID == Builtin::BI__builtin_masked_load) {
4291-
Function *F =
4292-
CGM.getIntrinsic(Intrinsic::masked_load, {RetTy, Ptr->getType()});
4293-
Result =
4294-
Builder.CreateCall(F, {Ptr, AlignVal, Mask, PassThru}, "masked_load");
4289+
Result = Builder.CreateMaskedLoad(RetTy, Ptr, Align.getAsAlign(), Mask,
4290+
PassThru, "masked_load");
42954291
} else {
42964292
Function *F = CGM.getIntrinsic(Intrinsic::masked_expandload, {RetTy});
42974293
Result =
@@ -4307,8 +4303,6 @@ RValue CodeGenFunction::EmitBuiltinExpr(const GlobalDecl GD, unsigned BuiltinID,
43074303
llvm::Type *RetTy = CGM.getTypes().ConvertType(E->getType());
43084304
CharUnits Align = CGM.getNaturalTypeAlignment(
43094305
E->getType()->getAs<VectorType>()->getElementType(), nullptr);
4310-
llvm::Value *AlignVal =
4311-
llvm::ConstantInt::get(Int32Ty, Align.getQuantity());
43124306

43134307
llvm::Value *PassThru = llvm::PoisonValue::get(RetTy);
43144308
if (E->getNumArgs() > 3)
@@ -4318,12 +4312,8 @@ RValue CodeGenFunction::EmitBuiltinExpr(const GlobalDecl GD, unsigned BuiltinID,
43184312
E->getType()->getAs<VectorType>()->getElementType());
43194313
llvm::Value *PtrVec = Builder.CreateGEP(ElemTy, Ptr, Idx);
43204314

4321-
llvm::Value *Result;
4322-
Function *F =
4323-
CGM.getIntrinsic(Intrinsic::masked_gather, {RetTy, PtrVec->getType()});
4324-
4325-
Result = Builder.CreateCall(F, {PtrVec, AlignVal, Mask, PassThru},
4326-
"masked_gather");
4315+
llvm::Value *Result = Builder.CreateMaskedGather(
4316+
RetTy, PtrVec, Align.getAsAlign(), Mask, PassThru, "masked_gather");
43274317
return RValue::get(Result);
43284318
}
43294319
case Builtin::BI__builtin_masked_store:
@@ -4338,13 +4328,9 @@ RValue CodeGenFunction::EmitBuiltinExpr(const GlobalDecl GD, unsigned BuiltinID,
43384328
CharUnits Align = CGM.getNaturalTypeAlignment(
43394329
E->getArg(1)->getType()->getAs<VectorType>()->getElementType(),
43404330
nullptr);
4341-
llvm::Value *AlignVal =
4342-
llvm::ConstantInt::get(Int32Ty, Align.getQuantity());
43434331

43444332
if (BuiltinID == Builtin::BI__builtin_masked_store) {
4345-
llvm::Function *F = CGM.getIntrinsic(llvm::Intrinsic::masked_store,
4346-
{ValLLTy, Ptr->getType()});
4347-
Builder.CreateCall(F, {Val, Ptr, AlignVal, Mask});
4333+
Builder.CreateMaskedStore(Val, Ptr, Align.getAsAlign(), Mask);
43484334
} else {
43494335
llvm::Function *F =
43504336
CGM.getIntrinsic(llvm::Intrinsic::masked_compressstore, {ValLLTy});
@@ -4361,17 +4347,12 @@ RValue CodeGenFunction::EmitBuiltinExpr(const GlobalDecl GD, unsigned BuiltinID,
43614347
CharUnits Align = CGM.getNaturalTypeAlignment(
43624348
E->getArg(2)->getType()->getAs<VectorType>()->getElementType(),
43634349
nullptr);
4364-
llvm::Value *AlignVal =
4365-
llvm::ConstantInt::get(Int32Ty, Align.getQuantity());
43664350

43674351
llvm::Type *ElemTy = CGM.getTypes().ConvertType(
43684352
E->getArg(1)->getType()->getAs<VectorType>()->getElementType());
43694353
llvm::Value *PtrVec = Builder.CreateGEP(ElemTy, Ptr, Idx);
43704354

4371-
Function *F = CGM.getIntrinsic(Intrinsic::masked_scatter,
4372-
{Val->getType(), PtrVec->getType()});
4373-
4374-
Builder.CreateCall(F, {Val, PtrVec, AlignVal, Mask});
4355+
Builder.CreateMaskedScatter(Val, PtrVec, Align.getAsAlign(), Mask);
43754356
return RValue();
43764357
}
43774358
case Builtin::BI__builtin_isinf_sign: {

0 commit comments

Comments
 (0)