[Mlir-commits] [mlir] [MLIR][NVVM] Add Permute Op (PR #169793)

Durgadoss R llvmlistbot at llvm.org
Fri Nov 28 00:42:34 PST 2025


================
@@ -3379,6 +3406,29 @@ NVVM::IDArgPair ClusterLaunchControlQueryCancelOp::getIntrinsicIDAndArgs(
   return {intrinsicID, args};
 }
 
+mlir::NVVM::IDArgPair PermuteOp::getIntrinsicIDAndArgs(NVVM::PermuteMode mode,
+                                                       llvm::Value *lo,
+                                                       llvm::Value *hi,
+                                                       llvm::Value *selector) {
+  static constexpr llvm::Intrinsic::ID IDs[] = {
+      llvm::Intrinsic::nvvm_prmt,     llvm::Intrinsic::nvvm_prmt_f4e,
+      llvm::Intrinsic::nvvm_prmt_b4e, llvm::Intrinsic::nvvm_prmt_rc8,
+      llvm::Intrinsic::nvvm_prmt_ecl, llvm::Intrinsic::nvvm_prmt_ecr,
+      llvm::Intrinsic::nvvm_prmt_rc16};
+
+  unsigned modeIndex = static_cast<unsigned>(mode);
+
+  llvm::SmallVector<llvm::Value *> args;
+  args.push_back(lo);
+
+  if (modeIndex < 3)
----------------
durga4github wrote:

ok, I get why we have this magic-3 check here. But let us add a comment for future

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


More information about the Mlir-commits mailing list