[Mlir-commits] [mlir] e9556fc - [mlir][SPIR-V] Convert math.trunc to GL Trunc and CL trunc (#200739)

llvmlistbot at llvm.org llvmlistbot at llvm.org
Mon Jun 1 01:57:17 PDT 2026


Author: Arseniy Obolenskiy
Date: 2026-06-01T10:57:12+02:00
New Revision: e9556fcc4a18522e93d3975962a77a008e92b38b

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

LOG: [mlir][SPIR-V] Convert math.trunc to GL Trunc and CL trunc (#200739)

Added: 
    

Modified: 
    mlir/lib/Conversion/MathToSPIRV/MathToSPIRV.cpp
    mlir/test/Conversion/MathToSPIRV/math-to-gl-spirv.mlir
    mlir/test/Conversion/MathToSPIRV/math-to-opencl-spirv.mlir

Removed: 
    


################################################################################
diff  --git a/mlir/lib/Conversion/MathToSPIRV/MathToSPIRV.cpp b/mlir/lib/Conversion/MathToSPIRV/MathToSPIRV.cpp
index 8bbb770707876..5353fb64fb443 100644
--- a/mlir/lib/Conversion/MathToSPIRV/MathToSPIRV.cpp
+++ b/mlir/lib/Conversion/MathToSPIRV/MathToSPIRV.cpp
@@ -634,6 +634,7 @@ void populateMathToSPIRVPatterns(const SPIRVTypeConverter &typeConverter,
            CheckedElementwiseOpPattern<math::SqrtOp, spirv::GLSqrtOp>,
            CheckedElementwiseOpPattern<math::TanhOp, spirv::GLTanhOp>,
            CheckedElementwiseOpPattern<math::TanOp, spirv::GLTanOp>,
+           CheckedElementwiseOpPattern<math::TruncOp, spirv::GLTruncOp>,
            CheckedElementwiseOpPattern<math::AsinOp, spirv::GLAsinOp>,
            CheckedElementwiseOpPattern<math::AcosOp, spirv::GLAcosOp>,
            CheckedElementwiseOpPattern<math::SinhOp, spirv::GLSinhOp>,
@@ -669,6 +670,7 @@ void populateMathToSPIRVPatterns(const SPIRVTypeConverter &typeConverter,
       CheckedElementwiseOpPattern<math::SqrtOp, spirv::CLSqrtOp>,
       CheckedElementwiseOpPattern<math::TanhOp, spirv::CLTanhOp>,
       CheckedElementwiseOpPattern<math::TanOp, spirv::CLTanOp>,
+      CheckedElementwiseOpPattern<math::TruncOp, spirv::CLTruncOp>,
       CheckedElementwiseOpPattern<math::AsinOp, spirv::CLAsinOp>,
       CheckedElementwiseOpPattern<math::AcosOp, spirv::CLAcosOp>,
       CheckedElementwiseOpPattern<math::SinhOp, spirv::CLSinhOp>,

diff  --git a/mlir/test/Conversion/MathToSPIRV/math-to-gl-spirv.mlir b/mlir/test/Conversion/MathToSPIRV/math-to-gl-spirv.mlir
index 54bdc17af86dc..e7d7dec521999 100644
--- a/mlir/test/Conversion/MathToSPIRV/math-to-gl-spirv.mlir
+++ b/mlir/test/Conversion/MathToSPIRV/math-to-gl-spirv.mlir
@@ -62,6 +62,8 @@ func.func @float32_unary_scalar(%arg0: f32) {
   %22 = math.acosh %arg0 : f32
   // CHECK: spirv.GL.Atanh %{{.*}}: f32
   %23 = math.atanh %arg0 : f32
+  // CHECK: spirv.GL.Trunc %{{.*}}: f32
+  %24 = math.trunc %arg0 : f32
   return
 }
 
@@ -117,6 +119,8 @@ func.func @float32_unary_vector(%arg0: vector<3xf32>) {
   %19 = math.acosh %arg0 : vector<3xf32>
   // CHECK: spirv.GL.Atanh %{{.*}}: vector<3xf32>
   %20 = math.atanh %arg0 : vector<3xf32>
+  // CHECK: spirv.GL.Trunc %{{.*}}: vector<3xf32>
+  %21 = math.trunc %arg0 : vector<3xf32>
   return
 }
 

diff  --git a/mlir/test/Conversion/MathToSPIRV/math-to-opencl-spirv.mlir b/mlir/test/Conversion/MathToSPIRV/math-to-opencl-spirv.mlir
index 1b7d63fb38d36..fd040f1646661 100644
--- a/mlir/test/Conversion/MathToSPIRV/math-to-opencl-spirv.mlir
+++ b/mlir/test/Conversion/MathToSPIRV/math-to-opencl-spirv.mlir
@@ -62,6 +62,8 @@ func.func @float32_unary_scalar(%arg0: f32) {
   %24 = math.acosh %arg0 : f32
   // CHECK: spirv.CL.atanh %{{.*}}: f32
   %25 = math.atanh %arg0 : f32
+  // CHECK: spirv.CL.trunc %{{.*}}: f32
+  %26 = math.trunc %arg0 : f32
   return
 }
 
@@ -115,6 +117,8 @@ func.func @float32_unary_vector(%arg0: vector<3xf32>) {
   %19 = math.acosh %arg0 : vector<3xf32>
   // CHECK: spirv.CL.atanh %{{.*}}: vector<3xf32>
   %20 = math.atanh %arg0 : vector<3xf32>
+  // CHECK: spirv.CL.trunc %{{.*}}: vector<3xf32>
+  %21 = math.trunc %arg0 : vector<3xf32>
   return
 }
 


        


More information about the Mlir-commits mailing list