Skip to content

Commit 9dd73e6

Browse files
committed
Revert implementation
1 parent 168a5e3 commit 9dd73e6

File tree

2 files changed

+0
-47
lines changed

2 files changed

+0
-47
lines changed

llvm/include/llvm/IR/IntrinsicsAMDGPU.td

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2359,12 +2359,6 @@ def int_amdgcn_mbcnt_hi :
23592359
DefaultAttrsIntrinsic<[llvm_i32_ty], [llvm_i32_ty, llvm_i32_ty],
23602360
[IntrNoMem]>;
23612361

2362-
def int_amdgcn_bcnt32_lo :
2363-
DefaultAttrsIntrinsic<[llvm_i32_ty], [llvm_i32_ty], [IntrNoMem]>;
2364-
2365-
def int_amdgcn_bcnt64_lo :
2366-
DefaultAttrsIntrinsic<[llvm_i32_ty], [llvm_i64_ty], [IntrNoMem]>;
2367-
23682362
// llvm.amdgcn.ds.swizzle src offset
23692363
def int_amdgcn_ds_swizzle :
23702364
ClangBuiltin<"__builtin_amdgcn_ds_swizzle">,

llvm/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp

Lines changed: 0 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -26,18 +26,15 @@
2626
#include "llvm/IR/Dominators.h"
2727
#include "llvm/IR/IRBuilder.h"
2828
#include "llvm/IR/InstVisitor.h"
29-
#include "llvm/IR/Intrinsics.h"
3029
#include "llvm/IR/IntrinsicsAMDGPU.h"
3130
#include "llvm/IR/PatternMatch.h"
3231
#include "llvm/IR/ValueHandle.h"
3332
#include "llvm/InitializePasses.h"
3433
#include "llvm/Pass.h"
3534
#include "llvm/Support/KnownBits.h"
3635
#include "llvm/Support/KnownFPClass.h"
37-
#include "llvm/Transforms/Utils/BasicBlockUtils.h"
3836
#include "llvm/Transforms/Utils/IntegerDivision.h"
3937
#include "llvm/Transforms/Utils/Local.h"
40-
#include <cstdint>
4138

4239
#define DEBUG_TYPE "amdgpu-codegenprepare"
4340

@@ -96,13 +93,6 @@ static cl::opt<bool> DisableFDivExpand(
9693
cl::ReallyHidden,
9794
cl::init(false));
9895

99-
// Disable bitsin(typeof(x)) - popcnt(x) to s_bcnt0(x) transformation.
100-
static cl::opt<bool>
101-
DisableBcnt0("amdgpu-codegenprepare-disable-bcnt0",
102-
cl::desc("Prevent transforming bitsin(typeof(x)) - "
103-
"popcount(x) to bcnt0(x) in AMDGPUCodeGenPrepare"),
104-
cl::ReallyHidden, cl::init(false));
105-
10696
class AMDGPUCodeGenPrepareImpl
10797
: public InstVisitor<AMDGPUCodeGenPrepareImpl, bool> {
10898
public:
@@ -268,7 +258,6 @@ class AMDGPUCodeGenPrepareImpl
268258
bool visitAddrSpaceCastInst(AddrSpaceCastInst &I);
269259

270260
bool visitIntrinsicInst(IntrinsicInst &I);
271-
bool visitCtpop(IntrinsicInst &I);
272261
bool visitFMinLike(IntrinsicInst &I);
273262
bool visitSqrt(IntrinsicInst &I);
274263
bool run();
@@ -1921,8 +1910,6 @@ bool AMDGPUCodeGenPrepareImpl::visitIntrinsicInst(IntrinsicInst &I) {
19211910
return visitFMinLike(I);
19221911
case Intrinsic::sqrt:
19231912
return visitSqrt(I);
1924-
case Intrinsic::ctpop:
1925-
return visitCtpop(I);
19261913
default:
19271914
return false;
19281915
}
@@ -1990,34 +1977,6 @@ Value *AMDGPUCodeGenPrepareImpl::applyFractPat(IRBuilder<> &Builder,
19901977
return insertValues(Builder, FractArg->getType(), ResultVals);
19911978
}
19921979

1993-
bool AMDGPUCodeGenPrepareImpl::visitCtpop(IntrinsicInst &I) {
1994-
uint32_t BitWidth, DestinationWidth;
1995-
if (!I.hasOneUse() || !I.getType()->isIntegerTy())
1996-
return false;
1997-
1998-
BitWidth = I.getType()->getIntegerBitWidth();
1999-
if(!ST.hasBCNT(BitWidth))
2000-
return false;
2001-
2002-
Instruction *MustBeSub = I.user_back();
2003-
if (!match(MustBeSub, m_Sub(m_SpecificInt(BitWidth), m_Specific(&I))))
2004-
return false;
2005-
2006-
IRBuilder<> Builder(MustBeSub);
2007-
Instruction *TransformedIns =
2008-
Builder.CreateIntrinsic(BitWidth > 32 ? Intrinsic::amdgcn_bcnt64_lo
2009-
: Intrinsic::amdgcn_bcnt32_lo,
2010-
{}, {I.getArgOperand(0)});
2011-
2012-
DestinationWidth = MustBeSub->getType()->getIntegerBitWidth();
2013-
TransformedIns = cast<Instruction>(Builder.CreateZExtOrTrunc(
2014-
TransformedIns, Type::getIntNTy(I.getContext(), DestinationWidth)));
2015-
2016-
BasicBlock::iterator SubIt = MustBeSub->getIterator();
2017-
ReplaceInstWithValue(SubIt,TransformedIns);
2018-
return true;
2019-
}
2020-
20211980
bool AMDGPUCodeGenPrepareImpl::visitFMinLike(IntrinsicInst &I) {
20221981
Value *FractArg = matchFractPat(I);
20231982
if (!FractArg)

0 commit comments

Comments
 (0)