[Mlir-commits] [mlir] [mlir][SPIR-V] Convert math.trunc to GL Trunc and CL trunc (PR #200739)
llvmlistbot at llvm.org
llvmlistbot at llvm.org
Mon Jun 1 01:40:27 PDT 2026
llvmorg-github-actions[bot] wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-mlir
Author: Arseniy Obolenskiy (aobolensk)
<details>
<summary>Changes</summary>
---
Full diff: https://github.com/llvm/llvm-project/pull/200739.diff
3 Files Affected:
- (modified) mlir/lib/Conversion/MathToSPIRV/MathToSPIRV.cpp (+2)
- (modified) mlir/test/Conversion/MathToSPIRV/math-to-gl-spirv.mlir (+4)
- (modified) mlir/test/Conversion/MathToSPIRV/math-to-opencl-spirv.mlir (+4)
``````````diff
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
}
``````````
</details>
https://github.com/llvm/llvm-project/pull/200739
More information about the Mlir-commits
mailing list