Skip to content

Commit 91140e6

Browse files
authored
[mlir][llvm] Add llvm.intr.exp10 operation (#129378)
1 parent 8a8e4cf commit 91140e6

File tree

3 files changed

+21
-0
lines changed

3 files changed

+21
-0
lines changed

mlir/include/mlir/Dialect/LLVMIR/LLVMIntrinsicOps.td

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,7 @@ def LLVM_IsFPClass : LLVM_OneResultIntrOp<"is.fpclass", [], [0], [Pure],
109109
def LLVM_CopySignOp : LLVM_BinarySameArgsIntrOpF<"copysign">;
110110
def LLVM_ExpOp : LLVM_UnaryIntrOpF<"exp">;
111111
def LLVM_Exp2Op : LLVM_UnaryIntrOpF<"exp2">;
112+
def LLVM_Exp10Op : LLVM_UnaryIntrOpF<"exp10">;
112113
def LLVM_FAbsOp : LLVM_UnaryIntrOpF<"fabs">;
113114
def LLVM_FCeilOp : LLVM_UnaryIntrOpF<"ceil">;
114115
def LLVM_FFloorOp : LLVM_UnaryIntrOpF<"floor">;

mlir/test/Target/LLVMIR/Import/intrinsic.ll

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,15 @@ define void @exp2_test(float %0, <8 x float> %1) {
4242
ret void
4343
}
4444

45+
; CHECK-LABEL: llvm.func @exp10_test
46+
define void @exp10_test(float %0, <8 x float> %1) {
47+
; CHECK: llvm.intr.exp10(%{{.*}}) : (f32) -> f32
48+
%3 = call float @llvm.exp10.f32(float %0)
49+
; CHECK: llvm.intr.exp10(%{{.*}}) : (vector<8xf32>) -> vector<8xf32>
50+
%4 = call <8 x float> @llvm.exp10.v8f32(<8 x float> %1)
51+
ret void
52+
}
53+
4554
; CHECK-LABEL: llvm.func @log_test
4655
define void @log_test(float %0, <8 x float> %1) {
4756
; CHECK: llvm.intr.log(%{{.*}}) : (f32) -> f32
@@ -1036,6 +1045,8 @@ declare float @llvm.exp.f32(float)
10361045
declare <8 x float> @llvm.exp.v8f32(<8 x float>)
10371046
declare float @llvm.exp2.f32(float)
10381047
declare <8 x float> @llvm.exp2.v8f32(<8 x float>)
1048+
declare float @llvm.exp10.f32(float)
1049+
declare <8 x float> @llvm.exp10.v8f32(<8 x float>)
10391050
declare float @llvm.log.f32(float)
10401051
declare <8 x float> @llvm.log.v8f32(<8 x float>)
10411052
declare float @llvm.log10.f32(float)

mlir/test/Target/LLVMIR/llvmir-intrinsics.mlir

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,15 @@ llvm.func @exp2_test(%arg0: f32, %arg1: vector<8xf32>) {
4040
llvm.return
4141
}
4242

43+
// CHECK-LABEL: @exp10_test
44+
llvm.func @exp10_test(%arg0: f32, %arg1: vector<8xf32>) {
45+
// CHECK: call float @llvm.exp10.f32
46+
"llvm.intr.exp10"(%arg0) : (f32) -> f32
47+
// CHECK: call <8 x float> @llvm.exp10.v8f32
48+
"llvm.intr.exp10"(%arg1) : (vector<8xf32>) -> vector<8xf32>
49+
llvm.return
50+
}
51+
4352
// CHECK-LABEL: @log_test
4453
llvm.func @log_test(%arg0: f32, %arg1: vector<8xf32>) {
4554
// CHECK: call float @llvm.log.f32

0 commit comments

Comments
 (0)