[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