[llvm] [AMDGPU][CodeGen] Update support (soffset + offset) s_buffer_load's (PR #68302)

via llvm-commits llvm-commits at lists.llvm.org
Thu Oct 5 08:23:28 PDT 2023


================
@@ -33,6 +33,11 @@ AMDGPU::getBaseWithConstantOffset(MachineRegisterInfo &MRI, Register Reg,
 
   int64_t Offset;
   if (Def->getOpcode() == TargetOpcode::G_ADD) {
+    // A 32-bit (address + offset) should not cause unsigned 32-bit integer
+    // wraparound, because s_load instructions perform the addition in 64 bits.
+    if (!Def->getFlag(MachineInstr::NoUWrap) &&
----------------
Acim-Maravic wrote:

Yes, in SDAG in case of s_buffer_load there is also check for NUW flag in AMDGPUDAGToDAGISel::SelectSMRDBaseOffset. In SDAG they have diffrent functions for scalar and non-scalar buffer_loads. 

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


More information about the llvm-commits mailing list