xref: /llvm-project/mlir/test/Transforms/inlining-repeated-use.mlir (revision cda6aa78f8e7346382a204306c4d86ffbab99785)
1// RUN: mlir-opt -inline %s | FileCheck %s
2
3// This could crash the inliner, make sure it does not.
4
5func.func @A() {
6  call @B() { inA } : () -> ()
7  return
8}
9
10func.func @B() {
11  call @E() : () -> ()
12  return
13}
14
15func.func @C() {
16  call @D() : () -> ()
17  return
18}
19
20func.func private @D() {
21  call @B() { inD } : () -> ()
22  return
23}
24
25func.func @E() {
26  call @fabsf() : () -> ()
27  return
28}
29
30func.func private @fabsf()
31
32// CHECK: func @A() {
33// CHECK:   call @fabsf() : () -> ()
34// CHECK:   return
35// CHECK: }
36// CHECK: func @B() {
37// CHECK:   call @fabsf() : () -> ()
38// CHECK:   return
39// CHECK: }
40// CHECK: func @C() {
41// CHECK:   call @fabsf() : () -> ()
42// CHECK:   return
43// CHECK: }
44// CHECK: func @E() {
45// CHECK:   call @fabsf() : () -> ()
46// CHECK:   return
47// CHECK: }
48// CHECK: func private @fabsf()
49