[Mlir-commits] [mlir] [mlir][SPIR-V] Add SPIRVToLLVM conversions for CL copysign and fmod ops (PR #205993)
llvmlistbot at llvm.org
llvmlistbot at llvm.org
Fri Jun 26 00:02:34 PDT 2026
llvmorg-github-actions[bot] wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-mlir-spirv
@llvm/pr-subscribers-mlir
Author: Arseniy Obolenskiy (aobolensk)
<details>
<summary>Changes</summary>
---
Full diff: https://github.com/llvm/llvm-project/pull/205993.diff
2 Files Affected:
- (modified) mlir/lib/Conversion/SPIRVToLLVM/SPIRVToLLVM.cpp (+2)
- (modified) mlir/test/Conversion/SPIRVToLLVM/cl-ops-to-llvm.mlir (+4)
``````````diff
diff --git a/mlir/lib/Conversion/SPIRVToLLVM/SPIRVToLLVM.cpp b/mlir/lib/Conversion/SPIRVToLLVM/SPIRVToLLVM.cpp
index c43415b27b1b3..7075daaef0cec 100644
--- a/mlir/lib/Conversion/SPIRVToLLVM/SPIRVToLLVM.cpp
+++ b/mlir/lib/Conversion/SPIRVToLLVM/SPIRVToLLVM.cpp
@@ -1946,6 +1946,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 f0568e1035cd9..d66c20c49cbce 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
}
``````````
</details>
https://github.com/llvm/llvm-project/pull/205993
More information about the Mlir-commits
mailing list