[Mlir-commits] [mlir] [mlir][SPIR-V] Convert math.atan2 to GL atan2 (PR #201928)

Arseniy Obolenskiy llvmlistbot at llvm.org
Fri Jun 5 13:03:01 PDT 2026


https://github.com/aobolensk created https://github.com/llvm/llvm-project/pull/201928

None

>From bbcb89172a3aa2044321e37a0c34c0668bae2515 Mon Sep 17 00:00:00 2001
From: Arseniy Obolenskiy <arseniy.obolenskiy at amd.com>
Date: Fri, 5 Jun 2026 22:01:33 +0200
Subject: [PATCH] [mlir][SPIR-V] Convert math.atan2 to GL atan2

---
 mlir/lib/Conversion/MathToSPIRV/MathToSPIRV.cpp    |  1 +
 .../Conversion/MathToSPIRV/math-to-gl-spirv.mlir   | 14 ++++++++++++++
 2 files changed, 15 insertions(+)

diff --git a/mlir/lib/Conversion/MathToSPIRV/MathToSPIRV.cpp b/mlir/lib/Conversion/MathToSPIRV/MathToSPIRV.cpp
index 5353fb64fb443..533b85dbc7e96 100644
--- a/mlir/lib/Conversion/MathToSPIRV/MathToSPIRV.cpp
+++ b/mlir/lib/Conversion/MathToSPIRV/MathToSPIRV.cpp
@@ -619,6 +619,7 @@ void populateMathToSPIRVPatterns(const SPIRVTypeConverter &typeConverter,
            CheckedElementwiseOpPattern<math::AbsFOp, spirv::GLFAbsOp>,
            CheckedElementwiseOpPattern<math::AbsIOp, spirv::GLSAbsOp>,
            CheckedElementwiseOpPattern<math::AtanOp, spirv::GLAtanOp>,
+           CheckedElementwiseOpPattern<math::Atan2Op, spirv::GLAtan2Op>,
            CheckedElementwiseOpPattern<math::CeilOp, spirv::GLCeilOp>,
            CheckedElementwiseOpPattern<math::ClampFOp, spirv::GLFClampOp>,
            CheckedElementwiseOpPattern<math::CosOp, spirv::GLCosOp>,
diff --git a/mlir/test/Conversion/MathToSPIRV/math-to-gl-spirv.mlir b/mlir/test/Conversion/MathToSPIRV/math-to-gl-spirv.mlir
index e7d7dec521999..b8d0b5dead3b4 100644
--- a/mlir/test/Conversion/MathToSPIRV/math-to-gl-spirv.mlir
+++ b/mlir/test/Conversion/MathToSPIRV/math-to-gl-spirv.mlir
@@ -139,6 +139,20 @@ func.func @float32_ternary_vector(%a: vector<4xf32>, %b: vector<4xf32>,
   return
 }
 
+// CHECK-LABEL: @float32_binary_scalar
+func.func @float32_binary_scalar(%lhs: f32, %rhs: f32) {
+  // CHECK: spirv.GL.Atan2 %{{.*}}, %{{.*}} : f32
+  %0 = math.atan2 %lhs, %rhs : f32
+  return
+}
+
+// CHECK-LABEL: @float32_binary_vector
+func.func @float32_binary_vector(%lhs: vector<3xf32>, %rhs: vector<3xf32>) {
+  // CHECK: spirv.GL.Atan2 %{{.*}}, %{{.*}} : vector<3xf32>
+  %0 = math.atan2 %lhs, %rhs : vector<3xf32>
+  return
+}
+
 // CHECK-LABEL: @float32_clamp_scalar
 func.func @float32_clamp_scalar(%value: f32, %min: f32, %max: f32) {
   // CHECK: spirv.GL.FClamp %{{.*}}, %{{.*}}, %{{.*}} : f32



More information about the Mlir-commits mailing list