Index: lib/Target/AMDGPU/SIInstructions.td =================================================================== --- lib/Target/AMDGPU/SIInstructions.td +++ lib/Target/AMDGPU/SIInstructions.td @@ -1802,7 +1802,7 @@ // Dummy terminator instruction to use after control flow instructions // replaced with exec mask operations. def SI_MASK_BRANCH : PseudoInstSI < - (outs), (ins brtarget:$target, SReg_64:$dst)> { + (outs), (ins brtarget:$target)> { let isBranch = 0; let isTerminator = 1; let isBarrier = 0; Index: lib/Target/AMDGPU/SILowerControlFlow.cpp =================================================================== --- lib/Target/AMDGPU/SILowerControlFlow.cpp +++ lib/Target/AMDGPU/SILowerControlFlow.cpp @@ -136,8 +136,7 @@ // be used later when inserting skips. MachineInstr *NewBr = BuildMI(MBB, I, DL, TII->get(AMDGPU::SI_MASK_BRANCH)) - .addOperand(MI.getOperand(2)) - .addReg(SaveExecReg, getKillRegState(SaveExec.isKill())); + .addOperand(MI.getOperand(2)); if (!LIS) { MI.eraseFromParent(); @@ -196,8 +195,7 @@ // Insert a pseudo terminator to help keep the verifier happy. MachineInstr *Branch = BuildMI(MBB, Term, DL, TII->get(AMDGPU::SI_MASK_BRANCH)) - .addMBB(DestBB) - .addReg(DstReg); + .addMBB(DestBB); if (!LIS) { MI.eraseFromParent();