[Mlir-commits] [mlir] 4f3000e - [mlir][SPIR-V] Add spirv.GL.NMax/NMin to SPIRVtoLLVM conversion (#205976)

llvmlistbot at llvm.org llvmlistbot at llvm.org
Fri Jul 10 02:46:38 PDT 2026


Author: Arseniy Obolenskiy
Date: 2026-07-10T11:46:33+02:00
New Revision: 4f3000e8d6d07a1fa9d3cdfde34a270bd0a2decf

URL: https://github.com/llvm/llvm-project/commit/4f3000e8d6d07a1fa9d3cdfde34a270bd0a2decf
DIFF: https://github.com/llvm/llvm-project/commit/4f3000e8d6d07a1fa9d3cdfde34a270bd0a2decf.diff

LOG: [mlir][SPIR-V] Add spirv.GL.NMax/NMin to SPIRVtoLLVM conversion (#205976)

Added: 
    

Modified: 
    mlir/lib/Conversion/SPIRVToLLVM/SPIRVToLLVM.cpp
    mlir/test/Conversion/SPIRVToLLVM/gl-ops-to-llvm.mlir

Removed: 
    


################################################################################
diff  --git a/mlir/lib/Conversion/SPIRVToLLVM/SPIRVToLLVM.cpp b/mlir/lib/Conversion/SPIRVToLLVM/SPIRVToLLVM.cpp
index 8b113478be71d..fdde3352c040b 100644
--- a/mlir/lib/Conversion/SPIRVToLLVM/SPIRVToLLVM.cpp
+++ b/mlir/lib/Conversion/SPIRVToLLVM/SPIRVToLLVM.cpp
@@ -2035,6 +2035,8 @@ void mlir::populateSPIRVToLLVMConversionPatterns(
       ClampPattern<spirv::GLUClampOp, LLVM::UMinOp, LLVM::UMaxOp>,
       DirectConversionPattern<spirv::GLFMaxOp, LLVM::MaxNumOp>,
       DirectConversionPattern<spirv::GLFMinOp, LLVM::MinNumOp>,
+      DirectConversionPattern<spirv::GLNMaxOp, LLVM::MaxNumOp>,
+      DirectConversionPattern<spirv::GLNMinOp, LLVM::MinNumOp>,
       DirectConversionPattern<spirv::GLLogOp, LLVM::LogOp>,
       DirectConversionPattern<spirv::GLLog2Op, LLVM::Log2Op>,
       DirectConversionPattern<spirv::GLPowOp, LLVM::PowOp>,

diff  --git a/mlir/test/Conversion/SPIRVToLLVM/gl-ops-to-llvm.mlir b/mlir/test/Conversion/SPIRVToLLVM/gl-ops-to-llvm.mlir
index 7be0bf201175f..08c7947861cb4 100644
--- a/mlir/test/Conversion/SPIRVToLLVM/gl-ops-to-llvm.mlir
+++ b/mlir/test/Conversion/SPIRVToLLVM/gl-ops-to-llvm.mlir
@@ -103,6 +103,32 @@ spirv.func @fclamp(%arg0: f32, %arg1: f32, %arg2: f32) "None" {
   spirv.Return
 }
 
+//===----------------------------------------------------------------------===//
+// spirv.GL.NMax
+//===----------------------------------------------------------------------===//
+
+// CHECK-LABEL: @nmax
+spirv.func @nmax(%arg0: f32, %arg1: vector<3xf16>) "None" {
+  // CHECK: llvm.intr.maxnum(%{{.*}}, %{{.*}}) : (f32, f32) -> f32
+  %0 = spirv.GL.NMax %arg0, %arg0 : f32
+  // CHECK: llvm.intr.maxnum(%{{.*}}, %{{.*}}) : (vector<3xf16>, vector<3xf16>) -> vector<3xf16>
+  %1 = spirv.GL.NMax %arg1, %arg1 : vector<3xf16>
+  spirv.Return
+}
+
+//===----------------------------------------------------------------------===//
+// spirv.GL.NMin
+//===----------------------------------------------------------------------===//
+
+// CHECK-LABEL: @nmin
+spirv.func @nmin(%arg0: f32, %arg1: vector<3xf16>) "None" {
+  // CHECK: llvm.intr.minnum(%{{.*}}, %{{.*}}) : (f32, f32) -> f32
+  %0 = spirv.GL.NMin %arg0, %arg0 : f32
+  // CHECK: llvm.intr.minnum(%{{.*}}, %{{.*}}) : (vector<3xf16>, vector<3xf16>) -> vector<3xf16>
+  %1 = spirv.GL.NMin %arg1, %arg1 : vector<3xf16>
+  spirv.Return
+}
+
 //===----------------------------------------------------------------------===//
 // spirv.GL.Log
 //===----------------------------------------------------------------------===//


        


More information about the Mlir-commits mailing list