[llvm] [AMDGPU] Save/Restore SCC bit across waterfall loop. (PR #68363)

Matt Arsenault via llvm-commits llvm-commits at lists.llvm.org
Thu Oct 5 15:58:04 PDT 2023


================
@@ -6014,6 +6047,16 @@ loadMBUFScalarOperandsFromVGPR(const SIInstrInfo &TII, MachineInstr &MI,
   unsigned MovExecOpc = ST.isWave32() ? AMDGPU::S_MOV_B32 : AMDGPU::S_MOV_B64;
   const auto *BoolXExecRC = TRI->getRegClass(AMDGPU::SReg_1_XEXECRegClassID);
 
+  // Save SCC. Waterfall Loop may overwrite SCC.
+  Register SaveSCCReg;
+  bool SCCDefined = false;
+  if ((SCCDefined = TII.isSCCDefinedAndUsed(MBB, Begin, End))) {
+    SaveSCCReg = MRI.createVirtualRegister(
+        TRI->getRegClass(AMDGPU::SReg_1_XEXECRegClassID));
----------------
arsenm wrote:

copy should just happen to sreg_32 

https://github.com/llvm/llvm-project/pull/68363


More information about the llvm-commits mailing list