[llvm] [AMDGPU][TTI] Add Target Hook for Instruction Uniformity (getInstructionUniformity) (PR #137639)

Sameer Sahasrabuddhe via llvm-commits llvm-commits at lists.llvm.org
Sun Sep 21 23:11:40 PDT 2025


================
@@ -1422,3 +1422,26 @@ void GCNTTIImpl::collectKernelLaunchBounds(
   LB.push_back({"amdgpu-waves-per-eu[0]", WavesPerEU.first});
   LB.push_back({"amdgpu-waves-per-eu[1]", WavesPerEU.second});
 }
+
+std::optional<InstructionUniformity> GCNTTIImpl::getInstructionUniformity(
+    const Instruction &I,
+    const SmallVector<InstructionUniformity> &OperandUniformities) const {
+
+  if (auto *CI = dyn_cast<CallInst>(&I)) {
+    const Function *CalledFunc = CI->getCalledFunction();
+    if (!CalledFunc)
+      return InstructionUniformity::Default;
+
+    if (CalledFunc->getIntrinsicID() == Intrinsic::amdgcn_permlane16) {
+      // Check if any operand is uniform.
----------------
ssahasra wrote:

But this code does not seem to check any operand. It only checks the new `InstructionUniformity`.

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


More information about the llvm-commits mailing list