[Mlir-commits] [mlir] [mlir][SPIR-V] Add SPIRVToLLVM conversions for CL copysign and fmod ops (PR #205993)
Arseniy Obolenskiy
llvmlistbot at llvm.org
Fri Jun 26 00:02:01 PDT 2026
https://github.com/aobolensk created https://github.com/llvm/llvm-project/pull/205993
None
>From 789494d1e5437dff5897a921f6d3b1b8011040c9 Mon Sep 17 00:00:00 2001
From: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
Date: Fri, 26 Jun 2026 08:57:26 +0200
Subject: [PATCH] [mlir][SPIR-V] Add SPIRVToLLVM conversions for CL copysign
and fmod ops
---
mlir/lib/Conversion/SPIRVToLLVM/SPIRVToLLVM.cpp | 2 ++
mlir/test/Conversion/SPIRVToLLVM/cl-ops-to-llvm.mlir | 4 ++++
2 files changed, 6 insertions(+)
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
}
More information about the Mlir-commits
mailing list