[Mlir-commits] [mlir] [mlir][SPIR-V] Add SPIRVToLLVM conversion for GL.Atan2 (PR #237741)
Arseniy Obolenskiy
llvmlistbot at llvm.org
Sun Nov 1 07:29:15 PST 2026
https://github.com/aobolensk created https://github.com/llvm/llvm-project/pull/237741
None
>From 4e7f04a945d68b84137c99f0ebbb2eb0be91f78c Mon Sep 17 00:00:00 2001
From: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
Date: Sun, 1 Nov 2026 16:28:41 +0100
Subject: [PATCH] [mlir][SPIR-V] Add SPIRVToLLVM conversion for GL.Atan2
---
mlir/lib/Conversion/SPIRVToLLVM/SPIRVToLLVM.cpp | 1 +
.../test/Conversion/SPIRVToLLVM/gl-ops-to-llvm.mlir | 13 +++++++++++++
2 files changed, 14 insertions(+)
diff --git a/mlir/lib/Conversion/SPIRVToLLVM/SPIRVToLLVM.cpp b/mlir/lib/Conversion/SPIRVToLLVM/SPIRVToLLVM.cpp
index 4b34bc722b8ee7..0de0a5518fb053 100644
--- a/mlir/lib/Conversion/SPIRVToLLVM/SPIRVToLLVM.cpp
+++ b/mlir/lib/Conversion/SPIRVToLLVM/SPIRVToLLVM.cpp
@@ -2462,6 +2462,7 @@ void mlir::populateSPIRVToLLVMConversionPatterns(
DirectConversionPattern<spirv::GLAsinOp, LLVM::ASinOp>,
DirectConversionPattern<spirv::GLAcosOp, LLVM::ACosOp>,
DirectConversionPattern<spirv::GLAtanOp, LLVM::ATanOp>,
+ DirectConversionPattern<spirv::GLAtan2Op, LLVM::ATan2Op>,
DirectConversionPattern<spirv::GLTanOp, LLVM::TanOp>,
DirectConversionPattern<spirv::GLTanhOp, LLVM::TanhOp>,
InverseSqrtPattern, SAbsPattern, FractPattern,
diff --git a/mlir/test/Conversion/SPIRVToLLVM/gl-ops-to-llvm.mlir b/mlir/test/Conversion/SPIRVToLLVM/gl-ops-to-llvm.mlir
index e0deafd2824b91..1107d8fef2bc00 100644
--- a/mlir/test/Conversion/SPIRVToLLVM/gl-ops-to-llvm.mlir
+++ b/mlir/test/Conversion/SPIRVToLLVM/gl-ops-to-llvm.mlir
@@ -454,6 +454,19 @@ spirv.func @asin_acos_atan(%arg0: f32, %arg1: vector<3xf16>) "None" {
spirv.Return
}
+//===----------------------------------------------------------------------===//
+// spirv.GL.Atan2
+//===----------------------------------------------------------------------===//
+
+// CHECK-LABEL: @atan2
+spirv.func @atan2(%arg0: f32, %arg1: f32, %arg2: vector<3xf16>, %arg3: vector<3xf16>) "None" {
+ // CHECK: llvm.intr.atan2(%{{.*}}, %{{.*}}) : (f32, f32) -> f32
+ %0 = spirv.GL.Atan2 %arg0, %arg1 : f32
+ // CHECK: llvm.intr.atan2(%{{.*}}, %{{.*}}) : (vector<3xf16>, vector<3xf16>) -> vector<3xf16>
+ %1 = spirv.GL.Atan2 %arg2, %arg3 : vector<3xf16>
+ spirv.Return
+}
+
//===----------------------------------------------------------------------===//
// spirv.GL.Fract
//===----------------------------------------------------------------------===//
More information about the Mlir-commits
mailing list