1d19d4d30SSergei Larin; All of the functions in this module must end up 2d19d4d30SSergei Larin; in the same partition. 3d19d4d30SSergei Larin 4d19d4d30SSergei Larin; Mutually recursive calls 5d19d4d30SSergei Larin; RUN: llvm-split -j=2 -preserve-locals -o %t %s 6d19d4d30SSergei Larin; RUN: llvm-dis -o - %t0 | FileCheck --check-prefix=CHECK1 %s 7d19d4d30SSergei Larin; RUN: llvm-dis -o - %t1 | FileCheck --check-prefix=CHECK0 %s 8d19d4d30SSergei Larin 9*e4b0231cSRafael Espindola; CHECK0: declare dso_local i32 @funInternal0 10*e4b0231cSRafael Espindola; CHECK0: declare dso_local i32 @funInternal1 11d19d4d30SSergei Larin; CHECK0: declare i32 @funExternal0 12d19d4d30SSergei Larin; CHECK0: declare i32 @funExternal1 13d19d4d30SSergei Larin 14d19d4d30SSergei Larin; CHECK1: define internal i32 @funInternal0 15d19d4d30SSergei Larin; CHECK1: define internal i32 @funInternal1 16d19d4d30SSergei Larin; CHECK1: define i32 @funExternal0 17d19d4d30SSergei Larin; CHECK1: define i32 @funExternal1 18d19d4d30SSergei Larin 19d19d4d30SSergei Larindefine internal i32 @funInternal0() { 20d19d4d30SSergei Larinentry: 21d19d4d30SSergei Larin %x = call i32 @funInternal1() 22d19d4d30SSergei Larin ret i32 %x 23d19d4d30SSergei Larin} 24d19d4d30SSergei Larin 25d19d4d30SSergei Larindefine internal i32 @funInternal1() { 26d19d4d30SSergei Larinentry: 27d19d4d30SSergei Larin %x = call i32 @funInternal0() 28d19d4d30SSergei Larin ret i32 %x 29d19d4d30SSergei Larin} 30d19d4d30SSergei Larin 31d19d4d30SSergei Larin; Extrnal functions 32d19d4d30SSergei Larin 33d19d4d30SSergei Larindefine i32 @funExternal0() { 34d19d4d30SSergei Larinentry: 35d19d4d30SSergei Larin %x = call i32 @funInternal0() 36d19d4d30SSergei Larin ret i32 %x 37d19d4d30SSergei Larin} 38d19d4d30SSergei Larin 39d19d4d30SSergei Larindefine i32 @funExternal1() { 40d19d4d30SSergei Larinentry: 41d19d4d30SSergei Larin %x = call i32 @funInternal1() 42d19d4d30SSergei Larin ret i32 %x 43d19d4d30SSergei Larin} 44d19d4d30SSergei Larin 45