[Mlir-commits] [mlir] 50143b8 - [mlir][SPIR-V] Add SPIRVToLLVM conversions for CL copysign and fmod ops (#205993)

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


Author: Arseniy Obolenskiy
Date: 2026-07-10T11:52:48+02:00
New Revision: 50143b877dffdb9016e50fb541806eb59c261b10

URL: https://github.com/llvm/llvm-project/commit/50143b877dffdb9016e50fb541806eb59c261b10
DIFF: https://github.com/llvm/llvm-project/commit/50143b877dffdb9016e50fb541806eb59c261b10.diff

LOG: [mlir][SPIR-V] Add SPIRVToLLVM conversions for CL copysign and fmod ops (#205993)

Added: 
    

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

Removed: 
    


################################################################################
diff  --git a/mlir/lib/Conversion/SPIRVToLLVM/SPIRVToLLVM.cpp b/mlir/lib/Conversion/SPIRVToLLVM/SPIRVToLLVM.cpp
index fdde3352c040b..0822c44c10f1d 100644
--- a/mlir/lib/Conversion/SPIRVToLLVM/SPIRVToLLVM.cpp
+++ b/mlir/lib/Conversion/SPIRVToLLVM/SPIRVToLLVM.cpp
@@ -2085,6 +2085,8 @@ void mlir::populateSPIRVToLLVMConversionPatterns(
       DirectConversionPattern<spirv::CLAtan2Op, LLVM::ATan2Op>,
       DirectConversionPattern<spirv::CLSqrtOp, LLVM::SqrtOp>,
       DirectConversionPattern<spirv::CLTruncOp, LLVM::FTruncOp>,
+      DirectConversionPattern<spirv::CLCopysignOp, LLVM::CopySignOp>,
+      DirectConversionPattern<spirv::CLFmodOp, LLVM::FRemOp>,
       DirectConversionPattern<spirv::CLSMaxOp, LLVM::SMaxOp>,
       DirectConversionPattern<spirv::CLSMinOp, LLVM::SMinOp>,
       DirectConversionPattern<spirv::CLUMaxOp, LLVM::UMaxOp>,

diff  --git a/mlir/test/Conversion/SPIRVToLLVM/cl-ops-to-llvm.mlir b/mlir/test/Conversion/SPIRVToLLVM/cl-ops-to-llvm.mlir
index a986be42a5437..e6fed930268d4 100644
--- a/mlir/test/Conversion/SPIRVToLLVM/cl-ops-to-llvm.mlir
+++ b/mlir/test/Conversion/SPIRVToLLVM/cl-ops-to-llvm.mlir
@@ -69,6 +69,10 @@ spirv.func @cl_binary_float(%arg0: f32, %arg1: f32) "None" {
   %2 = spirv.CL.fmax %arg0, %arg1 : f32
   // CHECK: llvm.intr.minnum(%{{.*}}, %{{.*}}) : (f32, f32) -> f32
   %3 = spirv.CL.fmin %arg0, %arg1 : f32
+  // CHECK: llvm.intr.copysign(%{{.*}}, %{{.*}}) : (f32, f32) -> f32
+  %4 = spirv.CL.copysign %arg0, %arg1 : f32
+  // CHECK: llvm.frem %{{.*}}, %{{.*}} : f32
+  %5 = spirv.CL.fmod %arg0, %arg1 : f32
   spirv.Return
 }
 


        


More information about the Mlir-commits mailing list