[Mlir-commits] [mlir] [MLIR][NVVM] Add family-conditional support to NVVMRequiresSM traits (PR #185909)

Srinivasa Ravi llvmlistbot at llvm.org
Sun Mar 15 23:16:36 PDT 2026


================
@@ -106,12 +128,49 @@ class NVVMRequiresSMa {
                                          NVVMRequiresSMa<SMVersions...>::Impl>,
                public mlir::NVVM::RequiresSMInterface::Trait<ConcreteOp> {
   public:
-    const NVVM::NVVMCheckSMVersion getRequiredMinSMVersion() const {
-      return NVVM::NVVMCheckSMVersion(true, SMVersions...);
+    NVVM::NVVMCheckSMVersion getRequiredMinSMVersion() const {
+      return NVVM::NVVMCheckSMVersion(true, false, SMVersions...);
+    }
+  };
+
+  static NVVM::NVVMCheckSMVersion getRequiredMinSMVersion() {
+    return NVVM::NVVMCheckSMVersion(true, false, SMVersions...);
+  }
+};
+
+template <int... SMVersions>
+class NVVMRequiresSMf {
+public:
+  template <typename ConcreteOp>
+  class Impl : public OpTrait::TraitBase<ConcreteOp,
+                                         NVVMRequiresSMf<SMVersions...>::Impl>,
+               public mlir::NVVM::RequiresSMInterface::Trait<ConcreteOp> {
+  public:
+    NVVM::NVVMCheckSMVersion getRequiredMinSMVersion() const {
+      return NVVM::NVVMCheckSMVersion(false, true, SMVersions...);
     }
   };
+
+  static NVVM::NVVMCheckSMVersion getRequiredMinSMVersion() {
+    return NVVM::NVVMCheckSMVersion(false, true, SMVersions...);
+  }
 };
 
+template <typename T, typename U>
+class NVVMRequiresSMaOrf {
----------------
Wolfram70 wrote:

That makes sense. Renamed these to `SMVersionsA` and `SMVersionsF`, thanks!

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


More information about the Mlir-commits mailing list