From 3e3594c771e65b48ceeb89a7186d5e3b119ec3b9 Mon Sep 17 00:00:00 2001 From: Jay Foad Date: Wed, 29 Mar 2023 15:06:53 +0100 Subject: [PATCH] [AMDGPU] Do not fix implicit vcc operand on INLINEASM An INLINEASM can have an implicit def of vcc. It is not appropriate for fixImplicitOperands to change this to vcc_lo on wave32. Differential Revision: https://reviews.llvm.org/D147157 --- llvm/lib/Target/AMDGPU/SIInstrInfo.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp b/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp index a1d13cc..ea0ccc8 100644 --- a/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp +++ b/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp @@ -7877,6 +7877,9 @@ void SIInstrInfo::fixImplicitOperands(MachineInstr &MI) const { if (!ST.isWave32()) return; + if (MI.isInlineAsm()) + return; + for (auto &Op : MI.implicit_operands()) { if (Op.isReg() && Op.getReg() == AMDGPU::VCC) Op.setReg(AMDGPU::VCC_LO); -- 2.7.4