Skip to content

Commit cae0fb8

Browse files
committed
Streamline condition
Signed-off-by: John Lu <John.Lu@amd.com>
1 parent 39380bb commit cae0fb8

File tree

1 file changed

+9
-5
lines changed

1 file changed

+9
-5
lines changed

llvm/lib/Target/AMDGPU/SIInstrInfo.cpp

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10611,11 +10611,15 @@ bool SIInstrInfo::optimizeCompareInstr(MachineInstr &CmpInstr, Register SrcReg,
1061110611
//
1061210612
// s_cmp_lg_* (S_CSELECT* (non-zero imm), 0), 0 => (S_CSELECT* (non-zero
1061310613
// imm), 0)
10614-
if ((Def->getOpcode() == AMDGPU::S_CSELECT_B32 ||
10615-
Def->getOpcode() == AMDGPU::S_CSELECT_B64) &&
10616-
Def->getOperand(1).isImm() && Def->getOperand(1).getImm() &&
10617-
Def->getOperand(2).isImm() && !Def->getOperand(2).getImm())
10618-
CanOptimize = true;
10614+
if (Def->getOpcode() == AMDGPU::S_CSELECT_B32 ||
10615+
Def->getOpcode() == AMDGPU::S_CSELECT_B64) {
10616+
bool Op1IsNonZeroImm =
10617+
Def->getOperand(1).isImm() && Def->getOperand(1).getImm() != 0;
10618+
bool Op2IsZeroImm =
10619+
Def->getOperand(2).isImm() && Def->getOperand(2).getImm() == 0;
10620+
if (Op1IsNonZeroImm && Op2IsZeroImm)
10621+
CanOptimize = true;
10622+
}
1061910623

1062010624
if (!CanOptimize)
1062110625
return false;

0 commit comments

Comments
 (0)