[llvm] 821c7be - [AMDGPU] Simplify simplifyAMDGCNMemoryIntrinsicDemanded. NFC.
Jay Foad via llvm-commits
llvm-commits at lists.llvm.org
Thu Dec 22 03:52:44 PST 2022
Author: Jay Foad
Date: 2022-12-22T11:50:04Z
New Revision: 821c7be8e6598434d70822559842662d9c607e58
URL: https://github.com/llvm/llvm-project/commit/821c7be8e6598434d70822559842662d9c607e58
DIFF: https://github.com/llvm/llvm-project/commit/821c7be8e6598434d70822559842662d9c607e58.diff
LOG: [AMDGPU] Simplify simplifyAMDGCNMemoryIntrinsicDemanded. NFC.
Added:
Modified:
llvm/lib/Target/AMDGPU/AMDGPUInstCombineIntrinsic.cpp
Removed:
################################################################################
diff --git a/llvm/lib/Target/AMDGPU/AMDGPUInstCombineIntrinsic.cpp b/llvm/lib/Target/AMDGPU/AMDGPUInstCombineIntrinsic.cpp
index 38808b536c2f..85b7cbc1d1ef 100644
--- a/llvm/lib/Target/AMDGPU/AMDGPUInstCombineIntrinsic.cpp
+++ b/llvm/lib/Target/AMDGPU/AMDGPUInstCombineIntrinsic.cpp
@@ -1076,6 +1076,7 @@ static Value *simplifyAMDGCNMemoryIntrinsicDemanded(InstCombiner &IC,
unsigned VWidth = IIVTy->getNumElements();
if (VWidth == 1)
return nullptr;
+ Type *EltTy = IIVTy->getElementType();
IRBuilderBase::InsertPointGuard Guard(IC.Builder);
IC.Builder.SetInsertPoint(&II);
@@ -1123,9 +1124,9 @@ static Value *simplifyAMDGCNMemoryIntrinsicDemanded(InstCombiner &IC,
if (OffsetIdx != InvalidOffsetIdx) {
// Clear demanded bits and update the offset.
DemandedElts &= ~((1 << UnusedComponentsAtFront) - 1);
- auto *Offset = II.getArgOperand(OffsetIdx);
+ auto *Offset = Args[OffsetIdx];
unsigned SingleComponentSizeInBits =
- IC.getDataLayout().getTypeSizeInBits(II.getType()->getScalarType());
+ IC.getDataLayout().getTypeSizeInBits(EltTy);
unsigned OffsetAdd =
UnusedComponentsAtFront * SingleComponentSizeInBits / 8;
auto *OffsetAddVal = ConstantInt::get(Offset->getType(), OffsetAdd);
@@ -1135,7 +1136,7 @@ static Value *simplifyAMDGCNMemoryIntrinsicDemanded(InstCombiner &IC,
} else {
// Image case.
- ConstantInt *DMask = cast<ConstantInt>(II.getArgOperand(DMaskIdx));
+ ConstantInt *DMask = cast<ConstantInt>(Args[DMaskIdx]);
unsigned DMaskVal = DMask->getZExtValue() & 0xf;
// Mask off values that are undefined because the dmask doesn't cover them
@@ -1158,7 +1159,7 @@ static Value *simplifyAMDGCNMemoryIntrinsicDemanded(InstCombiner &IC,
unsigned NewNumElts = DemandedElts.countPopulation();
if (!NewNumElts)
- return UndefValue::get(II.getType());
+ return UndefValue::get(IIVTy);
if (NewNumElts >= VWidth && DemandedElts.isMask()) {
if (DMaskIdx >= 0)
@@ -1172,22 +1173,18 @@ static Value *simplifyAMDGCNMemoryIntrinsicDemanded(InstCombiner &IC,
if (!Intrinsic::getIntrinsicSignature(II.getCalledFunction(), OverloadTys))
return nullptr;
- Module *M = II.getParent()->getParent()->getParent();
- Type *EltTy = IIVTy->getElementType();
Type *NewTy =
(NewNumElts == 1) ? EltTy : FixedVectorType::get(EltTy, NewNumElts);
-
OverloadTys[0] = NewTy;
- Function *NewIntrin =
- Intrinsic::getDeclaration(M, II.getIntrinsicID(), OverloadTys);
+ Function *NewIntrin = Intrinsic::getDeclaration(
+ II.getModule(), II.getIntrinsicID(), OverloadTys);
CallInst *NewCall = IC.Builder.CreateCall(NewIntrin, Args);
NewCall->takeName(&II);
NewCall->copyMetadata(II);
if (NewNumElts == 1) {
- return IC.Builder.CreateInsertElement(UndefValue::get(II.getType()),
- NewCall,
+ return IC.Builder.CreateInsertElement(UndefValue::get(IIVTy), NewCall,
DemandedElts.countTrailingZeros());
}
More information about the llvm-commits
mailing list