Skip to content

Commit 8c0ec79

Browse files
[mlir][LLVM] Allow call_intrinsic to inline (#70940)
LLVM::CallIntrinsicOp was previously overlooked from the isLegalToInline.
1 parent bc44e6e commit 8c0ec79

File tree

2 files changed

+3
-0
lines changed

2 files changed

+3
-0
lines changed

mlir/lib/Dialect/LLVMIR/IR/LLVMInlining.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -694,6 +694,7 @@ struct LLVMInlinerInterface : public DialectInlinerInterface {
694694
LLVM::AtomicRMWOp,
695695
LLVM::AtomicCmpXchgOp,
696696
LLVM::CallOp,
697+
LLVM::CallIntrinsicOp,
697698
LLVM::DbgDeclareOp,
698699
LLVM::DbgLabelOp,
699700
LLVM::DbgValueOp,

mlir/test/Dialect/LLVMIR/inlining.mlir

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ func.func @inner_func_inlinable(%ptr : !llvm.ptr) -> i32 {
2828
llvm.unreachable
2929
^bb2:
3030
llvm.intr.stackrestore %stack : !llvm.ptr
31+
llvm.call_intrinsic "llvm.x86.sse41.round.ss"() : () -> (vector<8xf32>)
3132
return %1 : i32
3233
}
3334

@@ -50,6 +51,7 @@ func.func @inner_func_inlinable(%ptr : !llvm.ptr) -> i32 {
5051
// CHECK: llvm.inline_asm has_side_effects "foo", "bar"
5152
// CHECK: llvm.unreachable
5253
// CHECK: llvm.intr.stackrestore %[[STACK]]
54+
// CHECK: llvm.call_intrinsic "llvm.x86.sse41.round.ss"(
5355
func.func @test_inline(%ptr : !llvm.ptr) -> i32 {
5456
%0 = call @inner_func_inlinable(%ptr) : (!llvm.ptr) -> i32
5557
return %0 : i32

0 commit comments

Comments
 (0)