[llvm] 3e3594c - [AMDGPU] Do not fix implicit vcc operand on INLINEASM

Jay Foad via llvm-commits llvm-commits at lists.llvm.org
Wed Mar 29 12:33:39 PDT 2023


Author: Jay Foad
Date: 2023-03-29T20:23:36+01:00
New Revision: 3e3594c771e65b48ceeb89a7186d5e3b119ec3b9

URL: https://github.com/llvm/llvm-project/commit/3e3594c771e65b48ceeb89a7186d5e3b119ec3b9
DIFF: https://github.com/llvm/llvm-project/commit/3e3594c771e65b48ceeb89a7186d5e3b119ec3b9.diff

LOG: [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

Added: 
    

Modified: 
    llvm/lib/Target/AMDGPU/SIInstrInfo.cpp

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp b/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp
index a1d13cc491eb7..ea0ccc889380a 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);


        


More information about the llvm-commits mailing list