[llvm] [AMDGPU] Fix combineMasks dropping condition (PR #203180)
Arseniy Obolenskiy via llvm-commits
llvm-commits at lists.llvm.org
Tue Aug 4 06:44:01 PDT 2026
================
@@ -602,22 +602,41 @@ void SILowerControlFlow::findMaskOperands(MachineInstr &MI, unsigned OpNo,
// One of the operands is exec mask.
void SILowerControlFlow::combineMasks(MachineInstr &MI) {
assert(MI.getNumExplicitOperands() == 3);
- SmallVector<MachineOperand, 4> Ops;
- unsigned OpToReplace = 1;
- findMaskOperands(MI, 1, Ops);
- if (Ops.size() == 1) OpToReplace = 2; // First operand can be exec or its copy
- findMaskOperands(MI, 2, Ops);
- if (Ops.size() != 3) return;
-
- unsigned UniqueOpndIdx;
- if (Ops[0].isIdenticalTo(Ops[1])) UniqueOpndIdx = 2;
- else if (Ops[0].isIdenticalTo(Ops[2])) UniqueOpndIdx = 1;
- else if (Ops[1].isIdenticalTo(Ops[2])) UniqueOpndIdx = 1;
- else return;
+ SmallVector<MachineOperand, 2> Src1, Src2;
----------------
aobolensk wrote:
Done
https://github.com/llvm/llvm-project/pull/203180
More information about the llvm-commits
mailing list