Skip to content

Commit 869e4ce

Browse files
committed
Remove Redundant Ops
1 parent 810b942 commit 869e4ce

File tree

6 files changed

+10
-2546
lines changed

6 files changed

+10
-2546
lines changed

llvm/include/llvm/IR/IntrinsicsAMDGPU.td

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2343,10 +2343,8 @@ class AMDGPUWaveReduce<LLVMType data_ty = llvm_anyint_ty> : Intrinsic<
23432343
[IntrNoMem, IntrConvergent, IntrWillReturn, IntrNoCallback, IntrNoFree, ImmArg<ArgIndex<1>>]>;
23442344

23452345
multiclass AMDGPUWaveReduceOps {
2346-
foreach Op = [
2347-
"umin", "min", "umax", "max", "uadd", "add", "usub", "sub", "and", "or",
2348-
"xor"
2349-
] in {
2346+
foreach Op =
2347+
["umin", "min", "umax", "max", "add", "sub", "and", "or", "xor"] in {
23502348
def Op : AMDGPUWaveReduce;
23512349
}
23522350
}

llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5007,9 +5007,7 @@ AMDGPURegisterBankInfo::getInstrMapping(const MachineInstr &MI) const {
50075007
break;
50085008
}
50095009
case Intrinsic::amdgcn_wave_reduce_add:
5010-
case Intrinsic::amdgcn_wave_reduce_uadd:
50115010
case Intrinsic::amdgcn_wave_reduce_sub:
5012-
case Intrinsic::amdgcn_wave_reduce_usub:
50135011
case Intrinsic::amdgcn_wave_reduce_min:
50145012
case Intrinsic::amdgcn_wave_reduce_umin:
50155013
case Intrinsic::amdgcn_wave_reduce_max:

llvm/lib/Target/AMDGPU/SIISelLowering.cpp

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5097,7 +5097,7 @@ static MachineBasicBlock *lowerWaveReduce(MachineInstr &MI,
50975097

50985098
bool IsWave32 = ST.isWave32();
50995099
unsigned MovOpc = IsWave32 ? AMDGPU::S_MOV_B32 : AMDGPU::S_MOV_B64;
5100-
MCRegister ExecReg = IsWave32 ? AMDGPU::EXEC_LO : AMDGPU::EXEC;
5100+
unsigned ExecReg = IsWave32 ? AMDGPU::EXEC_LO : AMDGPU::EXEC;
51015101
unsigned CountReg =
51025102
IsWave32 ? AMDGPU::S_BCNT1_I32_B32 : AMDGPU::S_BCNT1_I32_B64;
51035103

@@ -5262,12 +5262,8 @@ SITargetLowering::EmitInstrWithCustomInserter(MachineInstr &MI,
52625262
return lowerWaveReduce(MI, *BB, *getSubtarget(), AMDGPU::S_MAX_U32);
52635263
case AMDGPU::WAVE_REDUCE_MAX_PSEUDO_I32:
52645264
return lowerWaveReduce(MI, *BB, *getSubtarget(), AMDGPU::S_MAX_I32);
5265-
case AMDGPU::WAVE_REDUCE_UADD_PSEUDO_U32:
5266-
return lowerWaveReduce(MI, *BB, *getSubtarget(), AMDGPU::S_ADD_I32);
52675265
case AMDGPU::WAVE_REDUCE_ADD_PSEUDO_I32:
52685266
return lowerWaveReduce(MI, *BB, *getSubtarget(), AMDGPU::S_ADD_I32);
5269-
case AMDGPU::WAVE_REDUCE_USUB_PSEUDO_U32:
5270-
return lowerWaveReduce(MI, *BB, *getSubtarget(), AMDGPU::S_SUB_I32);
52715267
case AMDGPU::WAVE_REDUCE_SUB_PSEUDO_I32:
52725268
return lowerWaveReduce(MI, *BB, *getSubtarget(), AMDGPU::S_SUB_I32);
52735269
case AMDGPU::WAVE_REDUCE_AND_PSEUDO_B32:

llvm/lib/Target/AMDGPU/SIInstructions.td

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -306,9 +306,9 @@ def : GCNPat<(i32 (int_amdgcn_set_inactive_chain_arg i32:$src, i32:$inactive)),
306306
// clang-format off
307307
defvar int_amdgcn_wave_reduce_ = "int_amdgcn_wave_reduce_";
308308
multiclass
309-
AMDGPUWaveReducePseudoGenerator<string Op, string DataType, string Size> {
309+
AMDGPUWaveReducePseudoGenerator<string Op, string DataType> {
310310
let usesCustomInserter = 1, hasSideEffects = 0, mayLoad = 0, mayStore = 0, Uses = [EXEC] in {
311-
def !toupper(Op) #"_PSEUDO_" #DataType #Size
311+
def !toupper(Op) #"_PSEUDO_" #DataType
312312
: VPseudoInstSI<(outs SGPR_32 : $sdst),
313313
(ins VSrc_b32 : $src, VSrc_b32 : $strategy),
314314
[(set i32 : $sdst, (!cast<AMDGPUWaveReduce>(int_amdgcn_wave_reduce_ #Op) i32 : $src, i32 : $strategy))]> {}
@@ -317,17 +317,15 @@ multiclass
317317
// clang-format on
318318

319319
// Input list : [Operation_name,
320-
// type - Signed(I)/Unsigned(U)/Float(F)/Bitwise(B),
321-
// Size_in_bits]
320+
// type - Signed(I)/Unsigned(U)/Float(F)/Bitwise(B)]
322321
defvar Operations = [
323-
["umin", "U", "32"], ["min", "I", "32"], ["umax", "U", "32"],
324-
["max", "I", "32"], ["uadd", "U", "32"], ["add", "I", "32"],
325-
["usub", "U", "32"], ["sub", "I", "32"], ["and", "B", "32"],
326-
["or", "B", "32"], ["xor", "B", "32"]
322+
["umin", "U32"], ["min", "I32"], ["umax", "U32"], ["max", "I32"],
323+
["add", "I32"], ["sub", "I32"], ["and", "B32"], ["or", "B32"],
324+
["xor", "B32"]
327325
];
328326

329327
foreach Op = Operations in {
330-
defm WAVE_REDUCE_ : AMDGPUWaveReducePseudoGenerator<Op[0], Op[1], Op[2]>;
328+
defm WAVE_REDUCE_ : AMDGPUWaveReducePseudoGenerator<Op[0], Op[1]>;
331329
}
332330

333331
let usesCustomInserter = 1, Defs = [VCC] in {

0 commit comments

Comments
 (0)