diff --git a/mlir/include/mlir/Dialect/LLVMIR/LLVMIntrinsicOps.td b/mlir/include/mlir/Dialect/LLVMIR/LLVMIntrinsicOps.td --- a/mlir/include/mlir/Dialect/LLVMIR/LLVMIntrinsicOps.td +++ b/mlir/include/mlir/Dialect/LLVMIR/LLVMIntrinsicOps.td @@ -57,6 +57,7 @@ LLVM_Type:$cache); } def LLVM_SinOp : LLVM_UnaryIntrinsicOp<"sin">; +def LLVM_RoundOp : LLVM_UnaryIntrinsicOp<"round">; def LLVM_SqrtOp : LLVM_UnaryIntrinsicOp<"sqrt">; def LLVM_PowOp : LLVM_BinarySameArgsIntrinsicOp<"pow">; def LLVM_PowIOp : LLVM_BinaryIntrinsicOp<"powi">; diff --git a/mlir/test/Dialect/LLVMIR/roundtrip.mlir b/mlir/test/Dialect/LLVMIR/roundtrip.mlir --- a/mlir/test/Dialect/LLVMIR/roundtrip.mlir +++ b/mlir/test/Dialect/LLVMIR/roundtrip.mlir @@ -155,6 +155,9 @@ // CHECK: "llvm.intr.ctpop"(%{{.*}}) : (i32) -> i32 %33 = "llvm.intr.ctpop"(%arg0) : (i32) -> i32 +// CHECK: "llvm.intr.round"(%[[FLOAT]]) : (f32) -> f32 + %34 = "llvm.intr.round"(%arg1) : (f32) -> f32 + // CHECK: "llvm.intr.memcpy"(%{{.*}}, %{{.*}}, %{{.*}}, %{{.*}}) : (!llvm.ptr, !llvm.ptr, i32, i1) -> () "llvm.intr.memcpy"(%arg2, %arg3, %arg0, %arg4) : (!llvm.ptr, !llvm.ptr, i32, i1) -> ()