[llvm] [AMDGPU] Add waterfall intrinsics (PR #192409)

Jay Foad via llvm-commits llvm-commits at lists.llvm.org
Wed Jun 3 06:17:27 PDT 2026


================
@@ -2073,11 +2081,46 @@ bool AMDGPUCodeGenPrepareImpl::visitIntrinsicInst(IntrinsicInst &I) {
   case Intrinsic::uadd_sat:
   case Intrinsic::sadd_sat:
     return visitSaturatingAdd(I);
+  case Intrinsic::amdgcn_waterfall_begin:
+    CurrentWaterfall = nullptr;
+    return false;
+  case Intrinsic::amdgcn_waterfall_end:
+    CurrentWaterfall = &I;
+    return false;
   default:
     return false;
   }
 }
 
+bool AMDGPUCodeGenPrepareImpl::visitGetElementPtrInst(GetElementPtrInst &I) {
+  if (!CurrentWaterfall || UA.isUniformAtDef(&I))
+    return false;
+  if (I.getParent() != CurrentWaterfall->getParent())
+    return false;
+
+  // Divergent GEP within a waterfall region will introduce a nested waterfall.
----------------
jayfoad wrote:

I would prefer to split this part into a separate PR, even if we do end up merging it as-is.

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


More information about the llvm-commits mailing list